토토 - 복원 Apostgresql|pg_dump
토토
[Connection-Option
...] [옵션
...] [filename
]
토토a 복원의 유틸리티입니다.postgresql|pg_dump텍스트가 아닌 형식 중 하나입니다. 토토를 저장 당시 상태로 재구성하는 데 필요한 명령을 발행합니다.토토복원 된 내용에 대해 선택적이거나 복원되기 전에 항목을 재정렬하기도합니다. 아카이브 파일은 아키텍처 전체에서 휴대 할 수 있도록 설계되었습니다.
토토두 가지 모드로 작동 할 수 있습니다. 토토 이름이 지정된 경우토토해당 토토에 연결하고 아카이브 내용을 토토로 직접 복원합니다. 그렇지 않으면 토토를 재건하는 데 필요한 SQL 명령이 포함 된 스크립트가 작성되어 파일 또는 표준 출력에 작성됩니다.pg_dump. 따라서 출력을 제어하는 옵션 중 일부는와 유사합니다.pg_dump옵션.
분명히토토아카이브 파일에없는 정보를 복원 할 수 없습니다. 예를 들어, 아카이브가를 사용하여 만들어진 경우“덤프 데이터로삽입
명령”옵션,토토를 사용하여 데이터를로드 할 수 없습니다COPY
진술.
토토다음 명령 줄 인수를 수락합니다.
filename
복원 할 아카이브 파일 (또는 디렉토리 형식 아카이브의 디렉토리)의 위치를 지정합니다. 지정되지 않으면 표준 입력이 사용됩니다.
-a
-데이터 전용
스키마가 아닌 데이터 만 복원합니다 (데이터 정의). 아카이브에있는 경우 테이블 데이터, 큰 객체 및 시퀀스 값이 복원됩니다.
이 옵션은 유사하지만 역사적 이유는 동일하지 않으며 지정합니다-섹션 = 데이터
.
-c
-Clean
데이터베이스 개체를 복원하기 전에 명령을 발행드롭
복원 될 모든 객체. 이 옵션은 기존 데이터베이스를 덮어 쓰는 데 유용합니다.-If-Exists
지정되어 있습니다.
-c
-Create
토토를 복원하기 전에 토토를 만듭니다. 만약에-Clean
에 연결하기 전에 대상 토토를 지정하고, 삭제하고, 재현합니다.
with-크리징
,토토또한 토토의 의견을 복원 하고이 토토에 특정한 구성 변수 설정, 즉토토 변경 ... 세트 ...
and토토의 ALTER 역할 ... 토토 ... 세트 ...
이 데이터베이스를 언급하는 명령. 데이터베이스 자체에 대한 액세스 권한도 복원되지 않는 한---- 아카클
지정되어 있습니다.
이 옵션이 사용되면 이름이 지정된 데이터베이스-d
초기를 발행하는 데만 사용됩니다DROP DATABASE
and토토 생성
명령. 모든 데이터는 아카이브에 나타나는 데이터베이스 이름으로 복원됩니다.
-ddbname
-dbname =dbname
토토에 연결dbname
토토로 직접 복원하십시오. 그만큼dbname
|연결 문자열. 그렇다면 연결 문자열 매개 변수는 충돌하는 명령 줄 옵션을 무시합니다.
-e
--exit-on-error
데이터베이스에 SQL 명령을 보내는 동안 오류가 발생하면 종료합니다. 기본값은 복원 종료시 계속하고 오류 수를 표시하는 것입니다.
-ffilename
-파일 =filename
생성 된 스크립트 또는 사용 시점에 출력 파일을 지정하십시오-l
. 사용-
forStdout.
-f형식
-format =형식
아카이브의 형식을 지정합니다. 이후 형식을 지정할 필요는 없습니다.토토형식을 자동으로 결정합니다. 지정된 경우 다음 중 하나 일 수 있습니다.
C
Custom
아카이브는의 사용자 정의 형식입니다.pg_dump.
d
디렉토리
아카이브는 디렉토리 아카이브입니다.
t
타르
아카이브는 A입니다.타르
아카이브.
-iindex
-index =index
명명 된 인덱스의 정의 복원. 여러 인덱스가 다중로 지정 될 수 있습니다-i
스위치.
-jJOBS 번호
-jobs =JOBS 번호
가장 시간이 많이 걸리는 단계토토- 데이터를로드하거나 인덱스를 생성하거나 제약 조건을 생성하는 것 - 동시에 최대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
스위치.
둘 다-n
and-n
동일한 스키마 이름에 대해 제공됩니다.-n
스위치 승리 및 스키마는 제외됩니다.
-o
---소유자
원래 데이터베이스와 일치하도록 객체의 소유권을 설정하도록 명령을 출력하지 마십시오. 기본적으로토토문제Alter Owner
또는세션 승인 설정
생성 된 스키마 요소의 소유권을 설정하기위한 진술. 데이터베이스에 대한 초기 연결이 SuperUser (또는 스크립트의 모든 객체를 소유 한 동일한 사용자)에 의해 작성되지 않는 한이 진술은 실패합니다.-o
, 모든 사용자 이름은 초기 연결에 사용될 수 있으며이 사용자는 생성 된 모든 객체를 소유합니다.
-pfunction-name (Argtype [, ...])
-기능 =function-name (Argtype [, ...])
명명 된 함수 만 복원하십시오. 덤프 파일의 내용 테이블에 나타나는대로 함수 이름과 인수를 정확하게 철자하십시오.-p
스위치.
-r
-no-reconnect
이 옵션은 더 이상 사용되지 않지만 여전히 거꾸로 호환되기 위해 허용됩니다.
-s
--- 스키마 전용
스키마 항목이 아카이브에있는 정도까지 데이터가 아닌 스키마 (데이터 정의) 만 복원합니다.
이 옵션은의 역수입니다.-데이터 전용
. 그것은 비슷하지만 역사적 이유와 동일하지 않은 이유는 지정-섹션 = 사전 데이터-섹션 = post-data
.
(이것을와 혼동하지 마십시오.--- 스키마
단어를 사용하는 옵션“스키마”다른 의미에서.)
-s사용자 이름
--- 서퍼 루서 =사용자 이름
트리거를 비활성화 할 때 사용할 슈퍼 사용자 사용자 이름을 지정하십시오. 이것은 만 관련이 있습니다.-disable-triggers
사용됩니다.
-t테이블
---table =테이블
명명 된 테이블의 정의 및/또는 데이터를 복원합니다. 이를 위해“테이블”뷰, 구체화 된 뷰, 시퀀스 및 이물 테이블이 포함되어 있습니다. 여러 테이블을 다중 쓰면 선택할 수 있습니다-t
스위치. 이 옵션은와 결합 할 수 있습니다.-n
특정 스키마에서 표를 지정하는 옵션
when-t
지정되어 있습니다.토토선택한 테이블이 의존 할 수있는 다른 데이터베이스 개체를 복원하려고 시도하지 않습니다. 따라서 특정 테이블 복원이 깨끗한 데이터베이스에 성공할 것이라는 보장은 없습니다.
이 플래그는와 동일하게 작동하지 않습니다.-t
플래그pg_dump. 현재 와일드 카드 일치에 대한 조항은 없습니다토토, 그 안에 스키마 이름을 포함 할 수 없거나-t
. 그리고, 동안pg_dump's-t
플래그는 선택한 테이블의 자회사 객체 (예 : 인덱스)를 덤프합니다.토토's-t
플래그는 그러한 자회사 개체가 포함되어 있지 않습니다.
이전 버전PostgreSQL9.6,이 플래그는 다른 유형의 관계가 아닌 테이블 만 일치했습니다.
-t트리거
--trigger =트리거
이름이 지정된 트리거 만 복원합니다. 다중 트리거를 여러 개로 지정할 수 있습니다-t
스위치.
-v
-VERBOSE
정점 모드를 지정합니다. 이로 인해토토상세한 객체 주석을 출력하고 출력 파일의 시작/중지 시간을 표준 오류로 진행합니다. 옵션을 반복하면 표준 오류에 추가 디버그 레벨 메시지가 표시됩니다.
-v
-버전
인쇄토토버전 및 종료.
-x
--불안정
---- 아카클
액세스 권한의 복원 방지 (Grant/Revoke 명령).
-1
--- 싱글 전환
복원을 단일 트랜잭션으로 실행합니다 (즉, 방출 명령을 래핑시작
/커밋
). 이를 통해 모든 명령이 성공적으로 완료되거나 변경 사항이 적용되지 않도록합니다.--exit-on-error
.
-disable-triggers
이 옵션은 데이터 전용 복원을 수행 할 때만 관련이 있습니다. 지시토토데이터가 복원되는 동안 대상 테이블의 트리거를 일시적으로 비활성화하기 위해 명령을 실행하려면. 데이터 복원 중에 호출하고 싶지 않은 테이블에 참조 무결성 검사 또는 기타 트리거가있는 경우
현재, 명령은-disable-triggers
슈퍼 사용자로 수행해야합니다. 그래서 당신은 또한 superuser 이름을 지정해야합니다.-s
또는 바람직하게는 run토토asPostgreSQLSuperUser.
-enable-row-security
이 옵션은 행 보안이있는 테이블의 내용을 복원 할 때만 관련이 있습니다. 기본적으로토토설정row_securityto Off, 모든 데이터가 표에 복원되도록합니다. 사용자가 ROW 보안을 우회하기에 충분한 권한이 없으면 오류가 발생합니다.토토setrow_security대신 ON 대신 사용자가 행 보안을 활성화하여 테이블의 내용을 복원하려고 시도 할 수 있습니다. 사용자가 덤프에서 행을 테이블에 삽입 할 권리가 없으면 여전히 실패 할 수 있습니다.
이 옵션은 현재 덤프도 필요합니다.삽입
형식, asCOPY
행 보안을 지원하지 않습니다.
-IF-Exists
use드롭 ... 존재하는 경우
객체를 삭제하는 명령-Clean
모드. 이것은 억제“존재하지 않습니다”그렇지 않으면보고 될 수있는 오류. 이 옵션은이 아니라면 유효하지 않습니다.-Clean
지정되어 있습니다.
-no-comments
아카이브에 포함 된 경우에도 주석을 복원하기 위해 명령을 출력하지 마십시오.
--나사-파일 테이블
기본적으로 테이블의 생성 명령이 실패하더라도 테이블 데이터가 복원됩니다 (예 : 이미 존재하기 때문에). 이 옵션을 사용하면 이러한 테이블의 데이터가 건너 뜁니다.PostgreSQL예외postgis이미 대상 데이터베이스에로드 될 수 있습니다. 이 옵션을 지정하면 중복 또는 쓸모없는 데이터가로드되는 것을 방지합니다.
이 옵션은 SQL 스크립트 출력을 생성 할 때가 아니라 데이터베이스로 직접 복원 할 때만 효과적입니다.
--공개
아카이브에 포함되어 있어도 출판물을 복원하기 위해 명령을 출력하지 마십시오.
-No-Security-Labels
아카이브에 포함 된 경우에도 보안 레이블을 복원하기 위해 명령을 출력하지 마십시오.
---- 서브 스크립트
아카이브에 포함 된 경우에도 구독을 복원하기 위해 명령을 출력하지 마십시오.
--테이블 액세스-메드
테이블 액세스 방법을 선택하기 위해 명령을 출력하지 마십시오. 이 옵션을 사용하면 모든 객체가 복원 중에 기본값 인 액세스 방법으로 생성됩니다.
---- 타블 스페이스
테이블 스페이스를 선택하려면 명령을 출력하지 마십시오. 이 옵션을 사용하면 복원 중에 테이블 스페이스가 기본값 인 모든 객체가 생성됩니다.
-섹션 =SectionName
명명 된 섹션 만 복원하십시오. 섹션 이름은입니다.Pre-Data
,데이터
또는Post-Data
. 이 옵션은 여러 섹션을 선택하기 위해 두 번 이상 지정할 수 있습니다.
데이터 섹션에는 실제 테이블 데이터와 대량 관측 정의가 포함되어 있습니다. 데이터 포스트 데이터 항목은 검증 된 확인 제약 이외의 인덱스, 트리거, 규칙 및 제약 조건으로 구성됩니다.
--- 스트릭-나프
각 스키마를 요구합니다 (-n
/--- 스키마
) 및 표 (-t
/-타이블
) 백업 파일에서 적어도 하나의 스키마/테이블 일치하는 Qualifier 일치.
-서지 세션 증명
출력 sql-standard세션 승인 설정
대신 명령Alter Owner
객체 소유권을 결정하기위한 명령. 이로 인해 덤프가 더 많은 표준과 호환되지만 덤프의 물체의 이력에 따라 제대로 복원되지 않을 수 있습니다.
-?
-헬프
도움말 쇼토토명령 줄 인수 및 종료
토토연결 매개 변수에 대한 다음 명령 줄 인수를 허용합니다.
-h호스트
-host =host
서버가 실행중인 시스템의 호스트 이름을 지정합니다. 값이 슬래시로 시작하면 Unix 도메인 소켓의 디렉토리로 사용됩니다.pghost
환경 변수, 설정하면 UNIX 도메인 소켓 연결이 시도됩니다.
-p포트
-포트 =포트
서버가 연결을 듣고있는 TCP 포트 또는 로컬 UNIX 도메인 소켓 파일 확장자를 지정합니다. 기본값pgport
환경 변수, 설정된 경우 또는 컴파일 된 기본값.
-u사용자 이름
--username =사용자 이름
사용자 이름으로 연결합니다.
-w
-no-password
비밀번호 프롬프트를 발행하지 마십시오. 서버에 비밀번호 인증이 필요하고 A와 같은 다른 방법으로 암호를 사용할 수없는 경우.pgpass
파일, 연결 시도가 실패합니다. 이 옵션은 비밀번호를 입력 할 사용자가없는 배치 작업 및 스크립트에 유용 할 수 있습니다.
-w
--password
힘토토토토에 연결하기 전에 비밀번호를 프롬프트하려면
이 옵션은 결코 필수적이지 않습니다.토토서버가 암호 인증을 요구하는 경우 비밀번호를 자동으로 프롬프트합니다. 하지만,토토서버가 암호를 원한다는 것을 알아내는 연결 시도를 낭비합니다. 어떤 경우에는 입력 할 가치가 있습니다-w
추가 연결 시도를 피하려면
-role =Rolename
복원을 수행하는 데 사용할 역할 이름을 지정합니다. 이 옵션은토토a를 발행하려면역할 설정
Rolename
토토에 연결 한 후 명령. 인증 된 사용자 (에 의해 지정 될 때 유용합니다.-u
) 필요한 특권이 부족토토그러나 필요한 권리로 역할로 전환 할 수 있습니다. 일부 설치에는 슈퍼 사용자로 직접 로그인하는 정책이 있으며이 옵션을 사용하여 정책을 위반하지 않고 복원을 수행 할 수 있습니다.
PGHOST
pgoptions
pgport
PGUSER
기본 연결 매개 변수
pg_color
진단 메시지에서 색상을 사용할지 여부를 지정합니다. 가능한 값은항상
,auto
및절대
.
이 유틸리티, 대부분의 다른 유틸리티PostgreSQL유틸리티는 또한 지원하는 환경 변수를 사용합니다libpq(참조PostgreSQL : 문서 : 16 : 34.15. 환경 토토 결과). 그러나 읽지 않습니다pgdatabase
데이터베이스 이름이 제공되지 않은 경우.
직접 데이터베이스 연결이를 사용하여 지정된 경우-d
옵션,토토내부 실행SQL진술. 실행하는 데 문제가있는 경우토토, 예를 들어를 사용하여 데이터베이스에서 정보를 선택할 수 있는지 확인하십시오.PSQL. 또한 기본 연결 설정 및에서 사용하는 모든 기본 연결 설정 및 환경 변수libpq프론트 엔드 라이브러리가 적용됩니다.
설치에 로컬 추가가있는 경우Template1
데이터베이스, 출력을로드하도록주의하십시오토토진정으로 빈 데이터베이스로; 그렇지 않으면 추가 된 객체의 중복 정의로 인해 오류가 발생할 수 있습니다.Template0
notTemplate1
, 예 :
템플릿 템플릿을 사용하여 데이터베이스 foo 생성;
의 한계토토아래에 자세히 설명되어 있습니다.
기존 테이블 및 옵션으로 데이터를 복원 할 때-disable-triggers
토토데이터를 삽입하기 전에 사용자 테이블의 트리거를 비활성화하도록 명령을 내립니다. 그런 다음 데이터가 삽입 된 후 명령을 다시 활성화합니다. 복원이 중간에 정지되면 시스템 카탈로그가 잘못된 상태로 남을 수 있습니다.
토토큰 물체를 선택적으로 복원 할 수 없습니다. 예를 들어, 특정 테이블에 대한 것만.-l
,-t
또는 기타 옵션.
참조pg_dump제한에 대한 자세한 내용은pg_dump.
일단 복원되면 실행하는 것이 현명합니다분석
각 복원 된 테이블에서 Optimizer에 유용한 통계가 있습니다. 보다섹션 25.1.3및섹션 25.1.6자세한 내용은
우리가라는 데이터베이스를 버렸다고 가정합니다.MyDB
사용자 정의 덤프 파일로 :
$
pg_dump -fc mydb db.dump
데이터베이스를 삭제하고 덤프에서 재현하려면 :
$
DropDB MyDB
$
토토 -C -D POSTGRES DB.DUMP
에 명명 된 데이터베이스-d
스위치는 클러스터에 존재하는 모든 데이터베이스 일 수 있습니다.토토|토토 생성
명령MyDB
. 와 함께-c
, 데이터는 항상 덤프 파일에 나타나는 데이터베이스 이름으로 복원됩니다.
덤프를 새로운 데이터베이스로 복원하려면newdb
:
$
createb -t template0 newdb
$
토토 -D NEWDB DB.DUMP
사용하지 않는 통지-c
대신 복원 할 데이터베이스에 직접 연결하십시오. 또한 새 데이터베이스를 복제합니다.Template0
notTemplate1
, 초기에 비어 있는지 확인하려면
데이터베이스 항목을 재정렬하려면 먼저 아카이브의 목차를 버려야합니다.
$
토토 -L DB.DUMP DB.LIST
목록 파일은 헤더와 각 항목의 한 줄로 구성됩니다 (예 :
;
세미콜론은 주석을 시작하고 줄의 시작 부분에서 숫자는 각 항목에 할당 된 내부 아카이브 ID를 나타냅니다.
파일의 줄은 주석, 삭제 및 재정렬 할 수 있습니다. 예를 들어:
10; 145433 테이블 map_resolutions postgres
입력으로 사용될 수 있습니다토토그리고 그 순서대로 항목 10과 6 만 복원합니다.
$
토토 -L DB.LIST DB.DUMP
문서에 올바르지 않은 내용이 있으면 일치하지 않습니다.이 양식문서 문제를보고하려면