윈 토토유틸리티는 다음과 같습니다. 복원 중포스트그레SQL데이터베이스 다음이 만든 아카이브에서postgresql : 문서 : 8.2 : 배트맨 토토비일반 텍스트 형식 중 하나입니다. 명령을 내릴 것입니다. 데이터베이스를 원래 상태로 재구성하는 데 필요합니다. 저장한 시간입니다. 아카이브 파일도 허용합니다.윈 토토무엇이 무엇인지 선별적으로 선택하다 복원하거나 복원되기 전에 항목을 다시 정렬할 수도 있습니다. 아카이브 파일은 여러 곳으로 이동할 수 있도록 설계되었습니다. 아키텍처.
윈 토토두 개로 작동 가능 모드. 데이터베이스 이름이 지정된 경우,윈 토토해당 데이터베이스에 연결하고 아카이브 내용을 데이터베이스에 직접 복원합니다. 그렇지 않으면, 재구축에 필요한 SQL 명령이 포함된 스크립트 데이터베이스가 생성되어 파일이나 표준 출력에 기록됩니다. 이 스크립트 출력은 일반 텍스트 출력 형식과 동일합니다. 의pg_dump. 일부 옵션 따라서 출력을 제어하는 것은 다음과 유사합니다.pg_dump옵션.
분명히,윈 토토할 수 없습니다 아카이브 파일에 없는 정보를 복원합니다. 을 위한 예를 들어, 아카이브가를 사용하여 만들어진 경우"다음으로 데이터 덤프삽입명령"옵션,윈 토토데이터를 로드할 수 없습니다 사용 중복사문장.
윈 토토수락합니다 다음 명령줄 인수입니다.
보관 파일의 위치를 지정합니다. 복원되었습니다. 지정하지 않으면 표준 입력이 사용됩니다.
스키마가 아닌 데이터만 복원합니다(데이터 정의).
다시 생성하기 전에 데이터베이스 개체를 정리(삭제)하세요. 그들을.
복원하기 전에 데이터베이스를 생성하십시오. (이때 옵션이 사용되면 이름이 지정된 데이터베이스-d초기 발행에만 사용됩니다.데이터베이스 생성명령. 모든 데이터 에 나타나는 데이터베이스 이름으로 복원됩니다. 보관소.)
데이터베이스에 연결db이름다음으로 직접 복원합니다. 데이터 베이스.
SQL 전송 중 오류가 발생하면 종료 데이터베이스에 대한 명령입니다. 기본값은 계속하는 것입니다. 마지막에 오류 개수를 표시합니다. 복구.
생성된 스크립트에 대한 출력 파일을 지정하거나 와 함께 사용될 때 나열-l. 기본 표준 출력입니다.
아카이브의 형식을 지정하십시오. 그럴 필요는 없다 형식을 지정하십시오. 이후윈 토토형식을 결정합니다 자동으로. 지정된 경우 다음 중 하나일 수 있습니다. 수행원:
아카이브는타르아카이브.
아카이브는 다음의 사용자 정의 형식입니다.pg_dump.
데이터베이스 버전 확인을 무시합니다.
명명된 색인의 정의만 복원합니다.
아카이브의 내용을 나열합니다. 이것의 출력 작업은에 대한 입력으로 사용될 수 있습니다.-L옵션. 스위치를 필터링하는 경우 와 같은-n또는-t다음과 함께 사용됩니다-l, 나열된 항목이 제한됩니다.
다음에 나열된 아카이브 요소만 복원목록-파일, 복원 파일에 나타나는 순서대로. 만약에 참고하세요 다음과 같은 필터링 스위치-n또는-t다음과 함께 사용됩니다-L, 항목을 추가로 제한합니다. 복원되었습니다.
목록-파일일반적으로 이전의 출력을 편집하여 생성됨-l작업. 라인을 이동하거나 제거할 수 있습니다. 세미콜론을 사용하여 주석 처리할 수도 있습니다. (;)을 줄 시작 부분에 추가합니다. 보다 예를 보려면 아래를 참조하세요.
이름이 지정된 스키마에 있는 개체만 복원합니다. 이것 와 결합될 수 있습니다.-t옵션 특정 테이블만 복원합니다.
객체의 소유권을 설정하는 명령을 출력하지 마십시오. 원본 데이터베이스와 일치합니다. 기본적으로,윈 토토문제소유자 변경또는SET 세션 승인소유권을 설정하는 명령문 스키마 요소를 생성했습니다. 이 명령문은 다음과 같은 경우에는 실패합니다. 데이터베이스에 대한 초기 연결은 수퍼유저(또는 모든 객체를 소유한 동일한 사용자) 스크립트). 와 함께-O, 임의의 사용자 이름 초기 연결에 사용될 수 있으며 이 사용자는 생성된 모든 개체를 소유합니다.
이름이 지정된 함수만 복원합니다. 철자를 조심하세요. 함수 이름과 인수는 다음과 같습니다. 덤프 파일의 목차입니다.
이 옵션은 더 이상 사용되지 않지만 이전 버전에서는 여전히 허용됩니다. 호환성.
데이터가 아닌 스키마(데이터 정의)만 복원 (테이블 내용). 시퀀스 현재 값은 복원되었거나. (이것을 다음과 혼동하지 마십시오.--스키마단어를 사용하는 옵션"스키마"다른 곳에서 의미.)
비활성화할 때 사용할 수퍼유저 사용자 이름을 지정하십시오 트리거. 이는 다음과 같은 경우에만 관련됩니다.--비활성화-트리거사용됩니다.
이름이 지정된 테이블의 정의 및/또는 데이터만 복원합니다.
이름이 지정된 트리거만 복원합니다.
상세 모드를 지정합니다.
접근 권한 복원 방지(부여/취소) 명령).
이 옵션은 데이터 전용 작업을 수행할 때만 관련됩니다. 복원하다. 지시한다윈 토토명령을 실행하려면 일시적으로 대상 테이블에서 트리거를 비활성화하는 동안 데이터가 다시 로드됩니다. 참고자료가 있는 경우 이것을 사용하세요 무결성 검사 또는 테이블에 대한 기타 트리거 데이터를 다시 로드하는 동안 호출하고 싶지 않습니다.
현재 다음에 대해 내보낸 명령은--비활성화-트리거수퍼유저로 수행해야 합니다. 따라서 다음을 사용하여 수퍼유저 이름도 지정해야 합니다.-S또는 바람직하게는 실행윈 토토으로포스트그레SQL수퍼유저.
출력 SQL-표준세션 설정 권한 부여대신 명령소유자 변경객체를 결정하는 명령 소유권. 이로 인해 덤프가 더 많은 표준과 호환됩니다. 하지만 덤프에 있는 객체의 기록에 따라 제대로 복원되지 않을 수 있습니다.
기본적으로 테이블 데이터는 생성되더라도 복원됩니다. 테이블에 대한 명령이 실패했습니다(예: 이미 존재합니다). 이 옵션을 사용하면 해당 테이블의 데이터는 다음과 같습니다. 건너뛰었습니다. 이 동작은 대상 데이터베이스가 원하는 테이블 내용이 이미 포함되어 있을 수 있습니다. 을 위한 예, 보조 테이블PostgreSQL다음과 같은 확장자PostGIS이미 그럴 수도 있습니다 대상 데이터베이스에 로드되었습니다. 이 옵션 지정 중복되거나 쓸모없는 데이터가 로드되는 것을 방지합니다. 그들을.
이 옵션은 직접 복원하는 경우에만 유효합니다. SQL 스크립트 출력을 생성할 때가 아니라 데이터베이스에 저장됩니다.
윈 토토또한 다음을 수락합니다. 연결 매개변수에 대한 명령줄 인수는 다음과 같습니다.
다음이 실행되는 시스템의 호스트 이름을 지정합니다. 서버가 실행 중입니다. 값이 슬래시로 시작하는 경우 Unix 도메인 소켓의 디렉토리로 사용됩니다. 그만큼 기본값은에서 가져옵니다.PGHOST환경 변수(설정된 경우), 그렇지 않으면 Unix 도메인 소켓 연결이 시도되었습니다.
TCP 포트 또는 로컬 Unix 도메인 소켓 파일을 지정합니다. 서버가 연결을 수신하는 확장명입니다. 기본값은PG포트환경 변수(설정된 경우) 또는 컴파일된 기본값입니다.
지정된 사용자로 연결
비밀번호 프롬프트를 강제합니다. 이런 일이 일어나야 해 서버에 비밀번호가 필요한 경우 자동으로 입증.
복원을 단일 트랜잭션으로 실행합니다(즉, 내보낸 명령을 다음으로 래핑합니다.시작/커밋). 이것 모든 명령이 성공적으로 완료되었는지 확인하거나 또는 변경 사항이 적용되지 않습니다. 이 옵션은 다음을 의미합니다.--오류 시 종료.
기본 연결 매개변수
이 유틸리티는 대부분의 다른 유틸리티와 마찬가지로PostgreSQL유틸리티도 다음을 사용합니다. 에서 지원하는 환경 변수libpq(참조섹션 29.12).
직접 데이터베이스 연결이 다음을 사용하여 지정된 경우-d옵션,윈 토토내부적으로 실행SQL문장. 만약 당신이 실행 중 문제 발생윈 토토, 데이터베이스에서 정보를 선택할 수 있는지 확인하십시오 예를 들어 다음을 사용하여psql. 또한 모든 기본 연결 에서 사용하는 설정 및 환경 변수libpq프런트엔드 라이브러리가 적용됩니다.
설치에 로컬 추가사항이 있는 경우템플릿1데이터베이스, 출력을 로드할 때 주의하세요 의윈 토토완전히 텅 빈 곳으로 데이터 베이스; 그렇지 않으면 중복으로 인해 오류가 발생할 가능성이 높습니다. 추가된 객체의 정의. 빈 데이터베이스를 만들려면 로컬 추가 없이 다음에서 복사하세요.템플릿0아님템플릿1, 예를 들어:
템플릿 template0으로 foo 데이터베이스 생성;
제한사항윈 토토자세한 내용은 아래에 나와 있습니다.
기존 테이블 및 옵션으로 데이터를 복원하는 경우--비활성화-트리거사용됩니다.윈 토토명령을 내보냅니다. 데이터를 삽입하기 전에 사용자 테이블에서 트리거를 비활성화합니다. 그런 다음 데이터가 삭제된 후 다시 활성화하는 명령을 내보냅니다. 삽입됨. 복원이 중간에 중지되면 시스템이 카탈로그가 잘못된 상태로 남아 있을 수 있습니다.
윈 토토하지 않을 것입니다 단일 테이블에 대한 대형 개체를 복원합니다. 아카이브라면 대형 개체를 포함하는 경우 모든 대형 개체는 복원되었습니다.
또한 참조postgresql : 문서 : 8.2 : 배트맨 토토제한 사항에 대한 자세한 내용은 문서pg_dump.
복구되면 실행하는 것이 현명합니다.분석복원된 각 테이블에 대해 최적화 프로그램은 유용한 통계가 있습니다.
다음이라는 데이터베이스를 덤프했다고 가정합니다.mydb사용자 정의 형식 덤프 파일로:
$ pg_dump -Fc mydb db.dump
데이터베이스를 삭제하고 덤프에서 다시 생성하려면:
$ dropdb mydb $ 윈 토토 -C -d postgres db.dump
이름이 지정된 데이터베이스-d스위치 클러스터에 존재하는 모든 데이터베이스가 될 수 있습니다.윈 토토발행에만 사용합니다데이터베이스 생성명령어mydb. 와 함께-C, 데이터는 항상 덤프에 나타나는 데이터베이스 이름으로 복원됩니다. 파일.
다음이라는 새 데이터베이스로 덤프를 다시 로드하려면newdb:
$ createdb -T template0 newdb $ 윈 토토 -d newdb db.dump
우리는 사용하지 않습니다.-C, 그리고 대신 복원할 데이터베이스에 직접 연결합니다. 또한 참고 새 데이터베이스를 복제합니다.템플릿0아님템플릿1, 처음에는 비어 있는지 확인하세요.
데이터베이스 항목을 재정렬하려면 먼저 해당 항목을 덤프해야 합니다. 아카이브의 목차:
$ 윈 토토 -l db.dump db.list
목록 파일은 헤더와 각 헤더마다 한 줄로 구성됩니다. 항목(예:
; ; 2000년 7월 28일 금요일 22:28:36에 생성된 아카이브 ; DB 이름: mydb ; 목차 항목: 74 ; 압축: 0 ; 덤프 버전: 1.4-0 ; 형식: 맞춤 ; ; ; 선택된 목차 항목: ; 2; 145344 테이블 종 포스트그레스 3; 145344 ACL 종 4; 145359 테이블 nt_header 포스트그레스 5; 145359 ACL nt_header 6; 145402 테이블 종_기록 포스트그레스 7; 145402 ACL 종_기록 8; 145416 테이블 ss_old postgres 9; 145416 ACL ss_old 10; 145433 테이블 map_solutions 포스트그레스 11; 145433 ACL 맵_해상도 12; 145443 테이블 hs_old postgres 13; 145443 ACL hs_old
세미콜론은 주석을 시작하고, 주석 시작 부분의 숫자는 줄은 각 항목에 할당된 내부 아카이브 ID를 나타냅니다.
파일의 행은 주석 처리, 삭제 및 편집될 수 있습니다. 재정렬되었습니다. 예를 들어,
10; 145433 테이블 map_solutions 포스트그레스 ;2; 145344 테이블 종 포스트그레스 ;4; 145359 테이블 nt_header 포스트그레스 6; 145402 테이블 종_기록 포스트그레스 ;8; 145416 표 ss_old postgres
다음에 대한 입력으로 사용될 수 있습니다.윈 토토항목 10만 복원합니다. 6개, 순서대로:
$ 윈 토토 -L db.list db.dump