IT Share you

pg_restore가 성공적으로 반환되지만 실제로 데이터베이스를 복원하지 않는 이유는 무엇입니까?

shareyou 2020. 12. 15. 20:25
반응형

pg_restore가 성공적으로 반환되지만 실제로 데이터베이스를 복원하지 않는 이유는 무엇입니까?


다음 명령을 사용하여 덤프 한 Linux 서버에 Postgres 8.4 데이터베이스가 있습니다.

pg_dump --format=c --exclude-table=log --file=/path/to/output my_db

그런 다음 생성 된 파일을 로컬 Windows 7 시스템에 ftp하고 다음 명령을 사용하여 파일을 로컬 Postgres 8.4 인스턴스로 복원하려고합니다.

pg_restore --create --exit-on-error --verbose c:\path\to\file

restore 명령은 내 데이터베이스를 생성하고 연결 한 다음 예상대로 다른 모든 테이블을 생성했다고 주장하는 많은 출력을 생성합니다. 그러나 pgAdmin을 통해 로컬 컴퓨터의 데이터베이스를 볼 때 복원 된 데이터베이스는 전혀 존재하지 않습니다.

문제를 해결하기 위해 다음 명령을 시도했습니다.

pg_restore --create --exit-on-error --verbose --host=blahblah --username=no_one c:\path\to\file

주어진 호스트와 사용자 이름이 완전히 말도 안되는 경우 에도이 명령을 실행하면 오류없이 명령에서 똑같은 출력이 계속 나타납니다.

누구든지 전에 이것을 실행했거나 이것을 유발하여 무엇을 할 수 있는지 알고 있습니까?


처음 연결하려면 유효한 데이터베이스의 이름을 추가해야합니다. 그렇지 않으면 내용을 STDOUT에 덤프합니다.

pg_restore --create --exit-on-error --verbose --dbname=postgres <backup_file>

이것은 여전히 ​​혼란 스럽습니다 .-- dbname이 내가 만들고 싶은 db가되어야한다는 것을 실행하려고 시도했습니다.

pg_restore --create --exit-on-error --verbose --dbname=jiradb jiradb.tar

잘못된!!

말 그대로 --dbname postgres 여야하며 --create는 파일의 이름에서 실제 db를 생성합니다. 제 경우에는 다음을 사용하여 tar 백업에서 복원했습니다.

pg_restore --create --exit-on-error --verbose --dbname=postgres jiradb.tar

참조 URL : https://stackoverflow.com/questions/5900888/why-is-pg-restore-returning-successfully-but-not-actually-restoring-my-database

반응형