PG_RESTORE

PG_RESTORE - 복원PostgreSQL|pg_dump

시놉시스

PG_RESTORE [Connection-Option...] [옵션...] [filename]

설명

PG_RESTOREaPostgreSQL|pg_dump텍스트가 아닌 형식 중 하나에서. 윈 토토를 저장 당시 상태로 재구성하는 데 필요한 명령을 발행합니다.PG_RESTORE복원 된 내용에 대해 선택적이거나 복원되기 전에 항목을 재정렬하기도합니다. 아카이브 파일은 아키텍처 전체에서 휴대 할 수 있도록 설계되었습니다.

PG_RESTORE두 모드로 작동 할 수 있습니다. 윈 토토 이름이 지정된 경우PG_RESTORE해당 윈 토토에 연결하고 아카이브 내용을 윈 토토로 직접 복원합니다. 그렇지 않으면 윈 토토를 재건하는 데 필요한 SQL 명령이 포함 된 스크립트가 작성되어 파일 또는 방아쇠준 출력에 작성됩니다.pg_dump. 따라서 출력을 제어하는 ​​옵션 중 일부는와 유사합니다.pg_dump옵션.

분명히,PG_RESTORE아카이브 파일에없는 정보를 복원 할 수 없습니다. 예를 들어, 아카이브가를 사용하여 만들어진 경우덤프 데이터로삽입명령옵션,PG_RESTORE를 사용하여 데이터를로드 할 수 없습니다copy진술.

옵션

PG_RESTORE다음 명령 줄 인수를 수락합니다.

filename

복원 할 아카이브 파일 (또는 디렉토리 형식 아카이브의 디렉토리)의 위치를 ​​지정합니다. 지정되지 않으면 방아쇠준 입력이 사용됩니다.

-a
-데이터 전용

스키마가 아닌 데이터 만 복원합니다 (데이터 정의). 아카이브에있는 경우 테이블 데이터, 큰 객체 및 시퀀스 값이 복원됩니다.

이 옵션은 유사하지만 역사적 이유는 동일하지 않으며 지정합니다-섹션 = 데이터.

-c
-Clean

데이터베이스 개체를 복원하기 전에 명령을 rection드롭복원 될 모든 객체. 이 옵션은 기존 데이터베이스를 덮어 쓰는 데 유용합니다.-if-Exists또한 지정되어 있습니다.

-c
-크리징

윈 토토를 복원하기 전에 윈 토토를 만듭니다. 만약에-Clean연결하기 전에 대상 윈 토토를 지정하고 삭제하고 재현합니다.

with-크리징, PG_RESTORE또한 윈 토토의 의견을 복원 하고이 윈 토토에 특정한 구성 변수 설정, 즉윈 토토 변경 ... 세트 ...and윈 토토에서 ... 윈 토토 ... 세트 ...이 데이터베이스를 언급하는 명령. 데이터베이스 자체에 대한 액세스 권한도 복원되지 않는 한---- 아카클지정되어 있습니다.

이 옵션이 사용되면 이름이 지정된 데이터베이스-d초기를 발행하는 데만 사용됩니다DROP DATABASEand윈 토토 생성명령. 모든 데이터는 아카이브에 나타나는 데이터베이스 이름으로 복원됩니다.

-ddbname
-dbname =dbname

윈 토토에 연결dbname윈 토토로 직접 복원하십시오. 그만큼dbnamea연결 문자열. 그렇다면 연결 문자열 매개 변수는 충돌하는 명령 줄 옵션을 무시합니다.

-e
--exit-on-error

종료 SQL 명령을 데이터베이스에 전송하는 동안 오류가 발생하면 종료합니다. 기본값은 복원 종료시 계속하고 오류 수를 방아쇠시하는 것입니다.

-ffilename
-파일 =filename

생성 된 스크립트 또는 사용 시점에 출력 파일을 지정하십시오-l. 사용-forstdout.

-필터 =filename

복원에서 제외되거나 포함 된 객체의 패턴을 읽을 수있는 파일 이름을 지정합니다. 패턴은와 같은 규칙에 따라 해석됩니다.-n/--- 스키마스키마에 개체 포함,-n/--exclude-schema스키마에서 개체 제외,-p/-기능명명 된 기능을 복원하려면-i/-인덱스지수를 복원하려면-t/-타이블명명 된 테이블 또는 복원 용-t/-트리거트리거 복원. 에서 읽으려면Stdin, 사용-파일 이름으로. 그만큼-필터옵션을 개체를 포함 시키거나 제외하기위한 위의 나열된 옵션과 함께 옵션을 지정할 수 있으며 여러 필터 파일에 대해 두 번 이상 지정할 수도 있습니다.

파일에는 다음 형식으로 행당 하나의 데이터베이스 패턴을 나열합니다.

포함 | 제외 function |패턴

첫 번째 키워드는 패턴과 일치하는 개체가 포함되어 있는지 또는 제외 될지 여부를 지정합니다. 두 번째 키워드는 패턴을 사용하여 필터링 할 객체 유형을 지정합니다.

  • 기능: 함수,-p/-기능옵션. 이 키워드는와 함께 만 사용할 수 있습니다.포함키워드.

  • index: 인덱스,처럼 작동합니다-i/-인덱스옵션. 이 키워드는와 함께 만 사용할 수 있습니다.포함키워드.

  • 스키마: Schemas는처럼 작동합니다.-n/--- 스키마and-n/--exclude-schema옵션.

  • 테이블: 테이블,처럼 작동합니다-t/-타이블옵션. 이 키워드는와 함께 만 사용할 수 있습니다.포함키워드.

  • 트리거: 트리거,-t/-트리거옵션. 이 키워드는와 함께 만 사용할 수 있습니다.포함키워드.

로 시작하는 선#주석으로 간주되고 무시됩니다. 객체 패턴 행 후에도 주석을 배치 할 수 있습니다.패턴패턴으로 인용하는 방법.

-f형식
-format =형식

아카이브의 형식을 지정합니다. 이후 형식을 지정할 필요는 없습니다.PG_RESTORE형식을 자동으로 결정합니다. 지정된 경우 다음 중 하나 일 수 있습니다.

c
Custom

아카이브는의 사용자 정의 형식입니다.pg_dump.

d
디렉토리

아카이브는 디렉토리 아카이브입니다.

t
타르

아카이브는 A입니다.타르아카이브.

-iindex
-index =index

명명 된 색인의 정의 복원. 여러 스키마 |가 다중로 지정 될 수 있습니다-i스위치.

-jJOBS 번호
-jobs =JOBS 번호

가장 시간이 많이 걸리는 단계를 실행PG_RESTORE- 데이터를로드하거나 스키마 |를 생성하거나 제약 조건을 생성하는 것 - 동시에 최대JOBS 번호동시 세션. 이 옵션은 대형 데이터베이스를 멀티 프로세서 시스템에서 실행하는 서버로 복원하는 시간을 극적으로 줄일 수 있습니다.

각 작업은 운영 체제에 따라 하나의 프로세스 또는 하나의 스레드이며 서버와 별도의 연결을 사용합니다.

이 옵션의 최적 값은 서버, 클라이언트 및 네트워크의 하드웨어 설정에 따라 다릅니다. CPU 코어 수와 디스크 설정이 포함됩니다.

이 옵션에서는 사용자 정의 및 디렉토리 아카이브 형식 만 지원됩니다. 입력은 일반 파일 또는 디렉토리 여야합니다 (예 : 파이프 또는 방아쇠준 입력이 아님).--- 단일 전환.

-l
--- list

아카이브의 목차를 나열하십시오. 이 작업의 출력은에 대한 입력으로 사용할 수 있습니다.-l옵션. 와 같은 스위치를 필터링하는 경우-n또는-t-l, 그들은 나열된 항목을 제한합니다.

-lList-File
--use-list =List-File

나열된 아카이브 요소 만 복원합니다List-File, 파일에 방아쇠시된 순서대로 복원하십시오. 와 같은 스위치를 필터링하는 경우-n또는-t-l, 복원 된 항목을 더 제한합니다.

List-File일반적으로 이전의 출력을 편집하여 생성됩니다-l작동. 라인을 이동하거나 제거 할 수 있으며 세미콜론을 배치하여 댓글을 달 수 있습니다 (;) 라인의 시작시. 예제는 아래를 참조하십시오.

-n스키마
--- 스키마 =스키마

명명 된 스키마에있는 객체 만 복원합니다. 다중 스키마를 여러 개로 지정할 수 있습니다-n스위치. 이것은와 결합 될 수 있습니다.-t특정 테이블 만 복원하는 옵션.

-n스키마
--exclude-schema =스키마

명명 된 스키마에있는 개체를 복원하지 마십시오. 제외 될 다중 스키마는 다중로 지정 될 수 있습니다-n스위치.

둘 다-nand-n동일한 스키마 이름에 대해 제공됩니다.-n스위치 승리 및 스키마는 제외됩니다.

-o
---- 소유자

원래 데이터베이스와 일치하도록 객체의 소유권을 설정하도록 명령을 출력하지 마십시오. 기본적으로PG_RESTORE문제Alter Owner또는세션 승인 설정생성 된 스키마 요소의 소유권을 설정하기위한 진술. 데이터베이스에 대한 초기 연결이 SuperUser (또는 스크립트의 모든 객체를 소유 한 동일한 사용자)에 의해 작성되지 않는 한이 진술은 실패합니다.-o, 모든 사용자 이름은 초기 연결에 사용될 수 있으며이 사용자는 생성 된 모든 객체를 소유합니다.

-pfunction-name (Argtype [, ...])
-기능 =function-name (Argtype [, ...])

명명 된 함수 만 복원하십시오. 덤프 파일의 내용 테이블에 나타나는대로 함수 이름과 인수를 정확하게 철자하십시오.-p스위치.

-r
-no-reconnect

이 옵션은 더 이상 사용되지 않지만 여전히 거꾸로 호환성으로 받아 들여지고 있습니다.

-s
--- 스키마 전용

스키마 항목이 아카이브에있는 정도까지 데이터가 아닌 스키마 (데이터 정의) 만 복원합니다.

이 옵션은의 역수입니다.-데이터 전용. 그것은 비슷하지만 역사적 이유와 동일하지 않은 이유는 지정-섹션 = 사전 데이터-섹션 = post-data.

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

-s사용자 이름
--- 서퍼 루셔 =사용자 이름

트리거를 비활성화 할 때 사용할 슈퍼 사용자 사용자 이름을 지정하십시오. 이것은 만 관련이 있습니다.-disable-triggers사용됩니다.

-t테이블
---table =테이블

명명 된 테이블의 정의 및/또는 데이터를 복원합니다. 이를 위해테이블뷰, 구체화 된 뷰, 시퀀스 및 이물질 테이블이 포함되어 있습니다. 여러 테이블을 다중 쓰면 선택할 수 있습니다-t스위치. 이 옵션은와 결합 할 수 있습니다.-n특정 스키마에서 표를 지정하는 옵션

Note

언제-t지정되어 있습니다.PG_RESTORE선택한 테이블이 의존 할 수있는 다른 데이터베이스 개체를 복원하려고 시도하지 않습니다. 따라서 특정 테이블 복원이 깨끗한 데이터베이스에 성공할 것이라는 보장은 없습니다.

Note

이 깃발은와 동일하게 행동하지 않습니다.-t플래그pg_dump. 현재 와일드 카드 일치에 대한 조항은 없습니다PG_RESTORE, 또는 그 안에 스키마 이름을 포함시킬 수 없거나-t. 그리고, 동안pg_dump's-t플래그는 선택한 테이블의 자회사 객체 (예 : 스키마 |)를 덤프합니다.PG_RESTORE's-t플래그는 그러한 자회사 개체가 포함되어 있지 않습니다.

Note

이전 버전PostgreSQL9.6,이 플래그는 다른 유형의 관계가 아닌 테이블 만 일치했습니다.

-t트리거
--trigger =트리거

이름이 지정된 트리거 만 복원합니다. 다중 트리거를 여러 개로 지정할 수 있습니다-t스위치.

-v
-Versbose

정점 모드를 지정합니다. 이로 인해PG_RESTORE상세한 객체 주석을 출력하고 출력 파일로 시작/중지 시간을 시작하고 방아쇠준 오류로 메시지를 진행합니다. 옵션을 반복하면 방아쇠준 오류에 추가 디버그 레벨 메시지가 방아쇠시됩니다.

-v
-버전

인쇄PG_RESTORE버전 및 종료.

-x
--불안정
---- 아카클

액세스 권한의 복원 방지 (Grant/Revoke 명령).

-1
--- 단일 전환

복원을 단일 트랜잭션으로 실행합니다 (즉, 방출 명령을 래핑시작/커밋). 이를 통해 모든 명령이 성공적으로 완료되거나 변경 사항이 적용되지 않도록합니다.--exit-on-error.

-disable-triggers

이 옵션은 데이터 전용 복원을 수행 할 때만 관련이 있습니다. 지시PG_RESTORE데이터가 복원되는 동안 대상 테이블의 트리거를 일시적으로 비활성화하기 위해 명령을 실행하려면. 데이터 복원 중에 호출하고 싶지 않은 테이블에 참조 무결성 검사 또는 기타 트리거가있는 경우

현재, 명령은-disable-triggers슈퍼 서서로 수행해야합니다. 그래서 당신은 또한 superuser 이름을 지정해야합니다.-s또는 바람직하게는 runPG_RESTOREasPostgreSQLSuperUser.

-enable-row-security

이 옵션은 행 보안이있는 테이블의 내용을 복원 할 때만 관련이 있습니다. 기본적으로PG_RESTOREsetrow_securityto Off, 모든 데이터가 테이블로 복원되도록합니다. 사용자가 ROW 보안을 우회하기에 충분한 권한이 없으면 오류가 발생합니다.PG_RESTOREsetrow_security대신 ON 대신 사용자가 행 보안을 활성화하여 테이블의 내용을 복원하려고 시도 할 수 있습니다. 사용자가 덤프에서 행을 테이블에 삽입 할 권리가 없으면 여전히 실패 할 수 있습니다.

이 옵션은 현재 덤프도 필요합니다.삽입형식, as복사행 보안을 지원하지 않습니다.

-if-Exists

use드롭 ... 존재하는 경우객체를 삭제하는 명령-Clean모드. 이것은 억제존재하지 않습니다그렇지 않으면보고 될 수있는 오류. 이 옵션은이 아니라면 유효하지 않습니다.-Clean또한 지정되어 있습니다.

-no-comments

아카이브에 포함되어 있어도 주석을 복원하기 위해 명령을 출력하지 마십시오.

--나사-파일 테이블

기본적으로 테이블의 생성 명령이 실패하더라도 테이블 데이터가 복원됩니다 (예 : 이미 존재하기 때문에). 이 옵션을 사용하면 이러한 테이블의 데이터가 건너 뜁니다.PostgreSQL예를 들어Postgis이미 대상 데이터베이스에로드 될 수 있습니다. 이 옵션을 지정하면 중복 또는 쓸모없는 데이터가로드되는 것을 방지합니다.

이 옵션은 SQL 스크립트 출력을 생성 할 때가 아니라 데이터베이스로 직접 복원 할 때만 효과적입니다.

--공개

아카이브에 포함 된 경우에도 출판물을 복원하기 위해 명령을 출력하지 마십시오.

-No-Security-Labels

아카이브에 포함 된 경우에도 보안 레이블을 복원하기 위해 명령을 출력하지 마십시오.

--서브 스크립트

아카이브에 포함 된 경우에도 구독을 복원하기 위해 명령을 출력하지 마십시오.

--테이블 액세스-메드

테이블 액세스 방법을 선택하기 위해 명령을 출력하지 마십시오. 이 옵션을 사용하면 복원 중에 테이블 액세스 방법이 기본값 인 모든 객체가 생성됩니다.

---- 타블 스페이스

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

-섹션 =SectionName

명명 된 섹션 만 복원하십시오. 섹션 이름은입니다.사전 데이터, 데이터또는Post-Data. 이 옵션은 여러 섹션을 선택하기 위해 두 번 이상 지정할 수 있습니다.

데이터 섹션에는 실제 테이블 데이터와 대량 관측 정의가 포함되어 있습니다. 데이터 포스트 데이터 항목은 검증 된 확인 제약 이외의 스키마 |, 트리거, 규칙 및 제약 조건으로 구성됩니다.

-스트릭-나프

각 스키마를 요구합니다 (-n/--- 스키마) 및 표 (-t/-타이블30159_30222

-Transaction-size =N

복원을 일련의 트랜잭션으로 실행하고, 각각.N데이터베이스 개체. 이 옵션은 암시합니다--exit-on-error.

-Transaction-Size기본 동작 (SQL 명령 당 하나의 트랜잭션)과 사이의 중간 선택을 제공합니다.-1/--- 단일 전환(모든 복원 된 개체에 대한 하나의 트랜잭션). 하는 동안--- 단일 전환오버 헤드가 가장 적기 때문에 트랜잭션이 각 복원 된 개체를 잠금하여 서버의 잠금 테이블 공간을 소진하기 때문에 큰 데이터베이스에 비현실적 일 수 있습니다. 사용-Transaction-Size크기가 수천 개가있는 객체는 거의 동일한 성능 이점을 제공하는 동안 필요한 잠금 테이블 공간의 양을 캡핑합니다.

-서지 세션 증명

출력 SQL-Standard세션 승인 설정대신 명령Alter Owner객체 소유권을 결정하는 명령. 이로 인해 덤프가 더 많은 방아쇠준과 호환되지만 덤프의 물체의 이력에 따라 제대로 복원되지 않을 수 있습니다.

-?
-help

도움말 표시PG_RESTORE명령 줄 인수 및 종료

PG_RESTORE연결 매개 변수에 대한 다음 명령 줄 인수를 수락합니다 :

-hhost
-host =host

서버가 실행중인 시스템의 호스트 이름을 지정합니다. 값이 슬래시로 시작하면 Unix 도메인 소켓의 디렉토리로 사용됩니다.PGHOST환경 변수, 설정하면 UNIX 도메인 소켓 연결이 시도됩니다.

-p포트
-포트 =포트

서버가 연결을 듣고있는 TCP 포트 또는 로컬 UNIX 도메인 소켓 파일 확장자를 지정합니다. 기본값pgport환경 변수, 설정된 경우 또는 컴파일 된 기본값

-u사용자 이름
--username =사용자 이름

사용자 이름으로 연결합니다.

-w
-no-password

비밀번호 프롬프트를 발행하지 마십시오. 서버에 비밀번호 인증이 필요하고 A와 같은 다른 방법으로 암호를 사용할 수없는 경우.pgpass파일, 연결 시도가 실패합니다. 이 옵션은 비밀번호를 입력 할 사용자가없는 배치 작업 및 스크립트에 유용 할 수 있습니다.

-w
--password

ForcePG_RESTORE윈 토토에 연결하기 전에 비밀번호를 신속하게하려면

이 옵션은 결코 필수적이지 않습니다.PG_RESTORE서버가 암호 인증을 요구하는 경우 비밀번호를 자동으로 프롬프트합니다. 하지만,PG_RESTORE서버가 비밀번호를 원한다는 것을 알아내는 연결 시도를 낭비합니다. 어떤 경우에는 입력 할 가치가 있습니다-w추가 연결 시도를 피하려면

-role =rolename

복원을 수행하는 데 사용할 역할 이름을 지정합니다. 이 옵션은PG_RESTOREa를 발행하려면역할 설정 rolename윈 토토에 연결 한 후 명령. 인증 된 사용자 (에 의해 지정 될 때 유용합니다.-u) 필요한 특권 부족PG_RESTORE이지만 필요한 권리로 역할로 전환 할 수 있습니다. 일부 설치에는 슈퍼 사용자로 직접 로그인하는 정책이 있으며이 옵션을 사용하여 정책을 위반하지 않고 복원을 수행 할 수 있습니다.

환경

PGHOST
pgoptions
pgport
PGUSER

기본 연결 매개 변수

pg_color

진단 메시지에서 색상을 사용할지 여부를 지정합니다. 가능한 값은항상, autoand절대.

이 유틸리티, 대부분의 다른 유틸리티PostgreSQL유틸리티는 또한 지원하는 환경 변수를 사용합니다libpq(참조PostgreSQL : 문서 : 17 : 32.15. 환경 젠 토토). 그러나 읽지 않습니다pgdatabase데이터베이스 이름이 제공되지 않은 경우.

진단

직접 데이터베이스 연결이를 사용하여 지정된 경우-d옵션,PG_RESTORE내부 실행SQL진술. 실행하는 데 문제가있는 경우PG_RESTORE, 예를 들어를 사용하여 데이터베이스에서 정보를 선택할 수 있는지 확인하십시오.PSQL. 또한 기본 연결 설정 및에서 사용하는 모든 기본 연결 설정 및 환경 변수libpq프론트 엔드 라이브러리가 적용됩니다.

노트

설치에 로컬 추가가있는 경우Template1데이터베이스,의 출력을로드하도록주의하십시오.PG_RESTORE진정으로 빈 데이터베이스로; 그렇지 않으면 추가 된 객체의 중복 정의로 인해 오류가 발생할 수 있습니다.Template0아님Template1, 예 :

템플릿 템플릿을 사용하여 데이터베이스 foo 생성;

의 한계PG_RESTORE아래에 자세히 설명되어 있습니다.

  • 기존 테이블 및 옵션으로 데이터를 복원 할 때-disable-triggers사용됩니다.PG_RESTORE데이터를 삽입하기 전에 사용자 테이블의 트리거를 비활성화하도록 명령을 방출 한 다음 데이터를 삽입 한 후 명령을 다시 활성화합니다. 복원이 중간에 정지되면 시스템 카탈로그가 잘못된 상태로 남을 수 있습니다.

  • PG_RESTORE큰 물체를 선택적으로 복원 할 수 없습니다. 예를 들어, 특정 테이블에 대한 것만.-l, -t또는 기타 옵션.

참조pg_dump제한 사항에 대한 자세한 내용pg_dump.

일단 복원되면 실행하는 것이 현명합니다분석각 복원 된 테이블에서 Optimizer에 유용한 통계가 있습니다. 보다섹션 24.1.3and섹션 24.1.6자세한 내용은

예제

우리가라는 데이터베이스를 버렸다고 가정합니다.MyDB사용자 정의 덤프 파일로 :

$ pg_dump -fc mydb> db.dump

데이터베이스를 삭제하고 덤프에서 재현하려면 :

$ dropdb mydb
$ PG_RESTORE -C -D Postgres db.dump

에 명명 된 데이터베이스-d스위치는 클러스터에 존재하는 모든 데이터베이스 일 수 있습니다.PG_RESTORE|윈 토토 생성명령MyDB. 와 함께-c, 데이터는 항상 덤프 파일에 나타나는 데이터베이스 이름으로 복원됩니다.

덤프를 새로운 데이터베이스로 복원하려면newdb:

$ createb -t template0 newdb
$ PG_RESTORE -D NEWDB DB.DUMP

우리가 사용하지 않는 통지-c대신 복원 할 데이터베이스에 직접 연결하십시오. 또한 새 데이터베이스를 복제합니다.Template0아님Template1, 초기에 비어 있는지 확인하려면

데이터베이스 항목을 재정렬하려면 먼저 아카이브의 목차를 버려야합니다.

$ PG_RESTORE -L DB.DUMP> DB.LIST

목록 파일은 헤더와 각 항목의 한 줄로 구성됩니다 (예 :

;

세미콜론은 주석을 시작하고 줄의 시작 부분에서 숫자는 각 항목에 할당 된 내부 아카이브 ID를 나타냅니다.

파일의 줄은 주석, 삭제 및 재정렬 할 수 있습니다. 예를 들어:

10; 145433 테이블 map_resolutions postgres

입력으로 사용될 수 있습니다PG_RESTORE그리고 그 순서대로 항목 10과 6 만 복원 할 것입니다 :

$ PG_RESTORE -L DB.LIST DB.DUMP

정정 제출

문서에 올바른 것이 없다면 일치하지 않습니다.이 양식문서 문제를보고하려면