{"Entry":{"collection":"tool","key":"pg-verifybackup","name":"pg_verifybackup","aliases":["pg_verifybackup"],"metadata":{"aliases":["pg_verifybackup"],"category":"Client applications","content_hash":"617cdb97e0544fa393878fa848f2968d5858c3d2cab606818e426bd304e8ef30","imported_at":"2026-09-30T00:40:34.47657+08:00","name":"pg_verifybackup","name_zh":"","slug":"pg-verifybackup","summary":"pg_verifybackup — verify the integrity of a base backup of a PostgreSQL cluster"}},"Definition":{"Collection":"tool","Key":"pg-verifybackup","SourceDatabase":"center","Version":"18","SourceTable":"command_tool","SourceKey":"pg-verifybackup","SourceRevision":"ee8d1a3612338fd9adf250730cb640fcc5233b5491337cc00a316a44e3a0b9f8","Facts":{"comparison_data":{"environment":[],"options":[{"description":"Exit as soon as a problem with the backup is detected. If this option is not specified, pg_verifybackup will continue checking the backup even after a problem has been detected, and will report all problems detected as errors.","names":["-e","--exit-on-error"],"signature":"-e --exit-on-error"},{"description":"Specifies the format of the backup. format can be one of the following: p plain Backup consists of plain files with the same layout as the source server's data directory and tablespaces. t tar Backup consists of tar files, which may be compressed. A valid backup includes the main data directory in a file named base.tar , the WAL files in pg_wal.tar , and separate tar files for each tablespace, named after the tablespace's OID. If the backup is compressed, the relevant compression extension is added to the end of each file name.","names":["-F format","--format= format"],"signature":"-F format --format= format"},{"description":"Ignore the specified file or directory, which should be expressed as a relative path name, when comparing the list of data files actually present in the backup to those listed in the backup_manifest file. If a directory is specified, this option affects the entire subtree rooted at that location. Complaints about extra files, missing files, file size differences, or checksum mismatches will be suppressed if the relative path name matches the specified path name. This option can be specified multiple times.","names":["-i path","--ignore= path"],"signature":"-i path --ignore= path"},{"description":"Use the manifest file at the specified path, rather than one located in the root of the backup directory.","names":["-m path","--manifest-path= path"],"signature":"-m path --manifest-path= path"},{"description":"Don't attempt to parse write-ahead log data that will be needed to recover from this backup.","names":["-n","--no-parse-wal"],"signature":"-n --no-parse-wal"},{"description":"Enable progress reporting. Turning this on will deliver a progress report while verifying checksums. This option cannot be used together with the option --quiet .","names":["-P","--progress"],"signature":"-P --progress"},{"description":"Don't print anything when a backup is successfully verified.","names":["-q","--quiet"],"signature":"-q --quiet"},{"description":"Do not verify data file checksums. The presence or absence of files and the sizes of those files will still be checked. This is much faster, because the files themselves do not need to be read.","names":["-s","--skip-checksums"],"signature":"-s --skip-checksums"},{"description":"Try to parse WAL files stored in the specified directory, rather than in pg_wal . This may be useful if the backup is stored in a separate location from the WAL archive.","names":["-w path","--wal-directory= path"],"signature":"-w path --wal-directory= path"},{"description":"Print the pg_verifybackup version and exit.","names":["-V","--version"],"signature":"-V --version"},{"description":"Show help about pg_verifybackup command line arguments, and exit.","names":["-?","--help"],"signature":"-? --help"}],"synopsis":["pg_verifybackup [ option ...]"]},"comparison_hash":"713579f713732d850e7621f55d2508d075087e1f20aa56ca669fbd749c9a737c","description":["pg_verifybackup — verify the integrity of a base backup of a PostgreSQL cluster"],"environment":[],"facts":[{"label":"Documented executable","value":"pg_verifybackup"},{"label":"Executable version","value":"18.6"},{"label":"Reference inventory","value":"Client applications"},{"label":"Option definition groups","value":"11"}],"manual_html":"\u003cdiv\u003e\u003cdiv class=\"refentry\" id=\"APP-PGVERIFYBACKUP\"\u003e\n\u003cdiv class=\"titlepage\"\u003e\u003c/div\u003e\n\u003cdiv class=\"refnamediv\"\u003e\n\u003ch2\u003e\u003cspan class=\"refentrytitle\"\u003e\u003cspan class=\"application\"\u003epg_verifybackup\u003c/span\u003e\u003c/span\u003e\u003c/h2\u003e\n\u003cp\u003epg_verifybackup — verify the integrity of a base backup of a \u003cspan class=\"productname\"\u003ePostgreSQL\u003c/span\u003e cluster\u003c/p\u003e\n\u003c/div\u003e\n\u003cdiv class=\"refsynopsisdiv\"\u003e\n\u003ch2\u003eSynopsis\u003c/h2\u003e\n\u003cdiv class=\"cmdsynopsis\"\u003e\n\u003cp id=\"id-1.9.4.20.4.1\"\u003e\u003ccode class=\"command\"\u003epg_verifybackup\u003c/code\u003e [\u003cem class=\"replaceable\"\u003e\u003ccode\u003eoption\u003c/code\u003e\u003c/em\u003e...]\u003c/p\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"refsect1\" id=\"id-1.9.4.20.5\"\u003e\n\u003ch2\u003eDescription\u003c/h2\u003e\n\u003cp\u003e\u003cspan class=\"application\"\u003epg_verifybackup\u003c/span\u003e is used to check the integrity of a database cluster backup taken using \u003ccode class=\"command\"\u003epg_basebackup\u003c/code\u003e against a \u003ccode class=\"literal\"\u003ebackup_manifest\u003c/code\u003e generated by the server at the time of the backup. The backup may be stored either in the \"plain\" or the \"tar\" format; this includes tar-format backups compressed with any algorithm supported by \u003cspan class=\"application\"\u003epg_basebackup\u003c/span\u003e. However, at present, \u003ccode class=\"literal\"\u003eWAL\u003c/code\u003e verification is supported only for plain-format backups. Therefore, if the backup is stored in tar-format, the \u003ccode class=\"literal\"\u003e-n, --no-parse-wal\u003c/code\u003e option should be used.\u003c/p\u003e\n\u003cp\u003eIt is important to note that the validation which is performed by \u003cspan class=\"application\"\u003epg_verifybackup\u003c/span\u003e does not and cannot include every check which will be performed by a running server when attempting to make use of the backup. Even if you use this tool, you should still perform test restores and verify that the resulting databases work as expected and that they appear to contain the correct data. However, \u003cspan class=\"application\"\u003epg_verifybackup\u003c/span\u003e can detect many problems that commonly occur due to storage problems or user error.\u003c/p\u003e\n\u003cp\u003eBackup verification proceeds in four stages. First, \u003ccode class=\"literal\"\u003epg_verifybackup\u003c/code\u003e reads the \u003ccode class=\"literal\"\u003ebackup_manifest\u003c/code\u003e file. If that file does not exist, cannot be read, is malformed, fails to match the system identifier with \u003ccode class=\"filename\"\u003epg_control\u003c/code\u003e of the backup directory or fails verification against its own internal checksum, \u003ccode class=\"literal\"\u003epg_verifybackup\u003c/code\u003e will terminate with a fatal error.\u003c/p\u003e\n\u003cp\u003eSecond, \u003ccode class=\"literal\"\u003epg_verifybackup\u003c/code\u003e will attempt to verify that the data files currently stored on disk are exactly the same as the data files which the server intended to send, with some exceptions that are described below. Extra and missing files will be detected, with a few exceptions. This step will ignore the presence or absence of, or any modifications to, \u003ccode class=\"literal\"\u003epostgresql.auto.conf\u003c/code\u003e, \u003ccode class=\"literal\"\u003estandby.signal\u003c/code\u003e, and \u003ccode class=\"literal\"\u003erecovery.signal\u003c/code\u003e, because it is expected that these files may have been created or modified as part of the process of taking the backup. It also won't complain about a \u003ccode class=\"literal\"\u003ebackup_manifest\u003c/code\u003e file in the target directory or about anything inside \u003ccode class=\"literal\"\u003epg_wal\u003c/code\u003e, even though these files won't be listed in the backup manifest. Only files are checked; the presence or absence of directories is not verified, except indirectly: if a directory is missing, any files it should have contained will necessarily also be missing.\u003c/p\u003e\n\u003cp\u003eNext, \u003ccode class=\"literal\"\u003epg_verifybackup\u003c/code\u003e will checksum all the files, compare the checksums against the values in the manifest, and emit errors for any files for which the computed checksum does not match the checksum stored in the manifest. This step is not performed for any files which produced errors in the previous step, since they are already known to have problems. Files which were ignored in the previous step are also ignored in this step.\u003c/p\u003e\n\u003cp\u003eFinally, \u003ccode class=\"literal\"\u003epg_verifybackup\u003c/code\u003e will use the manifest to verify that the write-ahead log records which will be needed to recover the backup are present and that they can be read and parsed. The \u003ccode class=\"literal\"\u003ebackup_manifest\u003c/code\u003e contains information about which write-ahead log records will be needed, and \u003ccode class=\"literal\"\u003epg_verifybackup\u003c/code\u003e will use that information to invoke \u003ccode class=\"literal\"\u003epg_waldump\u003c/code\u003e to parse those write-ahead log records. The \u003ccode class=\"literal\"\u003e--quiet\u003c/code\u003e flag will be used, so that \u003ccode class=\"literal\"\u003epg_waldump\u003c/code\u003e will only report errors, without producing any other output. While this level of verification is sufficient to detect obvious problems such as a missing file or one whose internal checksums do not match, they aren't extensive enough to detect every possible problem that might occur when attempting to recover. For instance, a server bug that produces write-ahead log records that have the correct checksums but specify nonsensical actions can't be detected by this method.\u003c/p\u003e\n\u003cp\u003eNote that if extra WAL files which are not required to recover the backup are present, they will not be checked by this tool, although a separate invocation of \u003ccode class=\"literal\"\u003epg_waldump\u003c/code\u003e could be used for that purpose. Also note that WAL verification is version-specific: you must use the version of \u003ccode class=\"literal\"\u003epg_verifybackup\u003c/code\u003e, and thus of \u003ccode class=\"literal\"\u003epg_waldump\u003c/code\u003e, which pertains to the backup being checked. In contrast, the data file integrity checks should work with any version of the server that generates a \u003ccode class=\"literal\"\u003ebackup_manifest\u003c/code\u003e file.\u003c/p\u003e\n\u003c/div\u003e\n\u003cdiv class=\"refsect1\" id=\"id-1.9.4.20.6\"\u003e\n\u003ch2\u003eOptions\u003c/h2\u003e\n\u003cp\u003e\u003cspan class=\"application\"\u003epg_verifybackup\u003c/span\u003e accepts the following command-line arguments:\u003c/p\u003e\n\u003cdiv class=\"variablelist\"\u003e\n\u003cdl class=\"variablelist\"\u003e\n\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003ccode class=\"option\"\u003e-e\u003c/code\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan class=\"term\"\u003e\u003ccode class=\"option\"\u003e--exit-on-error\u003c/code\u003e\u003c/span\u003e\u003c/dt\u003e\n\u003cdd\u003e\n\u003cp\u003eExit as soon as a problem with the backup is detected. If this option is not specified, \u003ccode class=\"literal\"\u003epg_verifybackup\u003c/code\u003e will continue checking the backup even after a problem has been detected, and will report all problems detected as errors.\u003c/p\u003e\n\u003c/dd\u003e\n\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003ccode class=\"option\"\u003e-F \u003cem class=\"replaceable\"\u003e\u003ccode\u003eformat\u003c/code\u003e\u003c/em\u003e\u003c/code\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan class=\"term\"\u003e\u003ccode class=\"option\"\u003e--format=\u003cem class=\"replaceable\"\u003e\u003ccode\u003eformat\u003c/code\u003e\u003c/em\u003e\u003c/code\u003e\u003c/span\u003e\u003c/dt\u003e\n\u003cdd\u003e\n\u003cp\u003eSpecifies the format of the backup. \u003cem class=\"replaceable\"\u003e\u003ccode\u003eformat\u003c/code\u003e\u003c/em\u003e can be one of the following:\u003c/p\u003e\n\u003cdiv class=\"variablelist\"\u003e\n\u003cdl class=\"variablelist\"\u003e\n\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003ccode class=\"literal\"\u003ep\u003c/code\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan class=\"term\"\u003e\u003ccode class=\"literal\"\u003eplain\u003c/code\u003e\u003c/span\u003e\u003c/dt\u003e\n\u003cdd\u003e\n\u003cp\u003eBackup consists of plain files with the same layout as the source server's data directory and tablespaces.\u003c/p\u003e\n\u003c/dd\u003e\n\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003ccode class=\"literal\"\u003et\u003c/code\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan class=\"term\"\u003e\u003ccode class=\"literal\"\u003etar\u003c/code\u003e\u003c/span\u003e\u003c/dt\u003e\n\u003cdd\u003e\n\u003cp\u003eBackup consists of tar files, which may be compressed. A valid backup includes the main data directory in a file named \u003ccode class=\"filename\"\u003ebase.tar\u003c/code\u003e, the WAL files in \u003ccode class=\"filename\"\u003epg_wal.tar\u003c/code\u003e, and separate tar files for each tablespace, named after the tablespace's OID. If the backup is compressed, the relevant compression extension is added to the end of each file name.\u003c/p\u003e\n\u003c/dd\u003e\n\u003c/dl\u003e\n\u003c/div\u003e\n\u003c/dd\u003e\n\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003ccode class=\"option\"\u003e-i \u003cem class=\"replaceable\"\u003e\u003ccode\u003epath\u003c/code\u003e\u003c/em\u003e\u003c/code\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan class=\"term\"\u003e\u003ccode class=\"option\"\u003e--ignore=\u003cem class=\"replaceable\"\u003e\u003ccode\u003epath\u003c/code\u003e\u003c/em\u003e\u003c/code\u003e\u003c/span\u003e\u003c/dt\u003e\n\u003cdd\u003e\n\u003cp\u003eIgnore the specified file or directory, which should be expressed as a relative path name, when comparing the list of data files actually present in the backup to those listed in the \u003ccode class=\"literal\"\u003ebackup_manifest\u003c/code\u003e file. If a directory is specified, this option affects the entire subtree rooted at that location. Complaints about extra files, missing files, file size differences, or checksum mismatches will be suppressed if the relative path name matches the specified path name. This option can be specified multiple times.\u003c/p\u003e\n\u003c/dd\u003e\n\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003ccode class=\"option\"\u003e-m \u003cem class=\"replaceable\"\u003e\u003ccode\u003epath\u003c/code\u003e\u003c/em\u003e\u003c/code\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan class=\"term\"\u003e\u003ccode class=\"option\"\u003e--manifest-path=\u003cem class=\"replaceable\"\u003e\u003ccode\u003epath\u003c/code\u003e\u003c/em\u003e\u003c/code\u003e\u003c/span\u003e\u003c/dt\u003e\n\u003cdd\u003e\n\u003cp\u003eUse the manifest file at the specified path, rather than one located in the root of the backup directory.\u003c/p\u003e\n\u003c/dd\u003e\n\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003ccode class=\"option\"\u003e-n\u003c/code\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan class=\"term\"\u003e\u003ccode class=\"option\"\u003e--no-parse-wal\u003c/code\u003e\u003c/span\u003e\u003c/dt\u003e\n\u003cdd\u003e\n\u003cp\u003eDon't attempt to parse write-ahead log data that will be needed to recover from this backup.\u003c/p\u003e\n\u003c/dd\u003e\n\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003ccode class=\"option\"\u003e-P\u003c/code\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan class=\"term\"\u003e\u003ccode class=\"option\"\u003e--progress\u003c/code\u003e\u003c/span\u003e\u003c/dt\u003e\n\u003cdd\u003e\n\u003cp\u003eEnable progress reporting. Turning this on will deliver a progress report while verifying checksums.\u003c/p\u003e\n\u003cp\u003eThis option cannot be used together with the option \u003ccode class=\"option\"\u003e--quiet\u003c/code\u003e.\u003c/p\u003e\n\u003c/dd\u003e\n\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003ccode class=\"option\"\u003e-q\u003c/code\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan class=\"term\"\u003e\u003ccode class=\"option\"\u003e--quiet\u003c/code\u003e\u003c/span\u003e\u003c/dt\u003e\n\u003cdd\u003e\n\u003cp\u003eDon't print anything when a backup is successfully verified.\u003c/p\u003e\n\u003c/dd\u003e\n\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003ccode class=\"option\"\u003e-s\u003c/code\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan class=\"term\"\u003e\u003ccode class=\"option\"\u003e--skip-checksums\u003c/code\u003e\u003c/span\u003e\u003c/dt\u003e\n\u003cdd\u003e\n\u003cp\u003eDo not verify data file checksums. The presence or absence of files and the sizes of those files will still be checked. This is much faster, because the files themselves do not need to be read.\u003c/p\u003e\n\u003c/dd\u003e\n\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003ccode class=\"option\"\u003e-w \u003cem class=\"replaceable\"\u003e\u003ccode\u003epath\u003c/code\u003e\u003c/em\u003e\u003c/code\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan class=\"term\"\u003e\u003ccode class=\"option\"\u003e--wal-directory=\u003cem class=\"replaceable\"\u003e\u003ccode\u003epath\u003c/code\u003e\u003c/em\u003e\u003c/code\u003e\u003c/span\u003e\u003c/dt\u003e\n\u003cdd\u003e\n\u003cp\u003eTry to parse WAL files stored in the specified directory, rather than in \u003ccode class=\"literal\"\u003epg_wal\u003c/code\u003e. This may be useful if the backup is stored in a separate location from the WAL archive.\u003c/p\u003e\n\u003c/dd\u003e\n\u003c/dl\u003e\n\u003c/div\u003e\n\u003cp\u003eOther options are also available:\u003c/p\u003e\n\u003cdiv class=\"variablelist\"\u003e\n\u003cdl class=\"variablelist\"\u003e\n\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003ccode class=\"option\"\u003e-V\u003c/code\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan class=\"term\"\u003e\u003ccode class=\"option\"\u003e--version\u003c/code\u003e\u003c/span\u003e\u003c/dt\u003e\n\u003cdd\u003e\n\u003cp\u003ePrint the \u003cspan class=\"application\"\u003epg_verifybackup\u003c/span\u003e version and exit.\u003c/p\u003e\n\u003c/dd\u003e\n\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003ccode class=\"option\"\u003e-?\u003c/code\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan class=\"term\"\u003e\u003ccode class=\"option\"\u003e--help\u003c/code\u003e\u003c/span\u003e\u003c/dt\u003e\n\u003cdd\u003e\n\u003cp\u003eShow help about \u003cspan class=\"application\"\u003epg_verifybackup\u003c/span\u003e command line arguments, and exit.\u003c/p\u003e\n\u003c/dd\u003e\n\u003c/dl\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"refsect1\" id=\"id-1.9.4.20.7\"\u003e\n\u003ch2\u003eExamples\u003c/h2\u003e\n\u003cp\u003eTo create a base backup of the server at \u003ccode class=\"literal\"\u003emydbserver\u003c/code\u003e and verify the integrity of the backup:\u003c/p\u003e\n\u003cpre class=\"screen\"\u003e\u003ccode class=\"prompt\"\u003e$\u003c/code\u003e \u003cstrong class=\"userinput\"\u003e\u003ccode\u003epg_basebackup -h mydbserver -D /usr/local/pgsql/data\u003c/code\u003e\u003c/strong\u003e\n\u003ccode class=\"prompt\"\u003e$\u003c/code\u003e \u003cstrong class=\"userinput\"\u003e\u003ccode\u003epg_verifybackup /usr/local/pgsql/data\u003c/code\u003e\u003c/strong\u003e\n\u003c/pre\u003e\n\u003cp\u003eTo create a base backup of the server at \u003ccode class=\"literal\"\u003emydbserver\u003c/code\u003e, move the manifest somewhere outside the backup directory, and verify the backup:\u003c/p\u003e\n\u003cpre class=\"screen\"\u003e\u003ccode class=\"prompt\"\u003e$\u003c/code\u003e \u003cstrong class=\"userinput\"\u003e\u003ccode\u003epg_basebackup -h mydbserver -D /usr/local/pgsql/backup1234\u003c/code\u003e\u003c/strong\u003e\n\u003ccode class=\"prompt\"\u003e$\u003c/code\u003e \u003cstrong class=\"userinput\"\u003e\u003ccode\u003emv /usr/local/pgsql/backup1234/backup_manifest /my/secure/location/backup_manifest.1234\u003c/code\u003e\u003c/strong\u003e\n\u003ccode class=\"prompt\"\u003e$\u003c/code\u003e \u003cstrong class=\"userinput\"\u003e\u003ccode\u003epg_verifybackup -m /my/secure/location/backup_manifest.1234 /usr/local/pgsql/backup1234\u003c/code\u003e\u003c/strong\u003e\n\u003c/pre\u003e\n\u003cp\u003eTo verify a backup while ignoring a file that was added manually to the backup directory, and also skipping checksum verification:\u003c/p\u003e\n\u003cpre class=\"screen\"\u003e\u003ccode class=\"prompt\"\u003e$\u003c/code\u003e \u003cstrong class=\"userinput\"\u003e\u003ccode\u003epg_basebackup -h mydbserver -D /usr/local/pgsql/data\u003c/code\u003e\u003c/strong\u003e\n\u003ccode class=\"prompt\"\u003e$\u003c/code\u003e \u003cstrong class=\"userinput\"\u003e\u003ccode\u003eedit /usr/local/pgsql/data/note.to.self\u003c/code\u003e\u003c/strong\u003e\n\u003ccode class=\"prompt\"\u003e$\u003c/code\u003e \u003cstrong class=\"userinput\"\u003e\u003ccode\u003epg_verifybackup --ignore=note.to.self --skip-checksums /usr/local/pgsql/data\u003c/code\u003e\u003c/strong\u003e\n\u003c/pre\u003e\n\u003c/div\u003e\n\u003cdiv class=\"refsect1\" id=\"id-1.9.4.20.8\"\u003e\n\u003ch2\u003eSee Also\u003c/h2\u003e\u003cspan class=\"simplelist\"\u003e\u003ca class=\"xref\" href=\"/docs/18/app-pgbasebackup.html\" title=\"pg_basebackup\"\u003e\u003cspan class=\"refentrytitle\"\u003e\u003cspan class=\"application\"\u003epg_basebackup\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003c/span\u003e\n\u003c/div\u003e\n\u003c/div\u003e\u003c/div\u003e","manual_path":"app-pgverifybackup.html","options":[{"description":"Exit as soon as a problem with the backup is detected. If this option is not specified, pg_verifybackup will continue checking the backup even after a problem has been detected, and will report all problems detected as errors.","names":["-e","--exit-on-error"],"signature":"-e --exit-on-error","source_url":"/docs/18/app-pgverifybackup.html","summary":"Exit as soon as a problem with the backup is detected. If this option is not specified, pg_verifybackup will continue checking the backup even after a problem has been detected, and will report all problems detected as errors."},{"description":"Specifies the format of the backup. format can be one of the following: p plain Backup consists of plain files with the same layout as the source server's data directory and tablespaces. t tar Backup consists of tar files, which may be compressed. A valid backup includes the main data directory in a file named base.tar , the WAL files in pg_wal.tar , and separate tar files for each tablespace, named after the tablespace's OID. If the backup is compressed, the relevant compression extension is added to the end of each file name.","names":["-F format","--format= format"],"signature":"-F format --format= format","source_url":"/docs/18/app-pgverifybackup.html","summary":"Specifies the format of the backup. format can be one of the following:"},{"description":"Ignore the specified file or directory, which should be expressed as a relative path name, when comparing the list of data files actually present in the backup to those listed in the backup_manifest file. If a directory is specified, this option affects the entire subtree rooted at that location. Complaints about extra files, missing files, file size differences, or checksum mismatches will be suppressed if the relative path name matches the specified path name. This option can be specified multiple times.","names":["-i path","--ignore= path"],"signature":"-i path --ignore= path","source_url":"/docs/18/app-pgverifybackup.html","summary":"Ignore the specified file or directory, which should be expressed as a relative path name, when comparing the list of data files actually present in the backup to those listed in the backup_manifest file. If a directory is specified, this option affects the entire subtree rooted at that location. Complaints about extra files, missing files, file size differences, or checksum mismatches will be suppressed if the relative path name matches the specified path name. This option can be specified multiple times."},{"description":"Use the manifest file at the specified path, rather than one located in the root of the backup directory.","names":["-m path","--manifest-path= path"],"signature":"-m path --manifest-path= path","source_url":"/docs/18/app-pgverifybackup.html","summary":"Use the manifest file at the specified path, rather than one located in the root of the backup directory."},{"description":"Don't attempt to parse write-ahead log data that will be needed to recover from this backup.","names":["-n","--no-parse-wal"],"signature":"-n --no-parse-wal","source_url":"/docs/18/app-pgverifybackup.html","summary":"Don't attempt to parse write-ahead log data that will be needed to recover from this backup."},{"description":"Enable progress reporting. Turning this on will deliver a progress report while verifying checksums. This option cannot be used together with the option --quiet .","names":["-P","--progress"],"signature":"-P --progress","source_url":"/docs/18/app-pgverifybackup.html","summary":"Enable progress reporting. Turning this on will deliver a progress report while verifying checksums."},{"description":"Don't print anything when a backup is successfully verified.","names":["-q","--quiet"],"signature":"-q --quiet","source_url":"/docs/18/app-pgverifybackup.html","summary":"Don't print anything when a backup is successfully verified."},{"description":"Do not verify data file checksums. The presence or absence of files and the sizes of those files will still be checked. This is much faster, because the files themselves do not need to be read.","names":["-s","--skip-checksums"],"signature":"-s --skip-checksums","source_url":"/docs/18/app-pgverifybackup.html","summary":"Do not verify data file checksums. The presence or absence of files and the sizes of those files will still be checked. This is much faster, because the files themselves do not need to be read."},{"description":"Try to parse WAL files stored in the specified directory, rather than in pg_wal . This may be useful if the backup is stored in a separate location from the WAL archive.","names":["-w path","--wal-directory= path"],"signature":"-w path --wal-directory= path","source_url":"/docs/18/app-pgverifybackup.html","summary":"Try to parse WAL files stored in the specified directory, rather than in pg_wal . This may be useful if the backup is stored in a separate location from the WAL archive."},{"description":"Print the pg_verifybackup version and exit.","names":["-V","--version"],"signature":"-V --version","source_url":"/docs/18/app-pgverifybackup.html","summary":"Print the pg_verifybackup version and exit."},{"description":"Show help about pg_verifybackup command line arguments, and exit.","names":["-?","--help"],"signature":"-? --help","source_url":"/docs/18/app-pgverifybackup.html","summary":"Show help about pg_verifybackup command line arguments, and exit."}],"related":[],"release":{"channel":"stable","evidence_kind":"English manual and source declarations","label":"18.6","major":"18","manifest":{"index":"index.html","major":"18","pages":1148,"pdf":{"A4":{"built_at":"2026-09-26","bytes":15865106,"pages":3154,"sha256":"19512c405da53f9f7fcf0abba359223aa65f021be025bf3411381918f92e3190","url":"/files/documentation/pdf/18/postgresql-18-A4.pdf"},"US":{"built_at":"2026-09-26","bytes":15748059,"pages":3328,"sha256":"facbe6c229e598b872d3d98bef53308f46e06746006fa4590de9a7de9dd46319","url":"/files/documentation/pdf/18/postgresql-18-US.pdf"}},"release":"18.6","source_mode":"en SGML built with pinned official archive","source_sha256":"555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f","source_url":"https://ftp.postgresql.org/pub/source/v18.6/postgresql-18.6.tar.bz2","svg_assets":3,"tree":"18"},"ref":"https://ftp.postgresql.org/pub/source/v18.6/postgresql-18.6.tar.bz2","revision":"ee8d1a3612338fd9adf250730cb640fcc5233b5491337cc00a316a44e3a0b9f8","source_sha256":"555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f"},"sections":[],"signature":"pg_verifybackup [ option ...]","sources":[{"anchor":"","file":"app-pgverifybackup.html","label":"18.6 English manual · app-pgverifybackup.html","sha256":"70a0a36060ff1d19bfcd8f8b8abee2060423f7e768f5554fd53b7a84851c0a58","url":"/docs/18/app-pgverifybackup.html"},{"anchor":"","file":"reference-client.html","label":"Client applications inventory","sha256":"68f726af77272fe73a827be2b7b5958d0f2239a6f8ed44264e9d42496bfa4fd0","url":"/docs/18/reference-client.html"}],"synopsis":["pg_verifybackup [ option ...]"],"tables":[{"columns":[{"key":"signature","label":"Option and arguments"},{"key":"summary","label":"Description"}],"key":"options","rows":[{"signature":{"text":"-e --exit-on-error","url":"/docs/18/app-pgverifybackup.html"},"summary":"Exit as soon as a problem with the backup is detected. If this option is not specified, pg_verifybackup will continue checking the backup even after a problem has been detected, and will report all problems detected as errors."},{"signature":{"text":"-F format --format= format","url":"/docs/18/app-pgverifybackup.html"},"summary":"Specifies the format of the backup. format can be one of the following:"},{"signature":{"text":"-i path --ignore= path","url":"/docs/18/app-pgverifybackup.html"},"summary":"Ignore the specified file or directory, which should be expressed as a relative path name, when comparing the list of data files actually present in the backup to those listed in the backup_manifest file. If a directory is specified, this option affects the entire subtree rooted at that location. Complaints about extra files, missing files, file size differences, or checksum mismatches will be suppressed if the relative path name matches the specified path name. This option can be specified multiple times."},{"signature":{"text":"-m path --manifest-path= path","url":"/docs/18/app-pgverifybackup.html"},"summary":"Use the manifest file at the specified path, rather than one located in the root of the backup directory."},{"signature":{"text":"-n --no-parse-wal","url":"/docs/18/app-pgverifybackup.html"},"summary":"Don't attempt to parse write-ahead log data that will be needed to recover from this backup."},{"signature":{"text":"-P --progress","url":"/docs/18/app-pgverifybackup.html"},"summary":"Enable progress reporting. Turning this on will deliver a progress report while verifying checksums."},{"signature":{"text":"-q --quiet","url":"/docs/18/app-pgverifybackup.html"},"summary":"Don't print anything when a backup is successfully verified."},{"signature":{"text":"-s --skip-checksums","url":"/docs/18/app-pgverifybackup.html"},"summary":"Do not verify data file checksums. The presence or absence of files and the sizes of those files will still be checked. This is much faster, because the files themselves do not need to be read."},{"signature":{"text":"-w path --wal-directory= path","url":"/docs/18/app-pgverifybackup.html"},"summary":"Try to parse WAL files stored in the specified directory, rather than in pg_wal . This may be useful if the backup is stored in a separate location from the WAL archive."},{"signature":{"text":"-V --version","url":"/docs/18/app-pgverifybackup.html"},"summary":"Print the pg_verifybackup version and exit."},{"signature":{"text":"-? --help","url":"/docs/18/app-pgverifybackup.html"},"summary":"Show help about pg_verifybackup command line arguments, and exit."}],"title":"Documented options"}]},"ManualEvidence":{"manual_path":"app-pgverifybackup.html","release":{"channel":"stable","evidence_kind":"English manual and source declarations","label":"18.6","major":"18","manifest":{"index":"index.html","major":"18","pages":1148,"pdf":{"A4":{"built_at":"2026-09-26","bytes":15865106,"pages":3154,"sha256":"19512c405da53f9f7fcf0abba359223aa65f021be025bf3411381918f92e3190","url":"/files/documentation/pdf/18/postgresql-18-A4.pdf"},"US":{"built_at":"2026-09-26","bytes":15748059,"pages":3328,"sha256":"facbe6c229e598b872d3d98bef53308f46e06746006fa4590de9a7de9dd46319","url":"/files/documentation/pdf/18/postgresql-18-US.pdf"}},"release":"18.6","source_mode":"en SGML built with pinned official archive","source_sha256":"555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f","source_url":"https://ftp.postgresql.org/pub/source/v18.6/postgresql-18.6.tar.bz2","svg_assets":3,"tree":"18"},"ref":"https://ftp.postgresql.org/pub/source/v18.6/postgresql-18.6.tar.bz2","revision":"ee8d1a3612338fd9adf250730cb640fcc5233b5491337cc00a316a44e3a0b9f8","source_sha256":"555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f"},"sources":[{"anchor":"","file":"app-pgverifybackup.html","label":"18.6 English manual · app-pgverifybackup.html","sha256":"70a0a36060ff1d19bfcd8f8b8abee2060423f7e768f5554fd53b7a84851c0a58","url":"/docs/18/app-pgverifybackup.html"},{"anchor":"","file":"reference-client.html","label":"Client applications inventory","sha256":"68f726af77272fe73a827be2b7b5958d0f2239a6f8ed44264e9d42496bfa4fd0","url":"/docs/18/reference-client.html"}]},"MeasuredEvidence":{}},"Text":{"Collection":"tool","Key":"pg-verifybackup","SourceDatabase":"center","Version":"18","Locale":"en","Title":"pg_verifybackup","Summary":"pg_verifybackup — verify the integrity of a base backup of a PostgreSQL cluster","BodyHTML":"\u003cdiv\u003e\u003cdiv id=\"APP-PGVERIFYBACKUP\"\u003e\n\u003cdiv\u003e\u003c/div\u003e\n\u003cdiv\u003e\n\u003ch2\u003e\u003cspan\u003e\u003cspan\u003epg_verifybackup\u003c/span\u003e\u003c/span\u003e\u003c/h2\u003e\n\u003cp\u003epg_verifybackup — verify the integrity of a base backup of a \u003cspan\u003ePostgreSQL\u003c/span\u003e cluster\u003c/p\u003e\n\u003c/div\u003e\n\u003cdiv\u003e\n\u003ch2\u003eSynopsis\u003c/h2\u003e\n\u003cdiv\u003e\n\u003cp id=\"id-1.9.4.20.4.1\"\u003e\u003ccode\u003epg_verifybackup\u003c/code\u003e [\u003cem\u003e\u003ccode\u003eoption\u003c/code\u003e\u003c/em\u003e...]\u003c/p\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv id=\"id-1.9.4.20.5\"\u003e\n\u003ch2\u003eDescription\u003c/h2\u003e\n\u003cp\u003e\u003cspan\u003epg_verifybackup\u003c/span\u003e is used to check the integrity of a database cluster backup taken using \u003ccode\u003epg_basebackup\u003c/code\u003e against a \u003ccode\u003ebackup_manifest\u003c/code\u003e generated by the server at the time of the backup. The backup may be stored either in the \u0026#34;plain\u0026#34; or the \u0026#34;tar\u0026#34; format; this includes tar-format backups compressed with any algorithm supported by \u003cspan\u003epg_basebackup\u003c/span\u003e. However, at present, \u003ccode\u003eWAL\u003c/code\u003e verification is supported only for plain-format backups. Therefore, if the backup is stored in tar-format, the \u003ccode\u003e-n, --no-parse-wal\u003c/code\u003e option should be used.\u003c/p\u003e\n\u003cp\u003eIt is important to note that the validation which is performed by \u003cspan\u003epg_verifybackup\u003c/span\u003e does not and cannot include every check which will be performed by a running server when attempting to make use of the backup. Even if you use this tool, you should still perform test restores and verify that the resulting databases work as expected and that they appear to contain the correct data. However, \u003cspan\u003epg_verifybackup\u003c/span\u003e can detect many problems that commonly occur due to storage problems or user error.\u003c/p\u003e\n\u003cp\u003eBackup verification proceeds in four stages. First, \u003ccode\u003epg_verifybackup\u003c/code\u003e reads the \u003ccode\u003ebackup_manifest\u003c/code\u003e file. If that file does not exist, cannot be read, is malformed, fails to match the system identifier with \u003ccode\u003epg_control\u003c/code\u003e of the backup directory or fails verification against its own internal checksum, \u003ccode\u003epg_verifybackup\u003c/code\u003e will terminate with a fatal error.\u003c/p\u003e\n\u003cp\u003eSecond, \u003ccode\u003epg_verifybackup\u003c/code\u003e will attempt to verify that the data files currently stored on disk are exactly the same as the data files which the server intended to send, with some exceptions that are described below. Extra and missing files will be detected, with a few exceptions. This step will ignore the presence or absence of, or any modifications to, \u003ccode\u003epostgresql.auto.conf\u003c/code\u003e, \u003ccode\u003estandby.signal\u003c/code\u003e, and \u003ccode\u003erecovery.signal\u003c/code\u003e, because it is expected that these files may have been created or modified as part of the process of taking the backup. It also won\u0026#39;t complain about a \u003ccode\u003ebackup_manifest\u003c/code\u003e file in the target directory or about anything inside \u003ccode\u003epg_wal\u003c/code\u003e, even though these files won\u0026#39;t be listed in the backup manifest. Only files are checked; the presence or absence of directories is not verified, except indirectly: if a directory is missing, any files it should have contained will necessarily also be missing.\u003c/p\u003e\n\u003cp\u003eNext, \u003ccode\u003epg_verifybackup\u003c/code\u003e will checksum all the files, compare the checksums against the values in the manifest, and emit errors for any files for which the computed checksum does not match the checksum stored in the manifest. This step is not performed for any files which produced errors in the previous step, since they are already known to have problems. Files which were ignored in the previous step are also ignored in this step.\u003c/p\u003e\n\u003cp\u003eFinally, \u003ccode\u003epg_verifybackup\u003c/code\u003e will use the manifest to verify that the write-ahead log records which will be needed to recover the backup are present and that they can be read and parsed. The \u003ccode\u003ebackup_manifest\u003c/code\u003e contains information about which write-ahead log records will be needed, and \u003ccode\u003epg_verifybackup\u003c/code\u003e will use that information to invoke \u003ccode\u003epg_waldump\u003c/code\u003e to parse those write-ahead log records. The \u003ccode\u003e--quiet\u003c/code\u003e flag will be used, so that \u003ccode\u003epg_waldump\u003c/code\u003e will only report errors, without producing any other output. While this level of verification is sufficient to detect obvious problems such as a missing file or one whose internal checksums do not match, they aren\u0026#39;t extensive enough to detect every possible problem that might occur when attempting to recover. For instance, a server bug that produces write-ahead log records that have the correct checksums but specify nonsensical actions can\u0026#39;t be detected by this method.\u003c/p\u003e\n\u003cp\u003eNote that if extra WAL files which are not required to recover the backup are present, they will not be checked by this tool, although a separate invocation of \u003ccode\u003epg_waldump\u003c/code\u003e could be used for that purpose. Also note that WAL verification is version-specific: you must use the version of \u003ccode\u003epg_verifybackup\u003c/code\u003e, and thus of \u003ccode\u003epg_waldump\u003c/code\u003e, which pertains to the backup being checked. In contrast, the data file integrity checks should work with any version of the server that generates a \u003ccode\u003ebackup_manifest\u003c/code\u003e file.\u003c/p\u003e\n\u003c/div\u003e\n\u003cdiv id=\"id-1.9.4.20.6\"\u003e\n\u003ch2\u003eOptions\u003c/h2\u003e\n\u003cp\u003e\u003cspan\u003epg_verifybackup\u003c/span\u003e accepts the following command-line arguments:\u003c/p\u003e\n\u003cdiv\u003e\n\u003cdl\u003e\n\u003cdt\u003e\u003cspan\u003e\u003ccode\u003e-e\u003c/code\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan\u003e\u003ccode\u003e--exit-on-error\u003c/code\u003e\u003c/span\u003e\u003c/dt\u003e\n\u003cdd\u003e\n\u003cp\u003eExit as soon as a problem with the backup is detected. If this option is not specified, \u003ccode\u003epg_verifybackup\u003c/code\u003e will continue checking the backup even after a problem has been detected, and will report all problems detected as errors.\u003c/p\u003e\n\u003c/dd\u003e\n\u003cdt\u003e\u003cspan\u003e\u003ccode\u003e-F \u003cem\u003e\u003ccode\u003eformat\u003c/code\u003e\u003c/em\u003e\u003c/code\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan\u003e\u003ccode\u003e--format=\u003cem\u003e\u003ccode\u003eformat\u003c/code\u003e\u003c/em\u003e\u003c/code\u003e\u003c/span\u003e\u003c/dt\u003e\n\u003cdd\u003e\n\u003cp\u003eSpecifies the format of the backup. \u003cem\u003e\u003ccode\u003eformat\u003c/code\u003e\u003c/em\u003e can be one of the following:\u003c/p\u003e\n\u003cdiv\u003e\n\u003cdl\u003e\n\u003cdt\u003e\u003cspan\u003e\u003ccode\u003ep\u003c/code\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan\u003e\u003ccode\u003eplain\u003c/code\u003e\u003c/span\u003e\u003c/dt\u003e\n\u003cdd\u003e\n\u003cp\u003eBackup consists of plain files with the same layout as the source server\u0026#39;s data directory and tablespaces.\u003c/p\u003e\n\u003c/dd\u003e\n\u003cdt\u003e\u003cspan\u003e\u003ccode\u003et\u003c/code\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan\u003e\u003ccode\u003etar\u003c/code\u003e\u003c/span\u003e\u003c/dt\u003e\n\u003cdd\u003e\n\u003cp\u003eBackup consists of tar files, which may be compressed. A valid backup includes the main data directory in a file named \u003ccode\u003ebase.tar\u003c/code\u003e, the WAL files in \u003ccode\u003epg_wal.tar\u003c/code\u003e, and separate tar files for each tablespace, named after the tablespace\u0026#39;s OID. If the backup is compressed, the relevant compression extension is added to the end of each file name.\u003c/p\u003e\n\u003c/dd\u003e\n\u003c/dl\u003e\n\u003c/div\u003e\n\u003c/dd\u003e\n\u003cdt\u003e\u003cspan\u003e\u003ccode\u003e-i \u003cem\u003e\u003ccode\u003epath\u003c/code\u003e\u003c/em\u003e\u003c/code\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan\u003e\u003ccode\u003e--ignore=\u003cem\u003e\u003ccode\u003epath\u003c/code\u003e\u003c/em\u003e\u003c/code\u003e\u003c/span\u003e\u003c/dt\u003e\n\u003cdd\u003e\n\u003cp\u003eIgnore the specified file or directory, which should be expressed as a relative path name, when comparing the list of data files actually present in the backup to those listed in the \u003ccode\u003ebackup_manifest\u003c/code\u003e file. If a directory is specified, this option affects the entire subtree rooted at that location. Complaints about extra files, missing files, file size differences, or checksum mismatches will be suppressed if the relative path name matches the specified path name. This option can be specified multiple times.\u003c/p\u003e\n\u003c/dd\u003e\n\u003cdt\u003e\u003cspan\u003e\u003ccode\u003e-m \u003cem\u003e\u003ccode\u003epath\u003c/code\u003e\u003c/em\u003e\u003c/code\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan\u003e\u003ccode\u003e--manifest-path=\u003cem\u003e\u003ccode\u003epath\u003c/code\u003e\u003c/em\u003e\u003c/code\u003e\u003c/span\u003e\u003c/dt\u003e\n\u003cdd\u003e\n\u003cp\u003eUse the manifest file at the specified path, rather than one located in the root of the backup directory.\u003c/p\u003e\n\u003c/dd\u003e\n\u003cdt\u003e\u003cspan\u003e\u003ccode\u003e-n\u003c/code\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan\u003e\u003ccode\u003e--no-parse-wal\u003c/code\u003e\u003c/span\u003e\u003c/dt\u003e\n\u003cdd\u003e\n\u003cp\u003eDon\u0026#39;t attempt to parse write-ahead log data that will be needed to recover from this backup.\u003c/p\u003e\n\u003c/dd\u003e\n\u003cdt\u003e\u003cspan\u003e\u003ccode\u003e-P\u003c/code\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan\u003e\u003ccode\u003e--progress\u003c/code\u003e\u003c/span\u003e\u003c/dt\u003e\n\u003cdd\u003e\n\u003cp\u003eEnable progress reporting. Turning this on will deliver a progress report while verifying checksums.\u003c/p\u003e\n\u003cp\u003eThis option cannot be used together with the option \u003ccode\u003e--quiet\u003c/code\u003e.\u003c/p\u003e\n\u003c/dd\u003e\n\u003cdt\u003e\u003cspan\u003e\u003ccode\u003e-q\u003c/code\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan\u003e\u003ccode\u003e--quiet\u003c/code\u003e\u003c/span\u003e\u003c/dt\u003e\n\u003cdd\u003e\n\u003cp\u003eDon\u0026#39;t print anything when a backup is successfully verified.\u003c/p\u003e\n\u003c/dd\u003e\n\u003cdt\u003e\u003cspan\u003e\u003ccode\u003e-s\u003c/code\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan\u003e\u003ccode\u003e--skip-checksums\u003c/code\u003e\u003c/span\u003e\u003c/dt\u003e\n\u003cdd\u003e\n\u003cp\u003eDo not verify data file checksums. The presence or absence of files and the sizes of those files will still be checked. This is much faster, because the files themselves do not need to be read.\u003c/p\u003e\n\u003c/dd\u003e\n\u003cdt\u003e\u003cspan\u003e\u003ccode\u003e-w \u003cem\u003e\u003ccode\u003epath\u003c/code\u003e\u003c/em\u003e\u003c/code\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan\u003e\u003ccode\u003e--wal-directory=\u003cem\u003e\u003ccode\u003epath\u003c/code\u003e\u003c/em\u003e\u003c/code\u003e\u003c/span\u003e\u003c/dt\u003e\n\u003cdd\u003e\n\u003cp\u003eTry to parse WAL files stored in the specified directory, rather than in \u003ccode\u003epg_wal\u003c/code\u003e. This may be useful if the backup is stored in a separate location from the WAL archive.\u003c/p\u003e\n\u003c/dd\u003e\n\u003c/dl\u003e\n\u003c/div\u003e\n\u003cp\u003eOther options are also available:\u003c/p\u003e\n\u003cdiv\u003e\n\u003cdl\u003e\n\u003cdt\u003e\u003cspan\u003e\u003ccode\u003e-V\u003c/code\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan\u003e\u003ccode\u003e--version\u003c/code\u003e\u003c/span\u003e\u003c/dt\u003e\n\u003cdd\u003e\n\u003cp\u003ePrint the \u003cspan\u003epg_verifybackup\u003c/span\u003e version and exit.\u003c/p\u003e\n\u003c/dd\u003e\n\u003cdt\u003e\u003cspan\u003e\u003ccode\u003e-?\u003c/code\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan\u003e\u003ccode\u003e--help\u003c/code\u003e\u003c/span\u003e\u003c/dt\u003e\n\u003cdd\u003e\n\u003cp\u003eShow help about \u003cspan\u003epg_verifybackup\u003c/span\u003e command line arguments, and exit.\u003c/p\u003e\n\u003c/dd\u003e\n\u003c/dl\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv id=\"id-1.9.4.20.7\"\u003e\n\u003ch2\u003eExamples\u003c/h2\u003e\n\u003cp\u003eTo create a base backup of the server at \u003ccode\u003emydbserver\u003c/code\u003e and verify the integrity of the backup:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e$\u003c/code\u003e \u003cstrong\u003e\u003ccode\u003epg_basebackup -h mydbserver -D /usr/local/pgsql/data\u003c/code\u003e\u003c/strong\u003e\n\u003ccode\u003e$\u003c/code\u003e \u003cstrong\u003e\u003ccode\u003epg_verifybackup /usr/local/pgsql/data\u003c/code\u003e\u003c/strong\u003e\n\u003c/pre\u003e\n\u003cp\u003eTo create a base backup of the server at \u003ccode\u003emydbserver\u003c/code\u003e, move the manifest somewhere outside the backup directory, and verify the backup:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e$\u003c/code\u003e \u003cstrong\u003e\u003ccode\u003epg_basebackup -h mydbserver -D /usr/local/pgsql/backup1234\u003c/code\u003e\u003c/strong\u003e\n\u003ccode\u003e$\u003c/code\u003e \u003cstrong\u003e\u003ccode\u003emv /usr/local/pgsql/backup1234/backup_manifest /my/secure/location/backup_manifest.1234\u003c/code\u003e\u003c/strong\u003e\n\u003ccode\u003e$\u003c/code\u003e \u003cstrong\u003e\u003ccode\u003epg_verifybackup -m /my/secure/location/backup_manifest.1234 /usr/local/pgsql/backup1234\u003c/code\u003e\u003c/strong\u003e\n\u003c/pre\u003e\n\u003cp\u003eTo verify a backup while ignoring a file that was added manually to the backup directory, and also skipping checksum verification:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e$\u003c/code\u003e \u003cstrong\u003e\u003ccode\u003epg_basebackup -h mydbserver -D /usr/local/pgsql/data\u003c/code\u003e\u003c/strong\u003e\n\u003ccode\u003e$\u003c/code\u003e \u003cstrong\u003e\u003ccode\u003eedit /usr/local/pgsql/data/note.to.self\u003c/code\u003e\u003c/strong\u003e\n\u003ccode\u003e$\u003c/code\u003e \u003cstrong\u003e\u003ccode\u003epg_verifybackup --ignore=note.to.self --skip-checksums /usr/local/pgsql/data\u003c/code\u003e\u003c/strong\u003e\n\u003c/pre\u003e\n\u003c/div\u003e\n\u003cdiv id=\"id-1.9.4.20.8\"\u003e\n\u003ch2\u003eSee Also\u003c/h2\u003e\u003cspan\u003e\u003ca href=\"/docs/18/app-pgbasebackup.html\" title=\"pg_basebackup\" rel=\"nofollow\"\u003e\u003cspan\u003e\u003cspan\u003epg_basebackup\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003c/span\u003e\n\u003c/div\u003e\n\u003c/div\u003e\u003c/div\u003e","SourceRevision":"ee8d1a3612338fd9adf250730cb640fcc5233b5491337cc00a316a44e3a0b9f8","ContentHash":"3f0a3fa0153679b36498e0fcb3aaa1e7c53a5af8e0447faebacc8c3f28593caf","Payload":{"description":["pg_verifybackup — verify the integrity of a base backup of a PostgreSQL cluster"],"manual_html":"\u003cdiv\u003e\u003cdiv class=\"refentry\" id=\"APP-PGVERIFYBACKUP\"\u003e\n\u003cdiv class=\"titlepage\"\u003e\u003c/div\u003e\n\u003cdiv class=\"refnamediv\"\u003e\n\u003ch2\u003e\u003cspan class=\"refentrytitle\"\u003e\u003cspan class=\"application\"\u003epg_verifybackup\u003c/span\u003e\u003c/span\u003e\u003c/h2\u003e\n\u003cp\u003epg_verifybackup — verify the integrity of a base backup of a \u003cspan class=\"productname\"\u003ePostgreSQL\u003c/span\u003e cluster\u003c/p\u003e\n\u003c/div\u003e\n\u003cdiv class=\"refsynopsisdiv\"\u003e\n\u003ch2\u003eSynopsis\u003c/h2\u003e\n\u003cdiv class=\"cmdsynopsis\"\u003e\n\u003cp id=\"id-1.9.4.20.4.1\"\u003e\u003ccode class=\"command\"\u003epg_verifybackup\u003c/code\u003e [\u003cem class=\"replaceable\"\u003e\u003ccode\u003eoption\u003c/code\u003e\u003c/em\u003e...]\u003c/p\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"refsect1\" id=\"id-1.9.4.20.5\"\u003e\n\u003ch2\u003eDescription\u003c/h2\u003e\n\u003cp\u003e\u003cspan class=\"application\"\u003epg_verifybackup\u003c/span\u003e is used to check the integrity of a database cluster backup taken using \u003ccode class=\"command\"\u003epg_basebackup\u003c/code\u003e against a \u003ccode class=\"literal\"\u003ebackup_manifest\u003c/code\u003e generated by the server at the time of the backup. The backup may be stored either in the \"plain\" or the \"tar\" format; this includes tar-format backups compressed with any algorithm supported by \u003cspan class=\"application\"\u003epg_basebackup\u003c/span\u003e. However, at present, \u003ccode class=\"literal\"\u003eWAL\u003c/code\u003e verification is supported only for plain-format backups. Therefore, if the backup is stored in tar-format, the \u003ccode class=\"literal\"\u003e-n, --no-parse-wal\u003c/code\u003e option should be used.\u003c/p\u003e\n\u003cp\u003eIt is important to note that the validation which is performed by \u003cspan class=\"application\"\u003epg_verifybackup\u003c/span\u003e does not and cannot include every check which will be performed by a running server when attempting to make use of the backup. Even if you use this tool, you should still perform test restores and verify that the resulting databases work as expected and that they appear to contain the correct data. However, \u003cspan class=\"application\"\u003epg_verifybackup\u003c/span\u003e can detect many problems that commonly occur due to storage problems or user error.\u003c/p\u003e\n\u003cp\u003eBackup verification proceeds in four stages. First, \u003ccode class=\"literal\"\u003epg_verifybackup\u003c/code\u003e reads the \u003ccode class=\"literal\"\u003ebackup_manifest\u003c/code\u003e file. If that file does not exist, cannot be read, is malformed, fails to match the system identifier with \u003ccode class=\"filename\"\u003epg_control\u003c/code\u003e of the backup directory or fails verification against its own internal checksum, \u003ccode class=\"literal\"\u003epg_verifybackup\u003c/code\u003e will terminate with a fatal error.\u003c/p\u003e\n\u003cp\u003eSecond, \u003ccode class=\"literal\"\u003epg_verifybackup\u003c/code\u003e will attempt to verify that the data files currently stored on disk are exactly the same as the data files which the server intended to send, with some exceptions that are described below. Extra and missing files will be detected, with a few exceptions. This step will ignore the presence or absence of, or any modifications to, \u003ccode class=\"literal\"\u003epostgresql.auto.conf\u003c/code\u003e, \u003ccode class=\"literal\"\u003estandby.signal\u003c/code\u003e, and \u003ccode class=\"literal\"\u003erecovery.signal\u003c/code\u003e, because it is expected that these files may have been created or modified as part of the process of taking the backup. It also won't complain about a \u003ccode class=\"literal\"\u003ebackup_manifest\u003c/code\u003e file in the target directory or about anything inside \u003ccode class=\"literal\"\u003epg_wal\u003c/code\u003e, even though these files won't be listed in the backup manifest. Only files are checked; the presence or absence of directories is not verified, except indirectly: if a directory is missing, any files it should have contained will necessarily also be missing.\u003c/p\u003e\n\u003cp\u003eNext, \u003ccode class=\"literal\"\u003epg_verifybackup\u003c/code\u003e will checksum all the files, compare the checksums against the values in the manifest, and emit errors for any files for which the computed checksum does not match the checksum stored in the manifest. This step is not performed for any files which produced errors in the previous step, since they are already known to have problems. Files which were ignored in the previous step are also ignored in this step.\u003c/p\u003e\n\u003cp\u003eFinally, \u003ccode class=\"literal\"\u003epg_verifybackup\u003c/code\u003e will use the manifest to verify that the write-ahead log records which will be needed to recover the backup are present and that they can be read and parsed. The \u003ccode class=\"literal\"\u003ebackup_manifest\u003c/code\u003e contains information about which write-ahead log records will be needed, and \u003ccode class=\"literal\"\u003epg_verifybackup\u003c/code\u003e will use that information to invoke \u003ccode class=\"literal\"\u003epg_waldump\u003c/code\u003e to parse those write-ahead log records. The \u003ccode class=\"literal\"\u003e--quiet\u003c/code\u003e flag will be used, so that \u003ccode class=\"literal\"\u003epg_waldump\u003c/code\u003e will only report errors, without producing any other output. While this level of verification is sufficient to detect obvious problems such as a missing file or one whose internal checksums do not match, they aren't extensive enough to detect every possible problem that might occur when attempting to recover. For instance, a server bug that produces write-ahead log records that have the correct checksums but specify nonsensical actions can't be detected by this method.\u003c/p\u003e\n\u003cp\u003eNote that if extra WAL files which are not required to recover the backup are present, they will not be checked by this tool, although a separate invocation of \u003ccode class=\"literal\"\u003epg_waldump\u003c/code\u003e could be used for that purpose. Also note that WAL verification is version-specific: you must use the version of \u003ccode class=\"literal\"\u003epg_verifybackup\u003c/code\u003e, and thus of \u003ccode class=\"literal\"\u003epg_waldump\u003c/code\u003e, which pertains to the backup being checked. In contrast, the data file integrity checks should work with any version of the server that generates a \u003ccode class=\"literal\"\u003ebackup_manifest\u003c/code\u003e file.\u003c/p\u003e\n\u003c/div\u003e\n\u003cdiv class=\"refsect1\" id=\"id-1.9.4.20.6\"\u003e\n\u003ch2\u003eOptions\u003c/h2\u003e\n\u003cp\u003e\u003cspan class=\"application\"\u003epg_verifybackup\u003c/span\u003e accepts the following command-line arguments:\u003c/p\u003e\n\u003cdiv class=\"variablelist\"\u003e\n\u003cdl class=\"variablelist\"\u003e\n\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003ccode class=\"option\"\u003e-e\u003c/code\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan class=\"term\"\u003e\u003ccode class=\"option\"\u003e--exit-on-error\u003c/code\u003e\u003c/span\u003e\u003c/dt\u003e\n\u003cdd\u003e\n\u003cp\u003eExit as soon as a problem with the backup is detected. If this option is not specified, \u003ccode class=\"literal\"\u003epg_verifybackup\u003c/code\u003e will continue checking the backup even after a problem has been detected, and will report all problems detected as errors.\u003c/p\u003e\n\u003c/dd\u003e\n\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003ccode class=\"option\"\u003e-F \u003cem class=\"replaceable\"\u003e\u003ccode\u003eformat\u003c/code\u003e\u003c/em\u003e\u003c/code\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan class=\"term\"\u003e\u003ccode class=\"option\"\u003e--format=\u003cem class=\"replaceable\"\u003e\u003ccode\u003eformat\u003c/code\u003e\u003c/em\u003e\u003c/code\u003e\u003c/span\u003e\u003c/dt\u003e\n\u003cdd\u003e\n\u003cp\u003eSpecifies the format of the backup. \u003cem class=\"replaceable\"\u003e\u003ccode\u003eformat\u003c/code\u003e\u003c/em\u003e can be one of the following:\u003c/p\u003e\n\u003cdiv class=\"variablelist\"\u003e\n\u003cdl class=\"variablelist\"\u003e\n\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003ccode class=\"literal\"\u003ep\u003c/code\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan class=\"term\"\u003e\u003ccode class=\"literal\"\u003eplain\u003c/code\u003e\u003c/span\u003e\u003c/dt\u003e\n\u003cdd\u003e\n\u003cp\u003eBackup consists of plain files with the same layout as the source server's data directory and tablespaces.\u003c/p\u003e\n\u003c/dd\u003e\n\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003ccode class=\"literal\"\u003et\u003c/code\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan class=\"term\"\u003e\u003ccode class=\"literal\"\u003etar\u003c/code\u003e\u003c/span\u003e\u003c/dt\u003e\n\u003cdd\u003e\n\u003cp\u003eBackup consists of tar files, which may be compressed. A valid backup includes the main data directory in a file named \u003ccode class=\"filename\"\u003ebase.tar\u003c/code\u003e, the WAL files in \u003ccode class=\"filename\"\u003epg_wal.tar\u003c/code\u003e, and separate tar files for each tablespace, named after the tablespace's OID. If the backup is compressed, the relevant compression extension is added to the end of each file name.\u003c/p\u003e\n\u003c/dd\u003e\n\u003c/dl\u003e\n\u003c/div\u003e\n\u003c/dd\u003e\n\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003ccode class=\"option\"\u003e-i \u003cem class=\"replaceable\"\u003e\u003ccode\u003epath\u003c/code\u003e\u003c/em\u003e\u003c/code\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan class=\"term\"\u003e\u003ccode class=\"option\"\u003e--ignore=\u003cem class=\"replaceable\"\u003e\u003ccode\u003epath\u003c/code\u003e\u003c/em\u003e\u003c/code\u003e\u003c/span\u003e\u003c/dt\u003e\n\u003cdd\u003e\n\u003cp\u003eIgnore the specified file or directory, which should be expressed as a relative path name, when comparing the list of data files actually present in the backup to those listed in the \u003ccode class=\"literal\"\u003ebackup_manifest\u003c/code\u003e file. If a directory is specified, this option affects the entire subtree rooted at that location. Complaints about extra files, missing files, file size differences, or checksum mismatches will be suppressed if the relative path name matches the specified path name. This option can be specified multiple times.\u003c/p\u003e\n\u003c/dd\u003e\n\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003ccode class=\"option\"\u003e-m \u003cem class=\"replaceable\"\u003e\u003ccode\u003epath\u003c/code\u003e\u003c/em\u003e\u003c/code\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan class=\"term\"\u003e\u003ccode class=\"option\"\u003e--manifest-path=\u003cem class=\"replaceable\"\u003e\u003ccode\u003epath\u003c/code\u003e\u003c/em\u003e\u003c/code\u003e\u003c/span\u003e\u003c/dt\u003e\n\u003cdd\u003e\n\u003cp\u003eUse the manifest file at the specified path, rather than one located in the root of the backup directory.\u003c/p\u003e\n\u003c/dd\u003e\n\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003ccode class=\"option\"\u003e-n\u003c/code\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan class=\"term\"\u003e\u003ccode class=\"option\"\u003e--no-parse-wal\u003c/code\u003e\u003c/span\u003e\u003c/dt\u003e\n\u003cdd\u003e\n\u003cp\u003eDon't attempt to parse write-ahead log data that will be needed to recover from this backup.\u003c/p\u003e\n\u003c/dd\u003e\n\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003ccode class=\"option\"\u003e-P\u003c/code\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan class=\"term\"\u003e\u003ccode class=\"option\"\u003e--progress\u003c/code\u003e\u003c/span\u003e\u003c/dt\u003e\n\u003cdd\u003e\n\u003cp\u003eEnable progress reporting. Turning this on will deliver a progress report while verifying checksums.\u003c/p\u003e\n\u003cp\u003eThis option cannot be used together with the option \u003ccode class=\"option\"\u003e--quiet\u003c/code\u003e.\u003c/p\u003e\n\u003c/dd\u003e\n\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003ccode class=\"option\"\u003e-q\u003c/code\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan class=\"term\"\u003e\u003ccode class=\"option\"\u003e--quiet\u003c/code\u003e\u003c/span\u003e\u003c/dt\u003e\n\u003cdd\u003e\n\u003cp\u003eDon't print anything when a backup is successfully verified.\u003c/p\u003e\n\u003c/dd\u003e\n\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003ccode class=\"option\"\u003e-s\u003c/code\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan class=\"term\"\u003e\u003ccode class=\"option\"\u003e--skip-checksums\u003c/code\u003e\u003c/span\u003e\u003c/dt\u003e\n\u003cdd\u003e\n\u003cp\u003eDo not verify data file checksums. The presence or absence of files and the sizes of those files will still be checked. This is much faster, because the files themselves do not need to be read.\u003c/p\u003e\n\u003c/dd\u003e\n\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003ccode class=\"option\"\u003e-w \u003cem class=\"replaceable\"\u003e\u003ccode\u003epath\u003c/code\u003e\u003c/em\u003e\u003c/code\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan class=\"term\"\u003e\u003ccode class=\"option\"\u003e--wal-directory=\u003cem class=\"replaceable\"\u003e\u003ccode\u003epath\u003c/code\u003e\u003c/em\u003e\u003c/code\u003e\u003c/span\u003e\u003c/dt\u003e\n\u003cdd\u003e\n\u003cp\u003eTry to parse WAL files stored in the specified directory, rather than in \u003ccode class=\"literal\"\u003epg_wal\u003c/code\u003e. This may be useful if the backup is stored in a separate location from the WAL archive.\u003c/p\u003e\n\u003c/dd\u003e\n\u003c/dl\u003e\n\u003c/div\u003e\n\u003cp\u003eOther options are also available:\u003c/p\u003e\n\u003cdiv class=\"variablelist\"\u003e\n\u003cdl class=\"variablelist\"\u003e\n\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003ccode class=\"option\"\u003e-V\u003c/code\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan class=\"term\"\u003e\u003ccode class=\"option\"\u003e--version\u003c/code\u003e\u003c/span\u003e\u003c/dt\u003e\n\u003cdd\u003e\n\u003cp\u003ePrint the \u003cspan class=\"application\"\u003epg_verifybackup\u003c/span\u003e version and exit.\u003c/p\u003e\n\u003c/dd\u003e\n\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003ccode class=\"option\"\u003e-?\u003c/code\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan class=\"term\"\u003e\u003ccode class=\"option\"\u003e--help\u003c/code\u003e\u003c/span\u003e\u003c/dt\u003e\n\u003cdd\u003e\n\u003cp\u003eShow help about \u003cspan class=\"application\"\u003epg_verifybackup\u003c/span\u003e command line arguments, and exit.\u003c/p\u003e\n\u003c/dd\u003e\n\u003c/dl\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"refsect1\" id=\"id-1.9.4.20.7\"\u003e\n\u003ch2\u003eExamples\u003c/h2\u003e\n\u003cp\u003eTo create a base backup of the server at \u003ccode class=\"literal\"\u003emydbserver\u003c/code\u003e and verify the integrity of the backup:\u003c/p\u003e\n\u003cpre class=\"screen\"\u003e\u003ccode class=\"prompt\"\u003e$\u003c/code\u003e \u003cstrong class=\"userinput\"\u003e\u003ccode\u003epg_basebackup -h mydbserver -D /usr/local/pgsql/data\u003c/code\u003e\u003c/strong\u003e\n\u003ccode class=\"prompt\"\u003e$\u003c/code\u003e \u003cstrong class=\"userinput\"\u003e\u003ccode\u003epg_verifybackup /usr/local/pgsql/data\u003c/code\u003e\u003c/strong\u003e\n\u003c/pre\u003e\n\u003cp\u003eTo create a base backup of the server at \u003ccode class=\"literal\"\u003emydbserver\u003c/code\u003e, move the manifest somewhere outside the backup directory, and verify the backup:\u003c/p\u003e\n\u003cpre class=\"screen\"\u003e\u003ccode class=\"prompt\"\u003e$\u003c/code\u003e \u003cstrong class=\"userinput\"\u003e\u003ccode\u003epg_basebackup -h mydbserver -D /usr/local/pgsql/backup1234\u003c/code\u003e\u003c/strong\u003e\n\u003ccode class=\"prompt\"\u003e$\u003c/code\u003e \u003cstrong class=\"userinput\"\u003e\u003ccode\u003emv /usr/local/pgsql/backup1234/backup_manifest /my/secure/location/backup_manifest.1234\u003c/code\u003e\u003c/strong\u003e\n\u003ccode class=\"prompt\"\u003e$\u003c/code\u003e \u003cstrong class=\"userinput\"\u003e\u003ccode\u003epg_verifybackup -m /my/secure/location/backup_manifest.1234 /usr/local/pgsql/backup1234\u003c/code\u003e\u003c/strong\u003e\n\u003c/pre\u003e\n\u003cp\u003eTo verify a backup while ignoring a file that was added manually to the backup directory, and also skipping checksum verification:\u003c/p\u003e\n\u003cpre class=\"screen\"\u003e\u003ccode class=\"prompt\"\u003e$\u003c/code\u003e \u003cstrong class=\"userinput\"\u003e\u003ccode\u003epg_basebackup -h mydbserver -D /usr/local/pgsql/data\u003c/code\u003e\u003c/strong\u003e\n\u003ccode class=\"prompt\"\u003e$\u003c/code\u003e \u003cstrong class=\"userinput\"\u003e\u003ccode\u003eedit /usr/local/pgsql/data/note.to.self\u003c/code\u003e\u003c/strong\u003e\n\u003ccode class=\"prompt\"\u003e$\u003c/code\u003e \u003cstrong class=\"userinput\"\u003e\u003ccode\u003epg_verifybackup --ignore=note.to.self --skip-checksums /usr/local/pgsql/data\u003c/code\u003e\u003c/strong\u003e\n\u003c/pre\u003e\n\u003c/div\u003e\n\u003cdiv class=\"refsect1\" id=\"id-1.9.4.20.8\"\u003e\n\u003ch2\u003eSee Also\u003c/h2\u003e\u003cspan class=\"simplelist\"\u003e\u003ca class=\"xref\" href=\"/docs/18/app-pgbasebackup.html\" title=\"pg_basebackup\"\u003e\u003cspan class=\"refentrytitle\"\u003e\u003cspan class=\"application\"\u003epg_basebackup\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003c/span\u003e\n\u003c/div\u003e\n\u003c/div\u003e\u003c/div\u003e","related":[],"sections":[],"tables":[{"columns":[{"key":"signature","label":"Option and arguments"},{"key":"summary","label":"Description"}],"key":"options","rows":[{"signature":{"text":"-e --exit-on-error","url":"/docs/18/app-pgverifybackup.html"},"summary":"Exit as soon as a problem with the backup is detected. If this option is not specified, pg_verifybackup will continue checking the backup even after a problem has been detected, and will report all problems detected as errors."},{"signature":{"text":"-F format --format= format","url":"/docs/18/app-pgverifybackup.html"},"summary":"Specifies the format of the backup. format can be one of the following:"},{"signature":{"text":"-i path --ignore= path","url":"/docs/18/app-pgverifybackup.html"},"summary":"Ignore the specified file or directory, which should be expressed as a relative path name, when comparing the list of data files actually present in the backup to those listed in the backup_manifest file. If a directory is specified, this option affects the entire subtree rooted at that location. Complaints about extra files, missing files, file size differences, or checksum mismatches will be suppressed if the relative path name matches the specified path name. This option can be specified multiple times."},{"signature":{"text":"-m path --manifest-path= path","url":"/docs/18/app-pgverifybackup.html"},"summary":"Use the manifest file at the specified path, rather than one located in the root of the backup directory."},{"signature":{"text":"-n --no-parse-wal","url":"/docs/18/app-pgverifybackup.html"},"summary":"Don't attempt to parse write-ahead log data that will be needed to recover from this backup."},{"signature":{"text":"-P --progress","url":"/docs/18/app-pgverifybackup.html"},"summary":"Enable progress reporting. Turning this on will deliver a progress report while verifying checksums."},{"signature":{"text":"-q --quiet","url":"/docs/18/app-pgverifybackup.html"},"summary":"Don't print anything when a backup is successfully verified."},{"signature":{"text":"-s --skip-checksums","url":"/docs/18/app-pgverifybackup.html"},"summary":"Do not verify data file checksums. The presence or absence of files and the sizes of those files will still be checked. This is much faster, because the files themselves do not need to be read."},{"signature":{"text":"-w path --wal-directory= path","url":"/docs/18/app-pgverifybackup.html"},"summary":"Try to parse WAL files stored in the specified directory, rather than in pg_wal . This may be useful if the backup is stored in a separate location from the WAL archive."},{"signature":{"text":"-V --version","url":"/docs/18/app-pgverifybackup.html"},"summary":"Print the pg_verifybackup version and exit."},{"signature":{"text":"-? --help","url":"/docs/18/app-pgverifybackup.html"},"summary":"Show help about pg_verifybackup command line arguments, and exit."}],"title":"Documented options"}]}},"RequestedLocale":"zh-Hans","Fallback":true,"Versions":["13","14","15","16","17","18","19","20"],"Locales":["en"],"Signatures":null,"Spellings":null,"SQLState":null,"Evidence":null}
