이 문서는 지원되지 않는 버전의 Postgre토토 핫 용입니다.
당신은에 대해 같은 페이지를 볼 수 있습니다배트맨 토토 핫 : 문서 : 17 : 25 장. 백업 및 복원버전 또는 위에 나열된 다른 지원 버전 중 하나입니다.

9 장. 백업 및 복원하다

귀중한 데이터를 포함하는 모든 것,Postgre토토 핫데이터베이스를 백업해야합니다 정기적으로. 절차는 본질적으로 간단하지만 기본을 기본적으로 이해하는 것이 중요합니다 기술과 가정.

백업에 근본적으로 다른 두 가지 접근 방식이 있습니다Postgre토토 핫데이터 :

  • 토토 핫덤프

  • 파일 시스템 레벨 백업

9.1. 토토 핫덤프

토토 핫-Dump 메소드의 아이디어는 텍스트를 생성하는 것입니다. 토토 핫 명령이있는 파일은 서버로 Fed Back에있을 때 당시와 같은 상태로 데이터베이스를 재현 덤프의.Postgre토토 핫유틸리티 프로그램 제공pg_dump이 목적을 위해. 기본 사용 이 명령 중 :

pg_dumpdbname  Outfile

보시다시피pg_dump쓰기 표준 출력에 대한 결과. 우리는 이것이 어떻게 이루어지는 지 볼 것입니다 유용 할 수 있습니다.

pg_dump일반Postgre토토 핫클라이언트 응용 프로그램 (특히 영리한 것이지만). 이것은 당신이 할 수 있음을 의미합니다 액세스 권한이있는 원격 호스트 의이 백업 절차 데이터베이스. 하지만 기억pg_dumpSpecial과 함께 작동하지 않습니다 권한. 특히, 당신은 모두에 대한 액세스를 읽어야합니다 백업하고 싶은 테이블이므로 실제로는 거의 항상 데이터베이스 슈퍼 유저 여야합니다.

데이터베이스 서버를 지정하려면pg_dump연락처를 사용하여 명령을 사용하십시오 라인 옵션-hhost-p포트. 기본 호스트 현지 호스트이거나 당신의 것입니다pghost환경 변수 지정. 비슷하게, 기본 포트는로 표시됩니다.pgport환경 변수 또는 실패 컴파일 된 기본값. (편리하게, 서버는 일반적으로 동일한 컴파일 된 기본값이 있습니다.)

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

덤프 생성pg_dump는 내부적으로 일관성이 있습니다. 즉, 데이터베이스 업데이트입니다 하는 동안pg_dumpWill이 실행 중입니다 덤프에 있지 않습니다.pg_dump데이터베이스에서 다른 작업을 차단하지 않습니다. 일하고 있는. (예외는 작동 해야하는 작업입니다 와 같은 독점 잠금 장치진공 가득한.)

중요 :데이터베이스 스키마가 의존 할 때 OIDS (예 : 외국 키로) 지시해야합니다pg_dumpOID를 덤프합니다 또한. 이렇게하려면 사용하십시오.-o명령 줄 옵션."큰 사물"도 기본적으로 버려지지 않습니다. 보다pg_dump의 명령 큰 개체를 사용하는 경우 참조 페이지.

9.1.1. 덤프 복원

텍스트 파일pg_dump그만큼P토토 핫프로그램. 그만큼 덤프를 복원하기위한 일반 명령 양식은

P토토 핫dbname < infile

여기서infile당신은 당신입니다 사용Outfilepg_dump명령. 데이터베이스dbname이 명령, 당신은에서 직접 만들어야합니다.Template0실행 전P토토 핫(예 :createb -t template0dbname).P토토 핫와 유사한 옵션을 지원합니다pg_dump제어 용 데이터베이스 서버 위치 및 사용자 이름. 그것을보십시오 자세한 내용은 참조 페이지

원래 데이터베이스의 개체가 소유 한 경우 다른 사용자, 그러면 덤프가 지시합니다P토토 핫영향을받는 각 사용자로 연결하려면 회전하고 관련 객체를 만듭니다. 이런 식으로 원래 소유권이 보존됩니다. 그러나 이것은 또한 의미합니다. 이 모든 사용자는 이미 존재해야하며 각각으로 연결할 수 있어야합니다. 아마도 따라서 고객을 일시적으로 이완해야합니다 인증 설정.

의 능력pg_dumpP토토 핫쓰기 또는 읽기 파이프에서 데이터베이스를 직접 덤프 할 수 있습니다. 한 서버가 다른 서버로, 예를 들어

pg_dump -hhost1 dbname| psql -hhost2 dbname

중요 :덤프가 생성pg_dumpTemplate0. 이것은 모든 언어를 의미합니다. 절차 등이 추가Template1pg_dump. 결과적으로, 복원시, 사용자 정의를 사용하는 경우Template1, 빈을 만들어야합니다 의 데이터베이스Template0위의 예.

9.1.2. 사용pg_dumpall

위의 메커니즘은 번거롭고 부적절합니다 전체 데이터베이스 클러스터를 백업합니다. 이런 이유로pg_dumpall프로그램은 제공.pg_dumpall뒷면 주어진 클러스터의 각 데이터베이스를 사용자 및 그룹과 같은 글로벌 데이터의 상태는 다음과 같습니다. 보존. 에 대한 호출 순서pg_dumpall단순히

pg_dumpallOutfile

결과 덤프를 복원 할 수 있습니다P토토 핫위에서 설명한대로. 그러나 이것에서 사례 데이터베이스가 있어야합니다 사용자를 복원하는 데 필요한 슈퍼 사용자 액세스 그룹 정보.

9.1.3. 대형 데이터베이스

승인 :원래 Hannu가 작성했습니다 Krosing () on 1999-06-19

이후Postgre토토 핫허용 시스템의 최대 파일 크기보다 큰 테이블, It 테이블을 파일에 버리는 데 문제가있을 수 있습니다. 결과 파일은 최대 크기보다 클 수 있습니다. 귀하의 시스템에 의해 허용됩니다. 처럼pg_dump표준 출력에 씁니다. 표준 *닉스 도구를 사용 하여이 작업을 수행 할 수 있습니다. 가능한 문제.

압축 덤프 사용.좋아하는 것을 사용하십시오 압축 프로그램, 예를 들어gzip.

pg_dumpdbname| gzipfilename.gz

Reload

createbdbnameGunzip -Cfilename.gz | P토토 핫dbname

또는

catfilename.gz | Gunzip | P토토 핫dbname

use분할.이것 출력을 조각으로 분할 할 수 있습니다. 기본 파일 시스템에 크기가 허용됩니다. 을 위한 예를 들어, 1 메가 바이트의 덩어리를 만들려면 :

pg_dumpdbname| 분할 -B 1M -filename

Reload

createbdbnamecatfilename* | P토토 핫dbname

사용자 정의 덤프 형식 사용.ifPostgre토토 핫와 함께 시스템을 구축했습니다 그만큼Zlib압축 라이브러리가 설치되어 있으면 사용자 정의 덤프 형식이 압축됩니다 데이터가 출력 파일에 쓰는 데이터입니다. 큰 경우 데이터베이스, 이것은 사용과 유사한 덤프 크기를 생성합니다gzip이지만 추가 된 이점이 있습니다 테이블을 선택적으로 복원 할 수 있습니다. 다음 명령은 사용자 정의 덤프 형식을 사용하여 데이터베이스를 덤프합니다.

pg_dump -fcdbname  filename

참조pg_dumpPG_RESTORE참조 페이지 자세한 내용은.

9.1.4. 경고

pg_dump(및 BY 함축pg_dumpall) 어려움에서 비롯된 몇 가지 제한 사항 시스템 카탈로그에서 특정 정보를 재구성합니다.

구체적으로, 순서pg_dump객체는 그리지 않습니다 정교한. 예를 들어시기에 문제가 발생할 수 있습니다 함수는 열 기본값으로 사용됩니다. 유일한 대답 덤프를 수동으로 재정렬하는 것입니다. 원형을 만든 경우 스키마의 종속성은 더 많은 작업을 수행 할 수 있습니다. 하다.

후진 호환성의 이유로pg_dump큰 물체를 버리지 않습니다 기본. 큰 물체를 버리려면 사용자 정의를 사용해야합니다. 또는 TAR 출력 형식 및 사용-B옵션pg_dump. 참조 페이지를 참조하십시오 세부. 디렉토리Contrib/PG_DUMPLOPostgre토토 핫소스 트리도 a를 포함합니다 큰 물체를 버릴 수있는 프로그램.

에 익숙해주세요pg_dump참조 페이지.