pg_verifybackup — a의 기본 백업 무결성 확인포스트그레SQL클러스터
pg_verifybackup [옵션...]
pg_verifybackup다음을 사용하여 수행된 데이터베이스 클러스터 백업의 무결성을 확인하는 데 사용됩니다.pg_basebackup반대backup_manifest백업 시 서버에 의해 생성됩니다. 백업은 "일반" 또는 "tar" 형식으로 저장될 수 있습니다. 여기에는 지원되는 모든 알고리즘으로 압축된 tar 형식 백업이 포함됩니다.pg_basebackup. 그러나 현재는,WAL검증은 일반 형식 백업에만 지원됩니다. 따라서 백업이 tar 형식으로 저장된 경우,-n, --no-parse-wal옵션을 사용해야 합니다.
다음에 의해 수행되는 검증에 유의하는 것이 중요합니다.pg_verifybackup백업을 사용하려고 시도할 때 실행 중인 서버에서 수행될 모든 검사를 포함하지 않으며 포함할 수도 없습니다. 이 도구를 사용하더라도 테스트 복원을 수행하고 결과 데이터베이스가 예상대로 작동하는지, 데이터베이스에 올바른 데이터가 포함되어 있는지 확인해야 합니다. 그러나pg_verifybackup저장소 문제나 사용자 오류로 인해 일반적으로 발생하는 많은 문제를 감지할 수 있습니다.
백업 확인은 4단계로 진행됩니다. 먼저,pg_verifybackup읽는다backup_manifest젠 토토. 해당 젠 토토이 존재하지 않거나, 읽을 수 없거나, 형식이 잘못되었거나, 시스템 식별자와 일치하지 않는 경우pg_control백업 디렉토리의 자체 내부 체크섬에 대한 확인에 실패했습니다.pg_verifybackup치명적인 오류로 종료됩니다.
둘째,pg_verifybackup은 현재 디스크에 저장된 데이터 파일이 아래 설명된 몇 가지 예외를 제외하고 서버가 전송하려는 데이터 파일과 정확히 동일한지 확인하려고 시도합니다. 몇 가지 예외를 제외하고 추가 파일과 누락된 파일이 감지됩니다. 이 단계에서는 존재 여부 또는 수정 사항을 무시합니다.postgresql.auto.conf, 대기.신호및복구.신호, 왜냐하면 이러한 젠 토토이 백업 프로세스의 일부로 생성되거나 수정되었을 수 있기 때문입니다. 또한 a에 대해 불평하지 않습니다.backup_manifest대상 디렉토리에 있는 젠 토토이나 그 안에 있는 모든 것에 대한pg_wal, 이러한 젠 토토은 백업 매니페스트에 나열되지 않더라도 마찬가지입니다. 젠 토토만 검사됩니다. 디렉터리의 존재 여부는 간접적인 경우를 제외하고는 확인되지 않습니다. 디렉터리가 누락된 경우 해당 디렉터리에 포함되어야 하는 모든 젠 토토도 반드시 누락됩니다.
다음,pg_verifybackup모든 파일을 체크섬하고 매니페스트의 값과 체크섬을 비교하며 계산된 체크섬이 매니페스트에 저장된 체크섬과 일치하지 않는 모든 파일에 대해 오류를 발생시킵니다. 이전 단계에서 오류가 발생한 파일에 대해서는 이미 문제가 있는 것으로 알려져 있으므로 이 단계는 수행되지 않습니다. 이전 단계에서 무시된 파일은 이 단계에서도 무시됩니다.
마지막으로,pg_verifybackup매니페스트를 사용하여 백업을 복구하는 데 필요한 미리 쓰기 로그 레코드가 있는지, 해당 레코드를 읽고 구문 분석할 수 있는지 확인합니다.backup_manifest미리 쓰기 로그 레코드가 필요한 정보가 포함되어 있으며pg_verifybackup해당 정보를 사용하여 호출합니다pg_waldump미리 쓰기 로그 레코드를 구문 분석합니다.--조용함플래그가 사용되므로pg_waldump다른 출력은 생성하지 않고 오류만 보고합니다. 이 수준의 확인은 누락된 젠 토토이나 내부 체크섬이 일치하지 않는 젠 토토과 같은 명백한 문제를 감지하는 데 충분하지만 복구를 시도할 때 발생할 수 있는 모든 문제를 감지할 만큼 광범위하지는 않습니다. 예를 들어 올바른 체크섬이 있지만 무의미한 작업을 지정하는 미리 쓰기 로그 레코드를 생성하는 서버 버그는 이 방법으로 감지할 수 없습니다.
백업을 복구하는 데 필요하지 않은 추가 WAL 파일이 있는 경우 별도의 호출이 있더라도 이 도구로 확인하지 않습니다.pg_waldump그 목적으로 사용될 수 있습니다. 또한 WAL 확인은 버전별로 다릅니다. 다음 버전을 사용해야 합니다.pg_verifybackup, 따라서pg_waldump, 확인 중인 백업과 관련이 있습니다. 대조적으로, 데이터 파일 무결성 검사는 다음을 생성하는 모든 버전의 서버에서 작동해야 합니다.backup_manifest젠 토토.
pg_verifybackup다음 명령줄 인수를 허용합니다:
-e--오류 시 종료백업에 문제가 감지되는 즉시 종료합니다. 이 옵션을 지정하지 않으면,pg_verifybackup문제가 감지된 후에도 계속 백업을 확인하며 감지된 모든 문제를 오류로 보고합니다.
-F형식--형식=형식백업 형식을 지정합니다.형식다음 중 하나일 수 있습니다:
p일반백업은 원본 서버의 데이터 디렉토리 및 테이블스페이스와 동일한 레이아웃을 가진 일반 파일로 구성됩니다.
t타르백업은 압축될 수 있는 tar 파일로 구성됩니다. 유효한 백업에는 다음과 같은 파일의 기본 데이터 디렉터리가 포함됩니다.base.tar, 다음의 WAL 파일pg_wal.tar및 테이블스페이스의 OID를 따라 이름이 지정된 각 테이블스페이스에 대한 별도의 tar 젠 토토입니다. 백업이 압축되면 관련 압축 확장자가 각 젠 토토 이름 끝에 추가됩니다.
-i경로--무시=경로백업에 실제로 존재하는 데이터 파일 목록을 백업에 나열된 데이터 파일 목록과 비교할 때 상대 경로 이름으로 표현되어야 하는 지정된 파일 또는 디렉터리를 무시합니다.backup_manifest젠 토토. 디렉터리가 지정된 경우 이 옵션은 해당 위치에 루트가 있는 전체 하위 트리에 영향을 줍니다. 상대 경로 이름이 지정된 경로 이름과 일치하면 추가 파일, 누락된 파일, 파일 크기 차이 또는 체크섬 불일치에 대한 불만이 억제됩니다. 이 옵션은 여러 번 지정할 수 있습니다.
-m경로--manifest-path=경로백업 디렉토리 루트에 있는 파일이 아닌 지정된 경로에 있는 매니페스트 파일을 사용하십시오.
-n--no-parse-wal이 백업에서 복구하는 데 필요한 미리 쓰기 로그 데이터를 구문 분석하지 마십시오.
-P--진행진행 보고를 활성화합니다. 이 기능을 켜면 체크섬을 확인하는 동안 진행 보고서가 제공됩니다.
이 옵션은 옵션과 함께 사용할 수 없습니다.--조용함.
-q--조용함백업이 성공적으로 확인되면 아무것도 인쇄하지 마십시오.
-s--체크섬 건너뛰기데이터 젠 토토 체크섬을 확인하지 마십시오. 젠 토토의 유무와 해당 젠 토토의 크기는 계속 확인됩니다. 젠 토토 자체를 읽을 필요가 없기 때문에 훨씬 빠릅니다.
-w경로--wal-directory=경로다음이 아닌 지정된 디렉토리에 저장된 WAL 파일을 구문 분석해 보십시오.pg_wal. 백업이 WAL 아카이브와 별도의 위치에 저장되어 있는 경우 유용할 수 있습니다.
다른 옵션도 사용할 수 있습니다:
-V--버전인쇄pg_verifybackup버전 및 종료.
-?--도움말다음에 관한 도움말 보기pg_verifybackup명령줄 인수 및 종료.
서버의 기본 백업을 생성하려면mydb서버그리고 백업의 무결성을 확인하십시오:
$pg_basebackup -h mydbserver -D /usr/local/pgsql/data$pg_verifybackup /usr/local/pgsql/data
서버의 기본 백업을 생성하려면mydb서버, 매니페스트를 백업 디렉터리 외부로 이동하고 백업을 확인하세요.
$pg_basebackup -h mydbserver -D /usr/local/pgsql/backup1234$mv /usr/local/pgsql/backup1234/backup_manifest /my/secure/location/backup_manifest.1234$pg_verifybackup -m /my/secure/location/backup_manifest.1234 /usr/local/pgsql/backup1234
백업 디렉토리에 수동으로 추가된 젠 토토을 무시하고 체크섬 확인을 건너뛰면서 백업을 확인하려면:
$pg_basebackup -h mydbserver -D /usr/local/pgsql/data$/usr/local/pgsql/data/note.to.self 편집$pg_verifybackup --ignore=note.to.self --skip-checksums /usr/local/pgsql/data
문서에 올바르지 않은 내용이 있으면 일치하지 않습니다. 특정 기능에 대한 경험이 있거나 추가 설명이 필요한 경우 이용해주세요이 양식문서 문제를 보고합니다.