윈 토토다음을 위한 유틸리티입니다. 백업 중PostgreSQL데이터베이스. 데이터베이스가 손상된 경우에도 일관된 백업을 수행합니다. 동시에 사용되고 있습니다.윈 토토데이터베이스에 액세스하는 다른 사용자(독자 또는 작가).
덤프는 스크립트 또는 아카이브 파일 형식으로 출력될 수 있습니다. 스크립트 덤프는 필요한 SQL 명령이 포함된 일반 텍스트 파일입니다. 데이터베이스를 당시의 상태로 재구성합니다. 저장되었습니다. 이러한 스크립트에서 복원하려면 해당 스크립트를 공급하세요.psql. 스크립트 파일을 사용하여 다른 데이터베이스에서도 데이터베이스를 재구성할 수 있습니다. 기계 및 기타 아키텍처; 심지어 일부 수정을 거쳐 다른 SQL 데이터베이스 제품.
대체 아카이브 파일 형식은 다음과 함께 사용해야 합니다.PostgreSQL : 문서 : 8.3 : 토토 핫재건축하기 위해 데이터베이스. 그들은 허용한다pg_restore복원된 항목을 선택적으로 선택하거나 심지어 복원되기 전의 항목입니다. 아카이브 파일 형식은 다음과 같습니다. 아키텍처 전반에 걸쳐 이식 가능하도록 설계되었습니다.
아카이브 파일 형식 중 하나와 함께 사용하고 결합하는 경우 와 함께pg_restore, 윈 토토유연한 보관 기능을 제공하며 전송 메커니즘.윈 토토할 수 있다 전체 데이터베이스를 백업하는 데 사용되는 경우pg_restore검사하는 데 사용할 수 있습니다. 보관할 데이터베이스 부분을 선택하거나 보관할 수 있습니다. 복원되었습니다. 가장 유연한 출력 파일 형식은 다음과 같습니다."맞춤형"형식 (-Fc). 모든 항목을 선택하고 재정렬할 수 있습니다. 보관된 항목이며 기본적으로 압축됩니다.타르형식(-피트)는 압축되지 않았으며 다음과 같은 경우 데이터를 재정렬할 수 없습니다. 로딩이 가능하지만 그 외에는 매우 유연합니다. 게다가 그럴 수도 있지 다음과 같은 표준 Unix 도구로 조작됨타르.
실행 중윈 토토, 하나 경고가 있는지 출력을 조사해야 합니다(표준에 인쇄됨). 오류), 특히 아래 나열된 제한 사항을 고려할 때.
다음 명령줄 옵션은 콘텐츠와 출력 형식입니다.
덤프할 데이터베이스의 이름을 지정합니다. 만약 이 지정되지 않았습니다. 환경 변수입니다.PGDATABASE이 사용됩니다. 설정되지 않은 경우, 연결에 지정된 사용자 이름이 사용됩니다.
스키마가 아닌 데이터만 덤프합니다(데이터 정의).
이 옵션은 일반 텍스트에만 의미가 있습니다. 형식. 아카이브 형식의 경우 옵션을 지정할 수 있습니다 전화할 때pg_restore.
덤프에 대형 개체를 포함합니다. 이것이 기본값입니다 때를 제외한 행동--스키마, --테이블또는--스키마 전용이 지정되었으므로-b스위치는 큰 개체를 추가하는 데에만 유용합니다. 선택적 덤프로.
이전에 데이터베이스 개체를 정리(삭제)하기 위한 출력 명령 (명령을) 생성합니다.
이 옵션은 일반 텍스트에만 의미가 있습니다. 형식. 아카이브 형식의 경우 옵션을 지정할 수 있습니다 전화할 때pg_restore.
데이터베이스 생성 명령으로 출력 시작 생성된 데이터베이스에 다시 연결합니다. (와 함께 이 형식의 스크립트를 사용하면 어떤 데이터베이스를 사용하는지는 중요하지 않습니다. 스크립트를 실행하기 전에 연결하세요.)
이 옵션은 일반 텍스트에만 의미가 있습니다. 형식. 아카이브 형식의 경우 옵션을 지정할 수 있습니다 전화할 때pg_restore.
다음으로 데이터 덤프삽입명령 (대신에)복사). 이것은 만들 것이다 복구가 매우 느림; 주로 덤프를 만드는 데 유용합니다. 비에 로드할 수 있는PostgreSQL데이터베이스. 또한 이 이후로 옵션이 각 행에 대해 별도의 명령을 생성하면 오류가 발생합니다. 행을 다시 로드하면 오히려 해당 행만 손실됩니다. 전체 테이블 내용보다 복원할 수 있습니다. 열 순서를 다시 정렬한 경우 완전히 실패합니다.-D옵션은 열에 대해 안전합니다. 순서는 변경되지만 속도는 더 느려집니다.
다음으로 데이터 덤프삽입명령 명시적인 열 이름(INSERT INTO테이블 (열, ...) 값 ...). 이 복구 속도가 매우 느려집니다. 주로 유용합니다. 비에 로드할 수 있는 덤프 만들기PostgreSQL데이터베이스. 또한 이 이후로 옵션이 각 행에 대해 별도의 명령을 생성하면 오류가 발생합니다. 행을 다시 로드하면 오히려 해당 행만 손실됩니다. 전체 테이블 내용보다.
지정된 문자 집합 인코딩으로 덤프를 생성합니다. 기본적으로 덤프는 데이터베이스 인코딩으로 생성됩니다. (동일한 결과를 얻는 또 다른 방법은 다음을 설정하는 것입니다.PGCLIENTENCODING환경 원하는 덤프 인코딩에 대한 변수입니다.)
지정된 파일로 출력을 보냅니다. 이것을 생략하면, 표준 출력이 사용됩니다.
출력 형식을 선택합니다.형식다음 중 하나일 수 있습니다. 다음:
일반 텍스트 출력SQL스크립트 파일( 기본값).
입력에 적합한 사용자 정의 아카이브를 출력pg_restore. 이것은 재정렬이 가능하다는 점에서 가장 유연한 형식 데이터 로드 및 객체 정의. 이 형식도 기본적으로 압축됩니다.
출력 a타르아카이브 입력에 적합pg_restore. 이 아카이브 사용 형식을 사용하면 데이터베이스를 재정렬 및/또는 제외할 수 있습니다. 데이터베이스가 복원될 때 개체입니다. 그것은 또한 다시 로드되는 데이터를 제한할 수도 있습니다. 복원 시간.
버전 불일치 무시윈 토토그리고 데이터베이스 서버.
윈 토토다음에서 덤프할 수 있음 이전 릴리스를 실행하는 서버포스트그레SQL, 하지만 아주 오래된 버전은 더 이상 지원되지 않습니다(현재 7.0 이전 버전). 다음보다 최신 서버에서 덤프하는 중입니다.윈 토토전혀 작동하지 않을 가능성이 높습니다. 버전 확인을 재정의해야 하는 경우 이 옵션을 사용하십시오. (그리고 만약에윈 토토그러면 실패하더라도 경고를 받지 못했다고 말하지 마세요.)
일치하는 스키마만 덤프스키마; 그러면 스키마와 스키마가 모두 선택됩니다. 자체 및 포함된 모든 개체. 이 옵션이 있을 때 지정되지 않은 경우 대상의 모든 비시스템 스키마 데이터베이스가 덤프됩니다. 여러 스키마를 선택할 수 있습니다. 여러 개를 작성하여-n스위치. 또한,스키마매개변수 동일한 규칙에 따른 패턴으로 해석됩니다. 에서 사용됨psql's\d명령(참조패턴), 그러니까 와일드카드를 작성하여 여러 스키마를 선택할 수도 있습니다. 패턴의 문자. 와일드카드를 사용할 때는 주의하세요 쉘이 손상되는 것을 방지하기 위해 필요한 경우 패턴을 인용하십시오. 와일드카드를 확장합니다.
참고:언제-n이다 지정됨,윈 토토다른 데이터베이스 개체를 덤프하려고 시도하지 않습니다. 선택한 스키마가 종속될 수 있습니다. 따라서 결과가 나올 것이라는 보장은 없습니다. 특정 스키마 덤프는 다음을 통해 성공적으로 복원될 수 있습니다. 깨끗한 데이터베이스로 전환됩니다.
참고:BLOB과 같은 비스키마 개체는 언제 버려지지 않음-n이다 지정. 다음을 사용하여 Blob을 덤프에 다시 추가할 수 있습니다.--방울스위치.
다음과 일치하는 스키마를 덤프하지 마십시오.스키마패턴. 패턴은 와 동일한 규칙에 따라 해석됩니다.-n. -N주어질 수 있습니다 여러 가지 중 하나와 일치하는 스키마를 제외하려면 두 번 이상 패턴.
둘 다일 때-n그리고-N이 주어지면 동작은 단지 덤프하는 것입니다. 하나 이상과 일치하는 스키마-n전환하지만 아니요-N스위치. 만일-N없이 나타남-n, 그러면 스키마 일치-N다음에서 제외됩니다. 그렇지 않으면 일반 덤프입니다.
객체 식별자 덤프(OIDs)를 모든 데이터의 일부로 테이블. 애플리케이션이 다음을 참조하는 경우 이 옵션을 사용하세요.OID어떤 방식으로든 열 (예: 외래 키 제약 조건에서) 그렇지 않으면 이 옵션 사용하면 안 됩니다.
객체의 소유권을 설정하는 명령을 출력하지 마십시오. 원본 데이터베이스와 일치합니다. 기본적으로,윈 토토문제소유자 변경또는SET 세션 승인소유권을 설정하는 명령문 데이터베이스 객체를 생성했습니다. 이 문은 다음과 같은 경우 실패합니다. 슈퍼유저(또는 스크립트의 모든 개체를 소유한 동일한 사용자). 모든 사용자가 복원할 수 있지만 복원할 수 있는 스크립트를 만들려면 해당 사용자에게 모든 객체의 소유권을 부여하고 지정하십시오.-O.
이 옵션은 일반 텍스트에만 의미가 있습니다. 형식. 아카이브 형식의 경우 옵션을 지정할 수 있습니다 전화할 때pg_restore.
이 옵션은 더 이상 사용되지 않지만 이전 버전에서는 여전히 허용됩니다. 호환성.
데이터가 아닌 개체 정의(스키마)만 덤프합니다.
비활성화할 때 사용할 수퍼유저 사용자 이름을 지정하십시오 트리거. 이는 다음과 같은 경우에만 관련됩니다.--비활성화-트리거이 사용됩니다. (보통 그렇죠. 이것을 생략하고 대신 결과를 시작하는 것이 좋습니다 슈퍼유저로 스크립트를 작성하세요.)
일치하는 테이블(또는 뷰 또는 시퀀스)만 덤프테이블. 여러 테이블 가능 여러개 써서 선택하세요-t스위치. 또한,테이블매개변수는 동일한 패턴으로 해석됩니다. 에서 사용하는 규칙psql's\d명령(참조패턴), 그러니까 와일드카드를 작성하여 여러 테이블을 선택할 수도 있습니다. 패턴의 문자. 와일드카드를 사용할 때는 주의하세요 쉘이 손상되는 것을 방지하기 위해 필요한 경우 패턴을 인용하십시오. 와일드카드를 확장합니다.
그-n그리고-N스위치는 다음과 같은 경우에는 효과가 없습니다.-t다음에 의해 테이블이 선택되었기 때문에 사용됩니다.-t다음과 관계없이 버려집니다. 해당 스위치와 테이블이 아닌 개체는 버려졌습니다.
참고:언제-t이다 지정됨,윈 토토다른 데이터베이스 개체를 덤프하려고 시도하지 않습니다. 선택한 테이블이 종속될 수 있습니다. 따라서 결과가 나올 것이라는 보장은 없습니다. 특정 테이블 덤프는 다음을 통해 성공적으로 복원될 수 있습니다. 깨끗한 데이터베이스로 전환됩니다.
참고:의 행동-t스위치가 완전히 위쪽이 아닙니다. 8.2 이전 버전과 호환됨PostgreSQL버전. 이전에는 쓰기-t 탭모두 버리겠습니다 이름이 지정된 테이블탭하지만 지금은 기본값에 표시되는 항목을 덤프합니다. 검색 경로. 이전 동작을 얻으려면 작성할 수 있습니다.-t '*.tab'. 또한, 당신은 다음과 같이 작성하세요-t Sch.tab특정 스키마의 테이블을 선택하려면, 이전의 위치보다는-n sch -t 탭.
다음과 일치하는 테이블을 덤프하지 마십시오.테이블패턴. 패턴은 와 동일한 규칙에 따라 해석됩니다.-t. -T주어질 수 있습니다 여러 항목 중 하나와 일치하는 테이블을 제외하려면 두 번 이상 패턴.
둘 다일 때-t그리고-T이 주어지면 동작은 단지 덤프하는 것입니다. 적어도 하나와 일치하는 테이블-t전환하지만 아니요-T스위치. 만일-T없이 나타남-t, 그러면 일치하는 테이블-T다른 경우에는 제외됩니다. 일반 덤프.
상세 모드를 지정합니다. 이로 인해 발생합니다윈 토토상세 객체 출력 덤프 파일에 대한 설명 및 시작/중지 시간 메시지를 표준 오류로 진행합니다.
접근 권한 덤프 방지(부여/취소) 명령).
이 옵션은 달러 인용 사용을 비활성화합니다 함수 본문을 SQL을 사용하여 인용하도록 강제합니다. 표준 문자열 구문.
이 옵션은 데이터 전용 생성 시에만 관련됩니다. 덤프. 지시한다윈 토토다음에 트리거를 일시적으로 비활성화하는 명령을 포함합니다. 데이터가 다시 로드되는 동안 대상 테이블을 지정합니다. 다음과 같은 경우에 이것을 사용하세요. 참조 무결성 검사 또는 기타 트리거가 있습니다. 데이터 중에 호출하고 싶지 않은 테이블 새로고침하세요.
현재 다음에 대해 내보낸 명령은--비활성화-트리거수퍼유저로 수행해야 합니다. 따라서 다음을 사용하여 수퍼유저 이름도 지정해야 합니다.-S또는 다음 사항에 주의하는 것이 좋습니다. 슈퍼유저로 결과 스크립트를 시작합니다.
이 옵션은 일반 텍스트에만 의미가 있습니다. 형식. 아카이브 형식의 경우 옵션을 지정할 수 있습니다 전화할 때pg_restore.
출력 SQL-표준세션 설정 승인대신 명령소유자 변경객체를 결정하는 명령 소유권. 이로 인해 덤프가 더 많은 표준과 호환됩니다. 하지만 덤프에 있는 객체의 기록에 따라 제대로 복원되지 않을 수 있습니다. 또한, 다음을 사용하여 덤프합니다.세션 승인 설정확실히 그럴 것입니다 올바르게 복원하려면 수퍼유저 권한이 필요하지만소유자 변경더 적게 필요함 특권.
사용할 압축 수준을 지정하십시오. 0은 아니오를 의미합니다. 압축. 사용자 정의 아카이브 형식의 경우 이는 다음을 지정합니다. 개별 테이블-데이터 세그먼트의 압축 및 기본값은 중간 수준으로 압축하는 것입니다. 일반 텍스트의 경우 출력에서 0이 아닌 압축 수준을 설정하면 전체 출력 파일이 압축된 것처럼 압축됩니다. 통해 공급gzip; 하지만 기본값은 압축하지 않는 것입니다. tar 아카이브 형식 현재 압축을 전혀 지원하지 않습니다.
다음 명령줄 옵션은 데이터베이스를 제어합니다 연결 매개변수입니다.
다음이 실행되는 시스템의 호스트 이름을 지정합니다. 서버가 실행 중입니다. 값이 슬래시로 시작하는 경우 Unix 도메인 소켓의 디렉토리로 사용됩니다. 는 기본값은에서 가져옵니다.PGHOST환경 변수(설정된 경우), 그렇지 않으면 Unix 도메인 소켓 연결이 시도되었습니다.
TCP 포트 또는 로컬 Unix 도메인 소켓 파일을 지정합니다. 서버가 연결을 수신하는 확장명입니다. 기본값은PG포트환경 변수(설정된 경우) 또는 컴파일된 기본값입니다.
연결할 사용자 이름.
포스윈 토토프롬프트에 데이터베이스에 연결하기 전에 비밀번호를 입력하세요.
이 옵션은 결코 필수가 아닙니다. 왜냐하면윈 토토자동으로 다음 메시지를 표시합니다. 서버가 비밀번호 인증을 요구하는 경우 비밀번호. 그러나윈 토토할 것이다 서버가 연결을 시도하는 것을 낭비합니다. 비밀번호를 원해요. 어떤 경우에는 입력할 가치가 있습니다.-W추가 연결을 피하기 위해 시도합니다.
기본 연결 매개변수.
이 유틸리티는 대부분의 다른 유틸리티와 같습니다.PostgreSQL유틸리티도 다음을 사용합니다. 에서 지원하는 환경 변수libpq(참조섹션 30.12).
윈 토토내부적으로 실행선택문장. 문제가 있는 경우 달리기윈 토토, 꼭 확인하세요 다음을 사용하여 데이터베이스에서 정보를 선택할 수 있습니다. 예psql. 또한 모든 기본 연결 에서 사용하는 설정 및 환경 변수libpq프런트엔드 라이브러리가 적용됩니다.
데이터베이스 클러스터에 로컬 추가사항이 있는 경우템플릿1데이터베이스, 조심하세요 출력을 복원합니다.윈 토토완전히 비어있는 데이터베이스로; 그렇지 않으면 당신은 얻을 가능성이 높습니다 추가된 개체의 중복 정의로 인해 발생하는 오류입니다. 만들다 로컬 추가가 없는 빈 데이터베이스, 다음에서 복사템플릿0아님템플릿1, 예:
템플릿 template0으로 foo 데이터베이스 생성;
윈 토토제한이 있습니다. 데이터 전용 덤프가 선택되고 옵션이 선택된 경우--비활성화-트리거사용됩니다.윈 토토트리거를 비활성화하는 명령을 내보냅니다. 데이터와 명령을 삽입하기 전에 사용자 테이블에서 데이터가 삽입된 후 다시 활성화하십시오. 복원하는 경우 중간에 중지되면 시스템 카탈로그가 그대로 남아 있을 수 있습니다. 잘못된 상태입니다.
tar 아카이브의 구성원은 8GB 미만의 크기로 제한됩니다. (이것은 tar 파일 형식의 고유한 제한 사항입니다.) 따라서 텍스트 형식인 경우에는 이 형식을 사용할 수 없습니다. 한 테이블의 표현이 해당 크기를 초과합니다. 총 크기 tar 아카이브 및 기타 출력 형식은 그렇지 않습니다. 운영 체제에 의한 경우를 제외하고 제한됩니다.
다음에 의해 생성된 덤프 파일윈 토토사용된 통계가 포함되어 있지 않습니다. 최적화 프로그램이 쿼리 계획 결정을 내립니다. 그러므로 그것은 달리는 것이 현명하다분석복원 후 좋은 성능을 보장하기 위해 덤프 파일에서. 덤프 파일도 아무것도 포함하지 않음데이터베이스 변경... 설정명령; 이 설정은 다음에 의해 덤프됩니다.윈 토토all, 데이터베이스 사용자와 함께 및 기타 설치 전체 설정.
왜냐하면윈 토토다음에 익숙합니다. 최신 버전으로 데이터 전송PostgreSQL, 출력윈 토토최신 버전으로 로드 가능PostgreSQL데이터베이스. 그것은 또한 더 오래된 것을 읽을 수 있습니다포스트그레SQL데이터베이스. 그러나 일반적으로 최신 내용을 읽을 수 없습니다.PostgreSQL데이터베이스 또는 덤프 출력 생성 이전 데이터베이스 버전에 로드할 수 있습니다. 이렇게 하려면 덤프 파일을 수동으로 편집해야 할 수도 있습니다.
다음 데이터베이스를 덤프하려면mydb으로 SQL 스크립트 파일:
$ 윈 토토 mydb db.sql
이러한 스크립트를 (새로 생성된) 데이터베이스에 다시 로드하려면 명명된newdb:
$ psql -d newdb -f db.sql
데이터베이스를 사용자 정의 형식 아카이브 파일로 덤프하려면:
$ 윈 토토 -Fc mydb db.dump
아카이브 파일을 (새로 생성된) 데이터베이스로 다시 로드하려면 명명된newdb:
$ pg_restore -d newdb db.dump
이름이 지정된 단일 테이블을 덤프하려면마이탭:
$ 윈 토토 -t mytab mydb db.sql
이름이 다음으로 시작하는 모든 테이블을 덤프하려면emp에서디트로이트스키마, 이름이 지정된 테이블 제외employee_log:
$ 윈 토토 -t 'detroit.emp*' -T detroit.employee_log mydb db.sql
이름이 다음으로 시작하는 모든 스키마를 덤프하려면동쪽또는서쪽다음으로 끝남gsm, 이름이 다음과 같은 스키마 제외 단어를 포함합니다테스트:
$ 윈 토토 -n 'east*gsm' -n 'west*gsm' -N '*test*' mydb db.sql
동일합니다. 정규식 표기법을 사용하여 스위치:
$ 윈 토토 -n '(east|west)*gsm' -N '*test*' mydb db.sql
이름이 있는 테이블을 제외한 모든 데이터베이스 개체를 덤프하려면 시작하다ts_:
$ 윈 토토 -T 'ts_*' mydb db.sql
대문자 또는 대소문자 혼합 이름을 지정하려면-t및 관련 스위치는 큰따옴표를 사용해야 합니다. 이름; 그렇지 않으면 소문자로 접혀집니다(참조패턴). 하지만 두 배 따옴표는 쉘에 특별하므로 차례로 인용해야 합니다. 따라서 대소문자가 혼합된 이름을 가진 단일 테이블을 덤프하려면 다음이 필요합니다. 같은 것
$ 윈 토토 -t '"MixedCaseName"' mydb mytab.sql