귀중한 데이터를 포함하는 모든 것,Postgre토토 핫데이터베이스를 백업해야합니다 정기적으로. 절차는 본질적으로 간단하지만 기본을 기본적으로 이해하는 것이 중요합니다 기술과 가정.
백업에 근본적으로 다른 두 가지 접근 방식이 있습니다Postgre토토 핫데이터 :
토토 핫덤프
파일 시스템 레벨 백업
토토 핫-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의 명령 큰 개체를 사용하는 경우 참조 페이지.
텍스트 파일pg_dump그만큼P토토 핫프로그램. 그만큼 덤프를 복원하기위한 일반 명령 양식은
P토토 핫dbname < infile
여기서infile당신은 당신입니다 사용Outfile용pg_dump명령. 데이터베이스dbname이 명령, 당신은에서 직접 만들어야합니다.Template0실행 전P토토 핫(예 :createb -t template0dbname).P토토 핫와 유사한 옵션을 지원합니다pg_dump제어 용 데이터베이스 서버 위치 및 사용자 이름. 그것을보십시오 자세한 내용은 참조 페이지
원래 데이터베이스의 개체가 소유 한 경우 다른 사용자, 그러면 덤프가 지시합니다P토토 핫영향을받는 각 사용자로 연결하려면 회전하고 관련 객체를 만듭니다. 이런 식으로 원래 소유권이 보존됩니다. 그러나 이것은 또한 의미합니다. 이 모든 사용자는 이미 존재해야하며 각각으로 연결할 수 있어야합니다. 아마도 따라서 고객을 일시적으로 이완해야합니다 인증 설정.
의 능력pg_dump및P토토 핫쓰기 또는 읽기 파이프에서 데이터베이스를 직접 덤프 할 수 있습니다. 한 서버가 다른 서버로, 예를 들어
pg_dump -hhost1 dbname| psql -hhost2 dbname
중요 :덤프가 생성pg_dumpTemplate0. 이것은 모든 언어를 의미합니다. 절차 등이 추가Template1pg_dump. 결과적으로, 복원시, 사용자 정의를 사용하는 경우Template1, 빈을 만들어야합니다 의 데이터베이스Template0위의 예.
위의 메커니즘은 번거롭고 부적절합니다 전체 데이터베이스 클러스터를 백업합니다. 이런 이유로pg_dumpall프로그램은 제공.pg_dumpall뒷면 주어진 클러스터의 각 데이터베이스를 사용자 및 그룹과 같은 글로벌 데이터의 상태는 다음과 같습니다. 보존. 에 대한 호출 순서pg_dumpall단순히
pg_dumpallOutfile
결과 덤프를 복원 할 수 있습니다P토토 핫위에서 설명한대로. 그러나 이것에서 사례 데이터베이스가 있어야합니다 사용자를 복원하는 데 필요한 슈퍼 사용자 액세스 그룹 정보.
승인 :원래 Hannu가 작성했습니다 Krosing (
<hannu@trust.ee
) 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_dump및PG_RESTORE참조 페이지 자세한 내용은.
pg_dump(및 BY 함축pg_dumpall) 어려움에서 비롯된 몇 가지 제한 사항 시스템 카탈로그에서 특정 정보를 재구성합니다.
구체적으로, 순서pg_dump객체는 그리지 않습니다 정교한. 예를 들어시기에 문제가 발생할 수 있습니다 함수는 열 기본값으로 사용됩니다. 유일한 대답 덤프를 수동으로 재정렬하는 것입니다. 원형을 만든 경우 스키마의 종속성은 더 많은 작업을 수행 할 수 있습니다. 하다.
후진 호환성의 이유로pg_dump큰 물체를 버리지 않습니다
기본. 큰 물체를 버리려면 사용자 정의를 사용해야합니다.
또는 TAR 출력 형식 및 사용-B
옵션pg_dump. 참조 페이지를 참조하십시오
세부. 디렉토리Contrib/PG_DUMPLO의Postgre토토 핫소스 트리도 a를 포함합니다
큰 물체를 버릴 수있는 프로그램.
에 익숙해주세요pg_dump참조 페이지.