pg_verifybackup
pg_verifybackup â пÑовеÑиÑÑ ÑелоÑÑноÑÑÑ Ð±Ð°Ð·Ð¾Ð²Ð¾Ð¹ копии клаÑÑеÑа Postgres Pro
СинÑакÑиÑ
pg_verifybackup [паÑамеÑÑ...]
ÐпиÑание
pg_verifybackup позволÑÐµÑ Ð¿ÑовеÑиÑÑ ÑелоÑÑноÑÑÑ ÐºÐ¾Ð¿Ð¸Ð¸ клаÑÑеÑа ÐÐ, Ñделанной пÑогÑаммой pg_basebackup, по маниÑеÑÑÑ backup_manifest, ÑÐ¾Ð·Ð´Ð°Ð½Ð½Ð¾Ð¼Ñ Ð²Ð¾ вÑÐµÐ¼Ñ ÐºÐ¾Ð¿Ð¸ÑованиÑ. ÐÐ¾Ð¿Ð¸Ñ Ð´Ð¾Ð»Ð¶Ð½Ð° бÑÑÑ Ð¿ÑедÑÑавлена в ÑоÑмаÑе «plain»; ÑÑÐ¾Ð±Ñ Ð¿ÑовеÑиÑÑ ÐºÐ¾Ð¿Ð¸Ñ Ð² ÑоÑмаÑе «tar», ÐµÑ Ð½Ñжно ÑнаÑала ÑазаÑÑ
ивиÑоваÑÑ.
Ðажно оÑмеÑиÑÑ, ÑÑо пÑоÑедÑÑа конÑÑолÑ, вÑполнÑÐµÐ¼Ð°Ñ Ð¿ÑогÑаммой pg_verifybackup не вклÑÑÐ°ÐµÑ Ð¸ не Ð¼Ð¾Ð¶ÐµÑ Ð²ÐºÐ»ÑÑаÑÑ Ð² ÑÐµÐ±Ñ Ð²Ñе пÑовеÑки, коÑоÑÑе бÑÐ´ÐµÑ Ð²ÑполнÑÑÑ ÑеÑвеÑ, еÑли его запÑÑÑиÑÑ Ñ ÑÑой копией. Ðаже еÑли Ð²Ñ Ð¿Ð¾Ð»ÑзÑеÑеÑÑ ÑÑим ÑÑедÑÑвом, вам вÑÑ Ð¶Ðµ ÑледÑÐµÑ Ð²ÑполнÑÑÑ ÑеÑÑовое воÑÑÑановление даннÑÑ , ÑÑÐ¾Ð±Ñ ÑбедиÑÑÑÑ Ð² Ñом, ÑÑо воÑÑÑановленнÑе Ð±Ð°Ð·Ñ ÑабоÑаÑÑ Ð¾Ð¶Ð¸Ð´Ð°ÐµÐ¼Ñм обÑазом и ÑодеÑÐ¶Ð°Ñ Ð½ÑжнÑе даннÑе. Тем не менее pg_verifybackup Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑÑо вÑÑвиÑÑ Ð¼Ð½Ð¾Ð¶ÐµÑÑво ÑаÑпÑоÑÑÑанÑннÑÑ Ð¿Ñоблем, вÑзÑваемÑÑ Ð½ÐµÐ¸ÑпÑавноÑÑÑÑ Ñ ÑанилиÑа или оÑибками полÑзоваÑелÑ.
ÐÑовеÑка копии вÑполнÑеÑÑÑ Ð² ÑеÑÑÑе ÑÑапа. Ðа пеÑвом ÑÑапе pg_verifybackup ÑиÑÐ°ÐµÑ Ñайл backup_manifest. ÐÑли ÑÑÐ¾Ñ Ñайл не ÑÑÑеÑÑвÑеÑ, непÑавилÑно оÑоÑмлен или не ÑооÑвеÑÑÑвÑÐµÑ ÐºÐ¾Ð½ÑÑолÑной ÑÑмме, коÑоÑÐ°Ñ Ð² нÑм ÑодеÑжиÑÑÑ, pg_verifybackup завеÑÑÐ°ÐµÑ Ð²Ñполнение Ñ ÐºÑиÑиÑеÑкой оÑибкой.
Ðа вÑоÑом ÑÑапе pg_verifybackup пÑовеÑÑеÑ, ÑÑо ÑÐ°Ð¹Ð»Ñ Ð´Ð°Ð½Ð½ÑÑ
, наÑ
одÑÑиеÑÑ Ð½Ð° диÑке в наÑÑоÑÑее вÑемÑ, в ÑоÑноÑÑÑÑ ÑовпадаÑÑ Ñ Ñеми Ñайлами, коÑоÑÑе ÑеÑÐ²ÐµÑ Ð´Ð¾Ð»Ð¶ÐµÐ½ бÑл пеÑедаÑÑ, за неÑколÑкими иÑклÑÑениÑми, опиÑаннÑми ниже. ÐÑи ÑÑом вÑÑвлÑÑÑÑÑ Ð²Ñе пÑопавÑие или добавивÑиеÑÑ ÑайлÑ, кÑоме некоÑоÑÑÑ
игноÑиÑÑемÑÑ
. Ð ÑаÑÑноÑÑи, на ÑÑом ÑÑапе не пÑинимаеÑÑÑ Ð²Ð¾ внимание пÑиÑÑÑÑÑвие, оÑÑÑÑÑÑвие или какое-либо изменение Ñайлов postgresql.auto.conf, standby.signal и recovery.signal, Ñак как ожидаеÑÑÑ, ÑÑо ÑÑи ÑÐ°Ð¹Ð»Ñ Ð¼Ð¾Ð³ÑÑ ÑоздаваÑÑÑÑ Ð¸Ð»Ð¸ модиÑиÑиÑоваÑÑÑÑ Ð² пÑоÑеÑÑе ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ ÐºÐ¾Ð¿Ð¸Ð¸. Также из ÑаÑÑмоÑÑÐµÐ½Ð¸Ñ Ð¸ÑклÑÑаеÑÑÑ Ñайл backup_manifest в Ñелевом каÑалоге и вÑÑ ÑодеÑжимое каÑалога pg_wal, неÑмоÑÑÑ Ð½Ð° Ñо, ÑÑо ÑÑи ÑÐ°Ð¹Ð»Ñ Ð½Ðµ бÑдÑÑ Ð¾Ð¿Ð¸ÑÐ°Ð½Ñ Ð² маниÑеÑÑе копии. ÐÑовеÑÑÑÑÑÑ ÑолÑко ÑайлÑ; налиÑие или оÑÑÑÑÑÑвие каÑалогов конÑÑолиÑÑеÑÑÑ ÑолÑко коÑвенно: еÑли какой-либо каÑалог оÑÑÑÑÑÑвÑеÑ, неизбежно бÑдÑÑ Ð¾ÑÑÑÑÑÑвоваÑÑ Ð¸ вÑе ÑайлÑ, коÑоÑÑе Ð´Ð¾Ð»Ð¶Ð½Ñ Ð² нÑм ÑодеÑжаÑÑÑÑ.
ÐаÑем pg_verifybackup пÑовеÑÑÐµÑ ÐºÐ¾Ð½ÑÑолÑнÑе ÑÑÐ¼Ð¼Ñ Ð²ÑеÑ
Ñайлов, ÑÑÐ°Ð²Ð½Ð¸Ð²Ð°Ñ Ð¸Ñ
Ñо знаÑениÑми, ÑказаннÑми в маниÑеÑÑе, и вÑдаÑÑ Ð¾Ñибки Ð´Ð»Ñ Ñайлов, Ñ ÐºÐ¾ÑоÑÑÑ
вÑÑиÑÐ»ÐµÐ½Ð½Ð°Ñ ÐºÐ¾Ð½ÑÑолÑÐ½Ð°Ñ ÑÑмма не ÑÐ¾Ð²Ð¿Ð°Ð´Ð°ÐµÑ Ñ ÑоÑ
ÑанÑнной в маниÑеÑÑе. ÐÑо дейÑÑвие не вÑполнÑеÑÑÑ Ð´Ð»Ñ Ñайлов, вÑзвавÑиÑ
оÑибки на пÑедÑдÑÑем Ñаге, Ñак как о пÑоблемаÑ
Ñ Ð½Ð¸Ð¼Ð¸ Ñже извеÑÑно. ÐÐ»Ñ Ñайлов, коÑоÑÑе игноÑиÑовалиÑÑ Ð½Ð° вÑоÑом ÑÑапе, конÑÑолÑнÑе ÑÑÐ¼Ð¼Ñ Ñоже не пÑовеÑÑÑÑÑÑ.
Ðа поÑледнем ÑÑапе pg_verifybackup, иÑполÑзÑÑ Ð¼Ð°Ð½Ð¸ÑеÑÑ, пÑовеÑÑеÑ, имеÑÑÑÑ Ð»Ð¸ в жÑÑнале WAL вÑе запиÑи, необÑ
одимÑе Ð´Ð»Ñ Ð²Ð¾ÑÑÑановлениÑ, и можно ли иÑ
ÑÑпеÑно пÑоÑиÑаÑÑ Ð¸ ÑазобÑаÑÑ. Файл backup_manifest ÑодеÑÐ¶Ð¸Ñ Ð¸Ð½ÑоÑмаÑÐ¸Ñ Ð¾ Ñом, какие запиÑи поÑÑебÑÑÑÑÑ, благодаÑÑ ÑÐµÐ¼Ñ pg_verifybackup Ð¼Ð¾Ð¶ÐµÑ Ð²ÑзваÑÑ pg_waldump, ÑÑÐ¾Ð±Ñ ÑазобÑаÑÑ Ð¸ Ñем ÑамÑм пÑовеÑиÑÑ ÑÑи запиÑи жÑÑнала. ÐÑи вÑзове пÑогÑÐ°Ð¼Ð¼Ñ pg_waldump пеÑедаÑÑÑÑ Ñлаг --quiet, Ñак ÑÑо она бÑÐ´ÐµÑ Ð²ÑдаваÑÑ ÑолÑко оÑибки, без какиÑ
-либо дÑÑгиÑ
ÑообÑений. ХоÑÑ ÑÑÐ¾Ñ ÑÑÐ¾Ð²ÐµÐ½Ñ Ð¿ÑовеÑки доÑÑаÑоÑен Ð´Ð»Ñ Ð²ÑÑÐ²Ð»ÐµÐ½Ð¸Ñ ÑвнÑÑ
пÑоблем, напÑимеÑ, оÑÑÑÑÑÑÐ²Ð¸Ñ Ñайлов или неÑооÑвеÑÑÑÐ²Ð¸Ñ Ð²Ð½ÑÑÑенниÑ
конÑÑолÑнÑÑ
ÑÑмм, он вÑÑ Ð¶Ðµ не даÑÑ Ð³Ð°ÑанÑÐ¸Ñ Ð¾Ð±Ð½Ð°ÑÑÐ¶ÐµÐ½Ð¸Ñ Ð²ÑеÑ
пÑоблем, коÑоÑÑе могÑÑ Ð²Ð¾Ð·Ð½Ð¸ÐºÐ½ÑÑÑ Ð¿Ñи попÑÑке воÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð±Ð°Ð·Ñ. ÐапÑимеÑ, даннÑй меÑод пÑовеÑки беÑполезен, еÑли из-за внÑÑÑенней оÑибки ÑеÑвеÑа в WAL бÑдÑÑ Ð²Ð½Ð¾ÑиÑÑÑÑ Ð·Ð°Ð¿Ð¸Ñи Ñ Ð¿ÑавилÑнÑми конÑÑолÑнÑми ÑÑммами, но беÑÑмÑÑленнÑм ÑодеÑжимÑм.
ÐамеÑÑÑе, ÑÑо в ÑлÑÑае налиÑÐ¸Ñ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸ÑелÑнÑÑ
Ñайлов WAL, не ÑÑебÑÑÑиÑ
ÑÑ Ð´Ð»Ñ Ð²Ð¾ÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ ÐºÐ¾Ð¿Ð¸Ð¸, они не бÑдÑÑ Ð¿ÑовеÑÑÑÑÑÑ ÑÑим ÑÑедÑÑвом, Ñ
оÑÑ Ð¿ÑовеÑиÑÑ Ð¸Ñ
можно, вÑзваÑÑ pg_waldump оÑделÑно. Также ÑÑÑиÑе, ÑÑо пÑовеÑка WAL завиÑÐ¸Ñ Ð¾Ñ Ð²ÐµÑÑии: Ð´Ð»Ñ Ð¿ÑовеÑки ÑелоÑÑноÑÑи копии необÑ
одимо иÑполÑзоваÑÑ ÑÑ Ð²ÐµÑÑÐ¸Ñ pg_verifybackup, а знаÑÐ¸Ñ Ð¸ pg_waldump, Ñ ÐºÐ¾ÑоÑой ÑÑа ÐºÐ¾Ð¿Ð¸Ñ Ð±Ñла полÑÑена. ÐÑовеÑки же ÑелоÑÑноÑÑи Ñайлов Ð´Ð¾Ð»Ð¶Ð½Ñ ÑабоÑаÑÑ Ñ Ð´Ð°Ð½Ð½Ñми лÑбой веÑÑии ÑеÑвеÑа, ÑÑоÑмиÑовавÑего Ñайл backup_manifest.
ÐаÑамеÑÑÑ
УÑилиÑа pg_verifybackup пÑÐ¸Ð½Ð¸Ð¼Ð°ÐµÑ ÑледÑÑÑие аÑгÑменÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð½Ð¾Ð¹ ÑÑÑоки:
-e--exit-on-errorÐавеÑÑиÑÑÑÑ Ð¿Ñи пеÑвой же вÑÑвленной пÑоблеме. РоÑÑÑÑÑÑвие ÑÑого ÑказаниÑ
pg_verifybackupпÑÐ¾Ð´Ð¾Ð»Ð¶Ð°ÐµÑ Ð¿ÑовеÑÐºÑ ÐºÐ¾Ð¿Ð¸Ð¸ поÑле обнаÑÑÐ¶ÐµÐ½Ð¸Ñ Ð¿ÐµÑвой оÑибки и ÑообÑÐ°ÐµÑ Ð¾Ð±Ð¾ вÑÐµÑ Ð¾ÑÐ¸Ð±ÐºÐ°Ñ .-iпÑÑÑ--ignore=пÑÑÑÐгноÑиÑоваÑÑ ÑказаннÑй Ñайл или каÑалог, коÑоÑÑй Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð·Ð°Ð´Ð°Ð½ оÑноÑиÑелÑнÑм пÑÑÑм, пÑи ÑÑавнении ÑпиÑка Ñайлов даннÑÑ , ÑакÑиÑеÑки пÑиÑÑÑÑÑвÑÑÑÐ¸Ñ Ð² копии, Ñо ÑпиÑком в Ñайле
backup_manifest. ÐÑли Ñказан пÑÑÑ Ðº каÑалогÑ, из ÑаÑÑмоÑÑÐµÐ½Ð¸Ñ Ð¸ÑклÑÑаеÑÑÑ Ð²ÑÑ Ð´ÐµÑево подкаÑалогов, наÑÐ¸Ð½Ð°Ñ Ñ Ñказанного. Ð ÑлÑÑае ÑÐ¾Ð²Ð¿Ð°Ð´ÐµÐ½Ð¸Ñ Ð¾ÑноÑиÑелÑного пÑÑи Ñайла Ñ ÑказаннÑм никакие ÑообÑÐµÐ½Ð¸Ñ Ð¾ дополниÑелÑнÑÑ Ð¸Ð»Ð¸ пÑопавÑÐ¸Ñ ÑÐ°Ð¹Ð»Ð°Ñ , а Ñакже об изменении ÑазмеÑа или неÑовпадении конÑÑолÑнÑÑ ÑÑмм Ñайлов, вÑдаваÑÑÑÑ Ð½Ðµ бÑдÑÑ. ÐÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð¼Ð¾Ð¶Ð½Ð¾ задаÑÑ Ð½ÐµÑколÑко Ñаз.-mпÑÑÑ--manifest-path=пÑÑÑÐÑполÑзоваÑÑ Ñайл маниÑеÑÑа по Ð·Ð°Ð´Ð°Ð½Ð½Ð¾Ð¼Ñ Ð¿ÑÑи вмеÑÑо Ñайла, ÑаÑположенного в коÑневом каÑалоге копии.
-n--no-parse-walÐе пÑÑаÑÑÑÑ ÑазобÑаÑÑ Ð´Ð°Ð½Ð½Ñе жÑÑнала пÑедзапиÑи, коÑоÑÑе могÑÑ Ð¿Ð¾Ð½Ð°Ð´Ð¾Ð±Ð¸ÑÑÑÑ Ð´Ð»Ñ Ð²Ð¾ÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð¿ÑовеÑÑемой копии.
-P--progressÐклÑÑÐ°ÐµÑ Ð²Ñвод ÑообÑений о пÑогÑеÑÑе. ÐÑи ÑообÑÐµÐ½Ð¸Ñ Ð±ÑдÑÑ Ð²ÑводиÑÑÑÑ Ð¿Ñи пÑовеÑке конÑÑолÑнÑÑ ÑÑмм.
ÐÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð½ÐµÐ»ÑÐ·Ñ Ð¸ÑполÑзоваÑÑ Ñ Ð¿Ð°ÑамеÑÑом
--quiet.-q--quietÐе вÑводиÑÑ Ð½Ð¸Ñего, еÑли ÐºÐ¾Ð¿Ð¸Ñ Ð¿ÑÐ¾Ñ Ð¾Ð´Ð¸Ñ Ð¿ÑовеÑÐºÑ ÑÑпеÑно.
-s--skip-checksumsÐе пÑовеÑÑÑÑ ÐºÐ¾Ð½ÑÑолÑнÑе ÑÑÐ¼Ð¼Ñ Ñайлов даннÑÑ . ÐÑи ÑÑом Ñем не менее бÑÐ´ÐµÑ Ð¿ÑовеÑÑÑÑÑÑ Ð¾ÑÑÑÑÑÑвие или налиÑие Ñайлов и Ð¸Ñ ÑазмеÑÑ. Ð Ñаком Ñежиме пÑовеÑка вÑполнÑеÑÑÑ Ð³Ð¾Ñаздо бÑÑÑÑее, Ñак как ÑобÑÑвенно ÑодеÑжимое Ñайлов ÑиÑаÑÑ Ð½Ðµ ÑÑебÑеÑÑÑ.
-wпÑÑÑ--wal-directory=пÑÑÑÐÑовеÑÑÑÑ ÑÐ°Ð¹Ð»Ñ WAL, Ð½Ð°Ñ Ð¾Ð´ÑÑиеÑÑ Ð² Ñказанном каÑалоге, а не в
pg_wal. ÐÑо полезно, еÑли аÑÑ Ð¸Ð² WAL ÑÐ¾Ñ ÑанÑеÑÑÑ Ð¾ÑделÑно Ð¾Ñ Ð¾Ñновного ÑодеÑжимого копии.
ÐÑÑгие Ñлаги:
-V--versionСообÑиÑÑ Ð²ÐµÑÑÐ¸Ñ pg_verifybackup и завеÑÑиÑÑÑÑ.
-?--helpÐÑвеÑÑи ÑпÑÐ°Ð²ÐºÑ Ð¾Ð± аÑгÑменÑÐ°Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð½Ð¾Ð¹ ÑÑÑоки pg_verifybackup и завеÑÑиÑÑÑÑ.
ÐÑимеÑÑ
Создание базовой копии ÑеÑвеÑа mydbserver и пÑовеÑка ÑелоÑÑноÑÑи копии:
$pg_basebackup -h mydbserver -D /usr/local/pgsql/data$pg_verifybackup /usr/local/pgsql/data
Создание базовой копии ÑеÑвеÑа mydbserver, пеÑемеÑение Ñайла маниÑеÑÑа во внеÑний каÑалог и пÑовеÑка копии:
$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$edit /usr/local/pgsql/data/note.to.self$pg_verifybackup --ignore=note.to.self --skip-checksums /usr/local/pgsql/data