pg_dump

pg_dump — 추출 a포스트그레SQL사설 토토를 스크립트 파일 또는 기타 아카이브 파일로

시놉시스

pg_dump [연결 옵션...] [옵션...] [DB이름]

설명

pg_dump백업용 유틸리티입니다.포스트그레SQL사설 토토. 사설 토토가 동시에 사용되는 경우에도 일관된 백업을 수행합니다.pg_dump사설 토토에 액세스하는 다른 사용자(독자 또는 작성자)를 차단하지 않습니다.

pg_dump단일 데이터베이스만 덤프합니다. 전체 클러스터를 백업하거나 클러스터의 모든 데이터베이스에 공통적인 전역 개체(예: 역할 및 테이블스페이스)를 백업하려면 다음을 사용합니다.pg_dumpall.

덤프는 스크립트 또는 아카이브 파일 형식으로 출력될 수 있습니다. 스크립트 덤프는 사설 토토를 저장 당시의 상태로 재구성하는 데 필요한 SQL 명령이 포함된 일반 텍스트 파일입니다. 이러한 스크립트에서 복원하려면 해당 스크립트를 공급하세요.psql. 스크립트 파일을 사용하면 다른 시스템이나 다른 아키텍처에서도 사설 토토를 재구성할 수 있습니다. 다른 SQL 사설 토토 제품에서도 일부 수정이 이루어졌습니다.

대체 아카이브 파일 형식은 다음과 함께 사용해야 합니다.pg_restore사설 토토를 재구축합니다. 그들은 허용한다pg_restore복원할 항목을 선택적으로 선택하거나 복원하기 전에 항목을 다시 정렬해야 합니다. 아카이브 파일 형식은 아키텍처 간에 이식 가능하도록 설계되었습니다.

아카이브 파일 형식 중 하나와 함께 사용하고 다음과 결합하는 경우pg_restore, pg_dump유연한 보관 및 전송 메커니즘을 제공합니다.pg_dump전체 사설 토토를 백업하는 데 사용할 수 있는 경우pg_restore아카이브를 검사하거나 복원할 데이터베이스 부분을 선택하는 데 사용할 수 있습니다. 가장 유연한 출력 파일 형식은 다음과 같습니다.커스텀형식 (-Fc) 및디렉토리형식 (-Fd). 보관된 모든 항목을 선택하고 재정렬할 수 있으며 병렬 복원을 지원하고 기본적으로 압축됩니다. 그만큼디렉토리형식은 병렬 덤프를 지원하는 유일한 형식입니다.

실행 중pg_dump, 특히 아래 나열된 제한 사항을 고려하여 모든 경고(표준 오류에 인쇄됨)에 대한 출력을 검사해야 합니다.

경고

덤프를 복원하면 대상이 소스 수퍼유저가 선택한 임의의 코드를 실행하게 됩니다. 부분 덤프 및 부분 복원은 이를 제한하지 않습니다. 원본 슈퍼유저를 신뢰할 수 없는 경우 복원하기 전에 덤프된 SQL 문을 검사해야 합니다. 일반 텍스트가 아닌 덤프는 다음을 사용하여 검사할 수 있습니다.pg_restore's--파일옵션. 덤프 및 복원을 실행하는 클라이언트는 원본 또는 대상 수퍼유저를 신뢰할 필요가 없습니다.

옵션

다음 명령줄 옵션은 출력의 내용과 형식을 제어합니다.

db이름

덤프할 사설 토토의 이름을 지정합니다. 지정하지 않으면 환경 변수PGDATABASE사용됩니다. 설정되지 않은 경우 연결에 지정된 사용자 이름이 사용됩니다.

-a
--데이터 전용

스키마(데이터 정의)가 아닌 데이터만 덤프합니다. 테이블 데이터, 대형 개체 및 시퀀스 값이 덤프됩니다.

이 옵션은 다음과 유사하지만 역사적 이유로 동일하지 않습니다.--섹션=데이터.

-b
--대형 객체
--방울(지원 중단됨)

덤프에 대형 개체를 포함합니다. 이는 다음 경우를 제외하고는 기본 동작입니다.--스키마, --테이블또는--스키마 전용지정되었습니다.-b15561_15759--데이터 전용사용되지만 언제는 사용되지 않음--스키마 전용입니다.

-B
--대형 객체 없음
--블롭 없음(지원 중단됨)

덤프에서 대형 개체를 제외합니다.

둘 다일 때-b그리고-B이 주어지면 동작은 데이터가 덤프될 때 큰 개체를 출력하는 것입니다.-b문서.

-c
--깨끗함

명령을 출력할 대상드롭모든 덤프된 데이터베이스 개체를 생성하기 위한 명령을 출력하기 전에 삭제합니다. 이 옵션은 복원이 기존 데이터베이스를 덮어쓰는 경우에 유용합니다. 개체 중 하나라도 대상 데이터베이스에 없으면 복원 중에 무시할 수 있는 오류 메시지가 보고됩니다.--if-존재또한 지정되었습니다.

이 옵션은 아카이브(텍스트가 아닌) 출력 파일을 내보낼 때 무시됩니다. 아카이브 형식의 경우 전화 시 옵션을 지정할 수 있습니다.pg_restore.

-C
--생성

사설 토토 자체를 생성하고 생성된 사설 토토에 다시 연결하는 명령으로 출력을 시작합니다. (이 형식의 스크립트를 사용하면 스크립트를 실행하기 전에 대상 설치의 어떤 사설 토토에 연결하는지는 중요하지 않습니다.) If--깨끗함또한 지정되면 스크립트는 대상 사설 토토에 다시 연결하기 전에 대상 사설 토토를 삭제하고 다시 생성합니다.

함께--생성, 출력에는 데이터베이스의 설명(있는 경우)과 이 데이터베이스와 관련된 구성 변수 설정(즉, any)도 포함됩니다.사설 토토 변경 ... 설정 ...그리고역할 변경 ... 사설 토토에서 ... 설정 ...이 데이터베이스를 언급하는 명령입니다. 다음을 제외하면 데이터베이스 자체에 대한 액세스 권한도 덤프됩니다.--no-acl지정되었습니다.

이 옵션은 아카이브(텍스트가 아닌) 출력 파일을 내보낼 때 무시됩니다. 아카이브 형식의 경우 전화 시 옵션을 지정할 수 있습니다.pg_restore.

-e패턴
--확장자=패턴

일치하는 확장만 덤프패턴. 이 옵션을 지정하지 않으면 대상 데이터베이스의 모든 비시스템 확장이 덤프됩니다. 여러 확장자를 작성하여 여러 확장자를 선택할 수 있습니다-e스위치.패턴매개변수는 다음에서 사용하는 것과 동일한 규칙에 따라 패턴으로 해석됩니다.psql's\d명령(참조패턴), 따라서 패턴에 와일드카드 문자를 작성하여 여러 확장자를 선택할 수도 있습니다. 와일드카드를 사용할 때 셸이 와일드카드를 확장하지 못하도록 필요한 경우 패턴을 인용하도록 주의하세요.

다음에 의해 등록된 모든 구성 관계pg_extension_config_dump해당 확장자가 다음으로 지정된 경우 덤프에 포함됩니다.--확장.

참고

언제-e지정되었습니다.pg_dump선택한 확장 프로그램이 의존할 수 있는 다른 사설 토토 개체를 덤프하려고 시도하지 않습니다. 따라서 특정 확장자 덤프의 결과가 자체적으로 깨끗한 사설 토토로 성공적으로 복원될 수 있다는 보장은 없습니다.

-E인코딩
--인코딩=인코딩

지정된 문자 집합 인코딩으로 덤프를 생성합니다. 기본적으로 덤프는 데이터베이스 인코딩으로 생성됩니다. (동일한 결과를 얻는 또 다른 방법은 다음을 설정하는 것입니다.PGCLIENTENCODING환경 변수를 원하는 덤프 인코딩으로 설정하세요.) 지원되는 인코딩은 다음에 설명되어 있습니다.섹션 24.3.1.

-f파일
--파일=파일

지정된 파일로 출력을 보냅니다. 파일 기반 출력 형식의 경우 이 매개변수를 생략할 수 있으며, 이 경우 표준 출력이 사용됩니다. 그러나 디렉터리 출력 형식의 경우 파일 대신 대상 디렉터리를 지정하는 경우 제공되어야 합니다. 이 경우 디렉토리는에 의해 생성됩니다.pg_dump이전에 존재해서는 안 됩니다.

-F형식
--형식=형식

출력 형식을 선택합니다.형식다음 중 하나일 수 있습니다:

p
일반

일반 텍스트 출력SQL스크립트 파일(기본값).

c
커스텀

입력에 적합한 사용자 정의 형식 아카이브를 출력pg_restore. 디렉터리 출력 형식과 함께 복원 중에 보관된 항목을 수동으로 선택하고 순서를 변경할 수 있다는 점에서 가장 유연한 출력 형식입니다. 이 형식은 기본적으로 압축되어 있습니다.

d
디렉토리

입력에 적합한 디렉토리 형식 아카이브를 출력pg_restore. 이렇게 하면 덤프되는 각 테이블과 대형 개체에 대한 하나의 파일과 기계가 읽을 수 있는 형식으로 덤프된 개체를 설명하는 소위 목차 파일이 포함된 디렉터리가 생성됩니다.pg_restore읽을 수 있습니다. 디렉토리 형식 아카이브는 표준 Unix 도구를 사용하여 조작할 수 있습니다. 예를 들어, 압축되지 않은 아카이브의 파일은 다음을 사용하여 압축할 수 있습니다.gzip, lz4또는zstd도구. 이 형식은 기본적으로 다음을 사용하여 압축됩니다.gzip또한 병렬 덤프를 지원합니다.

t
타르

출력 a타르-입력에 적합한 형식 아카이브pg_restore. tar 형식은 디렉토리 형식과 호환됩니다. tar 형식 아카이브를 추출하면 유효한 디렉토리 형식 아카이브가 생성됩니다. 그러나 tar 형식은 압축을 지원하지 않습니다. 또한 tar 형식을 사용하는 경우 복원 중에 테이블 데이터 항목의 상대적 순서를 변경할 수 없습니다.

-jnjobs
--작업=njobs

덤핑을 통해 덤프를 병렬로 실행njobs테이블을 동시에. 이 옵션은 덤프를 수행하는 데 필요한 시간을 줄일 수 있지만 데이터베이스 서버의 로드도 증가시킵니다. 이 옵션은 여러 프로세스가 동시에 데이터를 쓸 수 있는 유일한 출력 형식이므로 디렉터리 출력 형식에만 사용할 수 있습니다.

pg_dump열릴 것입니다njobs+ 데이터베이스에 대한 1개의 연결이므로 다음을 확인하세요.max_connections설정이 모든 연결을 수용할 만큼 충분히 높습니다.

병렬 덤프를 실행하는 동안 사설 토토 개체에 대한 배타적 잠금을 요청하면 덤프가 실패할 수 있습니다. 그 이유는pg_dump리더 프로세스가 공유 잠금을 요청합니다(액세스 공유) 작업자 프로세스가 나중에 덤프할 객체에 대해 삭제하여 덤프가 실행되는 동안 아무도 객체를 삭제하지 못하도록 합니다. 그런 다음 다른 클라이언트가 테이블에 대한 배타적 잠금을 요청하면 해당 잠금은 부여되지 않지만 리더 프로세스의 공유 잠금이 해제될 때까지 대기하게 됩니다. 결과적으로 테이블에 대한 다른 액세스도 허용되지 않으며 배타적 잠금 요청 후에 대기열에 추가됩니다. 여기에는 테이블을 덤프하려는 작업자 프로세스가 포함됩니다. 예방 조치가 없으면 이는 전형적인 교착 상태 상황이 됩니다. 이 충돌을 감지하려면,pg_dump작업자 프로세스가 다음을 사용하여 또 다른 공유 잠금을 요청합니다.NOWAIT옵션. 작업자 프로세스에 이 공유 잠금이 부여되지 않은 경우 다른 사람이 그 동안 배타적 잠금을 요청한 것이므로 덤프를 계속할 수 있는 방법이 없습니다.pg_dump덤핑을 중단할 수밖에 없습니다.

병렬 덤프를 수행하려면 데이터베이스 서버가 동기화된 스냅샷을 지원해야 합니다. 이 기능은 다음에 도입된 기능입니다.포스트그레SQL26918_27084pg_dump -j여러 사설 토토 연결을 사용합니다. 리더 프로세스를 사용하여 한 번, 각 작업자 작업에 대해 다시 한 번 사설 토토에 연결합니다. 동기화된 스냅샷 기능이 없으면 여러 작업자 작업이 각 연결에서 동일한 데이터를 볼 수 있다고 보장할 수 없으므로 백업이 일관되지 않을 수 있습니다.

-n패턴
--스키마=패턴

일치하는 스키마만 덤프패턴; 이렇게 하면 스키마 자체와 포함된 모든 개체가 모두 선택됩니다. 이 옵션을 지정하지 않으면 대상 데이터베이스의 모든 비시스템 스키마가 덤프됩니다. 여러 스키마를 작성하여 여러 스키마를 선택할 수 있습니다-n스위치.패턴매개변수는 다음에서 사용하는 것과 동일한 규칙에 따라 패턴으로 해석됩니다.psql\d명령(참조패턴)이므로 패턴에 와일드카드 문자를 작성하여 여러 스키마를 선택할 수도 있습니다. 와일드카드를 사용할 때 쉘이 와일드카드를 확장하지 못하도록 필요한 경우 패턴을 인용하도록 주의하십시오. 참조아래.

참고

언제-n지정되었습니다.pg_dump선택한 스키마가 의존할 수 있는 다른 사설 토토 개체를 덤프하려고 시도하지 않습니다. 따라서 특정 스키마 덤프의 결과가 자체적으로 깨끗한 사설 토토로 성공적으로 복원될 수 있다는 보장은 없습니다.

참고

대형 객체와 같은 비스키마 객체는 다음 경우에 덤프되지 않습니다.-n이 지정되었습니다. 다음을 사용하여 대형 객체를 덤프에 다시 추가할 수 있습니다.--대형 객체스위치.

-N패턴
--제외-스키마=패턴

일치하는 스키마를 덤프하지 마십시오.패턴. 패턴은 와 동일한 규칙에 따라 해석됩니다.-n. -N여러 패턴과 일치하는 스키마를 제외하기 위해 두 번 이상 제공될 수 있습니다.

둘 다일 때-n그리고-N이 주어지면 동작은 적어도 하나와 일치하는 스키마만 덤프하는 것입니다.-n전환하지만 아니요-N스위치. 만일-N없이 나타남-n, 그러면 스키마 일치-N일반 덤프에서 제외됩니다.

-O
--소유자 없음

원래 사설 토토와 일치하도록 개체의 소유권을 설정하는 명령을 출력하지 마십시오. 기본적으로,pg_dump문제소유자 변경또는세션 승인 설정생성된 데이터베이스 객체의 소유권을 설정하는 명령문입니다. 슈퍼유저(또는 스크립트의 모든 개체를 소유한 동일한 사용자)가 스크립트를 시작하지 않는 한 스크립트가 실행될 때 이러한 문은 실패합니다. 모든 사용자가 복원할 수 있지만 해당 사용자에게 모든 개체에 대한 소유권을 부여하는 스크립트를 만들려면 다음을 지정하십시오.-O.

이 옵션은 아카이브(텍스트가 아닌) 출력 파일을 내보낼 때 무시됩니다. 아카이브 형식의 경우 전화 시 옵션을 지정할 수 있습니다.pg_restore.

-R
--재연결 없음

이 옵션은 더 이상 사용되지 않지만 이전 버전과의 호환성을 위해 여전히 허용됩니다.

-s
--스키마 전용

데이터가 아닌 개체 정의(스키마)만 덤프합니다.

이 옵션은 반대입니다--데이터 전용. 다음과 유사하지만 역사적 이유로 동일하지는 않습니다.--section=사전 데이터 --section=사후 데이터.

(이것을 다음과 혼동하지 마십시오.--스키마단어를 사용하는 옵션스키마다른 의미로.)

데이터베이스에서 테이블의 하위 집합에 대해서만 테이블 데이터를 제외하려면 다음을 참조하세요.--제외 테이블 데이터.

-S사용자 이름
--수퍼유저=사용자 이름

트리거를 비활성화할 때 사용할 수퍼유저 사용자 이름을 지정하십시오. 이는 다음과 같은 경우에만 관련됩니다.--비활성화-트리거사용됩니다. (일반적으로 이를 생략하고 대신 슈퍼유저로 결과 스크립트를 시작하는 것이 좋습니다.)

-t패턴
--테이블=패턴

이름이 일치하는 테이블만 덤프패턴. 여러 테이블을 작성하여 여러 테이블을 선택할 수 있습니다-t스위치.패턴매개변수는 다음에서 사용하는 것과 동일한 규칙에 따라 패턴으로 해석됩니다.psql's\d명령(참조패턴)이므로 패턴에 와일드카드 문자를 작성하여 여러 테이블을 선택할 수도 있습니다. 와일드카드를 사용할 때 쉘이 와일드카드를 확장하지 못하도록 필요한 경우 패턴을 인용하도록 주의하십시오. 참조아래.

테이블뿐만 아니라 이 옵션은 일치하는 뷰, 구체화된 뷰, 외부 테이블 및 시퀀스의 정의를 덤프하는 데 사용할 수 있습니다. 뷰나 구체화된 뷰의 내용은 덤프되지 않으며, 외부 테이블의 내용은 해당 외부 서버가 다음과 같이 지정된 경우에만 덤프됩니다.--include-외부-데이터.

-n그리고-N다음 경우에는 스위치가 효과가 없습니다.-t다음에 의해 테이블이 선택되었기 때문에 사용됩니다.-t해당 스위치에 관계없이 덤프되며 테이블이 아닌 개체는 덤프되지 않습니다.

참고

언제-t지정되었습니다.pg_dump선택한 테이블이 의존할 수 있는 다른 사설 토토 개체를 덤프하려고 시도하지 않습니다. 따라서 특정 테이블 덤프의 결과가 스스로 깨끗한 사설 토토로 성공적으로 복원될 수 있다는 보장은 없습니다.

-T패턴
--제외 테이블=패턴

일치하는 테이블을 덤프하지 마십시오.패턴. 패턴은 와 동일한 규칙에 따라 해석됩니다.-t. -T여러 패턴과 일치하는 테이블을 제외하기 위해 두 번 이상 제공될 수 있습니다.

둘 다일 때-t그리고-T이 주어지면 동작은 적어도 하나와 일치하는 테이블만 덤프하는 것입니다.-t전환하지만 아니요-T스위치. 만일-T없이 나타남-t, 그러면 일치하는 테이블-T일반 덤프에서 제외됩니다.

-v
--상세

상세 모드를 지정합니다. 이로 인해 발생합니다pg_dump자세한 개체 설명과 시작/중지 시간을 덤프 파일에 출력하고 표준 오류에 대한 진행 메시지를 출력합니다. 옵션을 반복하면 표준 오류에 추가 디버그 수준 메시지가 나타납니다.

-V
--버전

인쇄pg_dump버전 및 종료.

-x
--권한 없음
--no-acl

액세스 권한 덤프를 방지합니다(부여/취소 명령).

-Z레벨
-Z방법[:세부정보]
--압축=레벨
--압축=방법[:세부정보]

사용할 압축 방법 및/또는 압축 수준을 지정하십시오. 압축 방법은 다음과 같이 설정할 수 있습니다.gzip, lz4, zstd, 또는없음압축하지 않는 경우. 선택적으로 압축 세부 문자열을 지정할 수 있습니다. 세부 문자열이 정수인 경우 압축 수준을 지정합니다. 그렇지 않은 경우 각 양식은 쉼표로 구분된 항목 목록이어야 합니다.키워드또는키워드=값. 현재 지원되는 키워드는 다음과 같습니다.레벨그리고.

압축 수준이 지정되지 않으면 기본 압축 수준이 사용됩니다. 알고리즘을 언급하지 않고 레벨만 지정한 경우,gzip레벨이 다음보다 크면 압축이 사용됩니다.0, 레벨이 다음과 같은 경우 압축이 사용되지 않습니다.0.

사용자 정의 및 디렉토리 아카이브 형식의 경우 개별 테이블 데이터 세그먼트의 압축을 지정하며 기본값은 다음을 사용하여 압축하는 것입니다.gzip보통 수준. 일반 텍스트 출력의 경우 0이 아닌 압축 수준을 설정하면 전체 출력 파일이 마치 파일이 공급된 것처럼 압축됩니다.gzip, lz4또는zstd; 그러나 기본값은 압축하지 않는 것입니다. zstd 압축을 사용하면,모드는 메모리 사용량을 늘리는 대신 압축 비율을 향상시킬 수 있습니다.

tar 아카이브 형식은 현재 압축을 전혀 지원하지 않습니다.

--바이너리-업그레이드

이 옵션은 전체 업그레이드 유틸리티에서 사용하기 위한 것입니다. 다른 목적으로 사용하는 것은 권장되거나 지원되지 않습니다. 옵션의 동작은 향후 릴리스에서 예고 없이 변경될 수 있습니다.

--열 삽입
--속성-삽입

다음으로 데이터 덤프삽입명시적인 열 이름이 있는 명령(INSERT INTO테이블 (, ...) 값 ...). 이렇게 하면 복원 속도가 매우 느려집니다. 주로 비에 로드할 수 있는 덤프를 만드는 데 유용합니다.포스트그레SQL데이터베이스. 복원 중 오류가 발생하면 문제가 있는 행만 발생합니다.삽입전체 테이블 내용이 아니라 손실됩니다.

--disable-dollar-quoting

이 옵션은 함수 본문에 달러 인용 사용을 비활성화하고 SQL 표준 문자열 구문을 사용하여 인용하도록 강제합니다.

--비활성화-트리거

이 옵션은 데이터 전용 덤프를 생성할 때만 관련됩니다. 지시한다pg_dump데이터가 복원되는 동안 대상 테이블에서 트리거를 일시적으로 비활성화하는 명령을 포함합니다. 데이터 복원 중에 호출하지 않으려는 테이블에 대한 참조 무결성 검사 또는 기타 트리거가 있는 경우 이를 사용하십시오.

현재 다음에 대해 내보낸 명령은--비활성화-트리거수퍼유저로 수행해야 합니다. 따라서 다음을 사용하여 수퍼유저 이름도 지정해야 합니다.-S, 또는 슈퍼유저로 결과 스크립트를 시작하는 데 주의하는 것이 좋습니다.

이 옵션은 아카이브(텍스트가 아닌) 출력 파일을 내보낼 때 무시됩니다. 아카이브 형식의 경우 전화 시 옵션을 지정할 수 있습니다.pg_restore.

--활성화 행 보안

이 옵션은 행 보안이 있는 테이블의 내용을 덤프할 때만 관련됩니다. 기본적으로,pg_dump설정할 것입니다행_보안해제하여 모든 데이터가 테이블에서 덤프되도록 합니다. 사용자에게 행 보안을 우회할 수 있는 충분한 권한이 없으면 오류가 발생합니다. 이 매개변수는 다음을 지시합니다.pg_dump설정하다행_보안대신에 사용자가 액세스 권한이 있는 테이블 내용의 일부를 덤프할 수 있도록 허용합니다.

현재 이 옵션을 사용한다면 덤프도 포함되기를 원할 것입니다.삽입형식, 다음과 같이다음에서 복사복원 중에는 행 보안을 지원하지 않습니다.

--제외 테이블 및 어린이=패턴

이것은 다음과 같습니다-T/--제외 테이블옵션, 단, 이 옵션은 일치하는 테이블의 모든 파티션 또는 상속 하위 테이블도 제외한다는 점을 제외하고패턴.

--제외-테이블-데이터=패턴

일치하는 테이블에 대한 데이터를 덤프하지 마십시오.패턴. 패턴은 와 동일한 규칙에 따라 해석됩니다.-t. --제외 테이블 데이터여러 패턴과 일치하는 테이블을 제외하기 위해 두 번 이상 제공될 수 있습니다. 이 옵션은 특정 테이블에 데이터가 필요하지 않더라도 특정 테이블의 정의가 필요할 때 유용합니다.

데이터베이스의 모든 테이블에 대한 데이터를 제외하려면 다음을 참조하세요.--스키마 전용.

--제외 테이블 데이터 및 어린이=패턴

이것은 다음과 같습니다--제외 테이블 데이터옵션. 단, 모든 파티션의 데이터나 일치하는 테이블의 상속 하위 테이블도 제외한다는 점은 제외됩니다.패턴.

--추가 부동 숫자=ndigits

지정된 값 사용extra_float_digits부동 소수점 데이터를 덤프할 때 사용 가능한 최대 정밀도 대신. 백업 목적으로 만들어진 일상적인 덤프에서는 이 옵션을 사용하면 안 됩니다.

--존재하는 경우

사용삭제 ... 존재하는 경우객체를 놓는 명령--깨끗함모드. 이것은 억제합니다존재하지 않습니다그렇지 않으면 보고될 수 있는 오류입니다. 이 옵션은 다음 경우가 아니면 유효하지 않습니다.--깨끗함또한 지정되었습니다.

--include-외국-데이터=외국서버

외부 서버와 일치하는 모든 외부 테이블에 대한 데이터 덤프외국 서버패턴. 여러 개의 외국 서버를 작성하여 여러 개 선택할 수 있습니다--include-외부-데이터스위치. 또한,외국서버매개변수는 다음에서 사용하는 것과 동일한 규칙에 따라 패턴으로 해석됩니다.psql's\d명령(참조패턴)이므로 패턴에 와일드카드 문자를 작성하여 여러 외부 서버를 선택할 수도 있습니다. 와일드카드를 사용할 때 쉘이 와일드카드를 확장하지 못하도록 필요한 경우 패턴을 인용하도록 주의하십시오. 참조아래. 유일한 예외는 빈 패턴이 허용되지 않는다는 것입니다.

참고

와일드카드 사용--include-외부-데이터예기치 않은 외부 서버에 액세스할 수 있습니다. 또한 이 옵션을 안전하게 사용하려면 명명된 서버에 신뢰할 수 있는 소유자가 있어야 합니다.

참고

언제--include-외국-데이터지정되었습니다.pg_dump외부 테이블이 쓰기 가능한지 확인하지 않습니다. 따라서 외부 테이블 덤프 결과가 성공적으로 복원된다는 보장은 없습니다.

--삽입

다음으로 데이터 덤프삽입명령(대신복사). 이렇게 하면 복원 속도가 매우 느려집니다. 주로 비에 로드할 수 있는 덤프를 만드는 데 유용합니다.PostgreSQL데이터베이스. 복원 중 오류가 발생하면 문제가 있는 행만 발생합니다.삽입47813_47952--열 삽입옵션은 열 순서 변경에 대해 안전하지만 속도는 더 느립니다.

--파티션 루트를 통해 로드

테이블 파티션에 대한 데이터를 덤프할 때 다음을 수행하십시오.복사또는삽입문은 파티션 자체가 아닌 이를 포함하는 파티션 계층 구조의 루트를 대상으로 합니다. 이로 인해 데이터가 로드될 때 각 행에 대해 적절한 파티션이 다시 결정됩니다. 이는 행이 항상 원래 서버에서와 동일한 파티션에 속하지 않는 서버에서 데이터를 복원할 때 유용할 수 있습니다. 예를 들어 분할 열이 텍스트 유형이고 두 시스템에서 분할 열을 정렬하는 데 사용되는 데이터 정렬에 대해 서로 다른 정의를 사용하는 경우 이런 일이 발생할 수 있습니다.

--잠금-대기-시간 초과=시간 초과

덤프 시작 시 공유 테이블 잠금을 획득하기 위해 영원히 기다리지 마십시오. 대신 지정된 기간 내에서 테이블을 잠글 수 없으면 실패합니다.시간 초과. 시간 초과는 다음에서 허용되는 형식으로 지정할 수 있습니다.SET 문_시간 초과. (허용되는 형식은 덤프하는 서버 버전에 따라 다르지만 모든 버전에서 밀리초 단위의 정수가 허용됩니다.)

--코멘트 없음

댓글을 덤프하지 마십시오.

--출판 없음

출판물을 버리지 마십시오.

--보안 라벨 없음

보안 라벨을 덤프하지 마십시오.

--구독 없음

구독을 덤프하지 마십시오.

--동기화 없음

기본적으로,pg_dump모든 파일이 디스크에 안전하게 기록될 때까지 기다립니다. 이 옵션으로 인해pg_dump기다리지 않고 반환하는 것이 더 빠르지만 후속 운영 체제 충돌로 인해 덤프가 손상될 수 있음을 의미합니다. 일반적으로 이 옵션은 테스트에 유용하지만 프로덕션 설치에서 데이터를 덤프할 때는 사용하면 안 됩니다.

--테이블 액세스 방법 없음

테이블 액세스 방법을 선택하는 명령을 출력하지 않습니다. 이 옵션을 사용하면 복원 중에 기본값인 테이블 액세스 방법을 사용하여 모든 개체가 생성됩니다.

이 옵션은 아카이브(텍스트가 아닌) 출력 파일을 내보낼 때 무시됩니다. 아카이브 형식의 경우 전화 시 옵션을 지정할 수 있습니다.pg_restore.

--테이블스페이스 없음

테이블스페이스를 선택하는 명령을 출력하지 않습니다. 이 옵션을 사용하면 복원 중에 기본값인 테이블스페이스에 모든 객체가 생성됩니다.

이 옵션은 아카이브(텍스트가 아닌) 출력 파일을 내보낼 때 무시됩니다. 아카이브 형식의 경우 전화 시 옵션을 지정할 수 있습니다.pg_restore.

--토스트 압축 없음

설정할 명령을 출력하지 않음토스트압축 방법. 이 옵션을 사용하면 모든 열이 기본 압축 설정으로 복원됩니다.

--no-unlogged-table-data

기록되지 않은 테이블 및 시퀀스의 내용을 덤프하지 마십시오. 이 옵션은 테이블 및 시퀀스 정의(스키마)가 덤프되는지 여부에 영향을 주지 않습니다. 테이블 및 시퀀스 데이터 덤프만 억제합니다. 로그되지 않은 테이블 및 시퀀스의 데이터는 대기 서버에서 덤프할 때 항상 제외됩니다.

--on-충돌-아무것도 하지 않음

추가충돌 시 아무것도 하지 않음삽입명령. 이 옵션은 다음 경우가 아니면 유효하지 않습니다.--삽입, --열 삽입또는--삽입당 행또한 지정되었습니다.

--인용-모든 식별자

모든 식별자를 강제로 인용합니다. 이 옵션은 다음과 같은 서버에서 데이터베이스를 덤프할 때 권장됩니다.PostgreSQL주 버전이 다음과 다릅니다.pg_dump' 또는 출력이 다른 주요 버전의 서버에 로드되도록 의도된 경우. 기본적으로,pg_dump주 버전의 예약어인 식별자만 인용합니다. 이로 인해 약간 다른 예약어 세트가 있을 수 있는 다른 버전의 서버를 처리할 때 호환성 문제가 발생하는 경우가 있습니다. 사용--인용-모든 식별자읽기 어려운 덤프 스크립트를 사용하여 이러한 문제를 방지합니다.

--제한 키=restrict_key

제공된 문자열을 다음으로 사용psql \제한덤프 출력을 입력하세요. 이는 일반 텍스트 덤프에만 지정할 수 있습니다. 즉, 다음과 같은 경우입니다.--형식다음으로 설정됨일반또는--형식옵션이 생략되었습니다. 제한 키가 지정되지 않은 경우,pg_dump필요에 따라 무작위로 생성됩니다. 키에는 영숫자 문자만 포함될 수 있습니다.

이 옵션은 주로 테스트 목적과 반복 가능한 출력(예: 덤프 파일 비교)이 필요한 기타 시나리오를 위한 것입니다. 키에 대한 사전 지식을 갖춘 악의적인 서버가 실행되는 시스템에서 실행될 임의의 코드를 삽입할 수 있으므로 일반적인 사용에는 권장되지 않습니다.psql덤프 출력 포함.

--삽입당 행=nrows

다음으로 데이터 덤프삽입명령(대신복사). 당 최대 행 수를 제어합니다.삽입명령. 지정된 값은 0보다 큰 숫자여야 합니다. 복원 중 오류가 발생하면 문제가 있는 행만 발생합니다.삽입전체 테이블 내용이 아니라 손실됩니다.

--섹션=섹션 이름

이름이 지정된 섹션만 덤프하십시오. 섹션 이름은 다음과 같습니다.사전 데이터, 데이터또는포스트 데이터. 이 옵션을 두 번 이상 지정하여 여러 섹션을 선택할 수 있습니다. 기본값은 모든 섹션을 덤프하는 것입니다.

데이터 섹션에는 실제 테이블 데이터, 대형 개체 내용 및 시퀀스 값이 포함되어 있습니다. 사후 데이터 항목에는 유효성 검사 제약 조건 이외의 인덱스, 트리거, 규칙 및 제약 조건에 대한 정의가 포함됩니다. 사전 데이터 항목에는 다른 모든 데이터 정의 항목이 포함됩니다.

--직렬화 가능-지연 가능

사용직렬화 가능사용된 스냅샷이 이후 데이터베이스 상태와 일치하는지 확인하기 위한 덤프 트랜잭션. 그러나 덤프가 실패하거나 다른 트랜잭션이 롤백되는 위험이 없도록 트랜잭션 스트림에서 이상이 없는 지점을 기다려 이를 수행합니다.직렬화_실패. 참조장 13트랜잭션 격리 및 동시성 제어에 대한 자세한 내용을 확인하세요.

이 옵션은 재해 복구만을 목적으로 하는 덤프에는 유용하지 않습니다. 원본 데이터베이스가 계속 업데이트되는 동안 보고 또는 기타 읽기 전용 로드 공유를 위해 데이터베이스 복사본을 로드하는 데 사용되는 덤프에 유용할 수 있습니다. 이것이 없으면 덤프는 결국 커밋된 트랜잭션의 직렬 실행과 일치하지 않는 상태를 반영할 수 있습니다. 예를 들어 일괄 처리 기술을 사용하는 경우 일괄 처리에 포함된 모든 항목이 표시되지 않은 채 일괄 처리가 덤프에서 닫힌 것으로 표시될 수 있습니다.

pg_dump가 시작될 때 활성화된 읽기-쓰기 트랜잭션이 없으면 이 옵션은 아무런 차이가 없습니다. 읽기-쓰기 트랜잭션이 활성화된 경우 덤프 시작이 무한정 지연될 수 있습니다. 일단 실행되면 스위치 유무에 관계없이 성능은 동일합니다.

--스냅샷=스냅샷 이름

데이터베이스 덤프를 만들 때 지정된 동기화된 스냅샷을 사용하십시오(참조표 9.94자세한 내용은).

이 옵션은 덤프를 논리적 복제 슬롯과 동기화해야 할 때 유용합니다(참조PostgreSQL : 문서 : 16 : 49 장. 무지개 토토 디코딩) 또는 동시 세션을 통해.

병렬 덤프의 경우 새 스냅샷을 찍는 대신 이 옵션으로 정의된 스냅샷 이름이 사용됩니다.

--엄격한 이름

각 확장자(-e/--확장), 스키마(-n/--스키마) 및 테이블(-t/--테이블) 패턴은 덤프할 데이터베이스에서 하나 이상의 확장/스키마/테이블과 일치합니다. 확장/스키마/테이블 패턴 중 일치하는 패턴이 없으면,pg_dump없이도 오류가 발생합니다--엄격한 이름.

이 옵션은 다음에 영향을 미치지 않습니다.-N/--제외-스키마, -T/--제외 테이블또는--제외 테이블 데이터. 어떤 객체와도 일치하지 않는 제외 패턴은 오류로 간주되지 않습니다.

--테이블과 어린이=패턴

이것은 다음과 같습니다-t/--테이블옵션, 단, 여기에는 일치하는 테이블의 파티션 또는 상속 하위 테이블도 포함된다는 점은 제외됩니다.패턴.

--use-set-session-authorization

출력 SQL-표준세션 승인 설정대신 명령소유자 변경객체 소유권을 결정하는 명령입니다. 이렇게 하면 덤프가 더욱 표준과 호환되지만 덤프에 있는 개체 기록에 따라 제대로 복원되지 않을 수 있습니다. 또한, 다음을 사용하여 덤프합니다.세션 승인 설정올바로 복원하려면 확실히 수퍼유저 권한이 필요하지만소유자 변경더 낮은 권한이 필요합니다.

-?
--도움말

다음에 관한 도움말 보기pg_dump명령줄 인수를 입력하고 종료합니다.

다음 명령줄 옵션은 데이터베이스 연결 매개변수를 제어합니다.

-ddb이름
--dbname=db이름

연결할 데이터베이스의 이름을 지정합니다. 이는 다음을 지정하는 것과 동일합니다.db이름명령줄의 첫 번째 비옵션 인수로.db이름다음이 될 수 있습니다연결 문자열. 그렇다면 연결 문자열 매개변수가 충돌하는 명령줄 옵션을 재정의합니다.

-h호스트
--호스트=호스트

서버가 실행 중인 시스템의 호스트 이름을 지정합니다. 값이 슬래시로 시작하는 경우 Unix 도메인 소켓의 디렉터리로 사용됩니다. 기본값은에서 가져옵니다.PGHOST환경 변수, 설정된 경우 그렇지 않으면 Unix 도메인 소켓 연결이 시도됩니다.

-p포트
--포트=포트

서버가 연결을 수신하고 있는 TCP 포트 또는 로컬 Unix 도메인 소켓 파일 확장자를 지정합니다. 기본값은PG포트환경 변수(설정된 경우) 또는 컴파일된 기본값.

-유사용자 이름
--사용자 이름=사용자 이름

연결할 사용자 이름.

-w
--비밀번호 없음

절대 비밀번호 프롬프트를 표시하지 마세요. 서버가 비밀번호 인증을 요구하는데 다음과 같은 다른 방법으로 비밀번호를 사용할 수 없는 경우.pgpass파일을 사용하면 연결 시도가 실패합니다. 이 옵션은 비밀번호를 입력할 사용자가 없는 일괄 작업 및 스크립트에 유용할 수 있습니다.

-W
--비밀번호

포스pg_dump데이터베이스에 연결하기 전에 비밀번호를 묻는 메시지를 표시합니다.

이 옵션은 결코 필수가 아닙니다. 왜냐하면pg_dump서버가 비밀번호 인증을 요구하면 자동으로 비밀번호를 묻는 메시지를 표시합니다. 그러나pg_dump서버가 비밀번호를 원하는지 알아내는 연결 시도를 낭비하게 됩니다. 어떤 경우에는 입력할 가치가 있습니다.-W추가 연결 시도를 피하기 위해.

--역할=역할 이름

덤프를 생성하는 데 사용할 역할 이름을 지정합니다. 이 옵션으로 인해pg_dump발행하려면역할 설정 역할 이름64772_64872-유)에는에 필요한 권한이 없습니다.pg_dump이지만 필요한 권한이 있는 역할로 전환할 수 있습니다. 일부 설치에는 수퍼유저로 직접 로그인하는 것에 대한 정책이 있으며, 이 옵션을 사용하면 정책을 위반하지 않고 덤프를 만들 수 있습니다.

환경

PGDATABASE
PGHOST
PGOPTIONS
PG포트
PGUSER

기본 연결 매개변수.

PG_COLOR

진단 메시지에 색상을 사용할지 여부를 지정합니다. 가능한 값은 다음과 같습니다.항상, 자동그리고절대로.

이 유틸리티는 대부분의 다른 유틸리티와 같습니다.포스트그레SQL유틸리티는 다음에서 지원하는 환경 변수도 사용합니다.libpq(참조PostgreSQL : 문서 : 16 : 34.15. 환경 토토 결과).

진단

pg_dump내부적으로 실행선택문장. 실행에 문제가 있는 경우pg_dump, 예를 들어 다음을 사용하여 데이터베이스에서 정보를 선택할 수 있는지 확인하세요.psql. 또한, 기본 연결 설정 및 환경 변수는libpq프런트엔드 라이브러리가 적용됩니다.

다음 데이터베이스 활동pg_dump은 일반적으로 누적 통계 시스템에 의해 수집됩니다. 이것이 바람직하지 않은 경우 매개변수를 설정할 수 있습니다.track_counts거짓으로PGOPTIONS또는사용자 변경명령.

참고

데이터베이스 클러스터에 로컬 추가사항이 있는 경우템플릿1데이터베이스, 출력을 복원할 때 주의하세요pg_dump완전히 비어있는 데이터베이스로; 그렇지 않으면 추가된 객체의 정의가 중복되어 오류가 발생할 가능성이 높습니다. 로컬 추가 없이 빈 데이터베이스를 만들려면 다음에서 복사하세요.템플릿0아님템플릿1, 예:

템플릿 template0으로 foo 데이터베이스 생성;

데이터 전용 덤프를 선택하고 옵션을 선택한 경우--비활성화-트리거사용됩니다.pg_dump데이터를 삽입하기 전에 사용자 테이블에서 트리거를 비활성화하는 명령을 내보낸 다음, 데이터가 삽입된 후에 트리거를 다시 활성화하는 명령을 내보냅니다. 복원이 중간에 중지되면 시스템 카탈로그가 잘못된 상태로 남을 수 있습니다.

다음에 의해 생성된 덤프 파일pg_dump쿼리 계획 결정을 내리기 위해 최적화 프로그램에서 사용하는 통계가 포함되어 있지 않습니다. 그러므로 달리는 것이 현명하다.분석최적의 성능을 보장하기 위해 덤프 파일에서 복원한 후; 참조섹션 25.1.3그리고섹션 25.1.6더 많은 정보를 원하시면.

왜냐하면pg_dump최신 버전의로 데이터를 전송하는 데 사용됩니다.PostgreSQL, 출력pg_dump다음에 로드될 것으로 예상됩니다.PostgreSQL다음보다 최신 서버 버전pg_dump의 버전입니다.pg_dump다음에서 덤프할 수도 있음포스트그레SQL서버가 자체 버전보다 오래되었습니다. (현재는 9.2 버전 이하의 서버도 지원됩니다.) 단,pg_dump다음에서 덤프할 수 없음PostgreSQL서버가 자체 주요 버전보다 최신 버전입니다. 유효하지 않은 덤프를 만드는 위험을 감수하기보다는 시도조차 거부합니다. 또한, 다음을 보장하지 않습니다.pg_dump의 출력은 이전 주요 버전의 서버에 로드될 수 있습니다. 해당 버전의 서버에서 덤프를 가져온 경우에도 마찬가지입니다. 이전 서버에 덤프 파일을 로드하려면 이전 서버에서 이해하지 못하는 구문을 제거하기 위해 덤프 파일을 수동으로 편집해야 할 수도 있습니다. 의 사용--인용-모든 식별자옵션은 버전 간 경우에 권장됩니다. 다양한 예약어 목록으로 인해 발생하는 문제를 방지할 수 있기 때문입니다.PostgreSQL버전.

논리적 복제 구독을 덤프할 때,pg_dump생성합니다구독 작성다음을 사용하는 명령연결 = 거짓옵션을 사용하면 구독을 복원해도 복제 슬롯 생성이나 초기 테이블 복사를 위한 원격 연결이 이루어지지 않습니다. 이렇게 하면 원격 서버에 대한 네트워크 액세스 없이 덤프를 복원할 수 있습니다. 그런 다음 적절한 방법으로 구독을 다시 활성화하는 것은 사용자의 몫입니다. 관련 호스트가 변경된 경우 연결 정보를 변경해야 할 수도 있습니다. 새로운 전체 테이블 복사를 시작하기 전에 대상 테이블을 자르는 것이 적절할 수도 있습니다. 사용자가 새로 고치는 동안 초기 데이터를 복사하려는 경우 다음을 사용하여 슬롯을 생성해야 합니다.two_phase = false. 초기 동기화 후,two_phase구독이 원래 다음으로 생성된 경우 구독자가 옵션을 자동으로 활성화합니다.two_phase = true옵션.

일반적으로 다음을 사용하는 것이 좋습니다.-X (--no-psqlrc) 일반 텍스트에서 데이터베이스를 복원할 때의 옵션pg_dump깨끗한 복원 프로세스를 보장하고 기본값이 아닌 항목과의 잠재적인 충돌을 방지하기 위한 스크립트psql구성.

다음 데이터베이스를 덤프하려면mydbSQL 스크립트 파일에:

$ pg_dump mydb  db.sql

이러한 스크립트를 (새로 생성된) 데이터베이스에 다시 로드하려면newdb:

$ psql -X -d newdb -f db.sql

데이터베이스를 사용자 정의 형식 아카이브 파일로 덤프하려면:

$ pg_dump -Fc mydb  db.dump

데이터베이스를 디렉토리 형식 아카이브로 덤프하려면:

$ pg_dump -Fd mydb -f dumpdir

5개의 작업자 작업과 동시에 데이터베이스를 디렉터리 형식 아카이브에 덤프하려면:

$ pg_dump -Fd mydb -j 5 -f dumpdir

아카이브 파일을 (새로 생성된) 데이터베이스로 다시 로드하려면newdb:

$ pg_restore -d newdb db.dump

아카이브 파일을 덤프된 동일한 데이터베이스에 다시 로드하고 해당 데이터베이스의 현재 내용을 삭제하려면:

$ pg_restore -d postgres --clean --create db.dump

이름이 지정된 단일 테이블을 덤프하려면마이탭:

$ pg_dump -t mytab mydb  db.sql

이름이 다음으로 시작하는 모든 테이블을 덤프하려면emp에서디트로이트스키마, 이름이 지정된 테이블 제외employee_log:

$ pg_dump -t 'detroit.emp*' -T detroit.employee_log mydb  db.sql

이름이 다음으로 시작하는 모든 스키마를 덤프하려면동쪽또는서쪽다음으로 끝남gsm, 이름에 해당 단어가 포함된 스키마 제외테스트:

$ pg_dump -n 'east*gsm' -n 'west*gsm' -N '*test*' mydb  db.sql

동일합니다. 스위치를 통합하기 위해 정규식 표기법을 사용합니다:

$ pg_dump -n '(east|west)*gsm' -N '*test*' mydb  db.sql

이름이 다음으로 시작하는 테이블을 제외한 모든 데이터베이스 개체를 덤프하려면ts_:

$ pg_dump -T 'ts_*' mydb  db.sql

대문자 또는 대소문자 혼합 이름을 지정하려면-t및 관련 스위치의 경우 이름을 큰따옴표로 묶어야 합니다. 그렇지 않으면 소문자로 접혀집니다(참조패턴). 그러나 큰따옴표는 쉘에 특수하므로 차례로 인용해야 합니다. 따라서 대소문자가 혼합된 이름으로 단일 테이블을 덤프하려면 다음과 같은 것이 필요합니다.

$ pg_dump -t "\"MixedCaseName\"" mydb  mytab.sql

또한 참조

pg_dumpall, pg_restore, psql

수정 사항 제출

문서에 올바르지 않은 내용이 있으면 일치하지 않습니다. 특정 기능에 대한 경험이 있거나 추가 설명이 필요한 경우 이용해주세요이 양식문서 문제를 보고합니다.