pg_basebackup — a의 기본 백업을 수행합니다.포스트그레SQL클러스터
pg_basebackup [옵션...]
pg_basebackup실행 중인 기본 백업을 수행하는 데 사용됩니다.포스트그레SQL데이터베이스 클러스터. 이는 데이터베이스에 대한 다른 클라이언트에 영향을 주지 않고 수행되며 특정 시점 복구에 모두 사용될 수 있습니다(참조윈 토토 PostgreSQL : 문서 : 10 : 25.3. 연속 보관 및 시점 복구 (PITR)) 및 로그 전달 또는 스트리밍 복제 대기 서버의 시작점으로 사용됩니다(참조PostgreSQL : 문서 : 10 : 26.2. 로그쉽 스포츠 토토 사이트 서버).
pg_basebackup시스템이 자동으로 백업 모드에 들어가고 나가는 것을 확인하면서 데이터베이스 클러스터 파일의 바이너리 복사본을 만듭니다. 백업은 항상 전체 데이터베이스 클러스터에서 수행됩니다. 개별 데이터베이스나 데이터베이스 개체를 백업하는 것은 불가능합니다. 개별 데이터베이스 백업의 경우 다음과 같은 도구를 사용하세요.pg_dump반드시 사용해야 젠 토토.
백업은 정기적으로 이루어집니다.PostgreSQL연결하고 복제 프로토콜을 사용합니다. 연결은 슈퍼유저 또는 다음을 가진 사용자와 이루어져야 합니다.복제권한(참조PostgreSQL : 문서 : 10 : 21.2. 토토 베이 속성) 및pg_hba.conf복제 연결을 명시적으로 허용해야 합니다. 서버는 또한 다음과 같이 구성되어야 합니다.max_wal_senders적어도 하나의 세션을 백업에 사용하고 하나는 WAL 스트리밍(사용된 경우)에 사용할 수 있도록 충분히 높게 설정젠 토토.
여러 개가 있을 수 있습니다pg_basebackups가 동시에 실행 중이지만 성능 관점에서 백업을 하나만 수행하고 결과를 복사하는 것이 더 좋습니다.
pg_basebackup마스터뿐만 아니라 대기에서도 기본 백업을 만들 수 있습니다. 대기에서 백업을 수행하려면 복제 연결을 허용할 수 있도록 대기를 설정합니다(즉, setmax_wal_senders그리고hot_standby및 구성토토 베이 PostgreSQL : 문서 : 10 : 20.1. pg_hba.conf 파일). 또한 활성화해야 합니다.full_page_writes마스터에.
대기 모드에서 온라인 백업에는 몇 가지 제한 사항이 있습니다.
백업된 데이터베이스 클러스터에는 백업 기록 파일이 생성되지 않습니다.
pg_basebackup백업 종료 시 대기 서버가 새 WAL 파일로 전환되도록 강제할 수 없습니다. 사용하는 경우-X 없음, 기본 인스턴스의 쓰기 활동이 낮은 경우pg_basebackup백업이 전환되고 보관되는 데 필요한 마지막 WAL 파일을 오랫동안 기다려야 할 수도 있습니다. 이 경우 다음을 실행하는 것이 유용할 수 있습니다.pg_switch_wal즉시 WAL 파일 전환을 트리거하기 위해 기본에서.
온라인 백업 중에 대기가 마스터로 승격되면 백업이 실패젠 토토.
백업에 필요한 모든 WAL 레코드에는 충분한 전체 페이지 쓰기가 포함되어야 하며 이를 활성화해야 젠 토토.full_page_writes마스터에 설치하고 다음과 같은 도구를 사용하지 마세요pg_compresslogasarchive_commandWAL 파일에서 전체 페이지 쓰기를 제거젠 토토.
다음 명령줄 옵션은 출력의 위치와 형식을 제어합니다.
-D디렉토리--pgdata=디렉토리출력을 쓸 디렉터리입니다.pg_basebackup필요한 경우 디렉토리와 상위 디렉토리를 생성합니다. 디렉터리가 이미 존재할 수도 있지만, 디렉터리가 이미 존재하고 비어 있지 않으면 오류입니다.
백업이 tar 모드이고 디렉토리가 다음과 같이 지정된 경우-(대시), tar 파일이 다음에 기록됩니다.stdout.
이 옵션은 필수입니다.
-F형식--형식=형식출력 형식을 선택합니다.형식다음 중 하나일 수 있습니다:
p일반현재 데이터 디렉토리 및 테이블스페이스와 동일한 레이아웃을 사용하여 출력을 일반 파일로 기록합니다. 클러스터에 추가 테이블스페이스가 없으면 전체 데이터베이스가 대상 디렉터리에 배치됩니다. 클러스터에 추가 테이블스페이스가 포함된 경우 기본 데이터 디렉터리는 대상 디렉터리에 배치되지만 다른 모든 테이블스페이스는 원본 서버에 있는 것과 동일한 절대 경로에 배치됩니다. (참조--테이블스페이스-매핑그것을 바꾸려면.)
이것이 기본 형식입니다.
t타르출력을 대상 디렉토리에 tar 파일로 쓰십시오. 기본 데이터 디렉터리는 다음과 같은 파일에 기록됩니다.base.tar, 기타 모든 테이블스페이스의 이름은 테이블스페이스 OID를 따라 지정됩니다.
값이-(대시)는 대상 디렉토리로 지정되며 tar 내용은 예를 들어 파이핑에 적합한 표준 출력에 기록됩니다.gzip. 이는 클러스터에 추가 테이블스페이스가 없고 WAL 스트리밍이 사용되지 않는 경우에만 가능합니다.
-r비율--최대 속도=비율서버에서 전송된 데이터의 최대 전송 속도입니다. 값은 초당 킬로바이트 단위입니다. 의 접미사를 사용하세요.M초당 메가바이트를 나타냅니다. 의 접미사k또한 허용되며 효과가 없습니다. 유효한 값은 초당 32KB에서 1024MB 사이입니다.
목적은 다음의 영향을 제한하는 것입니다.pg_basebackup실행 중인 서버에서.
이 옵션은 항상 데이터 디렉토리 전송에 영향을 미칩니다. WAL 파일 전송은 수집 방법이 다음과 같은 경우에만 영향을 받습니다.가져오기.
-R--write-recovery-conf최소한의 글을 쓰세요recovery.conf출력 디렉토리(또는 tar 형식을 사용하는 경우 기본 아카이브 파일)에 대기 서버 설정을 쉽게 합니다.recovery.conf파일은 연결 설정을 기록하고 지정된 경우 복제 슬롯을 기록합니다.pg_basebackup을 사용 중이므로 나중에 스트리밍 복제에서 동일한 설정을 사용하게 됩니다.
-S슬롯 이름--슬롯=슬롯 이름이 옵션은 다음과 함께만 사용할 수 있습니다.-X 스트림. WAL 스트리밍이 지정된 복제 슬롯을 사용하게 됩니다. 기본 백업을 복제 슬롯을 사용하여 스트리밍 복제 대기로 사용하려는 경우 동일한 복제 슬롯 이름을 사용해야 합니다.recovery.conf. 이렇게 하면 기본 백업 종료와 스트리밍 복제 시작 사이의 시간에 서버가 필요한 WAL 데이터를 제거하지 않는 것이 보장됩니다.
이 옵션이 지정되지 않고 서버가 임시 복제 슬롯(버전 10 이상)을 지원하는 경우 임시 복제 슬롯은 자동으로 WAL 스트리밍에 사용됩니다.
--슬롯 없음이 옵션은 서버에서 지원하더라도 백업 중에 임시 복제 슬롯이 생성되는 것을 방지합니다.
옵션에 슬롯 이름이 지정되지 않으면 기본적으로 임시 복제 슬롯이 생성됩니다.-S로그 스트리밍을 사용할 때.
이 옵션의 주요 목적은 서버에 여유 복제 슬롯이 없을 때 기본 백업을 수행할 수 있도록 하는 것입니다. 복제 슬롯을 사용하는 것은 백업 중에 필요한 WAL이 서버에 의해 제거되는 것을 방지하기 때문에 거의 항상 선호됩니다.
-Tolddir=newdir--테이블스페이스-매핑=olddir=newdir디렉토리에서 테이블스페이스를 재배치olddir에newdir백업 중. 효과적이려면,olddir현재 정의된 테이블스페이스의 경로 사양과 정확히 일치해야 합니다. (단, 테이블스페이스가 없으면 에러가 아니다.)olddir백업에 포함되어 있습니다.) 둘 다olddir그리고newdir절대 경로여야 젠 토토. 경로에가 포함된 경우=서명, 백슬래시로 이스케이프 처리하세요. 이 옵션은 여러 테이블스페이스에 대해 여러 번 지정할 수 있습니다. 아래 예를 참조하세요.
테이블스페이스가 이런 방식으로 재배치되면 기본 데이터 디렉토리 내부의 심볼릭 링크가 새 위치를 가리키도록 업데이트됩니다. 따라서 새 데이터 디렉터리는 업데이트된 위치에 모든 테이블스페이스가 있는 새 서버 인스턴스에 사용할 준비가 되었습니다.
현재 이 옵션은 일반 출력 형식에서만 작동합니다. tar 형식을 선택하면 무시됩니다.
--waldir=왈디르미리 쓰기 로그 디렉토리의 위치를 지정합니다.왈디르절대 경로여야 합니다. 미리 쓰기 로그 디렉터리는 백업이 일반 모드인 경우에만 지정할 수 있습니다.
-X방법--wal-method=메서드필수 미리 쓰기 로그 파일(WAL 파일)을 백업에 포함합니다. 여기에는 백업 중에 생성된 모든 미리 쓰기 로그가 포함됩니다. 방법이 아니라면없음이 지정되면 로그 아카이브를 참조할 필요 없이 추출된 디렉토리에서 직접 포스트마스터를 시작할 수 있으므로 이를 완전히 독립형 백업으로 만들 수 있습니다.
미리 쓰기 로그를 수집하기 위해 다음 방법이 지원됩니다:
n없음백업에 미리 쓰기 로그를 포함하지 마십시오.
f가져오기미리 쓰기 로그 파일은 백업이 끝나면 수집됩니다. 그러므로 다음과 같은 경우에 필요합니다.wal_keep_segments매개변수는 백업이 끝나기 전에 로그가 제거되지 않도록 충분히 높게 설정되어야 젠 토토. 전송할 시점에 로그가 순환된 경우 백업이 실패하고 사용할 수 없게 됩니다.
tar 형식 모드가 사용되면 미리 쓰기 로그 파일이 다음에 기록됩니다.base.tar파일.
s스트림백업이 생성되는 동안 미리 쓰기 로그를 스트리밍합니다. 그러면 서버에 대한 두 번째 연결이 열리고 백업을 실행하는 동안 미리 쓰기 로그 스트리밍이 병렬로 시작됩니다. 따라서 다음으로 구성된 두 개의 연결을 사용합니다.max_wal_senders매개변수. 클라이언트가 수신된 미리 쓰기 로그를 따라갈 수 있는 한, 이 모드를 사용하면 마스터에 추가로 미리 쓰기 로그를 저장할 필요가 없습니다.
tar 형식 모드가 사용되면 미리 쓰기 로그 파일은 이름이 별도의 파일에 기록됩니다.pg_wal.tar(서버가 10 이전 버전인 경우 파일 이름이 지정됩니다.pg_xlog.tar).
이 값은 기본값입니다.
-z--gzip기본 압축 수준으로 tar 파일 출력의 gzip 압축을 활성화합니다. 압축은 tar 형식과 접미사를 사용하는 경우에만 가능합니다..gz모든 tar 파일 이름에 자동으로 추가됩니다.
-Z레벨--압축=레벨tar 파일 출력의 gzip 압축을 활성화하고 압축 수준을 지정합니다(0~9, 0은 비압축, 9는 최고 압축). 압축은 tar 형식과 접미사를 사용하는 경우에만 가능합니다..gz모든 tar 파일 이름에 자동으로 추가됩니다.
다음 명령줄 옵션은 백업 생성과 프로그램 실행을 제어합니다.
-c빠른|확산--체크포인트=빠른|확산체크포인트 모드를 빠른(즉시) 또는 확산(기본값)으로 설정젠 토토(참조섹션 25.3.3).
-l라벨--레이블=라벨백업 라벨을 설정합니다. 아무것도 지정하지 않으면 기본값은“pg_basebackup 기본 백업”사용됩니다.
-n--청소 없음기본적으로 언제pg_basebackup오류와 함께 중단되면 작업을 완료할 수 없다는 사실을 발견하기 전에 생성했을 수 있는 모든 디렉터리(예: 데이터 디렉터리 및 미리 쓰기 로그 디렉터리)를 제거합니다. 이 옵션은 정리를 금지하므로 디버깅에 유용합니다.
테이블스페이스 디렉토리는 어떤 방법으로도 정리되지 않는다는 점에 유의하십시오.
-P--진행진행상황 보고를 활성화젠 토토. 이 기능을 켜면 백업 중에 대략적인 진행 보고서가 제공됩니다. 백업 중에 데이터베이스가 변경될 수 있으므로 이는 대략적인 것일 뿐이며 정확하게 끝나지 않을 수 있습니다.100%. 특히 백업에 WAL 로그가 포함된 경우 전체 데이터 양을 미리 예측할 수 없으며, 이 경우 WAL 없이 전체 예측을 통과하면 예상 대상 크기가 증가젠 토토.
이 기능이 활성화되면 전체 데이터베이스의 크기를 열거하여 백업이 시작된 다음 돌아가서 실제 내용을 전송합니다. 이로 인해 백업 시간이 약간 더 길어질 수 있으며, 특히 첫 번째 데이터가 전송되기 전에 시간이 더 오래 걸릴 수 있습니다.
-N--동기화 없음기본적으로,pg_basebackup모든 파일이 디스크에 안전하게 기록될 때까지 기다립니다. 이 옵션으로 인해pg_basebackup기다리지 않고 반환하는 것이 더 빠르지만 후속 운영 체제 충돌로 인해 기본 백업이 손상될 수 있음을 의미합니다. 일반적으로 이 옵션은 테스트에 유용하지만 프로덕션 설치를 생성할 때는 사용하면 안 됩니다.
-v--상세상세 모드를 활성화합니다. 시작 및 종료 중에 몇 가지 추가 단계를 출력하고 진행 보고가 활성화된 경우 현재 처리 중인 정확한 파일 이름을 표시합니다.
다음 명령줄 옵션은 데이터베이스 연결 매개변수를 제어합니다.
-dconnstr--dbname=connstr서버에 연결하는 데 사용되는 매개변수를 다음과 같이 지정합니다.연결 문자열; 이는 충돌하는 명령줄 옵션을 재정의합니다.
옵션이 호출되었습니다.--dbname다른 클라이언트 응용프로그램과의 일관성을 위해, 그러나 그 이유는pg_basebackup클러스터의 특정 데이터베이스에 연결되지 않습니다. 연결 문자열의 데이터베이스 이름은 무시됩니다.
-h호스트--호스트=호스트서버가 실행 중인 시스템의 호스트 이름을 지정합니다. 값이 슬래시로 시작하는 경우 Unix 도메인 소켓의 디렉터리로 사용됩니다. 기본값은에서 가져옵니다.PGHOST환경 변수, 설정된 경우 그렇지 않으면 Unix 도메인 소켓 연결이 시도됩니다.
-p포트--포트=포트서버가 연결을 수신하고 있는 TCP 포트 또는 로컬 Unix 도메인 소켓 파일 확장자를 지정합니다. 기본값은PG포트환경 변수(설정된 경우) 또는 컴파일된 기본값.
-s간격--상태-간격=간격서버로 다시 전송되는 상태 패킷 사이의 시간(초)을 지정합니다. 이를 통해 서버의 진행 상황을 더 쉽게 모니터링할 수 있습니다. 값이 0이면 주기적인 상태 업데이트가 완전히 비활성화됩니다. 단, 연결 끊김 시간 초과를 방지하기 위해 서버에서 요청할 때 업데이트가 계속 전송됩니다. 기본값은 10초입니다.
-U사용자 이름--사용자 이름=사용자 이름연결할 사용자 이름.
-w--비밀번호 없음비밀번호 프롬프트를 표시하지 마십시오. 서버가 비밀번호 인증을 요구하는데 다음과 같은 다른 방법으로 비밀번호를 사용할 수 없는 경우.pgpass파일을 사용하면 연결 시도가 실패합니다. 이 옵션은 비밀번호를 입력할 사용자가 없는 일괄 작업 및 스크립트에 유용할 수 있습니다.
-W--비밀번호포스pg_basebackup데이터베이스에 연결하기 전에 비밀번호를 묻는 메시지를 표시젠 토토.
이 옵션은 결코 필수가 아닙니다. 왜냐하면pg_basebackup서버가 비밀번호 인증을 요구하면 자동으로 비밀번호를 묻는 메시지를 표시젠 토토. 그러나pg_basebackup서버가 비밀번호를 원하는지 알아내는 연결 시도를 낭비하게 됩니다. 어떤 경우에는 입력할 가치가 있습니다.-W추가 연결 시도를 피하기 위해.
다른 옵션도 사용할 수 있습니다:
-V--버전인쇄pg_basebackup버전 및 종료.
-?--도움말다음에 관한 도움말 보기pg_basebackup명령줄 인수 및 종료.
이 유틸리티는 대부분의 다른 유틸리티와 같습니다.PostgreSQL유틸리티, 지원되는 환경 변수를 사용합니다.libpq(참조PostgreSQL : 문서 : 10 : 33.14. 환경 와이즈 토토).
백업 시작 시 백업을 가져온 서버에 체크포인트를 작성해야 합니다. 특히 옵션인 경우--체크포인트=빠름사용되지 않습니다. 그 동안 시간이 걸릴 수 있습니다.pg_basebackup유휴 상태인 것 같습니다.
백업에는 PostgreSQL에서 관리하는 특정 임시 파일을 제외하고 구성 파일과 제3자가 디렉터리에 배치한 추가 파일을 포함하여 데이터 디렉터리와 테이블 공간의 모든 파일이 포함됩니다. 그러나 테이블스페이스에 사용되는 심볼릭 링크가 보존된다는 점을 제외하고는 일반 파일과 디렉터리만 복사됩니다. PostgreSQL에 알려진 특정 디렉터리를 가리키는 기호 링크는 빈 디렉터리로 복사됩니다. 다른 기호 링크와 특수 장치 파일은 건너뜁니다. 참조PostgreSQL : 문서 : 10 : 52.4. 토토 결과 복제 프로토콜정확한 세부정보는.
테이블스페이스는 옵션이 없는 한 기본적으로 일반 형식으로 서버에 있는 것과 동일한 경로에 백업됩니다.--테이블스페이스-매핑사용됩니다. 이 옵션이 없으면 서버와 동일한 호스트에서 일반 형식 기본 백업을 실행하면 테이블스페이스가 사용 중인 경우 작동하지 않습니다. 백업은 원래 테이블스페이스와 동일한 디렉터리 위치에 기록되어야 하기 때문입니다.
tar 형식 모드를 사용할 때 PostgreSQL 서버를 시작하기 전에 각 tar 파일의 압축을 푸는 것은 사용자의 책임입니다. 추가 테이블스페이스가 있는 경우 해당 tar 파일을 올바른 위치에 풀어야 합니다. 이 경우 해당 테이블스페이스에 대한 심볼릭 링크는 다음의 내용에 따라 서버에 의해 생성됩니다.테이블스페이스_맵다음에 포함된 파일base.tar파일.
pg_basebackup동일하거나 이전 주요 버전(9.1 이하)의 서버에서 작동합니다. 그러나 WAL 스트리밍 모드(-X 스트림)는 서버 버전 9.3 이상 및 tar 형식 모드에서만 작동합니다(--format=tar34928_34999
서버의 기본 백업을 생성하려면mydb서버그리고 로컬 디렉토리에 저장/usr/local/pgsql/data:
$pg_basebackup -h mydbserver -D /usr/local/pgsql/data
각 테이블스페이스에 대해 하나의 압축 tar 파일로 로컬 서버의 백업을 생성하고 이를 디렉토리에 저장하려면백업, 실행 중 진행 보고서 표시:
$pg_basebackup -D 백업 -Ft -z -P
단일 테이블스페이스 로컬 데이터베이스의 백업을 생성하고 이를 압축하려면bzip2:
$pg_basebackup -D - -Ft -X 가져오기 | bzip2 backup.tar.bz2
(데이터베이스에 테이블스페이스가 여러 개 있으면 이 명령은 실패젠 토토.)
테이블스페이스가 있는 로컬 데이터베이스의 백업을 생성하려면/opt/ts다음으로 이전되었습니다../backup/ts:
$pg_basebackup -D 백업/데이터 -T /opt/ts=$(pwd)/backup/ts