명령줄을 사용하여 postgres 백업 파일을 복원하시겠습니까?
현지에서는 pgadmin3를 사용합니다.하지만 원격 서버에서는 그런 사치를 누릴 수 없습니다.
데이터베이스의 백업을 생성하여 복사했습니다. 명령줄에서 백업을 복원할 수 있는 방법이 있습니까?GUI 또는 toppg_dump와 관련된 것만 보입니다.
덤프 파일을 생성한 방법에 따라 두 가지 도구를 확인할 수 있습니다.
첫 번째 참조 소스는 man page pg_dump여야 합니다. 이것이 덤프 자체를 생성하는 것이기 때문입니다.다음과 같이 표시됩니다.
덤프는 스크립트 또는 아카이브 파일 형식으로 출력할 수 있습니다.스크립트 덤프는 데이터베이스를 저장 당시의 상태로 재구성하는 데 필요한 SQL 명령이 들어 있는 일반 텍스트 파일입니다.이러한 스크립트에서 복원하려면 psql(1)에 스크립트를 제공합니다.스크립트 파일은 다른 시스템 및 다른 아키텍처에서도 데이터베이스를 재구성하는 데 사용할 수 있으며, 다른 SQL 데이터베이스 제품에서도 일부 수정 작업을 수행할 수 있습니다.
데이터베이스를 재구성하려면 pg_restore(1)와 함께 대체 보관 파일 형식을 사용해야 합니다.pg_restore를 사용하면 복원 대상을 선택하거나 복원하기 전에 항목을 다시 정렬할 수 있습니다.아카이브 파일 형식은 아키텍처 간에 이동할 수 있도록 설계되었습니다.
그것은 그것이 어떻게 버려졌는지에 달려있습니다., 리눅스/유닉스를 수 것입니다.file(1)
명령 - ASCII 텍스트 및/또는 SQL이 표시되면 psql로 복원해야 합니다. 그렇지 않으면 pg_restore를 사용해야 합니다.
복원은 매우 쉽습니다.
psql -U username -d dbname < filename.sql
-- For Postgres versions 9.0 or earlier
psql -U username -d dbname -1 -f filename.sql
또는
pg_restore -U username -d dbname -1 filename.dump
각 manpage를 확인하십시오. 복원 작동 방식에 영향을 미치는 옵션은 상당히 많습니다.덤프가 생성된 방법에 따라 복원하기 전에 "활성" 데이터베이스를 정리하거나 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_filename/pg_restore
pg_dump -U username -f backup.dump database_name -Fc
스치위-F
백업 파일 형식 지정:
c
사용자 지정 Postgre 용정 용 Postgre 을 하여 백업 파일 합니다.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_message/psql
▁the경우▁argument를 하지 않은 .-F
되었습니다.-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 키를 누릅니다.
은제버다니입전다음▁of▁version의 버전입니다.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/14/backup-dump.html
이것은 저에게 효과가 있었습니다.
pg_restore --verbose --clean --no-acl --no-owner --host=localhost --dbname=db_name --username=username latest.dump
Backup: $ pg_dump -U {user-name} {source_db} -f {dumpfilename.sql}
Restore: $ psql -U {user-name} -d {desintation_db} -f {dumpfilename.sql}
사용해 보십시오.
psql -U <username> -d <dbname> -f <filename>.sql
.sql 파일에서 DB psql 복원
백업 및 복원
다음은 데이터베이스(macOS 및 Linux)를 백업, 삭제, 생성 및 복원하는 데 사용하는 콤보입니다.
sudo -u postgres pg_dump -Fc mydb > ./mydb.sql
sudo -u postgres dropdb mydb
sudo -u postgres createdb -O db_user mydb
sudo -u postgres pg_restore -d mydb < ./mydb.sql
미스크
-Fc
데이터베이스를 압축합니다(사용자 지정 형식 지정).- 는 : SQL 사용자
sudo -u postgres psql -c "\du+"
- 호스트 이름 및 날짜를 추가할 수 있습니다.
./mydb.sql
다음 다음과 같이 합니다../`hostname`_mydb_`date +"%Y%m%d_%H%M"`.sql
pg_dump를 사용하여 백업을 생성하면 다음과 같은 방법으로 쉽게 복원할 수 있습니다.
- 명령줄 창 열기
- Postgres bin 폴더로 이동합니다. 예:
cd "C:\ProgramFiles\PostgreSQL\9.5\bin"
- 데이터베이스를 복원하는 명령을 입력합니다.
For example: psql.exe -U postgres -d YourDatabase -f D:\Backup\.sql
- postgres 사용자의 암호 입력
- 복원 프로세스 확인
덤프 파일 확장자(*.dump)에 대한 언급을 여기서 보지 못했습니다.
이 솔루션은 저에게 효과가 있었습니다.
덤프 파일을 받아서 복구해야 했습니다.
처음에 저는 이것을 하려고 했습니다.pg_restore
그리고 다음을 얻었습니다.
pg_restore: error: input file appears to be a text format dump. Please use psql.
는 다니했습과 함께 .psql
잘 했습니다.
psql -U myUser -d myDataBase < path_to_the_file/file.dump
터미널을 엽니다.
다음 명령을 사용하여 데이터베이스 백업
bin -> 당신포그스레빈트스의> ->/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' --port 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' --port 5432 --username "postgres" --dbname "mydatabase" --no-password --clean "/home/dinesh/db/mydb.backup"
덤프 파일을 복원하려면 다음과 같이 하십시오.
psql -d [Dbname] -U [UserName] -p 5432 < [FileLocation]
.SQL 파일을 복원하려면 다음과 같이 하십시오.
pg_restore -U [Username] -d [Dbname] -1 [FileLocation]
사용자 인증 오류가 발생하면 프로그램 파일의 PSQL/data 폴더에 있는 pg_hba.conf 파일로 이동하여 "METHOD"를 "Trust"로 변경합니다.Windows 서비스(Win + R --> services.msc)에서 psql serve를 다시 시작합니다.
psql 터미널을 엽니다.
덤프 파일의 압축을 풉니다.
빈 데이터베이스를 만듭니다.
다음 명령을 사용하여 .vmdk 파일을 복원합니다.
<database_name>-# \i <path_to_.dump_file>
시도:
pg_restore -h localhost -p 5432 -U <username> -d <dbname> -1 <filename>
postgres 백업 파일 복원은 처음에 백업을 수행한 방법에 따라 달라집니다.
-FC 또는 -FD와 함께 pg_dump를 사용한 경우에는 pg_restore를 사용해야 합니다. 그렇지 않으면 다음을 사용할 수 있습니다.
psql -h localhost -p 5432 -U postgres < 백업 파일
postgres 데이터베이스를 백업 및 복원하는 9가지 방법
도커를 사용하는 경우 이 답변이 도움이 될 수 있습니다.
- 합니다.
docker start <postgres_container_id>
- 컨테이너
docker exec -it <postgres_container_id> bash
- 를 합니다.
.tar
컨테이너에 (창에서) 도커다너에백파일업 (른창이컨)docker cp postgres_dump.tar <postgres_container_id>:/
- »
pg_restore -c -U <postgres-user> -d <password> -v "postgres_dump.tar" -W
- 암호 입력
아래 링크에서 설명한 것처럼 psql 명령을 사용하여 덤프 파일을 복원할 수 있습니다.
https://www.postgresql.org/docs/8.1/static/backup.html#BACKUP-DUMP-RESTORE
psql dbname < infile
사용자 이름을 설정해야 하는 경우 다음과 같은 명령 뒤에 사용자 이름을 추가합니다.
psql dbname < infile username
necropost에 대해 미안하지만, 이 해결책들은 나에게 효과가 없었습니다.저는 10번 우편물입니다.Linux의 경우:
- 디렉토리를 내 pg_hba.conf로 변경해야 했습니다.
- 여기에 명시된 대로 피어에서 md5로 방법을 변경하기 위해 파일을 편집해야 했습니다.
- 시작합니다.
service postgresql-10 restart
내 백업 위치로 디렉터리를 변경합니다.sql을 찾아서 실행했습니다.
psql postgres -d database_name -1 -f backup.sql
-syslog_name은(는) 내 데이터베이스의 이름입니다.
-백업.sql은 내 .sql 백업 파일의 이름입니다.
암호 프롬프트가 없는 가장 빠른 방법
psql "postgresql://<db_user>:<db_pass>@<ip>:<port>/<db_name>" < "backup.sql"
윈도우즈 OS를 사용하는 경우
psql.exe "postgresql://<db_user>:<db_pass>@<ip>:<port>/<db_name>" < "backup.sql"
다음 명령이 도움이 되는지 확인해 보십시오.
sudo su - yourdbuser
psql
\i yourbackupfile
백업 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:cmd 단위의 암호와 함께 백업을 수행하려면 다음과 같이 하십시오.
1.PGPASSWORD="mypassword" pg_dump -U postgres -h localhost --inserts mydb>mydb.sql
옵션 2:cmd 단위로 암호 없이 백업을 수행하려면 다음과 같이 하십시오.
2. pg_dump -U postgres -h localhost --inserts mydb>mydb.sql
例션 3:가 큰 합니다.백업을 gzip으로 지정하려면(데이터베이스가 큰 경우)
3. pg_dump -U postgres -h localhost mydb --inserts | gzip > mydb.gz
복원:
1. psql -h localhost -d mydb -U postgres -p 5432 < mydb.sql
이 솔루션은 Windows에서만 작동합니다.
먼저 postgres bin 폴더를 "Path" 환경 변수에 이미 추가했는지 확인합니다(이 폴더는 C:\Program Files\Postgre).SQL\12\bin).
그런 다음 Windows 명령 인터프리터(cmd)를 열고 .sql 파일이 있는 폴더로 이동하여 다음 명령을 실행합니다.
pg_restore -U userName -d 데이터베이스-1 백업 파일.sql
예:
pg_restore - Usam -d SamDataBase -1 SamDataBaseBackup.sql
(사용자의 암호를 묻는 메시지가 표시될 수 있으므로 암호를 올바르게 입력한 다음 Enter를 클릭하십시오.)
푸라비다!
이름이 지정된 새 데이터베이스를 작성한 경우mydb
하여 .하려면 psql .sql 파일의 .sql을 합니다.
psql --file=dump.sql --username=postgres --host=localhost --port=5432 mydb
비밀번호는 psql에 의해 요청됩니다.
연결 옵션은 다음과 같습니다.
-h, --host=HOSTNAME database server host or socket directory (default: "/var/run/postgresql")
-p, --port=PORT database server port (default: "5432")
-U, --username=USERNAME database user name (default: "xyz")
-w, --no-password never prompt for password
-W, --password force password prompt (should happen automatically)
압축 덤프와 동일한 상태 저장 및 복원
다른 응답자들은 모든 키 비트를 별도로 제공했지만, 이것이 "그냥 작업 저장 후 정확한 상태로 복원" 명령 쌍을 제공하기를 바랍니다.
" " "에 .mydb.psql
:
PGPASSWORD=mypassword pg_dump -U my_username -h localhost mydb -Fc -f mydb.psql
복원:
PGPASSWORD=mypassword pg_restore -U my_username -h localhost \
--clean -d mydb -v mydb.psql
일부 플래그:
-Fc
일반 텍스트와 반대로 압축된 형식입니다.file tmp.psql
다음과 같이 말합니다.tmp.psql: PostgreSQL custom database dump - v1.14-0
--clean
복원하기 전에 대상 DB를 파괴하여 원래 상태로 돌아갑니다.덤프 후 생성된 모든 데이터가 손실됩니다.
PGPASSWORD
,-U
그리고.-h
방법에 할 수 를 들어, "" " " " " " " 없이 수정할 수 있습니다. 예를 들어, 로그인 방법이 없습니다.PGPASSWORD
암호를 입력하라는 메시지가 표시되며, 피어 인증을 로컬로 설정할 경우 암호가 필요하지 않습니다.
Ubuntu 22.04, Postgre에서 테스트됨SQL 14.5.
데이터를 백업하거나 백업에서 데이터를 복원하려는 경우 다음 명령을 실행할 수 있습니다.
\합니다. 예를 들어 "postgres \bin\"입니다.
C:\programfiles\postgres\10\bin\
다음 명령을 입력합니다.pg_dump -FC -U ngb -d ngb -p 5432 >C:\BACK_UP\ngb.090718_after_readUpload.backup
합니다. 예를 들어 "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
백업 파일이 있는지 확인하십시오.
다음 3단계를 수행합니다.
- 서버 시작 - postgres 버작시 -
sudo systemctl start postgresql
- - 동일사용 -
sudo systemctl enable postgresql
- 명령 - restore 령명 -
pg_restore -h localhost -p 5432 -U postgres -d old_db
덤프가 동일한 디렉토리에 있다고 가정합니다.
링크:
https://www.postgresqltutorial.com/postgresql-restore-database https://askubuntu.com/questions/50621/cannot-connect-to-postgresql-on-port-5432
언급URL : https://stackoverflow.com/questions/2732474/restore-a-postgres-backup-file-using-the-command-line
'programing' 카테고리의 다른 글
표준 오류 스트림에서 로깅을 사용하지 않도록 설정하는 방법은 무엇입니까? (0) | 2023.06.04 |
---|---|
명령줄 인수를 RCMD BATCH에 전달하는 중 (0) | 2023.06.04 |
안드로이드에서 중력과 레이아웃 중력의 차이점은 무엇입니까? (0) | 2023.06.04 |
세 번째 변수의 함수로 산점 마커를 색칠하는 방법 (0) | 2023.06.04 |
Numpy 이미지 크기 조정/크기 조정 (0) | 2023.06.04 |