이 문서는 지원되지 않는 버전의 PostgreSQL을위한 것입니다.
당신은에 대해 같은 페이지를 보려고 할 수 있습니다배트맨 토토 : 문서 : 17 : 25 장. 백업 및 복원버전 또는 위에 나열된 다른 지원되는 버전 중 하나입니다.

23 장. 젠 토토 및 젠 토토하다

귀중한 데이터를 포함하는 모든 것과 마찬가지로PostgreSQL데이터베이스를 젠 토토해야합니다 정기적으로.

기본적으로 다른 후원 접근법이 있습니다 위로PostgreSQL데이터 :

  • SQL덤프

  • 파일 시스템 수준 젠 토토

  • 온라인 젠 토토

각각 고유 한 강점과 약점이 있습니다.

23.1. SQL덤프

SQL-Dump 메소드의 아이디어는 텍스트를 생성하는 것입니다. SQL 명령이있는 파일은 서버로 Fed Back에있을 때PostgreSQL유틸리티 프로그램 제공pg_dump이 목적을 위해. 기본 사용

pg_dumpdbnameOutfile

보시다시피pg_dump쓰기 표준 출력에 대한 결과.

pg_dump일반PostgreSQL클라이언트 응용 프로그램 (특히 영리한 것이지만).pg_dumpSpecial과 함께 작동하지 않습니다 권한.

데이터베이스 서버를 지정하려면pg_dump연락처를 사용하여 명령을 사용하십시오 라인 옵션-hhostand-p포트. 기본 호스트는입니다pghost환경 변수 지정. 마찬가지로 기본 포트는입니다pgport환경 컴파일 된 기본값에 의해 변수 또는 실패.

다른 것과 마찬가지로PostgreSQL클라이언트 응용 프로그램,pg_dump기본적으로 데이터베이스 사용자 이름과 연결 현재 운영 체제 사용자 이름과 동일합니다.-u옵션 또는 환경 변수 설정PGUSER. 기억pg_dump연결은 일반 클라이언트 인증의 대상이됩니다 메커니즘 (20 장).

덤프 생성pg_dump는 내부적으로 일관성이 있습니다. 즉, 데이터베이스 업데이트입니다 하는 동안pg_dumpwill이 실행 중입니다 덤프에 있지 않습니다.pg_dump데이터베이스에서 다른 작업을 차단하지 않습니다. 일하고 있는.진공 가득한.)

중요 :데이터베이스 스키마가 의존 할 때 OIDS (예 : 외국 키로) 지시해야합니다pg_dumpOID를 덤프합니다 또한.-o명령 줄 옵션.

23.1.1. 덤프 복원

텍스트 파일pg_dump그만큼PSQL프로그램. 그만큼

PSQLdbname<infile

여기서infile당신은 당신입니다 사용Outfilepg_dump명령. 그만큼dbname이 명령에 의해 생성되면에서 직접 만들어야합니다.Template0실행 전PSQL(예 :createb -t template0dbname). PSQL유사한 옵션 지원pg_dump제어 용 데이터베이스 서버 위치 및 사용자 이름.PSQL's 자세한 내용은 참조 페이지

대상 데이터베이스는 이미 이전에 존재해야 할뿐만 아니라 복원을 실행하기 시작했지만 모든 사용자도

일단 젠 토토되면 실행하는 것이 현명합니다분석각 데이터베이스에서 Optimizer에는 유용한 통계가 있습니다.Vacuumdb -a -zto진공 분석모든 데이터베이스; 이것은진공 분석수동으로.

의 능력pg_dumpandPSQL쓰기 또는 읽기 파이프에서 데이터베이스를 직접 덤프 할 수 있습니다.

pg_dump -hhost1 dbnamehost2 dbname

중요 :덤프가 생성 된 덤프pg_dumpTemplate0. 이것은 모든 언어를 의미합니다.template1pg_dump. 결과적으로,template1, 빈을 만들어야합니다 의 데이터베이스Template0위의 예.

다량의 데이터를로드하는 방법에 대한 조언PostgreSQL효율적으로, 참조PostgreSQL : 문서 : 8.1 : 스포츠 토토 사이트를 채우는.

23.1.2. 사용pg_dumpall

위 메커니즘은 번거롭고 부적절합니다 전체 데이터베이스 클러스터를 젠 토토합니다.pg_dumpall프로그램이 제공됩니다.pg_dumpall각각 젠 토토 주어진 클러스터의 데이터베이스와 클러스터 전체를 보존합니다

pg_dumpallOutfile

결과 덤프를 복원 할 수 있습니다PSQL:

PSQL -FinfilePostgres

(실제로 기존 데이터베이스 이름을 지정할 수 있습니다 시작하지만 빈 클러스터에 다시로드되면Postgres일반적으로 사용해야합니다.) 항상 데이터베이스 슈퍼 사용자가 액세스 할 필요가 있습니다.pg_dumpall덤프, 사용자 및 그룹을 복원하는 데 필요한

23.1.3. 대형 데이터베이스 처리

이후PostgreSQL허용 시스템의 최대 파일 크기보다 큰 테이블, Itpg_dump표준에 쓸 수 있습니다 출력, 표준 유닉스 도구를 사용하여 작업을 수행 할 수 있습니다.

압축 덤프 사용.좋아하는 것을 사용할 수 있습니다 압축 프로그램, 예를 들어gzip.

pg_dumpdbnamefilename.gz

Reload

createbdbnameGunzip -Cfilename.gzdbname

또는

catfilename.gzdbname

​​use분할.the분할명령을 사용하면 분할 할 수 있습니다 크기가 허용되는 조각으로의 출력은

pg_dumpdbnamefilename

Reload

createbdbnamecatfilename*dbname

사용자 정의 덤프 형식 사용.ifPostgreSQL시스템에 구축되었습니다 그만큼Zlib압축 라이브러리가 설치되어 있으면 사용자 정의 덤프 형식이 압축됩니다gzip이지만 이점이 추가되었습니다 테이블을 선택적으로 젠 토토 할 수 있습니다.

pg_dump -fcdbnamefilename

사용자 정의 덤프는 스크립트가 아닙니다PSQL이지만 대신 젠 토토해야합니다 와 함께PG_RESTORE. 참조토토 핫 postgresql : 문서 : 8.1 : pg_dumpandPG_RESTORE참조 페이지 세부.