pg_dump다음을 위한 유틸리티입니다. 저장 중포스트그레SQL데이터베이스 스크립트 또는 아카이브 파일로. 스크립트 파일은 다음 위치에 있습니다. 일반 텍스트 형식이며 다음 작업에 필요한 SQL 명령을 포함합니다. 데이터베이스를 당시의 상태로 재구성합니다. 저장되었습니다. 이러한 스크립트를 복원하려면 다음을 사용하세요.psql. 그들은 다른 컴퓨터에서도 토토 캔를 재구성하는 데 사용할 수 있습니다. 및 기타 아키텍처(다른 아키텍처에서도 일부 수정됨) SQL 토토 캔 제품.
또한 대체 아카이브 파일 형식이 있습니다. 와 함께 사용하도록 되어 있습니다.pg_restore토토 캔를 재구축하고 그들은 또한 허용합니다pg_restore되다 복원할 항목을 선택적으로 선택하거나 항목을 다시 정렬할 수도 있습니다. 복원되기 전에. 아카이브 파일은 다음과 같이 설계되었습니다. 아키텍처 간에 이식 가능합니다.
pg_dump저장할 것입니다. 모든 사용자 정의 유형을 재생성하는 데 필요한 정보 함수, 테이블, 인덱스, 집계 및 연산자. 에서 또한 모든 데이터는 텍스트 형식으로 복사되어 쉽게 다시 복사할 수 있을 뿐만 아니라 도구로 가져올 수도 있습니다. 편집을 위해.
아카이브 파일 형식 중 하나와 함께 사용하고 결합하는 경우
와 함께pg_restore, pg_dump유연한 보관 기능을 제공하며
전송 메커니즘.pg_dump할 수 있다
전체 토토 캔를 백업하는 데 사용되는 경우pg_restore다음을 검사하는 데 사용할 수 있습니다.
보관할 데이터베이스 부분을 선택하거나 보관할 수 있습니다.
복원되었습니다. 가장 유연한 출력 파일 형식은 다음과 같습니다."맞춤형"형식 (-Fc). 선택 및 재정렬이 가능합니다.
보관된 모든 항목이며 기본적으로 압축됩니다.타르형식 (-피트)는
압축되지 않았으며 다음과 같은 경우 데이터를 재정렬할 수 없습니다.
로딩이 가능하지만 그 외에는 매우 유연합니다. 게다가 그럴 수도 있지
다음과 같은 다른 도구로 조작됨타르.
실행 중pg_dump해야 합니다. 경고(표준 오류에 인쇄됨)가 있는지 출력을 검사합니다. 특히 아래 나열된 제한 사항을 고려할 때.
pg_dump일관되게 만듭니다 토토 캔가 동시에 사용되는 경우에도 백업됩니다.pg_dump다른 사람을 차단하지 않습니다 토토 캔에 액세스하는 사용자(리더 또는 작성자).
다음 명령줄 옵션은 다음을 제어하는 데 사용됩니다. 출력 형식.
덤프할 데이터베이스의 이름을 지정합니다. 만약 이 지정되지 않았습니다. 환경 변수입니다.PGDATABASE이 사용됩니다. 설정되지 않은 경우, 연결에 지정된 사용자 이름이 사용됩니다.
-a--데이터 전용스키마가 아닌 데이터만 덤프합니다(데이터 정의).
이 옵션은 일반 텍스트에만 의미가 있습니다. 형식. 다른 형식의 경우 옵션을 지정할 수 있습니다. 전화할 때pg_restore.
-b--방울덤프에 대형 개체를 포함합니다.
-c--깨끗함이전에 데이터베이스 개체를 정리(삭제)하기 위한 출력 명령 (명령을) 생성합니다.
이 옵션은 일반 텍스트에만 의미가 있습니다. 형식. 다른 형식의 경우 옵션을 지정할 수 있습니다. 전화할 때pg_restore.
-C--생성토토 캔 생성 명령으로 출력 시작 생성된 토토 캔에 다시 연결합니다. (와 함께 이 형식의 스크립트를 사용하면 어떤 토토 캔를 사용하는지는 중요하지 않습니다. 스크립트를 실행하기 전에 연결하세요.)
이 옵션은 일반 텍스트에만 의미가 있습니다. 형식. 다른 형식의 경우 옵션을 지정할 수 있습니다. 전화할 때pg_restore.
-d--삽입다음으로 데이터 덤프삽입명령 (대신에)복사). 이것은 만들 것이다 복원 속도가 매우 느리지만 아카이브가 더 많아집니다. 다른 SQL 토토 캔 패키지로 이식 가능합니다.
-D--열 삽입--속성-삽입다음으로 데이터 덤프삽입명령 명시적인 열 이름(INSERT INTO테이블 (열, ...) 값 ...). 이 복구 속도가 매우 느려지지만 다음과 같은 경우에는 필요합니다. 열 순서를 다시 정렬하고 싶습니다.
-f파일--파일=파일지정된 파일로 출력을 보냅니다. 이것을 생략하면, 표준 출력이 사용됩니다.
-F형식--형식=형식출력 형식을 선택합니다.형식다음 중 하나일 수 있습니다. 다음:
일반 텍스트 출력SQL스크립트 파일(기본값)
출력 a타르아카이브 입력에 적합pg_restore. 이 아카이브 사용 형식을 사용하면 스키마 재정렬 및/또는 제외가 가능합니다. 데이터베이스가 복원될 때의 요소입니다. 그것은 또한 다시 로드되는 데이터를 제한할 수도 있습니다. 복원 시간.
입력에 적합한 사용자 정의 아카이브를 출력pg_restore. 이것은 재정렬이 가능하다는 점에서 가장 유연한 형식 데이터 로드 및 스키마 요소. 이 형식 기본적으로 압축되어 있습니다.
-i--무시-버전버전 불일치 무시pg_dump그리고 토토 캔 서버.
pg_dump처리할 수 있음 이전 PostgreSQL 릴리스의 데이터베이스이지만 매우 이전 버전은 더 이상 지원되지 않습니다(현재는 7.0). 버전을 재정의해야 하는 경우 이 옵션을 사용하세요. 확인하십시오(그리고 만약에pg_dump그러면 실패하더라도 경고를 받지 못했다고 말하지 마세요.)
-o--oids객체 식별자 덤프(OID18916_19116
-O--소유자 없음객체 소유권을 다음으로 설정하는 명령을 출력하지 마십시오.
원본 데이터베이스와 일치합니다. 일반적으로pg_dump문제(psql-특정)\연결소유권을 설정하는 명령문
스키마 요소. 아래도 참조하세요.-R그리고-X
사용 세트 세션 인증. 참고하세요-O모두 방지하지는 않습니다.
토토 캔에 다시 연결합니다.
소유권 조정에만 사용됩니다.
이 옵션은 일반 텍스트에만 의미가 있습니다. 형식. 다른 형식의 경우 옵션을 지정할 수 있습니다. 전화할 때pg_restore.
-R--재연결 없음금지pg_dump에서
다시 연결해야 하는 스크립트를 출력합니다.
복원되는 동안 데이터베이스. 평균 복원
스크립트는 일반적으로 다른 방식으로 여러 번 다시 연결해야 합니다.
사용자는 객체의 원래 소유권을 설정합니다. 이
옵션은 다소 무뚝뚝한 도구입니다.pg_dump이것을 잃어버리세요
소유권 정보,그렇지 않은 경우당신은 다음을 사용합니다-X
사용 세트 세션 인증옵션.
복원 중 다시 연결되는 이유 중 하나 토토 캔에 대한 액세스가 필요하지 않은 경우 수동 상호작용(예: 비밀번호)이 필요합니다.
이 옵션은 일반 텍스트에만 의미가 있습니다. 형식. 다른 형식의 경우 옵션을 지정할 수 있습니다. 전화할 때pg_restore.
-s--스키마 전용스키마(데이터 정의)만 덤프하고 데이터는 덤프하지 마십시오.
-S사용자 이름--수퍼유저=사용자 이름비활성화할 때 사용할 수퍼유저 사용자 이름을 지정하십시오
트리거. 이는 다음과 같은 경우에만 관련됩니다.--비활성화-트리거이 사용됩니다. (보통 그렇죠.
지정하는 것이 더 좋습니다--use-set-session-authorization, 그리고
슈퍼유저로 결과 스크립트를 시작합니다.)
-t테이블--테이블=테이블다음에 대한 데이터 덤프테이블만.
-v--상세상세 모드를 지정합니다. 이로 인해 발생합니다pg_dump진행 메시지를 인쇄하려면 표준 오류입니다.
-x--권한 없음--no-acl접근권한 덤프 방지(부여/취소) 명령).
-X
사용 세트 세션 인증--use-set-session-authorization일반적으로 다음에 의해 생성된 (일반 텍스트 모드) 스크립트인 경우pg_dump다음을 변경해야 합니다.
현재 데이터베이스 사용자(예: 올바른 개체를 설정하려는 경우)
소유권), 다음을 사용합니다.psql \연결명령. 이 명령은 실제로 새로운 연결을 엽니다.
수동 상호작용(예: 비밀번호)이 필요할 수 있습니다.
를 사용하는 경우-X
사용 세트 세션 인증옵션, 그러면pg_dump대신
출력세션 설정
승인명령. 이는 동일한 효과를 가지지만,
이를 위해서는 사용자가 데이터베이스에서 데이터베이스를 복원해야 합니다.
생성된 스크립트는 데이터베이스 수퍼유저여야 합니다. 이 옵션
효과적으로 재정의합니다.-R옵션.
이후세션 설정 승인은 표준 SQL 명령인 반면\연결다음에서만 작동psql, 이 옵션도 출력의 이론적 이식성을 향상시킵니다. 스크립트.
이 옵션은 일반 텍스트에만 의미가 있습니다. 형식. 다른 형식의 경우 옵션을 지정할 수 있습니다. 전화할 때pg_restore.
-X 비활성화-트리거--비활성화-트리거이 옵션은 데이터 전용 생성 시에만 관련됩니다. 덤프. 지시한다pg_dump트리거를 일시적으로 비활성화하는 명령을 포함합니다. 데이터가 다시 로드되는 동안 대상 테이블을 지정합니다. 다음과 같은 경우에 이것을 사용하세요. 참조 무결성 검사 또는 기타 트리거가 있는 경우 데이터 중에 호출하고 싶지 않은 테이블 새로고침하세요.
현재 다음에 대해 내보낸 명령은--비활성화-트리거다음과 같이 수행되어야 합니다
슈퍼유저. 따라서 슈퍼유저 이름도 지정해야 합니다.
와 함께-S또는 가급적 지정--use-set-session-authorization그런 다음 결과 스크립트를 다음과 같이 시작하도록 주의하십시오.
슈퍼유저. 두 옵션 모두 제공하지 않으면 전체 스크립트가
슈퍼유저로 실행해야 합니다.
이 옵션은 일반 텍스트에만 의미가 있습니다. 형식. 다른 형식의 경우 옵션을 지정할 수 있습니다. 전화할 때pg_restore.
-Z0..9--압축=0..9아카이브 형식에 사용할 압축 수준을 지정하세요 압축을 지원하는(현재는 사용자 정의 아카이브만 형식은 압축을 지원합니다).
다음 명령줄 옵션은 데이터베이스를 제어합니다 연결 매개변수입니다.
-h호스트--호스트=호스트다음이 실행되는 시스템의 호스트 이름을 지정합니다. 서버가 실행 중입니다. 호스트가 슬래시로 시작하는 경우 슬래시가 사용됩니다. Unix 도메인 소켓의 디렉토리로 사용됩니다.
-p포트--포트=포트인터넷 TCP/IP 포트 또는 로컬 Unix 도메인을 지정합니다. 서버가 수신 대기하는 소켓 파일 확장자 연결. 포트 번호는 기본적으로 5432 또는 값 의PGPORT환경 변수 (설정된 경우).
-U사용자 이름지정된 사용자로 연결
-W비밀번호 프롬프트를 강제합니다. 이런 일이 일어나야 해 서버에 비밀번호가 필요한 경우 자동으로 인증.
긴 옵션 양식은 일부 플랫폼에서만 사용할 수 있습니다.
데이터베이스 'template1'에 대한 연결이 실패했습니다.
connectDBStart() -- connect() 실패: 해당 파일이나 디렉터리가 없습니다.
포스트마스터가 로컬에서 실행 중입니까?
Unix 소켓 '/tmp/.s.PGSQL.5432'에서 연결을 허용합니까?
pg_dump다음에 첨부할 수 없습니다. 지정된 호스트 및 포트의 PostgreSQL 서버. 당신이 이 메시지를 보고 서버가 다음에서 실행되고 있는지 확인하세요. 적절한 호스트와 적절한 포트를 지정했는지 확인하세요.
참고: pg_dump내부적으로 실행선택문장. 실행에 문제가 있는 경우pg_dump, 할 수 있는지 확인하세요 예를 들어 다음을 사용하여 데이터베이스에서 정보를 선택합니다.psql.
설치에 템플릿에 로컬 추가 사항이 있는 경우1 토토 캔의 출력을 복원할 때 주의하세요.pg_dump완전히 비어있는 데이터베이스로; 그렇지 않으면 중복으로 인해 오류가 발생할 가능성이 높습니다. 추가된 객체의 정의. 빈 데이터베이스를 만들려면 로컬 추가 없이 template1이 아닌 template0에서 복사합니다. 예를 들면:
템플릿 template0을 사용하여 foo 토토 캔 생성;
pg_dump몇 가지 있음 제한사항:
단일 테이블을 덤프하거나 일반 텍스트로 덤프할 때,pg_dump큰 개체를 처리하지 않습니다. 대형 객체는 다음 중 하나를 사용하여 전체적으로 덤프해야 합니다. 바이너리 아카이브 형식입니다.
데이터 전용 덤프를 수행할 때,pg_dump비활성화하는 쿼리를 내보냅니다. 데이터 및 쿼리를 삽입하기 전에 사용자 테이블에서 트리거 데이터가 삽입된 후 다시 활성화하려면 만약 복원이 중간에 중지되면 시스템 카탈로그가 잘못된 상태로 방치되었습니다.
tar 아카이브의 구성원은 8GB 미만의 크기로 제한됩니다. (이것은 tar 파일 형식의 고유한 제한 사항입니다.) 따라서 텍스트 형식인 경우에는 이 형식을 사용할 수 없습니다. 테이블 표현이 해당 크기를 초과합니다. 전체 크기 tar 아카이브 및 기타 출력 형식은 제한되지 않습니다. 운영 체제에 의한 경우는 제외됩니다.