programing

명령줄을 사용하여 postgres 백업 파일을 복원하시겠습니까?

css3 2023. 6. 4. 22:27

명령줄을 사용하여 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이 하나의 파 각 인 리 토 디 렉 의
  • tTAR 아카이브(사용자 지정 형식보다 큼)
  • -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를 사용하여 백업을 생성하면 다음과 같은 방법으로 쉽게 복원할 수 있습니다.

  1. 명령줄 창 열기
  2. Postgres bin 폴더로 이동합니다. 예: cd "C:\ProgramFiles\PostgreSQL\9.5\bin"
  3. 데이터베이스를 복원하는 명령을 입력합니다. For example: psql.exe -U postgres -d YourDatabase -f D:\Backup\.sql
  4. postgres 사용자의 암호 입력
  5. 복원 프로세스 확인

덤프 파일 확장자(*.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가지 방법

도커를 사용하는 경우 이 답변이 도움이 될 수 있습니다.

  1. 합니다.
    docker start <postgres_container_id>
    
  2. 컨테이너
    docker exec -it <postgres_container_id> bash
    
  3. 를 합니다..tar컨테이너에 (창에서) 도커다너에백파일업 (른창이컨)
    docker cp postgres_dump.tar <postgres_container_id>:/
    
  4. »
    pg_restore -c -U <postgres-user> -d <password>  -v "postgres_dump.tar" -W
    
  5. 암호 입력

아래 링크에서 설명한 것처럼 psql 명령을 사용하여 덤프 파일을 복원할 수 있습니다.

https://www.postgresql.org/docs/8.1/static/backup.html#BACKUP-DUMP-RESTORE

psql dbname < infile

사용자 이름을 설정해야 하는 경우 다음과 같은 명령 뒤에 사용자 이름을 추가합니다.

psql dbname < infile username

necropost에 대해 미안하지만, 이 해결책들은 나에게 효과가 없었습니다.저는 10번 우편물입니다.Linux의 경우:

  1. 디렉토리를 내 pg_hba.conf로 변경해야 했습니다.
  2. 여기에 명시된 대로 피어에서 md5로 방법을 변경하기 위해 파일을 편집해야 했습니다.
  3. 시작합니다.service postgresql-10 restart
  4. 내 백업 위치로 디렉터리를 변경합니다.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.

데이터를 백업하거나 백업에서 데이터를 복원하려는 경우 다음 명령을 실행할 수 있습니다.

  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
    

    백업 파일이 있는지 확인하십시오.

다음 3단계를 수행합니다.

  1. 서버 시작 - postgres 버작시 -sudo systemctl start postgresql
  2. - 동일사용 -sudo systemctl enable postgresql
  3. 명령 - 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