토토 핫는 유틸리티입니다 a 복원postgresql데이터베이스 에서 만든 아카이브에서PostgreSQL : 문서 : 8.3 : 윈 토토텍스트가 아닌 형식 중 하나입니다. 명령을 발행합니다 데이터베이스를 상태로 재구성 할 필요가 있습니다. 그것이 구원받은 시간. 아카이브 파일도 허용토토 핫무엇이 무엇인지에 대해 선택적입니다 복원되거나 복원되기 전에 항목을 재정렬하기도합니다. 아카이브 파일은 휴대용으로 설계되었습니다 아키텍처.
토토 핫2 개로 작동 할 수 있습니다 모드. 데이터베이스 이름이 지정된 경우토토 핫해당 데이터베이스에 연결합니다 아카이브 내용을 데이터베이스로 직접 복원합니다. 그렇지 않으면, 재건하는 데 필요한 SQL 명령이 포함 된 스크립트 데이터베이스는 파일 또는 표준 출력에 작성되어 작성됩니다. 이 스크립트 출력은 일반 텍스트 출력 형식과 동일합니다. 의pg_dump. 옵션 중 일부 따라서 출력을 제어하는 것은와 유사합니다.pg_dump옵션.
분명히,토토 핫할 수 없습니다 아카이브 파일에없는 정보를 복원하십시오. 을 위한 인스턴스, 아카이브가를 사용하여 만들어진 경우"덤프 데이터 as삽입명령 "옵션,토토 핫데이터를로드 할 수 없습니다 사용COPY진술.
토토 핫다음 명령 줄 인수.
아카이브 파일의 위치를 지정합니다 복원. 지정되지 않으면 표준 입력이 사용됩니다.
스키마가 아닌 데이터 만 복원합니다 (데이터 정의).
재현하기 전에 클린 (DROP) 데이터베이스 개체 그들을.
데이터베이스를 복원하기 전에 데이터베이스를 만듭니다. (이번 옵션이 사용됩니다.-d초기를 발행하는 데만 사용됩니다데이터베이스 생성명령. 모든 데이터 표시되는 데이터베이스 이름으로 복원됩니다. 보관소.)
데이터베이스에 연결dbname로 직접 복원하십시오 데이터 베이스.
SQL을 보내는 동안 오류가 발생하면 종료합니다 데이터베이스 명령. 기본값은 계속하고 끝에 오류 수를 표시합니다. 복구.
생성 된 스크립트 또는 와 함께 사용될 때 리스팅-l. 기본 표준 출력입니다.
아카이브의 형식을 지정합니다. 필요하지 않습니다 이후 형식 지정토토 핫형식을 결정합니다 자동으로. 지정된 경우 하나 일 수 있습니다 수행원:
아카이브는 A입니다.타르아카이브.
아카이브는의 사용자 정의 형식입니다.pg_dump.
데이터베이스 버전 확인을 무시합니다.
명명 된 인덱스의 정의 복원.
아카이브의 내용을 나열하십시오. 이것의 출력 작업은에 대한 입력으로 사용할 수 있습니다.-l옵션. 필터링 스위치 인 경우 주목하십시오 와 같은-n또는-t-l, 나열된 항목을 제한합니다.
나열된 아카이브 요소 만 복원List-File를 복원하십시오 순서대로 파일에 나타납니다. IF에 유의하십시오 와 같은 필터링 스위치-n또는-t-l, 그들은 항목을 더 제한합니다 복원.
List-File보통입니다 이전의 출력을 편집하여 생성-l작동. 선을 이동하거나 제거 할 수 있습니다. 세미콜론을 배치하여 댓글을 달 수 있습니다. (;) 라인의 시작시. 보다 아래 예제는 아래에 있습니다.
명명 된 스키마에있는 객체 만 복원합니다. 이것 와 결합 할 수 있습니다.-t옵션 특정 테이블 만 복원하려면
개체의 소유권을 설정하기 위해 명령을 출력하지 마십시오. 원래 데이터베이스와 일치합니다. 기본적으로토토 핫문제Alter Owner또는세트 세션 승인소유권을 설정하기위한 진술 스키마 요소를 생성했습니다. 이 진술은 그렇지 않으면 실패 할 것입니다 데이터베이스에 대한 초기 연결은 Superuser (또는 모든 객체를 소유 한 동일한 사용자 대본). 와 함께-o, 모든 사용자 이름 초기 연결에 사용할 수 있으며이 사용자는 생성 된 모든 개체를 소유하고 있습니다.
명명 된 함수 만 복원하십시오. 철자를 조심하십시오 함수 이름과 인수가 파일의 내용 테이블 덤프.
이 옵션은 더 이상 사용되지 않지만 여전히 뒤로 허용됩니다 호환성.
데이터가 아닌 스키마 (데이터 정의) 만 복원합니다 (테이블 내용). 시퀀스 전류 값은 그렇지 않습니다 복원. (이것을와 혼동하지 마십시오.-schema옵션, 단어를 사용하는 옵션"스키마"다른 의미.)
비활성화 할 때 사용할 슈퍼 사용자 사용자 이름을 지정하십시오 트리거. 이것은 단지 관련이 있다면-disable-triggers사용됩니다.
명명 된 테이블의 정의 및/또는 데이터 복원.
이름이 지정된 트리거 만 복원합니다.
정점 모드를 지정합니다.
액세스 권한의 복원 방지 (Grant/Revoke 명령).
이 옵션은 데이터 전용을 수행 할 때만 관련이 있습니다 복원하다. 지시토토 핫명령을 실행하려면 대상 테이블에서 트리거를 일시적으로 비활성화합니다 데이터가 다시로드됩니다. 참조가있는 경우 이것을 사용하십시오 무결성 점검 또는 다른 테이블의 기타 트리거 데이터를 다시로드하는 동안 호출하고 싶지 않습니다.
현재, 명령은-disable-triggers슈퍼 유저로 수행해야합니다. 따라서의 슈퍼 유저 이름도 지정해야합니다.-s또는 바람직하게는 실행토토 핫asPostgreSQLSuperUser.
출력 SQL-Standard세션 설정 권한 부여대신 명령Alter Owner개체를 결정하는 명령 소유권. 이로 인해 덤프가 더 많은 표준을 호환 할 수 있습니다. 그러나 덤프의 물체의 역사에 따라 제대로 회복되지 않을 수 있습니다.
기본적으로 테이블 데이터가 생성 된 경우에도 복원됩니다. 테이블에 대한 명령이 실패했습니다 (예 : 이미이므로 존재). 이 옵션을 사용하면 이러한 테이블의 데이터가 다음과 같습니다 건너 뛰었습니다. 이 동작은 대상 데이터베이스 인 경우 유용합니다 이미 원하는 테이블 내용이 포함되어 있습니다. 예를 들어, 보조 테이블PostgreSQL예를 들어postgis이미있을 수 있습니다 대상 데이터베이스에로드; 이 옵션을 지정합니다 중복 또는 쓸모없는 데이터가로드되는 것을 방지합니다 그들을.
이 옵션은 직접 복원 할 때만 효과적입니다 SQL 스크립트 출력을 생성 할 때가 아니라 데이터베이스로.
토토 핫도 수락합니다 연결 매개 변수에 대한 명령 줄 인수 :
기계의 호스트 이름을 지정합니다. 서버가 실행 중입니다. 값이 슬래시로 시작하면입니다 UNIX 도메인 소켓의 디렉토리로 사용됩니다. 그만큼 기본값은에서 가져옵니다.pghost환경 변수, 설정된 경우 Unix 도메인 소켓 연결이 시도됩니다.
TCP 포트 또는 로컬 UNIX 도메인 소켓 파일을 지정합니다. 서버가 연결을 듣는 확장. 기본값pgport환경 변수, 세트 인 경우 또는 컴파일 된 기본값
사용자 이름으로 연결합니다.
Force토토 핫to 데이터베이스에 연결하기 전에 암호를 자랑합니다.
이 옵션은 결코 필수적이지 않습니다.토토 핫자동으로 프롬프트가 발생합니다 서버가 암호를 요구하는 경우 비밀번호의 경우 입증. 하지만,토토 핫연결을 낭비합니다 서버가 암호를 원한다는 것을 알아보십시오. ~ 안에 어떤 경우에는 입력 할 가치가 있습니다-wto 추가 연결 시도를 피하십시오.
복원을 단일 트랜잭션으로 실행합니다 (즉, 방출 명령을 래핑시작/커밋). 이것 모든 명령이 성공적으로 완료되도록 또는 변경 사항이 적용되지 않습니다. 이 옵션은 암시합니다--exit-on-error.
기본 연결 매개 변수
이 유틸리티, 대부분의 다른 유틸리티PostgreSQL유틸리티도 사용합니다 지원되는 환경 변수libpq(참조섹션 30.12).
직접 데이터베이스 연결이를 사용하여 지정된 경우-d옵션,토토 핫내부 실행SQL진술. 당신이 있다면 실행 문제토토 핫, 데이터베이스에서 정보를 선택할 수 있는지 확인하십시오. 예를 들어 사용,PSQL. 또한 모든 기본 연결 에 사용 된 설정 및 환경 변수libpq프론트 엔드 라이브러리가 적용됩니다.
설치에 로컬 추가가있는 경우Template1데이터베이스, 출력을로드하도록주의하십시오 의토토 핫진정으로 비어 있습니다 데이터 베이스; 그렇지 않으면 복제로 인해 오류가 발생할 수 있습니다. 추가 된 객체의 정의. 빈 데이터베이스를 만들기 위해 로컬 추가 없이는에서 복사하십시오.Template0notTemplate1, 예를 들어:
템플릿 템플릿을 사용하여 데이터베이스 foo 생성;
의 한계토토 핫아래에 자세히 설명되어 있습니다.
기존 테이블 및 옵션으로 데이터를 복원 할 때-disable-triggers사용됩니다.토토 핫명령을 내립니다 데이터를 삽입하기 전에 사용자 테이블의 트리거를 비활성화합니다 그런 다음 데이터가있는 후에 다시 활성화하기 위해 명령을 방출합니다. 삽입. 복원이 중간에 중지되면 시스템이 카탈로그는 잘못된 상태로 남을 수 있습니다.
토토 핫그렇지 않습니다 단일 테이블의 큰 물체를 복원하십시오. 아카이브 인 경우 큰 물체를 포함하면 모든 큰 물체가 있습니다 복원.
참조PostgreSQL : 문서 : 8.3 : 윈 토토제한에 대한 자세한 내용pg_dump.
일단 복원되면 실행하는 것이 현명합니다분석각 복원 된 테이블에서 최적화기 유용한 통계가 있습니다.
우리가라는 데이터베이스를 버렸다고 가정합니다.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대신 복원 할 데이터베이스에 직접 연결하십시오. 또한 참고 우리는 새 데이터베이스를 복제했다.Template0nottemplate1, 처음에 비어 있도록 보장합니다.
데이터베이스 항목을 재정렬하려면 먼저 덤프해야합니다. 아카이브의 목차 :
$ 토토 핫 -L DB.DUMP DB.LIST
목록 파일은 각각 헤더와 한 줄로 구성됩니다. 항목, 예 :
; ; 28 일 28 일 28 일 22:28:36 2000에서 제작 된 아카이브 ; dbname : mydb ; TOC 항목 : 74 ; 압축 : 0 ; 덤프 버전 : 1.4-0 ; 형식 : 사용자 정의 ; ; ; 선택된 TOC 항목 : ; 2; 145344 테이블 종 Postgres 3; 145344 ACL 종 4; 145359 표 nt_header postgres 5; 145359 ACL NT_HEADER 6; 145402 Table Species_records Postgres 7; 145402 ACL 종 _records 8; 145416 표 ss_old postgres 9; 145416 ACL SS_OLD 10; 145433 테이블 map_resolutions postgres 11; 145433 ACL MAP_RESOLUTS 12; 145443 테이블 hs_old postgres 13; 145443 ACL HS_OLD
세미콜론은 의견을 시작하고 시작시 숫자 라인은 각 항목에 할당 된 내부 아카이브 ID를 나타냅니다.
파일의 줄은 주석, 삭제 및 재정렬. 예를 들어:
10; 145433 테이블 map_resolutions postgres ; 2; 145344 테이블 종 Postgres ; 4; 145359 표 nt_header postgres 6; 145402 Table Species_records Postgres ; 8; 145416 표 ss_old postgres
입력으로 사용될 수 있습니다토토 핫그리고 항목 10 만 복원합니다 그리고 6, 순서대로 :
$ 토토 핫 -L DB.LIST DB.DUMP