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

25.1. SQL토토 베이

이 토토 베이 방법의 배후에있는 아이디어는 SQL 명령이있는 파일을 생성하는 것입니다. 서버에 Fed Back이 토토 베이 시점과 동일한 상태에서 데이터베이스를 재현 할 수있는 파일을 생성하는 것입니다..PostgreSQL유틸리티 프로그램 제공PostgreSQL : 문서 : 9.6 : 젠 토토이 목적을 위해. 이 명령의 기본 사용은 다음과 같습니다.

pg_dumpdbname  토토 베이 파일

보시다시피pg_dump결과를 표준 출력에 씁니다. 우리는 이것이 어떻게 유용 할 수 있는지 아래를 보게 될 것입니다. 위 명령이 텍스트 파일을 만듭니다.pg_dump객체 복원의 병렬성과보다 세밀한 제어를 허용하는 다른 형식의 파일을 생성 할 수 있습니다.

pg_dump일반postgresql클라이언트 응용 프로그램 (특히 영리한 응용 프로그램). 즉, 데이터베이스에 액세스 할 수있는 원격 호스트 에서이 백업 절차를 수행 할 수 있습니다. 하지만 기억pg_dump특별한 권한으로 작동하지 않습니다. 특히 백업하려는 모든 테이블에 대한 액세스를 읽어야하므로 전체 데이터베이스를 백업하려면 거의 항상 데이터베이스 슈퍼 사용자로 실행해야합니다. (전체 데이터베이스를 백업하기에 충분한 권한이 없으면과 같은 옵션을 사용하여 액세스 할 수있는 데이터베이스의 일부를 여전히 백업 할 수 있습니다.-n스키마또는-t테이블.)

데이터베이스 서버를 지정하려면pg_dump연락처로 연락하고 명령 줄 옵션을 사용해야합니다-hhostand-p포트. 기본 호스트는 로컬 호스트이거나 무엇이든pghost환경 변수 지정. 마찬가지로 기본 포트는로 표시됩니다.pgport환경 변수 또는 컴파일 된 기본값에 의해 실패합니다. (편리하게, 서버는 일반적으로 동일한 컴파일 된 기본값을 갖습니다.)

다른 것과 마찬가지로PostgreSQL클라이언트 응용 프로그램,pg_dump기본적으로 현재 운영 체제 사용자 이름과 동일한 데이터베이스 사용자 이름과 연결합니다. 이것을 무시하려면를 지정하십시오.-u옵션 또는 환경 변수 설정PGUSER. 기억pg_dump연결은 일반 클라이언트 인증 메커니즘의 적용을받습니다 (PostgreSQL : 문서 : 9.6 : 클라이언트 스포츠 토토 베트맨).

의 중요한 이점pg_dump나중에 설명 된 다른 백업 방법에 대한 것입니다.pg_dump의 출력은 일반적으로 최신 버전의로 다시로드 될 수 있습니다.PostgreSQL, 파일 레벨 백업과 연속 보관은 모두 서버-버전에 따라 다릅니다.pg_dump는 또한 32 비트에서 64 비트 서버로 이동하는 것과 같은 다른 기계 아키텍처로 데이터베이스를 전송할 때 작동하는 유일한 방법입니다..

토토 베이 생성pg_dump내부적으로 일관성이 있습니다. 즉, 토토 베이는 당시 데이터베이스의 스냅 샷을 나타냅니다pg_dump달리기 시작.pg_dump작동하는 동안 데이터베이스의 다른 작업을 차단하지 않습니다. (예외는 대부분의 형태의와 같은 독점 잠금 장치로 작동 해야하는 작업입니다.Alter Table.)

25.1.1. 토토 베이 복원

텍스트 파일에 의해 생성pg_dumpPSQL프로그램. 토토 베이를 복원하기위한 일반 명령 양식은입니다.

PSQLdbname < 토토 베이 파일

여기서토토 베이 파일|pg_dump명령. 데이터베이스dbname이 명령에 의해 생성되지 않으므로 직접 만들어야합니다.Template0실행 전PSQL(예 :createb -t template0dbname).PSQL유사한 옵션 지원pg_dump연결할 데이터베이스 서버와 사용할 사용자 이름을 지정합니다. 참조PSQL자세한 내용은 참조 페이지. 비 텍스트 파일 토토 베이는를 사용하여 복원됩니다.PostgreSQL :유틸리티.

SQL 토토 베이를 복원하기 전에 객체를 소유하거나 토토 베이 된 데이터베이스의 객체에 대한 권한이 부여 된 모든 사용자는 이미 존재해야합니다. 그렇지 않은 경우 복원은 원래 소유권 및/또는 권한으로 물체를 재현하지 못합니다. (때로는 이것은 당신이 원하는 것이지만 보통은 아닙니다.)

기본적으로PSQLSQL 오류가 발생한 후 스크립트가 계속 실행됩니다. 당신은 달리기를 원할 수도 있습니다PSQLwithon_error_stop변수는 해당 동작을 변경하고PSQLSQL 오류가 발생하면 종료 상태가 3 인 종료 :

psql -set on_error_stop = ondbname < 토토 베이 파일

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

pg_dumpandPSQL파이프에 쓰거나 읽으려면 한 서버에서 다른 서버로 데이터베이스를 직접 토토 베이 할 수 있습니다.

pg_dump -hhost1 dbname| psql -hhost2 dbname

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

백업을 복원 한 후 실행하는 것이 좋습니다PostgreSQL : 문서 : 9.6 : 윈 토토각 데이터베이스에서 쿼리 최적화기에 유용한 통계가 있습니다. 보다섹션 24.1.3and섹션 24.1.6자세한 내용. 많은 양의 데이터를로드하는 방법에 대한 더 많은 조언은PostgreSQL효율적으로 참조PostgreSQL : 문서 : 9.6 : 메이저 토토 사이트를 채우는.

25.1.2. 사용pg_dumpall

pg_dump한 번에 단일 데이터베이스 만 토토 베이하며 역할이나 테이블 스페이스에 대한 정보를 토토 베이하지 않습니다 (이들은 데이터베이스 당이 아닌 클러스터 전체이기 때문에). 데이터베이스 클러스터의 전체 내용을 편리하게 토토 베이하기 위해메이저 토토 사이트프로그램이 제공됩니다.pg_dumpall주어진 클러스터에서 각 데이터베이스를 백업하고 역할 및 테이블 스페이스 정의와 같은 클러스터 전체 데이터도 보존합니다. 이 명령의 기본 사용은 다음과 같습니다.

pg_dumpall토토 베이 파일

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

PSQL -F토토 베이 파일Postgres

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

pg_dumpall명령을 방출하여 역할, 테이블 스페이스 및 빈 데이터베이스를 재창조 한 다음 호출pg_dump각 데이터베이스. 즉, 각 데이터베이스가 내부적으로 일관되지만 다른 데이터베이스의 스냅 샷은 동기화되지 않습니다.

클러스터 전체 데이터는를 사용하여 단독으로 토토 베이 할 수 있습니다.pg_dumpall -글로벌 전용옵션. 를 실행하는 경우 클러스터를 완전히 백업하는 데 필요합니다pg_dump개별 데이터베이스의 명령.

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

일부 운영 체제는 큰 파일 크기 제한을 가지고있어 큰 생성시 문제를 일으 킵니다pg_dump출력 파일. 다행스럽게도,pg_dump표준 출력에 쓸 수 있으므로 표준 UNIX 도구를 사용 하여이 잠재적 문제를 해결할 수 있습니다. 가능한 몇 가지 방법이 있습니다.

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

pg_dumpdbname| gzipfilename.gz

다시로드 :

Gunzip -Cfilename.gz | PSQLdbname

또는 :

catfilename.gz | Gunzip | PSQLdbname

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

pg_dumpdbname| 분할 -B 2G -filename

다시로드 :

catfilename* | PSQLdbname

GNU를 사용하는 경우분할, 그것을 사용할 수 있습니다gzip함께 :

pg_dumpdbname| split -b 2g -filter = 'gzip $ file.gz'

|ZCAT.

usepg_dump의 사용자 정의 토토 베이 형식.ifPostgreSQLZlib압축 라이브러리가 설치된 경우, 사용자 정의 토토 베이 형식은 출력 파일에 쓰는대로 데이터를 압축합니다. 이것은 사용과 유사한 토토 베이 파일 크기를 생성합니다gzip이지만 테이블을 선택적으로 복원 할 수 있다는 이점이 추가되었습니다. 다음 명령은 사용자 정의 토토 베이 형식을 사용하여 데이터베이스를 토토 베이합니다.

pg_dump -fcdbname  filename

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

PG_RESTORE -Ddbname filename

참조PostgreSQL : 문서 : 9.6 : 젠 토토andPostgreSQL : 문서 : 9.6 : 스포츠 토토 베트맨자세한 내용 참조 페이지.

매우 큰 데이터베이스의 경우 결합해야 할 수도 있습니다분할다른 두 가지 접근 방식 중 하나가 있습니다.

usepg_dump의 병렬 토토 베이 기능.대형 데이터베이스의 토토 베이 속도를 높이려면 사용할 수 있습니다pg_dump의 병렬 모드. 이것은 동시에 여러 테이블을 버립니다. 당신은와 병렬 처리 정도를 제어 할 수 있습니다.-j매개 변수. 병렬 토토 베이는 "디렉토리"아카이브 형식에만 지원됩니다.

pg_dump -jNum-f d -fout.dir dbname

사용할 수 있습니다PG_RESTORE -J토토 베이를 병렬로 복원합니다. 이것은 "사용자 정의"또는 "디렉토리"아카이브 모드의 모든 아카이브에 대해 작동합니다.pg_dump -j.