이 덤프 방법의 아이디어는 텍스트 파일을 생성하는 것입니다. 토토 명령을 사용하면 서버로 Fed Back이 당시와 같은 상태로 데이터베이스를 재현하십시오. 덤프.Postgre토토제공 유틸리티 프로그램postgresql : 문서 : 8.2 : 배트맨 토토이 목적. 이 명령의 기본 사용은 다음과 같습니다.
pg_dumpdbname Outfile
보시다시피pg_dump쓰기 표준 출력에 대한 결과. 우리는 이것이 어떻게 이루어지는 지 볼 것입니다 유용 할 수 있습니다.
pg_dump일반postgre토토클라이언트 응용 프로그램 (특히 영리한 것이지만). 이것은 당신이 할 수 있음을 의미합니다 액세스 권한이있는 원격 호스트 의이 백업 절차 데이터 베이스. 하지만 기억pg_dumpSpecial과 함께 작동하지 않습니다 권한. 특히, 모든 사람에 대한 액세스를 읽어야합니다 백업하고 싶은 테이블이므로 실제로 거의 항상 데이터베이스 슈퍼 유저로 실행해야합니다.
어떤 데이터베이스 서버를 지정하려면pg_dump연락처로 명령 줄을 사용하십시오 옵션-hhostand-p포트. 기본 호스트는입니다 현지 호스트 또는 당신의 것pghost환경 변수 지정. 마찬가지로 기본 포트는입니다 에 의해 표시됨pgport환경 컴파일 된 기본값에 의해 변수 또는 실패. (편리하게, 서버는 일반적으로 동일한 컴파일이 있습니다 기본.)
다른 것과 마찬가지로Postgre토토클라이언트 응용 프로그램,pg_dump의지 기본적으로 데이터베이스 사용자 이름과 연결 현재 운영 체제 사용자 이름. 이것을 무시합니다 지정-u옵션 또는 설정을 설정합니다 환경 변수pguser. 기억pg_dump연결은 주제입니다 일반 클라이언트 인증 메커니즘 ( 설명토토 사이트 순위 : 문서 : 8.2 : 토토 사이트 순위 인증).
덤프 생성pg_dumpare 내부적으로 일관성, 즉 데이터베이스에 대한 업데이트pg_dump가 실행되지 않습니다 덤프에서.pg_dump그렇지 않습니다 데이터베이스가 작동하는 동안 다른 작업을 차단하십시오. (예외는 와 같은 독점 잠금진공 가득한.)
중요 :데이터베이스 스키마가 OID에 의존하는 경우 (예 : 외국 키로) 지시해야합니다pg_dumpOID를 덤프합니다. 할 일 이것은 사용을 사용합니다.-o12636_12665
텍스트 파일pg_dumpP토토프로그램. 장군 덤프를 복원하기위한 명령 양식은
P토토dbname < infile
여기서infile당신은 당신입니다 사용Outfile용pg_dump명령. 데이터베이스dbname이 명령, 그래서 당신은에서 직접 만들어야합니다.Template0실행 전P토토(예 :createb -t template0dbname).P토토비슷한 옵션을 지원합니다pg_dump연결할 데이터베이스 서버 및 사용할 사용자 이름. 참조P토토자세한 내용은 참조 페이지 정보.
토토 덤프를 복원하기 전에 객체를 소유 한 모든 사용자 또는 덤핑 된 데이터베이스의 개체에 대한 권한이 부여되었습니다. 이미 존재해야합니다. 그렇지 않으면 복원이 실패합니다 원래 소유권 및/또는로 개체를 재현합니다 권한. (때로는 이것은 당신이 원하는 것이지만 보통 그렇지 않습니다.)
기본적으로P토토스크립트 토토 오류가 발생한 후에도 계속 실행됩니다. 너 스크립트 상단에서 다음 명령을 사용하시기 바랍니다. 그 행동을 바꾸고P토토an 토토 오류가 발생합니다 :
\ set on_error_stop
어느 쪽이든, 부분적으로 복원 된 덤프 만 있습니다. 또는 전체 덤프가 단일 트랜잭션으로 복원되므로 복원은 완전히 완성되거나 완전히 롤백되었습니다. 이 모드는 될 수 있습니다 통과하여 지정-1또는--- 단일 전환명령 줄 옵션P토토. 사용시 이 모드는 가장 작은 오류조차도 롤백 이미 몇 시간 동안 실행 된 복원. 그러나 수동으로 청소하는 것이 여전히 바람직 할 수 있습니다. 부분적으로 복원 된 덤프 후 복잡한 데이터베이스.
의 능력pg_dumpandP토토쓰기 또는 읽기 파이프는 하나에서 데이터베이스를 직접 버릴 수 있습니다. 서버에게 서버; 예를 들어:
pg_dump -hhost1 dbname| psql -hhost2 dbname
중요 :덤프가 생성pg_dumpTemplate0. 이것은 모든 언어를 의미합니다. 절차 등이 추가template1|pg_dump. 결과적으로 언제 복원, 사용자 정의를 사용하는 경우Template1, 빈을 만들어야합니다 의 데이터베이스Template0에서와 같이 위의 예.
백업을 복원 한 후 실행하는 것이 좋습니다무지개 토토 PostgreSQL : 문서 : 8.2 : Analyze각 데이터베이스에서 쿼리 최적화기에는 유용한 통계가 있습니다. 이 작업을 수행하는 쉬운 방법 실행 중입니다VACUUMDB -A -Z; 이것은 실행에 해당진공 분석각 데이터베이스에서 수동으로. 크게로드하는 방법에 대한 조언 데이터 금액Postgre토토효율적으로 참조섹션 13.4.
pg_dump단 하나만 덤프합니다 한 번에 데이터베이스에 대한 정보를 덤프하지 않습니다. 역할 또는 테이블 스페이스 (클러스터 전체가 오히려 클러스터이기 때문에 다가베이스 당보다). 전체의 편리한 덤핑을 지원합니다 데이터베이스 클러스터의 내용,pg_dumpall프로그램이 제공됩니다.pg_dumpall각각 백업 주어진 클러스터의 데이터베이스와 클러스터 전체를 보존합니다 역할 및 테이블 스페이스 정의와 같은 데이터. 기본 사용 이 명령 중 :
pg_dumpallOutfile
결과 덤프를 복원 할 수 있습니다P토토:
P토토 -FinfilePostgres
(실제로 기존 데이터베이스 이름을 지정할 수 있습니다 시작하지만 빈 클러스터에 다시로드되면Postgres일반적으로 사용해야합니다.) 때 데이터베이스 슈퍼 사용자가 액세스 할 때 항상 필요합니다 a 복원pg_dumpall덤프, 역할과 테이블 스페이스를 복원하는 데 필요한 정보. 테이블 스페이스를 사용하는 경우 조심하십시오 덤프의 테이블 스페이스 경로는 새로 적합합니다. 설치.
이후Postgre토토허용 시스템의 최대 파일 크기보다 큰 테이블은 그러한 테이블을 파일에 버리는 데 문제가 있습니다. 결과 파일은 최대 크기보다 클 수 있습니다. 귀하의 시스템에 의해 허용됩니다. 부터pg_dump표준 출력에 쓸 수 있습니다. 표준 유닉스 도구를 사용 하여이 작업을 수행 할 수 있습니다. 문제.
압축 덤프 사용.좋아하는 것을 사용할 수 있습니다 압축 프로그램, 예를 들어gzip.
pg_dumpdbname| gzipfilename.gz
Reload
createbdbnameGunzip -Cfilename.gz | P토토dbname
또는
catfilename.gz | Gunzip | P토토dbname
use분할.the분할명령을 사용하면 출력을 분할 할 수 있습니다 기초에 크기가 허용되는 조각으로 파일 시스템. 예를 들어, 1 메가 바이트의 덩어리를 만들려면 :
pg_dumpdbname| 분할 -B 1M -filename
Reload
createbdbnamecatfilename* | P토토dbname
사용자 정의 덤프 형식 사용.ifPostgre토토와 함께 시스템을 구축했습니다 그만큼Zlib압축 라이브러리 설치, 사용자 정의 덤프 형식은 데이터와 같이 데이터를 압축합니다. 출력 파일에 씁니다. 이것은 덤프 파일을 생성합니다 사용과 유사한 크기gzip, 그러나 그것은 테이블을 복원 할 수 있다는 추가 이점이 있습니다 선택적으로. 다음 명령은 다음을 사용하여 데이터베이스를 덤프합니다 사용자 정의 덤프 형식 :
pg_dump -fcdbname filename
사용자 정의 덤프는 스크립트가 아닙니다P토토, 그러나 대신 복원해야합니다PG_RESTORE. 참조pg_dumpandPG_RESTORE참조 페이지 세부.