명령 행을 사용하여 postgres 백업 파일을 복원 하시겠습니까?
postgresql을 처음 사용하고 로컬에서는 pgadmin3을 사용합니다. 그러나 원격 서버에는 그런 사치가 없습니다.
이미 데이터베이스 백업을 만들어 복사했지만 명령 줄에서 백업을 복원하는 방법이 있습니까? GUI 또는 pg_dumps와 관련된 것만 볼 수 있으므로 누군가가 이것에 대해 어떻게 할 수 있는지 말해 줄 수 있다면 정말 좋을 것입니다!
덤프 파일 작성 방법에 따라 두 가지 도구가 있습니다.
첫 번째 참조 소스 pg_dump(1)
는 덤프 자체를 작성하는 매뉴얼 페이지 여야 합니다. 그것은 말한다 :
덤프는 스크립트 또는 아카이브 파일 형식으로 출력 될 수 있습니다. 스크립트 덤프는 데이터베이스를 저장된 당시의 상태로 재구성하는 데 필요한 SQL 명령이 포함 된 일반 텍스트 파일입니다. 이러한 스크립트에서 복원하려면 psql (1)에 공급하십시오. 스크립트 파일을 사용하여 다른 시스템과 다른 아키텍처에서도 데이터베이스를 재구성 할 수 있습니다. 다른 SQL 데이터베이스 제품에서도 일부 수정되었습니다.
데이터베이스를 재 구축하려면 대체 아카이브 파일 형식을 pg_restore (1)와 함께 사용해야합니다. 그것들은 pg_restore가 복원 된 것을 선택적으로하거나 심지어 복원되기 전에 항목을 재정렬 할 수있게합니다. 아카이브 파일 형식은 여러 아키텍처에서 이식 가능하도록 설계되었습니다.
따라서 덤프 방식에 따라 다릅니다. 우수한 file(1)
명령을 사용하여 알아낼 수 있습니다. ASCII 텍스트 및 / 또는 SQL을 psql
언급하면 복원해야합니다. 그렇지 않으면 사용해야합니다.pg_restore
복원은 매우 쉽습니다.
psql -U <username> -d <dbname> -1 -f <filename>.sql
또는
pg_restore -U <username> -d <dbname> -1 <filename>.dump
해당 맨 페이지를 확인하십시오. 복원 작동 방식에 영향을주는 몇 가지 옵션이 있습니다. 덤프 생성 방법에 따라 복원하기 전에 "라이브"데이터베이스를 정리하거나 주석에서 지적한대로 template0에서 데이터베이스를 다시 작성해야 할 수도 있습니다.
백업 만들기
pg_dump -h localhost -p 5432 -U postgres -F c -b -v -f
"/usr/local/backup/10.70.0.61.backup" old_db
-F c는 사용자 정의 형식 (압축되어 -j N과 병렬로 수행 가능) -b는 얼룩을 포함하고, -v는 자세하고 -f는 백업 파일 이름입니다.
백업에서 복원
pg_restore -h localhost -p 5432 -U postgres -d old_db -v
"/usr/local/backup/10.70.0.61.backup"
-h localhost- 옵션 을 설정해야합니다.
postgres
데이터베이스에 대한 모든 권한을 가지려면 로그인해야 합니다.
su - postgres
psql -l # will list all databases on Postgres cluster
pg_dump / pg_restore
pg_dump -U username -f backup.dump database_name -Fc
전환 -F
백업 파일의 형식을 지정합니다 :
c
압축되어 사용자 정의 PostgreSQL 형식을 사용하며 백업 파일 크기가 가장 작습니다.d
각 파일이 하나의 테이블 인 디렉토리t
TAR 아카이브 (사용자 정의 형식보다 큼)-h
/--host
서버가 실행중인 시스템의 호스트 이름을 지정합니다.-W
/ 데이터베이스에 연결하기 전에 비밀번호를 묻는 메시지를 표시하도록--password
강제pg_dump
백업 복원 :
pg_restore -d database_name -U username -C backup.dump
-C
데이터를 가져 오기 전에 매개 변수 가 데이터베이스를 작성해야합니다. 작동하지 않으면 언제든지 데이터베이스를 만들 수 있습니다. 명령 사용 ( postgres
데이터베이스를 작성할 권한이있는 사용자 또는 다른 계정으로)createdb db_name -O owner
pg_dump / psql
인수를 지정하지 않은 경우 -F
기본 일반 텍스트 SQL 형식이 사용되었습니다 -F p
. 그런 다음을 사용할 수 없습니다 pg_restore
. 로 데이터를 가져올 수 있습니다 psql
.
지원:
pg_dump -U username -f backup.sql database_name
복원:
psql -d database_name -f backup.sql
POSTGRESQL 9.1.12
덤프:
pg_dump -U user db_name > archive_name.sql
사용자 비밀번호를 입력하고 Enter를 누르십시오.
복원:
psql -U user db_name < /directory/archive.sql
사용자 비밀번호를 입력하고 Enter를 누르십시오.
아래는 pg_dump
데이터베이스를 복원하는 데 사용하는 버전입니다 .
pg_restore -h localhost -p 5432 -U postgres -d my_new_database my_old_database.backup
또는 사용 psql
:
psql -h localhost -U postgres -p 5432 my_new_database < my_old_database.backup
여기서 -h
호스트, -p
포트, -u
로그인 사용자 이름, -d
데이터베이스 이름
GZIP로 백업 및 복원
큰 데이터베이스의 경우 이것은 매우 좋습니다
지원
pg_dump -U user -d mydb | gzip > mydb.pgsql.gz
리조트
gunzip -c mydb.pgsql.gz | psql dbname -U user
https://www.postgresql.org/docs/9.1/static/backup-dump.html
Backup: $ pg_dump -U {user-name} {source_db} -f {dumpfilename.sql}
Restore: $ psql -U {user-name} -d {desintation_db} -f {dumpfilename.sql}
1. 터미널을 엽니 다.
다음 명령을 사용하여 데이터베이스를 2.backup
postgres 저장소-/opt/PostgreSQL/9.1/bin/
소스 데이터베이스 서버-192.168.1.111
백업 파일 위치 및 이름-/home/dinesh/db/mydb.backup
소스 DB 이름-mydatabase
/opt/PostgreSQL/9.1/bin/pg_dump --host '192.168.1.111'-포트 5432 --username "postgres"--no-password --format custom --blobs --file "/ home / dinesh / db /mydb.backup ""mydatabase "
mydb.backup 파일을 대상에 복원합니다.
목적지 서버-localhost
대상 데이터베이스 이름-mydatabase
백업을 복원 할 데이터베이스를 작성하십시오.
/opt/PostgreSQL/9.1/bin/psql -h 'localhost'-p 5432 -U postgres -c "CREATE DATABASE mydatabase"
백업을 복원하십시오.
/opt/PostgreSQL/9.1/bin/pg_restore --host 'localhost'-포트 5432 --username "postgres"--dbname "mydatabase"--no-password --clean "/ home / dinesh / db / mydb. 지원"
이 시도:
psql -U <username> -d <dbname> -f <filename>.sql
.sql 파일에서 DB psql 복원
pg_dump를 사용하여 백업을 생성하면 다음과 같은 방법으로 쉽게 복원 할 수 있습니다.
- 명령 행 창 열기
- Postgres bin 폴더로 이동하십시오. 예를 들면 다음과 같습니다.
cd "C:\ProgramFiles\PostgreSQL\9.5\bin"
- 데이터베이스를 복원하려면 명령을 입력하십시오.
For example: psql.exe -U postgres -d YourDatabase -f D:\Backup\.sql
- postgres 사용자의 비밀번호를 입력하십시오
- 복원 과정 확인
시험:
pg_restore -h localhost -p 5432 -U <username> -d <dbname> -1 <filename>
아래 링크에서 말했듯이 덤프 파일을 복원하기 위해 psql 명령을 사용할 수 있습니다.
https://www.postgresql.org/docs/8.1/static/backup.html#BACKUP-DUMP-RESTORE
psql dbname < infile
사용자 이름을 설정 해야하는 경우 다음과 같이 명령 뒤에 사용자 이름을 추가하십시오.
psql dbname < infile username
다음 명령이 도움이 될 수 있는지 확인하십시오.
sudo su - yourdbuser
psql
\i yourbackupfile
1) psql 터미널을 엽니 다.
2) 덤프 파일을 압축 해제 / 압축 해제하십시오.
3) 빈 데이터베이스를 작성하십시오.
4) 다음 명령을 사용하여 .dump 파일을 복원하십시오.
<database_name>-# \i <path_to_.dump_file>
이것은 나를 위해 일했다 :
pg_restore --verbose --clean --no-acl --no-owner --host = localhost -dbname = db_name --username = username latest.dump
postgres 백업 파일 복원은 처음에 백업을 수행 한 방법에 따라 다릅니다.
pg_dump를 -F c 또는 -F d와 함께 사용한 경우 pg_restore를 사용해야합니다. 그렇지 않으면
psql -h localhost -p 5432 -U postgres <백업 파일
postgres 데이터베이스를 백업 및 복원하는 9 가지 방법
백업 SQL 파일이 있으면 쉽게 복원 할 수 있습니다. 아래에 주어진 지침을 따르십시오.
1. At first, create a database using pgAdmin or whatever you want (for example my_db is our created db name)
2. Now Open command line window
3. Go to Postgres bin folder. For example: cd "C:\ProgramFiles\PostgreSQL\pg10\bin"
4. Enter the following command to restore your database: psql.exe -U postgres -d my_db -f D:\Backup\backup_file_name.sql
필요한 경우 postgres 사용자의 비밀번호를 입력하고 Postgres가 작업을 수행하도록하십시오. 그런 다음 복원 프로세스를 확인할 수 있습니다.
pg_dump를 실행하는 데 인증 문제가있어서 덤프 파일을 옮겼습니다.
mv database_dump /tmp
임시 디렉토리에 넣은 다음 실행
su -u postgres
cd /tmp
pg_restore database_dump
데이터베이스 덤프가 큰 경우 현재 사용자와 postgres 사용자가 데이터베이스 덤프 파일에 액세스하여 데이터베이스 덤프 파일을 넣을 수있는 다른 디렉토리를 만들면됩니다.
데이터를 백업하거나 백업에서 데이터를 복원하려는 경우 다음 명령을 실행할 수 있습니다.
1 데이터 백업을 만들려면 postgres \ bin \ 디렉토리로 이동 C:\programfiles\postgres\10\bin\
한 후 다음 명령을 입력하십시오-pg_dump -FC -U ngb -d ngb -p 5432 >C:\BACK_UP\ngb.090718_after_readUpload.backup
2 백업에서 데이터를 복원하려면 postgres \ bin \ 디렉토리로 이동 C:\programfiles\postgres\10\bin\
한 후 아래 명령을 입력하십시오-C:\programFiles\postgres\10\bin> pg_restore -Fc -U ngb -d ngb -p 5432 <C:\ngb.130918.backup
백업 파일이 존재하는지 확인하십시오.
아래의 작동 예를 참조하십시오
C : / Program Files / PostgreSQL / 9.4 / bin \ pg_restore.exe --host localhost --port 5432 --username "postgres"--dbname "newDatabase"--no-password --verbose
" C : \ Users \ Yogesh \ Downloads \ 새 다운로드 \ DB.backup "
참고 URL : https://stackoverflow.com/questions/2732474/restore-a-postgres-backup-file-using-the-command-line
'IT story' 카테고리의 다른 글
iOS 시뮬레이터에서 콘솔 로그를 얻으려면 어떻게해야합니까? (0) | 2020.04.19 |
---|---|
가장 일반적인 SQL 안티 패턴은 무엇입니까? (0) | 2020.04.19 |
Bash의 간단한 논리 연산자 (0) | 2020.04.18 |
끈적 끈적하고 비 스틱 세션 (0) | 2020.04.18 |
Servlet 3.0 API에 대한 Maven 종속성? (0) | 2020.04.18 |