귀중한 데이터를 포함하는 모든 것,Postgres데이터베이스를 백업해야합니다 정기적으로. 절차는 본질적으로 간단하지만 기본을 기본적으로 이해하는 것이 중요합니다 기술과 가정.
백업에 근본적으로 다른 두 가지 접근 방식이 있습니다Postgres데이터 :
스포츠 토토 베트맨덤프
파일 시스템 레벨 백업
이 방법의 아이디어는 다음과 같은 텍스트 파일을 생성하는 것입니다. 스포츠 토토 베트맨은 서버에 Fed Back이 재현 할 때 명령합니다. 당시와 같은 상태의 데이터베이스 덤프.Postgres제공 유틸리티 프로그램pg_dump이 목적. 이 명령의 기본 사용은 다음과 같습니다.
pg_dumpdbname Outfile보시다시피pg_dump쓰기 표준 출력에 대한 결과. 우리는 이것이 어떻게 할 수 있는지 아래를 보게 될 것입니다 유용합니다.
pg_dump일반Postgres클라이언트 응용 프로그램 (특히 영리한 것이지만). 이것은 당신이 할 수 있음을 의미합니다 액세스 권한이있는 원격 호스트 의이 백업 절차 데이터베이스. 하지만 기억pg_dumpSpecial과 함께 작동하지 않습니다 권한. 특히, 당신은 모두에 대한 액세스를 읽어야합니다 백업하고 싶은 테이블이므로 실제로는 거의 항상 데이터베이스 슈퍼 유저 여야합니다.
어떤 데이터베이스 서버를 지정하려면pg_dump연락처를 사용하여 명령을 사용하십시오 라인 옵션-hhostand-p포트. 기본 호스트는입니다 현지 호스트 또는 당신의 것pghost환경 변수 지정. 마찬가지로 기본 포트는입니다 에 의해 표시됨pgport환경 컴파일 된 기본값에 의해 변수 또는 실패. (편리하게, 서버는 일반적으로 동일합니다 컴파일 된 기본값)
다른 것과 마찬가지로Postgres클라이언트 응용 프로그램,pg_dump기본적으로 데이터베이스 사용자 이름과 연결 현재 UNIX 사용자 이름과 동일합니다. 이것을 무시합니다 지정-u프롬프트 강제 옵션 사용자 이름 또는 환경 변수 설정PGUSER. 기억pg_dump연결은 다음과 같습니다 정상 클라이언트 인증 메커니즘 (토토 커뮤니티 : 문서 : 7.1 : 클라이언트 인증).
덤프 생성pg_dump는 내부적으로 일관성이 있습니다. 즉, 데이터베이스 업데이트입니다 하는 동안pg_dumpwill이 실행 중입니다 덤프에 있지 않습니다.pg_dump데이터베이스에서 다른 작업을 차단하지 않습니다. 일하고 있는. (예외는 작동 해야하는 작업입니다 와 같은 독점 잠금 장치진공.)
중요 :데이터베이스 스키마가 의존 할 때 OIDS (외국 키로) 가르쳐야합니다pg_dumpOID를 덤프합니다 또한. 이렇게하려면 사용하십시오.-o명령 줄 옵션.
텍스트 파일pg_dump그만큼P스포츠 토토 베트맨프로그램. 그만큼 덤프를 복원하기위한 일반 명령 양식은
P스포츠 토토 베트맨dbname < infile여기서infile당신이 사용한 것입니다 처럼Outfilepg_dump 명령의 경우. 데이터베이스dbname이 명령에 의해 생성되면 Template0에서 직접 작성해야합니다. 실행하기 전에P스포츠 토토 베트맨(예 : withcreateb -t template0dbname).P스포츠 토토 베트맨유사한 옵션을 지원합니다pg_dump데이터베이스 제어 서버 위치 및 사용자 이름. 참조 페이지를 참조하십시오 자세한 정보.
원래 데이터베이스의 개체가 다른 사용자, 그러면 덤프가 지시합니다P스포츠 토토 베트맨영향을받는 각 사용자로 연결하려면 회전하고 관련 객체를 만듭니다. 이런 식으로 원래 소유권이 보존됩니다. 그러나 이것은 또한 의미합니다. 이 모든 사용자는 이미 존재해야하며 각각으로 연결할 수 있어야합니다. 아마도 따라서 고객을 일시적으로 이완해야합니다 인증 설정.
의 능력pg_dumpandP스포츠 토토 베트맨쓰기 또는 읽기 파이프에서 데이터베이스 디렉토리를 덤프 할 수 있습니다. 예를 들어 한 서버에서 다른 서버로
중요 :pg_dump에서 생성 한 덤프는입니다 Template0과 관련이 있습니다. 이것은 모든 언어를 의미합니다. Template1에 추가 된 절차 등도 덤프됩니다 에 의해pg_dump. 결과적으로, 복원시, 맞춤형 템플릿을 사용하는 경우 템플릿에서 빈 데이터베이스를 작성해야합니다. 위의 예.
위의 메커니즘은 번거롭고 부적절합니다 전체 데이터베이스 클러스터를 백업합니다. 이런 이유로pg_dumpall프로그램입니다 제공.pg_dumpall백 주어진 클러스터의 각 데이터베이스를 사용자 및 그룹과 같은 글로벌 데이터의 상태는 다음과 같습니다. 보존. 에 대한 호출 순서pg_dumpall단순히
pg_dumpallOutfile결과 덤프를 복원 할 수 있습니다P스포츠 토토 베트맨위에서 설명한대로. 그러나이 경우에 다음과 같이 데이터베이스 슈퍼 사용자 액세스가 필요합니다. 사용자 및 그룹 정보를 복원해야합니다.
pg_dumpall하나는 거의 없습니다 결함 : 대화식으로 인증 할 준비가되어 있지 않습니다 각 데이터베이스는 덤프합니다. 비밀번호를 사용하는 경우 인증은 환경을 설정해야합니다 변하기 쉬운pgpassword비밀번호의 기본 전화pg_dump. 더 심하게, 당신이 있다면 각 데이터베이스마다 다른 암호가 설정되고pg_dumpall실패합니다. 너 다른 인증 메커니즘을 선택할 수 있습니다 백업의 목적 또는 조정pg_dumpall필요에 대한 쉘 스크립트.
승인 :원래 Hannu가 작성했습니다 Krosing (<hannu@trust.ee) on 1999-06-19
이후Postgres허용 시스템의 최대 파일 크기보다 큰 테이블, It 테이블을 파일에 버리는 데 문제가있을 수 있습니다. 결과 파일은 최대 크기보다 클 수 있습니다. 귀하의 시스템에 의해 허용됩니다. 처럼pg_dump표준 출력에 씁니다. 표준 *닉스 도구를 사용 하여이 작업을 수행 할 수 있습니다. 가능한 문제.
압축 덤프 사용.좋아하는 것을 사용하십시오 압축 프로그램, 예를 들어gzip.
pg_dumpdbname| gzipfilename.gzReload
createbdbnameGunzip -Cfilename.gz | P스포츠 토토 베트맨dbname또는
catfilename.gz | Gunzip | P스포츠 토토 베트맨dbname
use분할.이것 출력을 조각으로 분할 할 수 있습니다. 기본 파일 시스템에 크기가 허용됩니다. 을 위한 예를 들어, 1 메가 바이트의 덩어리를 만들려면 :
Reload사용자 정의 덤프 형식 (v7.1)을 사용합니다.postgresql 인 경우 Zlib 압축 라이브러리가있는 시스템에 구축되었습니다. 설치, 사용자 정의 덤프 형식은 데이터와 같이 데이터를 압축합니다. 출력 파일에 씁니다. 대형 데이터베이스의 경우 이것입니다 GZIP 사용과 비슷한 덤프 크기를 생성하지만 테이블을 복원 할 수 있다는 이점이 추가되었습니다 선택적으로. 다음 명령은 데이터베이스를 사용하여 덤프합니다 사용자 정의 덤프 형식 :
참조pg_dumpandPG_RESTORE참조 페이지 자세한 내용은.pg_dump(및 BY 함축pg_dumpall) 어려움에서 비롯된 몇 가지 제한 사항 시스템 카탈로그에서 특정 정보를 재구성합니다.
구체적으로, 순서pg_dump객체는 그리지 않습니다 정교한. 예를 들어시기에 문제가 발생할 수 있습니다 함수는 열 기본값으로 사용됩니다. 유일한 대답 덤프를 수동으로 재정렬하는 것입니다. 원형을 만든 경우 스키마의 종속성은 더 많은 작업을 수행 할 수 있습니다. 하다.
후진 호환성의 이유로pg_dump큰 물체를 버리지 않습니다 기본. 큰 물체를 버리려면 사용자 정의를 사용해야합니다. 또는 TAR 출력 형식 및 -B 옵션을 사용하여pg_dump. 참조를 참조하십시오 자세한 내용은 페이지입니다. 디렉토리Contrib/PG_DUMPLO의Postgres소스 트리도 a를 포함합니다 큰 물체를 버릴 수있는 프로그램.
에 익숙해주세요pg_dump참조 페이지.