이 문서는 지원되지 않는 버전의 PostgreSQL을위한 것입니다.
당신은에 대해 같은 페이지를 볼 수 있습니다PostgreSQL : 문서 : 17 : 25.1. SQL 토토 사이트 추천버전 또는 위에 나열된 다른 지원 버전 중 하나입니다.

24.1. SQL토토 베이

이 토토 베이 방법의 아이디어는 텍스트 파일을 생성하는 것입니다. SQL 명령을 사용하면 서버로 Fed Back이 당시와 같은 상태로 데이터베이스를 재현하십시오. 토토 베이.PostgreSQL제공 유틸리티 프로그램pg_dump이 목적. 이 명령의 기본 사용은 다음과 같습니다.

pg_dumpdbname  Outfile

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

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

토토 베이 서버를 지정하려면pg_dump연락처로 명령 줄을 사용하십시오 옵션-hhostand-p포트. 기본 호스트는입니다 현지 호스트 또는 당신의 것pghost환경 변수를 지정합니다. 마찬가지로 기본 포트는입니다 에 의해 표시됨pgport환경 컴파일 된 기본값에 의해 변수 또는 실패. (편리하게, 서버는 일반적으로 동일한 컴파일이 있습니다 기본.)

다른 것과 마찬가지로PostgreSQL클라이언트 응용 프로그램,pg_dump의지 기본적으로 토토 베이 사용자 이름과 연결 현재 운영 체제 사용자 이름. 이것을 무시합니다 지정-u옵션 또는 설정을 설정합니다 환경 변수PGUSER. 기억pg_dump연결은 주제입니다 일반 클라이언트 인증 메커니즘 ( 설명토토 캔 : 문서 : 9.2 : 클라이언트 인증).

중요한 이점pg_dump다른 백업 방법에 대한 나중에 설명 된pg_dump의 출력은 일반적으로 다시로드 될 수 있습니다 최신 버전의PostgreSQL, 파일 레벨 백업 및 연속 아카이브는 서버-버전 특정입니다.pg_dump도 유일한 방법입니다 토토 베이를 다른 것으로 전송할 때 작동합니다. 32 비트에서 64 비트로가는 것과 같은 기계 아키텍처 섬기는 사람.

토토 베이 생성pg_dump내부적으로 일관성, 즉, 토토 베이는 스냅 샷을 나타냅니다 당시 데이터베이스pg_dump달리기 시작.pg_dump그렇지 않습니다 토토 베이가 작동하는 동안 다른 작업을 차단하십시오. (예외는 대부분의 형태와 같은 독점 잠금ALTER 테이블.)

중요 :토토 베이 스키마가 OID에 의존하는 경우 (예를 들어, 외국 열쇠로서) 지시해야합니다pg_dumpOID를 토토 베이합니다 잘. 이렇게하려면 사용하십시오.-o명령 줄 옵션.

24.1.1. 토토 베이 복원

텍스트 파일pg_dumpPSQL프로그램. 장군 토토 베이를 복원하기위한 명령 양식은

PSQLdbname < infile

여기서infile는 파일입니다 출력pg_dump명령. 토토 베이dbname이 명령에 의해 생성되었으므로에서 직접 만들어야합니다.Template0실행 전PSQL(예 :createb -t template0dbname).PSQL유사한 옵션 지원pg_dump연결할 토토 베이 서버 및 사용할 사용자 이름. 참조PSQL자세한 내용은 참조 페이지 정보.

SQL 토토 베이를 복원하기 전에 객체를 소유 한 모든 사용자 또는 덤핑 된 데이터베이스의 개체에 대한 권한이 부여되었습니다. 이미 존재해야합니다. 그렇지 않으면 복원이 실패합니다 원래 소유권 및/또는로 개체를 재현하십시오 권한. (때로는 이것은 당신이 원하는 것이지만 보통 그렇지 않습니다.)

기본적으로PSQL스크립트 SQL 오류가 발생한 후에도 계속 실행됩니다. 너 실행을 원할 수도 있습니다PSQL그만큼on_error_stop변수 설정 그 행동을 바꾸고PSQLan SQL 오류가 발생합니다 :

psql -set on_error_stop = on dbname <infile

어느 쪽이든, 당신은 부분적으로 만 복원됩니다 데이터 베이스. 또는 전체 토토 베이를 지정할 수 있습니다 단일 트랜잭션으로 복원해야하므로 복원은 완전히 완성되거나 완전히 롤백되었습니다. 이 모드는 될 수 있습니다 통과하여 지정-1또는--- 단일 전환명령 줄 옵션PSQL. 사용시 이 모드에서는 사소한 오류조차도 롤백 할 수 있습니다. 이미 몇 시간 동안 실행 된 복원. 그러나 그건 복잡한 수동으로 청소하는 것이 여전히 바람직 할 수 있습니다. 부분적으로 복원 된 토토 베이 후 데이터베이스.

의 능력pg_dumpandPSQL쓰기 또는 읽기 파이프는 하나에서 데이터베이스를 직접 버릴 수 있습니다. 예를 들어 다른 사람에게 서버 :

pg_dump -hhost1 dbname| psql -hhost2 dbname

중요 :토토 베이가 생성 된 토토 베이pg_dumpTemplate0. 이것은 모든 언어를 의미합니다. 절차 등을 통해 추가Template1|pg_dump. 결과적으로 언제 복원, 사용자 정의를 사용하는 경우template1, 빈을 만들어야합니다 의 토토 베이Template0에서와 같이 위의 예.

백업을 복원 한 후 실행하는 것이 좋습니다분석각 토토 베이에서 쿼리 Optimizer에는 유용한 통계가 있습니다. 보다섹션 23.1.3and섹션 23.1.6더 많은 것 정보. 많은 양을로드하는 방법에 대한 더 많은 조언은 데이터로의 데이터PostgreSQL효율적으로 참조PostgreSQL :.

24.1.2. 사용pg_dumpall

pg_dump단 하나만 토토 베이합니다 한 번에 데이터베이스에 대한 정보를 토토 베이하지 않습니다. 역할 또는 테이블 스페이스 (클러스터 전체가 오히려 클러스터이기 때문에 다가베이스 당보다). 전체의 편리한 덤핑을 지원합니다 데이터베이스 클러스터의 내용,pg_dumpall프로그램이 제공됩니다.pg_dumpall각각 백업 주어진 클러스터의 토토 베이와 클러스터 전체를 보존합니다 역할 및 테이블 스페이스 정의와 같은 데이터. 기본 사용 이 명령 중 :

pg_dumpallOutfile

결과 토토 베이를 복원 할 수 있습니다PSQL:

PSQL -FinfilePostgres

(실제로 기존 토토 베이 이름을 지정할 수 있습니다 시작하지만 빈 클러스터에로드하면Postgres보통 사용해야합니다.) 때 데이터베이스 슈퍼 사용자가 액세스 할 때 항상 필요합니다 a 복원pg_dumpall토토 베이, 역할과 테이블 스페이스를 복원하는 데 필요한 정보. 테이블 스페이스를 사용하는 경우 토토 베이의 테이블 스페이스 경로는 새로 적합합니다. 설치.

pg_dumpall역할, 테이블 스페이스 및 비어있는 명령을 방출합니다 토토 베이, 그런 다음 호출pg_dump각 토토 베이. 이것은 그것을 의미합니다 각 토토 베이는 내부적으로 일관되지만 다른 토토 베이의 스냅 샷은 정확히 그렇지 않을 수 있습니다 동기화.

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

일부 운영 체제에는 최대 파일 크기 제한이 있습니다 큰 생성 할 때 문제를 일으 킵니다pg_dump출력 파일. 다행스럽게도,pg_dump표준 출력이므로 표준 유닉스 도구를 사용하여 작동 할 수 있습니다. 이 잠재적 인 문제를 중심으로. 가능한 몇 가지가 있습니다 행동 양식:

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

pg_dumpdbname| gzipfilename.gz

다시로드 :

Gunzip -Cfilename.gz | PSQLdbname

또는 :

catfilename.gz | Gunzip | PSQLdbname

use분할.the분할명령을 사용하면 출력을 분할 할 수 있습니다 크기가 허용되는 작은 파일로 기본 파일 시스템. 예를 들어, 1의 덩어리를 만듭니다 메가 바이트 :

pg_dumpdbname| 분할 -B 1M -filename

다시로드 :

catfilename* | PSQLdbname

usepg_dump의 사용자 정의 토토 베이 형식.ifPostgreSQL와 함께 시스템을 구축했습니다 그만큼Zlib압축 라이브러리 설치, 사용자 정의 토토 베이 형식은 데이터와 같이 데이터를 압축합니다. 출력 파일에 씁니다. 이것은 토토 베이 파일을 생성합니다 사용과 유사한 크기gzip, 그러나 그것은 테이블을 복원 할 수 있다는 추가 이점이 있습니다 선택적으로. 다음 명령은 다음을 사용하여 데이터베이스를 토토 베이합니다 사용자 정의 토토 베이 형식 :

pg_dump -fcdbname  filename

사용자 정의 토토 베이는 스크립트가 아닙니다PSQL, 그러나 대신 복원해야합니다PG_RESTORE, 예 :

PG_RESTORE -Ddbname filename

참조pg_dumpandPG_RESTORE참조 페이지 세부.

매우 큰 토토 베이의 경우 결합해야 할 수도 있습니다분할다른 두 가지 중 하나와 함께 구혼.