pg_probackup
pg_probackup â ÑпÑавление ÑезеÑвнÑм копиÑованием и воÑÑÑановлением клаÑÑеÑов баз даннÑÑ Postgres Pro
СинÑакÑиÑ
pg_probackup version
pg_probackup help [команда]
pg_probackup init -B каÑалог_копий --skip-if-exists
pg_probackup add-instance -B каÑалог_копий -D каÑалог_даннÑÑ
--instance имÑ_ÑкземплÑÑа --skip-if-exists
pg_probackup del-instance -B каÑалог_копий --instance имÑ_ÑкземплÑÑа
pg_probackup set-config -B каÑалог_копий --instance имÑ_ÑкземплÑÑа [паÑамеÑÑ...]
pg_probackup set-backup -B каÑалог_копий --instance имÑ_ÑкземплÑÑа -i ид_ÑезеÑвной_копии [паÑамеÑÑ...]
pg_probackup show-config -B каÑалог_копий --instance имÑ_ÑкземплÑÑа [--format=]ÑоÑмаÑ
pg_probackup show -B каÑалог_копий [паÑамеÑÑ...]
pg_probackup backup -B каÑалог_копий --instance имÑ_ÑкземплÑÑа -b Ñежим_копиÑÐ¾Ð²Ð°Ð½Ð¸Ñ [паÑамеÑÑ...]
pg_probackup restore -B каÑалог_копий --instance имÑ_ÑкземплÑÑа [паÑамеÑÑ...]
pg_probackup checkdb -B каÑалог_копий --instance имÑ_ÑкземплÑÑа -D каÑалог_даннÑÑ
[паÑамеÑÑ...]
pg_probackup validate -B каÑалог_копий [паÑамеÑÑ...]
pg_probackup merge -B каÑалог_копий --instance имÑ_ÑкземплÑÑа -i ид_ÑезеÑвной_копии [паÑамеÑÑ...]
pg_probackup delete -B каÑалог_копий --instance имÑ_ÑкземплÑÑа { -i ид_ÑезеÑвной_копии | --delete-wal | --delete-expired | --merge-expired } [паÑамеÑÑ...]
pg_probackup archive-push -B каÑалог_копий --instance имÑ_ÑкземплÑÑа --wal-file-path пÑÑÑ_Ñайлов_wal --wal-file-name имÑ_Ñайла_wal [паÑамеÑÑ...]
pg_probackup archive-get -B каÑалог_копий --instance имÑ_ÑкземплÑÑа --wal-file-path пÑÑÑ_Ñайлов_wal --wal-file-name имÑ_Ñайла_wal [паÑамеÑÑ...]
pg_probackup catchup -b Ñежим_ÑинÑ
ÑонизаÑии --source-pgdata=пÑÑÑ_к_копиÑÑемомÑ_каÑалогÑ_даннÑÑ
--destination-pgdata=пÑÑÑ_к_ÑелевомÑ_каÑалогÑ_даннÑÑ
[паÑамеÑÑ...]
ÐпиÑание
pg_probackup â ÑÑо ÑÑилиÑа Ð´Ð»Ñ ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ ÑезеÑвнÑм копиÑованием и воÑÑÑановлением клаÑÑеÑов баз даннÑÑ Postgres Pro. Ðна пÑедназнаÑена Ð´Ð»Ñ ÑегÑлÑÑного ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ ÑезеÑвнÑÑ ÐºÐ¾Ð¿Ð¸Ð¹ ÑкземплÑÑа Postgres Pro, позволÑÑÑÐ¸Ñ Ð²Ð¾ÑÑÑанавливаÑÑ ÑеÑÐ²ÐµÑ Ð² ÑлÑÑае Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾ÑÑи. pg_probackup поддеÑÐ¶Ð¸Ð²Ð°ÐµÑ PostgreSQL веÑÑии 10 и новее.
ÐбзоÑ
Ðо ÑÑÐ°Ð²Ð½ÐµÐ½Ð¸Ñ Ñ Ð´ÑÑгими ÑÑедÑÑвами ÑезеÑвного копиÑÐ¾Ð²Ð°Ð½Ð¸Ñ pg_probackup Ð¸Ð¼ÐµÐµÑ ÑледÑÑÑие пÑеимÑÑеÑÑва, полезнÑе Ð´Ð»Ñ ÑеализаÑии ÑазлиÑнÑÑ ÑÑÑаÑегий ÑезеÑвного копиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð¸ ÑабоÑÑ Ñ Ð±Ð°Ð·Ð°Ð¼Ð¸ даннÑÑ Ð±Ð¾Ð»ÑÑого обÑÑма:
ÐнкÑеменÑалÑное копиÑование: вÑбиÑÐ°Ñ Ð¾Ð´Ð¸Ð½ из ÑÑÑÑ Ñежимов инкÑеменÑалÑного копиÑованиÑ, Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе ÑеализоваÑÑ ÑÑÑаÑÐµÐ³Ð¸Ñ ÑезеÑвного копиÑованиÑ, ÑооÑвеÑÑÑвÑÑÑÑÑ Ð²Ð°ÑÐµÐ¼Ñ Ð¿ÑоÑÐ¸Ð»Ñ ÑÑанзакÑионной нагÑÑзки. ÐÑо позволÑÐµÑ ÑÑкономиÑÑ Ð¼ÐµÑÑо на диÑке и ÑоздаваÑÑ ÐºÐ¾Ð¿Ð¸Ð¸ бÑÑÑÑее, Ñем пÑи полном копиÑовании. ÐоÑÑÑановление инкÑеменÑалÑнÑÑ ÐºÐ¾Ð¿Ð¸Ð¹ Ñакже оÑÑÑеÑÑвлÑеÑÑÑ Ð±ÑÑÑÑее, Ñем воÑпÑоизведение Ñайлов WAL.
ÐнкÑеменÑалÑное воÑÑÑановление: ÑÑкоÑение воÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð¸Ð· копии благодаÑÑ Ð¿Ð¾Ð²ÑоÑÐ½Ð¾Ð¼Ñ Ð¸ÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð½ÐµÐ¸Ð·Ð¼ÐµÐ½ÑннÑÑ ÑÑÑаниÑ, имеÑÑÐ¸Ñ ÑÑ Ð²
PGDATA.ÐÑовеÑка: авÑомаÑиÑеÑкий конÑÑÐ¾Ð»Ñ ÑелоÑÑноÑÑи даннÑÑ Ð¸ пÑовеÑка ÑезеÑвнÑÑ ÐºÐ¾Ð¿Ð¸Ð¹ без воÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð´Ð°Ð½Ð½ÑÑ ÐºÐ»Ð°ÑÑеÑа.
ÐонÑÑÐ¾Ð»Ñ ÑелоÑÑноÑÑи: вÑполнÑÐµÐ¼Ð°Ñ Ð¿Ð¾ запÑоÑÑ Ð¿ÑовеÑка ÑкземплÑÑа Postgres Pro Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ
checkdb.ÐолиÑика Ñ ÑанениÑ: ÑпÑавление аÑÑ Ð¸Ð²Ð°Ð¼Ð¸ WAL и ÑезеÑвнÑми копиÑми в ÑооÑвеÑÑÑвии Ñ ÑÑÑановленнÑми пÑавилами Ð¸Ñ Ñ ÑанениÑ. ÐÑ Ð¼Ð¾Ð¶ÐµÑе огÑаниÑиÑÑ Ñ Ñанение ÑезеÑвнÑÑ ÐºÐ¾Ð¿Ð¸Ð¹ по вÑемени или Ð¸Ñ ÐºÐ¾Ð»Ð¸ÑеÑÑвÑ, а Ñакже пеÑеопÑеделиÑÑ Ð²ÑÐµÐ¼Ñ Ð¶Ð¸Ð·Ð½Ð¸ (TTL) Ð´Ð»Ñ Ð¸Ð·Ð±ÑаннÑÑ ÐºÐ¾Ð¿Ð¸Ð¹. ÐоÑеÑÑвÑие акÑÑалÑноÑÑÑ ÑезеÑвнÑе копии могÑÑ Ð¾Ð±ÑединÑÑÑÑÑ Ð¸Ð»Ð¸ ÑдалÑÑÑÑÑ.
ÐаÑаллелÑное вÑполнение: вÑполнение внÑÑÑÐµÐ½Ð½Ð¸Ñ Ð¿ÑоÑеÑÑов команд
backup,restore,merge,delete,validateиcheckdbв неÑколÑко паÑаллелÑнÑÑ Ð¿Ð¾Ñоков.СжаÑие: Ñ Ñанение копиÑÑемÑÑ Ð´Ð°Ð½Ð½ÑÑ Ð² ÑжаÑом ÑоÑÑоÑнии Ð´Ð»Ñ Ñкономии диÑкового пÑоÑÑÑанÑÑва.
ÐÑклÑÑение дÑблиÑованиÑ: ÑÐºÐ¾Ð½Ð¾Ð¼Ð¸Ñ Ð´Ð¸Ñкового пÑоÑÑÑанÑÑва за ÑÑÑÑ ÑилÑÑÑаÑии пÑи инкÑеменÑалÑном копиÑовании Ñайлов, не ÑодеÑжаÑÐ¸Ñ Ð½ÐµÐ¿Ð¾ÑÑедÑÑвенно даннÑе (напÑимеÑ, Ñайлов
_vmили_fsm), еÑли ÑÑи ÑÐ°Ð¹Ð»Ñ Ð½Ðµ изменÑлиÑÑ Ñ Ð¼Ð¾Ð¼ÐµÐ½Ñа ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð¿ÑедÑдÑÑей копии в ÑепоÑке инкÑеменÑалÑнÑÑ ÐºÐ¾Ð¿Ð¸Ð¹.УдалÑннÑй Ñежим ÑабоÑÑ: вÑполнение ÑезеÑвного копиÑÐ¾Ð²Ð°Ð½Ð¸Ñ ÑкземплÑÑа Postgres Pro, Ð½Ð°Ñ Ð¾Ð´ÑÑегоÑÑ Ð² ÑдалÑнной ÑиÑÑеме, и ÑдалÑнное воÑÑÑановление.
ÐолÑÑение ÑезеÑвной копии Ñ Ð²ÐµÐ´Ð¾Ð¼Ð¾Ð³Ð¾: иÑклÑÑение дополниÑелÑной нагÑÑзки на ведÑÑий ÑеÑвеÑ.
ÐÑÑ Ð¸Ð²Ð¸Ñование внеÑÐ½Ð¸Ñ ÐºÐ°Ñалогов: ÑезеÑвное копиÑование Ñайлов и каÑалогов, ÑаÑположеннÑÑ Ð²Ð½Ðµ каÑалога даннÑÑ Postgres Pro (
PGDATA), напÑÐ¸Ð¼ÐµÑ ÑкÑипÑов, Ñайлов конÑигÑÑаÑии, жÑÑналов или SQL-дампов.ÐаÑалогизаÑÐ¸Ñ ÑезеÑвнÑÑ ÐºÐ¾Ð¿Ð¸Ð¹: полÑÑение ÑпиÑка ÑезеÑвнÑÑ ÐºÐ¾Ð¿Ð¸Ð¹ и ÑооÑвеÑÑÑвÑÑÑей меÑаинÑоÑмаÑии в виде пÑоÑÑого ÑекÑÑа или JSON.
ÐаÑалогизаÑÐ¸Ñ Ð°ÑÑ Ð¸Ð²Ð¾Ð² WAL: полÑÑение ÑпиÑка вÑÐµÑ Ð»Ð¸Ð½Ð¸Ð¹ вÑемени в WAL и ÑооÑвеÑÑÑвÑÑÑей меÑаинÑоÑмаÑии в виде пÑоÑÑого ÑекÑÑа или JSON.
ЧаÑÑиÑное воÑÑÑановление: воÑÑÑановление ÑолÑко избÑаннÑÑ Ð±Ð°Ð· даннÑÑ .
Ð¡Ð¸Ð½Ñ ÑонизаÑиÑ: клониÑование ÑкземплÑÑа Postgres Pro, в ÑезÑлÑÑаÑе коÑоÑого оÑÑÑавÑий ведомÑй ÑеÑÐ²ÐµÑ ÑÐ¸Ð½Ñ ÑонизиÑÑеÑÑÑ Ñ Ð²ÐµÐ´ÑÑим.
ÐÐ»Ñ ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ ÑезеÑвнÑми копиÑми pg_probackup ÑоздаÑÑ ÐºÐ°Ñалог ÑезеÑвнÑÑ ÐºÐ¾Ð¿Ð¸Ð¹. Ð ÑÑом каÑалоге ÑÐ¾Ñ ÑанÑÑÑÑÑ Ð²Ñе ÑÐ°Ð¹Ð»Ñ ÑезеÑвнÑÑ ÐºÐ¾Ð¿Ð¸Ð¹ Ñ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸ÑелÑной меÑаинÑоÑмаÑией, а Ñакже аÑÑ Ð¸Ð²Ñ WAL, Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ñе Ð´Ð»Ñ Ð²Ð¾ÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð½Ð° Ð¼Ð¾Ð¼ÐµÐ½Ñ Ð²Ñемени. ÐÑ Ð¼Ð¾Ð¶ÐµÑе Ñ ÑаниÑÑ ÑезеÑвнÑе копии ÑазнÑÑ ÑкземплÑÑов в оÑделÑнÑÑ Ð¿Ð¾Ð´ÐºÐ°ÑÐ°Ð»Ð¾Ð³Ð°Ñ Ð¾Ð´Ð½Ð¾Ð³Ð¾ каÑалога копий.
ÐÑполÑзÑÑ pg_probackup, Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе вÑполнÑÑÑ Ð¿Ð¾Ð»Ð½Ð¾Ðµ или инкÑеменÑалÑное ÑезеÑвное копиÑование:
ÐолнÑе ÑезеÑвнÑе копии ÑодеÑÐ¶Ð°Ñ Ð²Ñе ÑÐ°Ð¹Ð»Ñ Ð´Ð°Ð½Ð½ÑÑ , Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ñе Ð´Ð»Ñ Ð²Ð¾ÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ ÐºÐ»Ð°ÑÑеÑа баз даннÑÑ Ñ Ð½ÑлÑ.
ÐнкÑеменÑалÑнÑе копии ÑоздаÑÑÑÑ Ð½Ð° ÑÑовне ÑÑÑÐ°Ð½Ð¸Ñ Ð¸ вклÑÑаÑÑ ÑолÑко Ñе даннÑе, коÑоÑÑе изменилиÑÑ Ñо вÑемени поÑледнего копиÑованиÑ. ÐÑо позволÑÐµÑ ÑÑкономиÑÑ Ð¼ÐµÑÑо на диÑке и ÑоздаваÑÑ ÐºÐ¾Ð¿Ð¸Ð¸ бÑÑÑÑее, Ñем пÑи полном копиÑовании. ÐоÑÑÑановление инкÑеменÑалÑнÑÑ ÐºÐ¾Ð¿Ð¸Ð¹ Ñакже оÑÑÑеÑÑвлÑеÑÑÑ Ð±ÑÑÑÑее, Ñем воÑпÑоизведение Ñайлов WAL. pg_probackup поддеÑÐ¶Ð¸Ð²Ð°ÐµÑ ÑледÑÑÑие ÑÐµÐ¶Ð¸Ð¼Ñ Ð¸Ð½ÐºÑеменÑалÑного копиÑованиÑ:
РазноÑÑное копиÑование. Ð Ñежиме
DELTApg_probackup ÑÑиÑÑÐ²Ð°ÐµÑ Ð²Ñе ÑÐ°Ð¹Ð»Ñ Ð´Ð°Ð½Ð½ÑÑ Ð² каÑалоге даннÑÑ Ð¸ копиÑÑÐµÑ ÑолÑко Ñе ÑÑÑаниÑÑ, коÑоÑÑе изменилиÑÑ Ñо вÑемени пÑедÑдÑÑего копиÑованиÑ. ÐÐ»Ñ Ð¸ÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð´Ð°Ð½Ð½Ð¾Ð³Ð¾ Ñежима не ÑÑебÑеÑÑÑ Ð¿ÑоизводиÑÑ Ð½ÐµÐ¿ÑеÑÑвное аÑÑ Ð¸Ð²Ð¸Ñование. Ð ÑÑом Ñежиме обÑÑм ввода/вÑвода Ð¼Ð¾Ð¶ÐµÑ ÑавнÑÑÑÑÑ Ð¾Ð±ÑÑÐ¼Ñ Ð¿Ñи полном ÑезеÑвном копиÑовании.СÑÑаниÑное копиÑование. Ð Ñежиме
PAGEpg_probackup ÑканиÑÑÐµÑ Ð²Ñе ÑÐ°Ð¹Ð»Ñ WAL в аÑÑ Ð¸Ð²Ðµ Ñ Ð¼Ð¾Ð¼ÐµÐ½Ñа ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð¿ÑедÑдÑÑей полной или инкÑеменÑалÑной копии. ÐÐ¾Ð²Ð°Ñ ÑезеÑÐ²Ð½Ð°Ñ ÐºÐ¾Ð¿Ð¸Ñ Ð±ÑÐ´ÐµÑ ÑодеÑжаÑÑ ÑолÑко ÑÑÑаниÑÑ, ÑигÑÑиÑÑÑÑие в запиÑÑÑ WAL. ÐÑи ÑÑом Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾, ÑÑÐ¾Ð±Ñ Ð² аÑÑ Ð¸Ð²Ðµ WAL ÑÐ¾Ñ ÑанÑлиÑÑ Ð²Ñе ÑÐ°Ð¹Ð»Ñ WAL, запиÑаннÑе поÑле пÑедÑдÑÑей копии. ÐÑли ÑÐ°Ð·Ð¼ÐµÑ ÑÑÐ¸Ñ Ñайлов ÑÑавним Ñ Ð¾Ð±Ñим ÑазмеÑом Ñайлов Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ , ÑÑкоÑение бÑÐ´ÐµÑ Ð¼ÐµÐ½ÐµÐµ знаÑиÑелÑнÑм, но ÑÐ°Ð·Ð¼ÐµÑ ÐºÐ¾Ð¿Ð¸Ð¸ бÑÐ´ÐµÑ Ð²ÑÑ Ð¶Ðµ менÑÑе.ÐопиÑование изменений. Ð Ñежиме
PTRACKPostgres Pro оÑÑÐ»ÐµÐ¶Ð¸Ð²Ð°ÐµÑ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ ÑÑÑÐ°Ð½Ð¸Ñ Ð½Ð° леÑÑ. ЧÑÐ¾Ð±Ñ Ð¾Ð½ ÑабоÑал, не ÑÑебÑеÑÑÑ Ð¿ÑоизводиÑÑ Ð½ÐµÐ¿ÑеÑÑвное аÑÑ Ð¸Ð²Ð¸Ñование WAL. ÐÑи каждом изменении ÑÑÑаниÑÑ Ð¾ÑноÑÐµÐ½Ð¸Ñ Ð¾Ð½Ð° помеÑаеÑÑÑ Ð² ÑпеÑиалÑной каÑÑеPTRACK. ÐÑо оÑÑлеживание пÑивноÑÐ¸Ñ Ð½ÐµÐ±Ð¾Ð»ÑÑие издеÑжки в ÑабоÑÑ ÑеÑвеÑа, но знаÑиÑелÑно ÑÑкоÑÑÐµÑ Ð¸Ð½ÐºÑеменÑалÑное ÑезеÑвное копиÑование.
pg_probackup Ð¼Ð¾Ð¶ÐµÑ Ð¿ÑоизводиÑÑ ÐºÐ¾Ð¿Ð¸Ñование ÑолÑко ÑабоÑаÑÑего ÑкземплÑÑа, а Ð´Ð»Ñ Ð¾Ð±ÐµÑпеÑÐµÐ½Ð¸Ñ ÑелоÑÑноÑÑи ÑÐ°ÐºÐ¸Ñ ÐºÐ¾Ð¿Ð¸Ð¹ ÑÑебÑеÑÑÑ ÐºÐ¾Ð¿Ð¸ÑоваÑÑ WAL. ÐоÑÑÐ¾Ð¼Ñ Ð²Ð½Ðµ завиÑимоÑÑи Ð¾Ñ Ð²ÑбÑанного Ñежима копиÑÐ¾Ð²Ð°Ð½Ð¸Ñ (FULL, PAGE или DELTA), ÑÑÐ¾Ð±Ñ pg_probackup мог полÑÑиÑÑ Ð¿Ð¾Ð»Ð½Ð¾ÑеннÑÑ ÐºÐ¾Ð¿Ð¸Ñ, нÑжно вÑбÑаÑÑ Ð¾Ð´Ð¸Ð½ из ÑледÑÑÑÐ¸Ñ Ñежимов доÑÑавки WAL:
ARCHIVE. Ð Ñаком Ñежиме ÑелоÑÑноÑÑÑ ÐºÐ¾Ð¿Ð¸Ð¹ обеÑпеÑиваеÑÑÑ Ð¿Ð¾ÑÑедÑÑвом непÑеÑÑвного аÑÑ Ð¸Ð²Ð¸ÑованиÑ. ÐÑо Ñежим доÑÑавки WAL по ÑмолÑаниÑ.
STREAM. Такие ÑезеÑвнÑе копии вклÑÑаÑÑ Ð²Ñе ÑайлÑ, Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ñе Ð´Ð»Ñ Ð²Ð¾ÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ ÑелоÑÑного ÑоÑÑоÑÐ½Ð¸Ñ ÐºÐ»Ð°ÑÑеÑа на Ð¼Ð¾Ð¼ÐµÐ½Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ ÐºÐ¾Ð¿Ð¸Ð¸. Ðне завиÑимоÑÑи Ð¾Ñ Ñого, оÑÑÑеÑÑвлÑеÑÑÑ Ð»Ð¸ непÑеÑÑвное аÑÑ Ð¸Ð²Ð¸Ñование, Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ñе Ð´Ð»Ñ Ð²Ð¾ÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ ÑегменÑÑ WAL ÑÑиÑÑваÑÑÑÑ Ð¿Ð¾ пÑоÑÐ¾ÐºÐ¾Ð»Ñ Ð¿Ð¾Ñоковой ÑепликаÑии во вÑÐµÐ¼Ñ ÑезеÑвного копиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð¸ вклÑÑаÑÑÑÑ Ð² ÑоÑÑав ÑезеÑвной копии. ÐоÑÑÐ¾Ð¼Ñ Ñакие ÑезеÑвнÑе копии назÑваÑÑÑÑ Ð°Ð²ÑономнÑми или ÑамодоÑÑаÑоÑнÑми.
ÐгÑаниÑениÑ
РнаÑÑоÑÑее вÑÐµÐ¼Ñ pg_probackup Ð¸Ð¼ÐµÐµÑ ÑледÑÑÑие огÑаниÑениÑ:
Режим ÑдалÑнного ÑеÑвеÑа на плаÑÑоÑме Windows не поддеÑживаеÑÑÑ.
Ð Unix-ÑиÑÑÐµÐ¼Ð°Ñ ÐºÐ¾Ð¿Ð¸Ñ Ð±Ð°Ð·Ñ Postgres Pro веÑÑии 10 можно ÑделаÑÑ ÑолÑко Ð¾Ñ Ð¸Ð¼ÐµÐ½Ð¸ Ñого полÑзоваÑелÑ, коÑоÑÑй запÑÑÐºÐ°ÐµÑ ÑеÑÐ²ÐµÑ Postgres Pro. ÐапÑимеÑ, еÑли ÑеÑÐ²ÐµÑ Postgres Pro запÑÑÐºÐ°ÐµÑ Ð¿Ð¾Ð»ÑзоваÑелÑ
postgres, командÑbackupÑакже должен вÑполнÑÑÑ Ð¿Ð¾Ð»ÑзоваÑелÑpostgres. ÐÐ»Ñ ÑдовлеÑвоÑÐµÐ½Ð¸Ñ ÑÑого ÑÑÐµÐ±Ð¾Ð²Ð°Ð½Ð¸Ñ Ð² ÑлÑÑае иÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ ÑдалÑнного Ñежима и SSH в паÑамеÑÑе--remote-userÐ½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾ пеÑедаÑÑpostgres.Ðа ÑеÑвеÑе Postgres Pro, где бÑла Ñделана копиÑ, и на ÑеÑвеÑе, где она бÑÐ´ÐµÑ Ð²Ð¾ÑÑÑанавливаÑÑÑÑ, Ð´Ð¾Ð»Ð¶Ð½Ñ Ð±ÑÑÑ Ð¾Ð´Ð¸Ð½Ð°ÐºÐ¾Ð²Ñе знаÑÐµÐ½Ð¸Ñ Ð¿Ð°ÑамеÑÑов block_size и wal_block_size и Ð¾Ð´Ð¸Ð½Ð°ÐºÐ¾Ð²Ð°Ñ Ð¾ÑÐ½Ð¾Ð²Ð½Ð°Ñ Ð²ÐµÑÑиÑ. РзавиÑимоÑÑи Ð¾Ñ ÐºÐ¾Ð½ÑигÑÑаÑии клаÑÑеÑа, Postgres Pro Ð¼Ð¾Ð¶ÐµÑ Ð½Ð°ÐºÐ»Ð°Ð´ÑваÑÑ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸ÑелÑнÑе огÑаниÑениÑ, напÑимеÑ, по аÑÑ Ð¸ÑекÑÑÑе пÑоÑеÑÑоÑа и веÑÑии libc/icu.
УÑÑановка и подгоÑовка
УÑÑановив pg_probackup, вÑполниÑе ÑледÑÑÑие дейÑÑвиÑ:
ÐниÑиализиÑÑйÑе каÑалог ÑезеÑвнÑÑ ÐºÐ¾Ð¿Ð¸Ð¹.
ÐобавÑÑе копиÑÑемÑй ÑкземплÑÑ Ð² каÑалог копий.
ÐаÑÑÑойÑе клаÑÑÐµÑ Ð±Ð°Ð· даннÑÑ Ð´Ð»Ñ Ð¸ÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ pg_probackup.
ÐаÑÑÑойÑе SSH Ð´Ð»Ñ Ð²ÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð¾Ð¿ÐµÑаÑий pg_probackup в ÑдалÑнном Ñежиме, еÑли Ð²Ñ Ð¿Ð»Ð°Ð½Ð¸ÑÑеÑе его иÑполÑзоваÑÑ.
ÐниÑиализаÑÐ¸Ñ ÐºÐ°Ñалога ÑезеÑвнÑÑ ÐºÐ¾Ð¿Ð¸Ð¹
pg_probackup ÑÐ¾Ñ ÑанÑÐµÑ Ð²Ñе ÑÐ°Ð¹Ð»Ñ ÐºÐ¾Ð¿Ð¸ÑÑемÑÑ Ð´Ð°Ð½Ð½ÑÑ Ð¸ WAL в ÑооÑвеÑÑÑвÑÑÐ¸Ñ Ð¿Ð¾Ð´ÐºÐ°ÑÐ°Ð»Ð¾Ð³Ð°Ñ ÐºÐ°Ñалога ÑезеÑвнÑÑ ÐºÐ¾Ð¿Ð¸Ð¹.
ÐÐ»Ñ Ð¸Ð½Ð¸ÑиализаÑии каÑалога ÑезеÑвнÑÑ ÐºÐ¾Ð¿Ð¸Ð¹ вÑполниÑе командÑ:
pg_probackup init -B каÑалог_копийздеÑÑ ÐºÐ°Ñалог_копий â ÑÑо каÑалог, пÑедназнаÑеннÑй Ð´Ð»Ñ ÑезеÑвнÑÑ
копий. ÐÑли каÑалог_копий Ñже ÑÑÑеÑÑвÑеÑ, он должен бÑÑÑ Ð¿ÑÑÑÑм. РпÑоÑивном ÑлÑÑае pg_probackup вÑдаÑÑ Ð¾ÑибкÑ.
ÐолÑзоваÑелÑ, запÑÑкаÑÑий pg_probackup, должен имеÑÑ Ð¿Ð¾Ð»Ð½Ñй доÑÑÑп к каÑалогÑ_копий.
pg_probackup ÑоздаÑÑ ÐºÐ°Ñалог_копий Ñо ÑледÑÑÑими подкаÑалогами:
wal/â каÑалог Ð´Ð»Ñ Ñайлов WAL.backups/â каÑалог Ð´Ð»Ñ Ñайлов ÑезеÑвнÑÑ ÐºÐ¾Ð¿Ð¸Ð¹.
ÐÑоиниÑиализиÑовав каÑалог ÑезеÑвнÑÑ ÐºÐ¾Ð¿Ð¸Ð¹, Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе добавиÑÑ Ð¾Ð¿Ñеделение копиÑÑемого ÑкземплÑÑа.
ÐпÑеделение копиÑÑемого ÑкземплÑÑа
pg_probackup Ð¼Ð¾Ð¶ÐµÑ ÑÐ¾Ñ ÑанÑÑÑ ÑезеÑвнÑе копии ÑазнÑÑ ÐºÐ»Ð°ÑÑеÑов баз даннÑÑ Ð² одном каÑалоге ÑезеÑвнÑÑ ÐºÐ¾Ð¿Ð¸Ð¹. ÐÐ»Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼ÑÑ Ð¿Ð¾Ð´ÐºÐ°Ñалогов Ð²Ñ Ð´Ð¾Ð»Ð¶Ð½Ñ Ð¾Ð¿ÑеделиÑÑ ÐºÐ¾Ð¿Ð¸ÑÑемÑй ÑкземплÑÑ Ð² каÑалоге копий Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ клаÑÑеÑа баз даннÑÑ , ÐºÐ¾Ð¿Ð¸Ñ ÐºÐ¾ÑоÑого Ð²Ñ Ð±ÑдеÑе делаÑÑ.
ÐÐ»Ñ Ð¾Ð¿ÑÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ ÐºÐ¾Ð¿Ð¸ÑÑемого ÑкземплÑÑа вÑполниÑе командÑ:
pg_probackup add-instance -BкаÑалог_копий-DкаÑалог_даннÑÑ--instanceимÑ_ÑкземплÑÑа[паÑамеÑÑÑ_ÑдалÑнного_Ñежима]
ÐдеÑÑ:
каÑалог_даннÑÑâ каÑалог, ÑодеÑжаÑий даннÑе клаÑÑеÑа, ÐºÐ¾Ð¿Ð¸Ñ ÐºÐ¾ÑоÑого Ð²Ñ Ñ Ð¾ÑиÑе ÑделаÑÑ. ÐÐ»Ñ Ð¿Ð¾Ð´Ð³Ð¾Ñовки и иÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ pg_probackup Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾ имеÑÑ Ð¿Ñаво запиÑи в ÑÑÐ¾Ñ ÐºÐ°Ñалог.имÑ_ÑкземплÑÑаâ ÑÑо Ð¸Ð¼Ñ Ð¿Ð¾Ð´ÐºÐ°Ñалогов, в коÑоÑÑÑ Ð±ÑдÑÑ Ñ ÑаниÑÑÑÑ ÑÐ°Ð¹Ð»Ñ ÐºÐ¾Ð¿Ð¸ÑÑемÑÑ Ð´Ð°Ð½Ð½ÑÑ Ð¸ WAL Ð´Ð»Ñ ÑÑого клаÑÑеÑа.паÑамеÑÑÑ_ÑдалÑнного_Ñежима Ð´Ð¾Ð»Ð¶Ð½Ñ Ð·Ð°Ð´Ð°Ð²Ð°ÑÑÑÑ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸ÑелÑно, еÑли
каÑалог_даннÑÑÑаÑполагаеÑÑÑ ÑдалÑнно.
pg_probackup ÑоздаÑÑ Ð¿Ð¾Ð´ÐºÐ°Ñалоги имÑ_ÑкземплÑÑа в каÑалогаÑ
backups/ и wal/ каÑалога ÑезеÑвнÑÑ
копий. ÐаÑалог backups/ ÑодеÑÐ¶Ð¸Ñ Ñайл конÑигÑÑаÑии имÑ_ÑкземплÑÑаpg_probackup.conf Ñ Ð¿Ð°ÑамеÑÑами pg_probackup, оÑноÑÑÑимиÑÑ Ðº Ð´Ð°Ð½Ð½Ð¾Ð¼Ñ ÑкземплÑÑÑ ÐºÐ¾Ð¿Ð¸Ð¸. ÐÑли ÑÑой команде пеÑедаÑÑ Ð¿Ð°ÑамеÑÑÑ_ÑдалÑнного_Ñежима, они бÑдÑÑ Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ñ Ð² pg_probackup.conf.
Ðолее подÑобно ÑÐ¾Ð½ÐºÐ°Ñ Ð½Ð°ÑÑÑойка pg_probackup опиÑÑваеÑÑÑ Ð² ÐодÑазделе «ÐаÑÑÑойка pg_probackup».
ÐолÑзоваÑелÑ, запÑÑкаÑÑий pg_probackup, должен имеÑÑ Ð¿Ð¾Ð»Ð½Ñй доÑÑÑп к каÑалогÑ_копий и как минимÑм доÑÑÑп на ÑÑение вÑего ÑодеÑжимого каÑалога_даннÑÑ
. ÐÑли Ð²Ñ Ð·Ð°Ð´Ð°Ð´Ð¸Ñе пÑÑÑ Ðº каÑÐ°Ð»Ð¾Ð³Ñ ÐºÐ¾Ð¿Ð¸Ð¹ в пеÑеменной окÑÑÐ¶ÐµÐ½Ð¸Ñ BACKUP_PATH, ÑооÑвеÑÑÑвÑÑÑий паÑамеÑÑ Ð² командаÑ
pg_probackup можно не ÑказÑваÑÑ.
ÐÑимеÑание
ÐÐ»Ñ Postgres Pro веÑÑии 11 и новее ÑекомендÑеÑÑÑ Ð¸ÑполÑзоваÑÑ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾ÑÑÑ ÐоÑÑÑп гÑÑппÑ, ÑÑÐ¾Ð±Ñ Ð²ÑполниÑÑ ÐºÐ¾Ð¿Ð¸Ñование мог лÑбой полÑзоваÑÐµÐ»Ñ ÐС, вклÑÑÑннÑй в гÑÑÐ¿Ð¿Ñ Ð²Ð»Ð°Ð´ÐµÐ»ÑÑа клаÑÑеÑа. Ð ÑÑом ÑлÑÑае полÑзоваÑÐµÐ»Ñ Ð´Ð¾Ð»Ð¶ÐµÐ½ имеÑÑ Ð¿Ñава на ÑÑение каÑалога клаÑÑеÑа.
ÐаÑÑÑойка клаÑÑеÑа баз даннÑÑ
ХоÑÑ pg_probackup можно иÑполÑзоваÑÑ Ð¾Ñ Ð¸Ð¼ÐµÐ½Ð¸ ÑÑпеÑполÑзоваÑелÑ, ÑекомендÑеÑÑÑ ÑоздаÑÑ Ð¾ÑделÑнÑÑ ÑÐ¾Ð»Ñ Ñ Ð¼Ð¸Ð½Ð¸Ð¼Ð°Ð»ÑнÑми пÑавами, необÑ
одимÑми Ð´Ð»Ñ Ð²ÑбÑанной ÑÑÑаÑегии копиÑованиÑ. Ð ÑÑиÑ
инÑÑÑÑкÑиÑÑ
по наÑÑÑойке Ñакой ÑолÑÑ ÑлÑÐ¶Ð¸Ñ ÑÐ¾Ð»Ñ backup.
ÐÐ»Ñ Ð²ÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ ÑезеÑвного копиÑÐ¾Ð²Ð°Ð½Ð¸Ñ ÑÐ¾Ð»Ñ backup должна имеÑÑ ÑледÑÑÑие ÑазÑеÑÐµÐ½Ð¸Ñ Ð½Ð° ÑеÑвеÑе Postgres Pro (ÑолÑко в базе даннÑÑ
, к коÑоÑой пÑоизводиÑÑÑ Ð¿Ð¾Ð´ÐºÐ»ÑÑение):
ÐÐ»Ñ Ð²ÐµÑÑий Postgres Pro 10 â 14:
BEGIN; CREATE ROLE backup WITH LOGIN; GRANT USAGE ON SCHEMA pg_catalog TO backup; GRANT EXECUTE ON FUNCTION pg_catalog.current_setting(text) TO backup; GRANT EXECUTE ON FUNCTION pg_catalog.set_config(text, text, boolean) TO backup; GRANT EXECUTE ON FUNCTION pg_catalog.pg_is_in_recovery() TO backup; GRANT EXECUTE ON FUNCTION pg_catalog.pg_start_backup(text, boolean, boolean) TO backup; GRANT EXECUTE ON FUNCTION pg_catalog.pg_stop_backup(boolean, boolean) TO backup; GRANT EXECUTE ON FUNCTION pg_catalog.pg_create_restore_point(text) TO backup; GRANT EXECUTE ON FUNCTION pg_catalog.pg_switch_wal() TO backup; GRANT EXECUTE ON FUNCTION pg_catalog.pg_last_wal_replay_lsn() TO backup; GRANT EXECUTE ON FUNCTION pg_catalog.txid_current() TO backup; GRANT EXECUTE ON FUNCTION pg_catalog.txid_current_snapshot() TO backup; GRANT EXECUTE ON FUNCTION pg_catalog.txid_snapshot_xmax(txid_snapshot) TO backup; GRANT EXECUTE ON FUNCTION pg_catalog.pg_control_checkpoint() TO backup; COMMIT;
ÐÐ»Ñ Postgres Pro веÑÑии 15 или новее:
BEGIN; CREATE ROLE backup WITH LOGIN; GRANT USAGE ON SCHEMA pg_catalog TO backup; GRANT EXECUTE ON FUNCTION pg_catalog.current_setting(text) TO backup; GRANT EXECUTE ON FUNCTION pg_catalog.set_config(text, text, boolean) TO backup; GRANT EXECUTE ON FUNCTION pg_catalog.pg_is_in_recovery() TO backup; GRANT EXECUTE ON FUNCTION pg_catalog.pg_backup_start(text, boolean) TO backup; GRANT EXECUTE ON FUNCTION pg_catalog.pg_backup_stop(boolean) TO backup; GRANT EXECUTE ON FUNCTION pg_catalog.pg_create_restore_point(text) TO backup; GRANT EXECUTE ON FUNCTION pg_catalog.pg_switch_wal() TO backup; GRANT EXECUTE ON FUNCTION pg_catalog.pg_last_wal_replay_lsn() TO backup; GRANT EXECUTE ON FUNCTION pg_catalog.txid_current() TO backup; GRANT EXECUTE ON FUNCTION pg_catalog.txid_current_snapshot() TO backup; GRANT EXECUTE ON FUNCTION pg_catalog.txid_snapshot_xmax(txid_snapshot) TO backup; GRANT EXECUTE ON FUNCTION pg_catalog.pg_control_checkpoint() TO backup; COMMIT;
Ð Ñайле pg_hba.conf ÑазÑеÑиÑе подклÑÑение к клаÑÑеÑÑ Ð±Ð°Ð· даннÑÑ
полÑзоваÑÐµÐ»Ñ Ñ Ð¸Ð¼ÐµÐ½ÐµÐ¼ backup.
ÐÑогÑамма pg_probackup должна ÑиÑаÑÑ Ð½ÐµÐ¿Ð¾ÑÑедÑÑвенно ÑÐ°Ð¹Ð»Ñ ÐºÐ»Ð°ÑÑеÑа, поÑÑÐ¾Ð¼Ñ Ð·Ð°Ð¿ÑÑкаÑÑ pg_probackup (или подклÑÑаÑÑÑÑ Ðº Ð½ÐµÐ¼Ñ ÑдалÑнно) нÑжно Ð¾Ñ Ð¸Ð¼ÐµÐ½Ð¸ полÑзоваÑÐµÐ»Ñ ÐС, коÑоÑÑй Ð¸Ð¼ÐµÐµÑ Ð´Ð¾ÑÑÑп на ÑÑение вÑеÑ
Ñайлов и каÑалогов внÑÑÑи каÑалога даннÑÑ
клаÑÑеÑа (PGDATA), подлежаÑего копиÑованиÑ.
РзавиÑимоÑÑи Ð¾Ñ Ñого, бÑдеÑе ли Ð²Ñ Ð´ÐµÐ»Ð°ÑÑ ÑамодоÑÑаÑоÑнÑе или аÑÑ Ð¸Ð²Ð½Ñе копии, конÑигÑÑаÑÐ¸Ñ ÐºÐ»Ð°ÑÑеÑа Postgres Pro бÑÐ´ÐµÑ Ñазной (об оÑобенноÑÑÑÑ ÑаÑÑказÑваеÑÑÑ Ð½Ð¸Ð¶Ðµ). ЧÑÐ¾Ð±Ñ Ð¿Ð¾Ð»ÑÑиÑÑ ÐºÐ¾Ð¿Ð¸Ñ ÐºÐ»Ð°ÑÑеÑа баз даннÑÑ Ñ Ð²ÐµÐ´Ð¾Ð¼Ð¾Ð³Ð¾ ÑеÑвеÑа, запÑÑÑиÑÑ pg_probackup в ÑдалÑнном Ñежиме или ÑоздаÑÑ ÑезеÑвнÑÑ ÐºÐ¾Ð¿Ð¸Ñ PTRACK, ÑÑебÑеÑÑÑ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸ÑелÑÐ½Ð°Ñ Ð½Ð°ÑÑÑойка.
ÐодÑобнее об ÑÑом ÑаÑÑказÑваеÑÑÑ Ð² подÑÐ°Ð·Ð´ÐµÐ»Ð°Ñ ÐаÑÑÑойка поÑокового ÑезеÑвного копиÑованиÑ, ÐаÑÑÑойка непÑеÑÑвного аÑÑ Ð¸Ð²Ð¸ÑÐ¾Ð²Ð°Ð½Ð¸Ñ WAL, ÐаÑÑÑойка копиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ñ ÑезеÑвного ÑеÑвеÑа, ÐаÑÑÑойка ÑдалÑнного Ñежима, ÐаÑÑÑойка ÑаÑÑиÑного воÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð¸ ÐаÑÑÑойка копиÑÐ¾Ð²Ð°Ð½Ð¸Ñ PTRACK.
ÐаÑÑÑойка поÑокового ÑезеÑвного копиÑованиÑ
ЧÑÐ¾Ð±Ñ Ð½Ð°ÑÑÑоиÑÑ ÐºÐ»Ð°ÑÑÐµÑ Ð´Ð»Ñ Ð¿Ð¾Ñокового ÑезеÑвного копиÑованиÑ, вÑполниÑе ÑледÑÑÑие дейÑÑвиÑ:
ÐайÑе пÑаво
REPLICATIONÑолиbackup:ALTER ROLE backup WITH REPLICATION;
Ð Ñайле pg_hba.conf ÑазÑеÑиÑе вÑполнение ÑепликаÑии Ð´Ð»Ñ Ñоли
backup.УÑÑановиÑе Ð´Ð»Ñ Ð¿Ð°ÑамеÑÑа max_wal_senders доÑÑаÑоÑно болÑÑое знаÑение, пÑедÑÑмаÑÑиваÑÑее минимÑм одно подклÑÑение Ð´Ð»Ñ Ð¿ÑоÑеÑÑа ÑезеÑвного копиÑованиÑ.
ÐадайÑе Ð´Ð»Ñ Ð¿Ð°ÑамеÑÑа wal_level знаÑение вÑÑе
minimal.
ÐÑли Ð²Ñ Ð½Ð°Ð¼ÐµÑÐµÐ½Ñ Ð²ÑполнÑÑÑ ÑÑÑаниÑное ÑезеÑвное копиÑование в поÑоковом Ñежиме или воÑÑÑановление на Ð¼Ð¾Ð¼ÐµÐ½Ñ Ð²Ñемени Ñ Ð¿Ð¾ÑоковÑми копиÑми, вам Ñем не менее надо бÑÐ´ÐµÑ Ð½Ð°ÑÑÑоиÑÑ Ð°ÑÑ Ð¸Ð²Ð¸Ñование WAL, как опиÑано в подÑазделе ÐаÑÑÑойка непÑеÑÑвного аÑÑ Ð¸Ð²Ð¸ÑÐ¾Ð²Ð°Ð½Ð¸Ñ WAL.
ÐоÑле ÑÑÐ¸Ñ Ð¿Ð¾Ð´Ð³Ð¾ÑовиÑелÑнÑÑ Ð´ÐµÐ¹ÑÑвий Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе делаÑÑ ÑезеÑвнÑе копии в ÑÐµÐ¶Ð¸Ð¼Ð°Ñ FULL, PAGE, DELTA и PTRACK, иÑполÑзÑÑ Ð¿Ð¾ÑоковÑÑ Ð´Ð¾ÑÑÐ°Ð²ÐºÑ WAL.
ÐÑимеÑание
ÐÑли Ð²Ñ Ð½Ð°Ð¼ÐµÑÐµÐ½Ñ Ð¸ÑполÑзоваÑÑ .pgpass Ð´Ð»Ñ Ð¿ÑоÑ
Ð¾Ð¶Ð´ÐµÐ½Ð¸Ñ Ð°ÑÑенÑиÑикаÑии пÑи вÑполнении копиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð² поÑоковом Ñежиме, Ñайл .pgpass должен ÑодеÑжаÑÑ ÑÑÑÑнÑе даннÑе Ð´Ð»Ñ Ð¿Ð¾Ð´ÐºÐ»ÑÑÐµÐ½Ð¸Ñ Ðº базе даннÑÑ
replication. ÐапÑимеÑ: pghost:5432:replication:backup_user:my_strong_password
ÐаÑÑÑойка непÑеÑÑвного аÑÑ Ð¸Ð²Ð¸ÑÐ¾Ð²Ð°Ð½Ð¸Ñ WAL
ÐÐ»Ñ Ð²ÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ ÐºÐ¾Ð¿Ð¸ÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð² Ñежиме PAGE, воÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð½Ð° Ð¼Ð¾Ð¼ÐµÐ½Ñ Ð²Ñемени и ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ ÑезеÑвнÑÑ ÐºÐ¾Ð¿Ð¸Ð¹ Ñ Ð¸ÑполÑзованием Ñежима доÑÑавки WAL ARCHIVE должно оÑÑÑеÑÑвлÑÑÑÑÑ Ð½ÐµÐ¿ÑеÑÑвное аÑÑ Ð¸Ð²Ð¸Ñование WAL. ЧÑÐ¾Ð±Ñ Ð½Ð°ÑÑÑоиÑÑ Ð½ÐµÐ¿ÑеÑÑвное аÑÑ Ð¸Ð²Ð¸Ñование, вÑполниÑе ÑледÑÑÑие дейÑÑвиÑ:
ÐадайÑе Ð´Ð»Ñ Ð¿Ð°ÑамеÑÑа wal_level знаÑение вÑÑе
minimal.ÐÑли Ð²Ñ Ð½Ð°ÑÑÑаиваеÑе ÑезеÑвное копиÑование на ведÑÑем ÑеÑвеÑе, паÑамеÑÑ archive_mode должен имеÑÑ Ð·Ð½Ð°Ñение
onилиalways. ÐÐ»Ñ Ð²ÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ ÑезеÑвного копиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð½Ð° ведомом ÑÑебÑеÑÑÑ Ð·Ð½Ð°Ñениеalways.УÑÑановиÑе паÑамеÑÑ archive_command:
archive_command = '"
пÑÑÑ_инÑÑаллÑÑии/pg_probackup" archive-push -B "каÑалог_копий" --instanceимÑ_ÑкземплÑÑа--wal-file-name=%f [паÑамеÑÑÑ_ÑдалÑнного_Ñежима]'
ÐдеÑÑ Ð¿ÑÑÑ_инÑÑаллÑÑии â пÑÑÑ Ðº каÑÐ°Ð»Ð¾Ð³Ñ ÑÑÑановленной веÑÑии pg_probackup, коÑоÑÑÑ Ð²Ñ Ñ
оÑиÑе иÑполÑзоваÑÑ, каÑалог_копий и имÑ_ÑкземплÑÑа Ð´Ð¾Ð»Ð¶Ð½Ñ ÑказÑваÑÑ Ð½Ð° Ñже пÑоиниÑиализиÑованнÑй Ð´Ð»Ñ Ð´Ð°Ð½Ð½Ð¾Ð³Ð¾ клаÑÑеÑа ÐРкопиÑÑемÑй ÑкземплÑÑ, а паÑамеÑÑÑ_ÑдалÑнного_Ñежима Ð´Ð¾Ð»Ð¶Ð½Ñ Ð·Ð°Ð´Ð°Ð²Ð°ÑÑÑÑ ÑолÑко в ÑлÑÑае ÑаÑÐ¿Ð¾Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð°ÑÑ
ива WAL в ÑдалÑнной ÑиÑÑеме. ÐодÑобнее вÑе возможнÑе паÑамеÑÑÑ archive-push ÑаÑÑмаÑÑиваÑÑÑÑ Ð² опиÑании archive-push.
ÐоÑле ÑÑÐ¸Ñ Ð¿Ð¾Ð´Ð³Ð¾ÑовиÑелÑнÑÑ Ð´ÐµÐ¹ÑÑвий Ð²Ñ ÑможеÑе иÑполÑзоваÑÑ Ñежим доÑÑавки WAL ARCHIVE и делаÑÑ ÑезеÑвнÑе копии в Ñежиме PAGE, а Ñакже вÑполнÑÑÑ Ð²Ð¾ÑÑÑановление на Ð¼Ð¾Ð¼ÐµÐ½Ñ Ð²Ñемени.
ÐÑ Ð¼Ð¾Ð¶ÐµÑе пÑоÑмоÑÑеÑÑ ÑекÑÑее ÑоÑÑоÑние аÑÑ Ð¸Ð²Ð° WAL, воÑполÑзовавÑиÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¾Ð¹ show. Ðа подÑобноÑÑÑми обÑаÑиÑеÑÑ Ðº ÐодÑÐ°Ð·Ð´ÐµÐ»Ñ Â«ÐÑоÑмоÑÑ Ð¾Ð³Ð»Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð°ÑÑ Ð¸Ð²Ð° WAL».
ÐÑли Ð²Ñ Ð¿Ð»Ð°Ð½Ð¸ÑÑеÑе вÑполнÑÑÑ ÑÑÑаниÑное копиÑование и/или делаÑÑ ÐºÐ¾Ð¿Ð¸Ð¸ Ñ Ð²ÐµÐ´Ð¾Ð¼Ð¾Ð³Ð¾ ÑеÑвеÑа, иÑполÑзÑÑ Ñежим доÑÑавки WAL ARCHIVE, пÑи недоÑÑаÑоÑной ÑÑанзакÑионной акÑивноÑÑи Ð¼Ð¾Ð¶ÐµÑ Ð¿Ð¾ÑÑебоваÑÑÑÑ Ð´Ð¾Ð»Ð³Ð¾ ждаÑÑ Ð·Ð°Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð¾ÑеÑедного ÑегменÑа WAL. ЧÑÐ¾Ð±Ñ Ð¾Ð³ÑаниÑиÑÑ Ð²ÑÐµÐ¼Ñ Ð¾Ð¶Ð¸Ð´Ð°Ð½Ð¸Ñ, Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе воÑполÑзоваÑÑÑÑ Ð¿Ð°ÑамеÑÑом Postgres Pro archive_timeout на ведÑÑем ÑеÑвеÑе. ÐнаÑение ÑÑого паÑамеÑÑа должно бÑÑÑ Ð¼ÐµÐ½ÑÑе знаÑÐµÐ½Ð¸Ñ --archive-timeout (по ÑмолÑÐ°Ð½Ð¸Ñ 5 минÑÑ), ÑÑÐ¾Ð±Ñ Ð·Ð°Ð¿Ð¾Ð»Ð½ÐµÐ½Ð½Ñй ÑÐµÐ³Ð¼ÐµÐ½Ñ ÑÑпел пеÑедаÑÑÑÑ Ð²ÐµÐ´Ð¾Ð¼Ð¾Ð¼Ñ ÑеÑвеÑÑ Ð¸ попаÑÑÑ Ð² аÑÑ
ив WAL, пÑежде Ñем копиÑование пÑеÑвÑÑÑÑ Ð¿Ð¾ Ñайм-аÑÑÑ, Ð·Ð°Ð´Ð°Ð½Ð½Ð¾Ð¼Ñ Ð¿Ð°ÑамеÑÑом --archive-timeout.
ÐÑимеÑание
ÐмеÑÑо иÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ pg_probackup archive-push Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе воÑполÑзоваÑÑÑÑ Ð»ÑбÑм дÑÑгим ÑÑедÑÑвом, пÑи ÑÑловии, ÑÑо в пÑоÑеÑÑе непÑеÑÑвного аÑÑ
ивиÑÐ¾Ð²Ð°Ð½Ð¸Ñ ÑегменÑÑ WAL бÑдÑÑ Ð¿Ð¾Ð¿Ð°Ð´Ð°ÑÑ Ð² каÑалог . ÐÐ»Ñ ÑжаÑÐ¸Ñ ÑегменÑов, еÑли в нÑм еÑÑÑ Ð¿Ð¾ÑÑебноÑÑÑ, должен иÑполÑзоваÑÑÑÑ Ð°Ð»Ð³Ð¾ÑиÑм каÑалог_копий/wal/имÑ_ÑкземплÑÑаgzip, а ÑжаÑÑе ÑÐ°Ð¹Ð»Ñ ÑегменÑов Ð´Ð¾Ð»Ð¶Ð½Ñ Ð¸Ð¼ÐµÑÑ ÑаÑÑиÑение .gz.
ÐÑимеÑание
ÐÑганизоваÑÑ Ð½ÐµÐ¿ÑеÑÑвное аÑÑ
ивиÑование можно не ÑолÑко Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ Ð¿Ð°ÑамеÑÑов archive_mode и archive_command, но и пÑименÑÑ ÑÑилиÑÑ pg_receivewal. Ð ÑÑом ÑлÑÑае аÑгÑÐ¼ÐµÐ½Ñ pg_receivewal -D должен ÑказÑваÑÑ Ð½Ð° каÑалог каÑалог. ÐÑогÑамма pg_probackup пÑÐ¸Ð½Ð¸Ð¼Ð°ÐµÑ ÑжаÑÑе WAL, коÑоÑÑе Ð¼Ð¾Ð¶ÐµÑ ÑоÑ
ÑанÑÑÑ pg_receivewal. СÑÑаÑÐµÐ³Ð¸Ñ Ð°ÑÑ
ивиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Â«Ð±ÐµÐ· поÑеÑÑ» можно ÑеализоваÑÑ ÑолÑко Ñ Ð¸ÑполÑзованием pg_receivewal.каÑалог_копий/wal/имÑ_ÑкземплÑÑа
ÐаÑÑÑойка копиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ñ Ð²ÐµÐ´Ð¾Ð¼Ð¾Ð³Ð¾ ÑеÑвеÑа
УÑилиÑа pg_probackup Ð¼Ð¾Ð¶ÐµÑ ÐºÐ¾Ð¿Ð¸ÑоваÑÑ Ð´Ð°Ð½Ð½Ñе Ñ Ð²ÐµÐ´Ð¾Ð¼Ð¾Ð³Ð¾ ÑеÑвеÑа. ÐÐ»Ñ ÑÑого ÑÑебÑеÑÑÑ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸ÑелÑÐ½Ð°Ñ Ð½Ð°ÑÑÑойка:
УÑÑановиÑе на ведомом ÑеÑвеÑе Ð´Ð»Ñ Ð¿Ð°ÑамеÑÑа hot_standby знаÑение
on.Ðа ведÑÑем ÑеÑвеÑе ÑÑÑановиÑе Ð´Ð»Ñ Ð¿Ð°ÑамеÑÑа full_page_writes знаÑение
on.ÐÐ»Ñ Ð¿Ð¾Ð»ÑÑÐµÐ½Ð¸Ñ ÑамодоÑÑаÑоÑнÑÑ ÐºÐ¾Ð¿Ð¸Ð¹ Ñ Ð²ÐµÐ´Ð¾Ð¼Ð¾Ð³Ð¾ ÑеÑвеÑа вÑполниÑе дейÑÑвиÑ, опиÑаннÑе в подÑазделе ÐаÑÑÑойка поÑокового копиÑованиÑ.
ÐÐ»Ñ Ð¿Ð¾Ð»ÑÑÐµÐ½Ð¸Ñ Ð°ÑÑ Ð¸Ð²Ð½ÑÑ ÐºÐ¾Ð¿Ð¸Ð¹ Ñ Ð²ÐµÐ´Ð¾Ð¼Ð¾Ð³Ð¾ ÑеÑвеÑа вÑполниÑе дейÑÑвиÑ, опиÑаннÑе в подÑазделе ÐаÑÑÑойка непÑеÑÑвного аÑÑ Ð¸Ð²Ð¸ÑÐ¾Ð²Ð°Ð½Ð¸Ñ WAL.
ÐоÑле ÑÑÐ¸Ñ Ð¿Ð¾Ð´Ð³Ð¾ÑовиÑелÑнÑÑ Ð´ÐµÐ¹ÑÑвий Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе делаÑÑ ÑезеÑвнÑе копии Ñ Ð²ÐµÐ´Ð¾Ð¼Ð¾Ð³Ð¾ ÑеÑвеÑа в ÑÐµÐ¶Ð¸Ð¼Ð°Ñ FULL, PAGE, DELTA или PTRACK, иÑполÑзÑÑ Ñежим доÑÑавки WAL ARCHIVE или STREAM.
ÐопиÑование Ñ Ð²ÐµÐ´Ð¾Ð¼Ð¾Ð³Ð¾ ÑеÑвеÑа Ð¸Ð¼ÐµÐµÑ ÑледÑÑÑие огÑаниÑениÑ:
ÐÑли ведомÑй ÑеÑÐ²ÐµÑ Ð¿Ð¾Ð²ÑÑаеÑÑÑ Ð´Ð¾ ведÑÑего во вÑÐµÐ¼Ñ ÐºÐ¾Ð¿Ð¸ÑованиÑ, копиÑование пÑеÑÑваеÑÑÑ Ñ Ð¾Ñибкой.
ÐÑе Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ñе Ð´Ð»Ñ ÑезеÑвной копии запиÑи WAL Ð´Ð¾Ð»Ð¶Ð½Ñ ÑодеÑжаÑÑ Ð¿Ð¾Ð»Ð½Ñе ÑÑÑаниÑÑ. ÐÐ»Ñ ÑÑого ÑÑебÑеÑÑÑ Ð²ÐºÐ»ÑÑиÑÑ Ñежим
full_page_writesна ведÑÑем ÑеÑвеÑе и оÑказаÑÑÑÑ Ð¾Ñ Ð¸ÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð² archive_command ÑÑилиÑ, ÑдалÑÑÑÐ¸Ñ Ð¿Ð¾Ð»Ð½Ñе ÑÑÑаниÑÑ Ð¸Ð· Ñайлов WAL, как, напÑимеÑ, pg_compresslog.
ÐаÑÑÑойка пÑовеÑки ÑелоÑÑноÑÑи клаÑÑеÑа
ÐÐ»Ñ Ð»Ð¾Ð³Ð¸ÑеÑкой пÑовеÑки клаÑÑеÑа ÐÐ ÑÑебÑеÑÑÑ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸ÑелÑÐ½Ð°Ñ Ð½Ð°ÑÑÑойка (пÑедполагаеÑÑÑ, ÑÑо наÑÑÑойка пÑоизводиÑÑÑ Ð´Ð»Ñ Ñоли backup):
УÑÑановиÑе ÑаÑÑиÑение amcheck или amcheck_next в каждой базе клаÑÑеÑа:
CREATE EXTENSION amcheck;
ÐайÑе Ñоли
backupв каждой базе даннÑÑ ÐºÐ»Ð°ÑÑеÑа ÑледÑÑÑие пÑава:
GRANT SELECT ON TABLE pg_catalog.pg_am TO backup; GRANT SELECT ON TABLE pg_catalog.pg_class TO backup; GRANT SELECT ON TABLE pg_catalog.pg_database TO backup; GRANT SELECT ON TABLE pg_catalog.pg_namespace TO backup; GRANT SELECT ON TABLE pg_catalog.pg_extension TO backup; GRANT EXECUTE ON FUNCTION bt_index_check(regclass) TO backup; GRANT EXECUTE ON FUNCTION bt_index_check(regclass, bool) TO backup; GRANT EXECUTE ON FUNCTION bt_index_check(regclass, bool, bool) TO backup;
ÐаÑÑÑойка ÑаÑÑиÑного воÑÑÑановлениÑ
ÐÑли Ð²Ñ Ð¿Ð»Ð°Ð½Ð¸ÑÑеÑе пÑоизводиÑÑ ÑаÑÑиÑное воÑÑÑановление, вÑполниÑе ÑледÑÑÑее дополниÑелÑное дейÑÑвие:
ÐайÑе пÑаво на ÑÑение
pg_catalog.pg_databaseÑолиbackupв Ñой базе даннÑÑ , ÑеÑез коÑоÑÑÑ Ð²ÑполнÑеÑÑÑ Ð¿Ð¾Ð´ÐºÐ»ÑÑение к ÑеÑвеÑÑ Postgres Pro:GRANT SELECT ON TABLE pg_catalog.pg_database TO backup;
ÐаÑÑÑойка ÑдалÑнного Ñежима
ÐÑогÑамма pg_probackup поддеÑÐ¶Ð¸Ð²Ð°ÐµÑ ÑдалÑннÑй Ñежим, в коÑоÑом ÑезеÑвное копиÑование, воÑÑÑановление и аÑÑ Ð¸Ð²Ð¸Ñование WAL могÑÑ Ð²ÑполнÑÑÑÑÑ ÑдалÑнно. Ð ÑÑом Ñежиме каÑалог ÑезеÑвнÑÑ ÐºÐ¾Ð¿Ð¸Ð¹ Ð½Ð°Ñ Ð¾Ð´Ð¸ÑÑÑ Ð² локалÑной ÑиÑÑеме, а Ñелевой ÑкземплÑÑ Postgres Pro ÑабоÑÐ°ÐµÑ Ð½Ð° ÑдалÑнном компÑÑÑеÑе. РнаÑÑоÑÑее вÑÐµÐ¼Ñ ÑÑо поддеÑживаеÑÑÑ Ñ Ð¸ÑполÑзованием ÑолÑко одного ÑеÑевого пÑоÑокола â SSH.
ÐаÑÑÑойÑе SSH
ÐÑли Ð²Ñ Ñ Ð¾ÑиÑе иÑполÑзоваÑÑ pg_probackup в ÑдалÑнном Ñежиме (пÑименÑÑ SSH), вÑполниÑе ÑледÑÑÑие дейÑÑвиÑ:
УÑÑановиÑе pg_probackup в Ð¾Ð±ÐµÐ¸Ñ ÑиÑÑÐµÐ¼Ð°Ñ :
backup_host(ÑеÑÐ²ÐµÑ ÑезеÑвного копиÑованиÑ) иdb_host(ÑеÑÐ²ÐµÑ Ð±Ð°Ð· даннÑÑ ).ÐÐ»Ñ Ð¾ÑганизаÑии ÑвÑзи Ð¼ÐµÐ¶Ð´Ñ Ñзлами наÑÑÑойÑе подклÑÑение по SSH полÑзоваÑелÑ
backupв ÑиÑÑемеbackup_hostк ÑиÑÑемеdb_hostпод именем полÑзоваÑелÑpostgresбез ÑÐºÐ°Ð·Ð°Ð½Ð¸Ñ Ð¿Ð°ÑолÑ:[backup@backup_host] ssh-copy-id postgres@db_host
ÐÑли Ð²Ñ Ð±ÑдеÑе иÑполÑзоваÑÑ Ð½ÐµÐ¿ÑеÑÑвное аÑÑ Ð¸Ð²Ð¸Ñование WAL, наÑÑÑойÑе подклÑÑение по SSH полÑзоваÑелÑ
postgresв ÑиÑÑемеdb_hostк ÑиÑÑемеbackup_hostпод именем полÑзоваÑелÑbackupбез ÑÐºÐ°Ð·Ð°Ð½Ð¸Ñ Ð¿Ð°ÑолÑ:[postgres@db_host] ssh-copy-id backup@backup_host
ÐдеÑÑ:
backup_hostâ ÑиÑÑема, в коÑоÑой Ð½Ð°Ñ Ð¾Ð´Ð¸ÑÑÑ ÐºÐ°Ñалог копий.db_hostâ ÑиÑÑема, в коÑоÑой ÑÑнкÑиониÑÑÐµÑ ÐºÐ»Ð°ÑÑÐµÑ Postgres Pro.backupâ полÑзоваÑÐµÐ»Ñ Ð² ÑиÑÑемеbackup_host, Ð¾Ñ Ð¸Ð¼ÐµÐ½Ð¸ коÑоÑого запÑÑкаеÑÑÑ pg_probackup.postgresâ полÑзоваÑÐµÐ»Ñ Ð² ÑиÑÑемеdb_host, Ð¾Ñ Ð¸Ð¼ÐµÐ½Ð¸ коÑоÑого запÑÑкаеÑÑÑ ÐºÐ»Ð°ÑÑÐµÑ Postgres Pro. ÐÐ»Ñ Postgres Pro веÑÑии 11 и новее можно пÑимениÑÑ Ð±Ð¾Ð»ÐµÐµ безопаÑнÑй Ð¿Ð¾Ð´Ñ Ð¾Ð´, воÑполÑзовавÑиÑÑ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾ÑÑÑÑ Ð¿ÑедоÑÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ð´Ð¾ÑÑÑпа гÑÑппе.
pg_probackup ÑабоÑÐ°ÐµÑ Ð² ÑдалÑнном Ñежиме по пÑоÑÐ¾ÐºÐ¾Ð»Ñ SSH ÑледÑÑÑим обÑазом:
Ð ÑдалÑнном Ñежиме поддеÑживаÑÑÑÑ ÑолÑко ÑледÑÑÑие командÑ: add-instance, backup, restore, catchup, archive-push и archive-get.
ÐÐ»Ñ ÑабоÑÑ Ð² ÑдалÑнном Ñежиме Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾, ÑÑÐ¾Ð±Ñ Ð¿ÑогÑамма pg_probackup бÑла ÑÑÑановлена и в локалÑной, и в ÑдалÑнной ÑиÑÑеме, пÑи ÑÑом одной и Ñой же веÑÑии.
ÐÑи запÑÑке в ÑдалÑнном Ñежиме оÑновной пÑоÑеÑÑ pg_probackup в локалÑной ÑиÑÑеме подклÑÑаеÑÑÑ Ðº ÑдалÑнной по пÑоÑÐ¾ÐºÐ¾Ð»Ñ SSH и запÑÑÐºÐ°ÐµÑ Ð² ÑдалÑнной ÑиÑÑеме один или неÑколÑко агенÑов, коÑоÑÑе назÑваÑÑÑÑ ÑдалÑннÑми агенÑами. ÐолиÑеÑÑво ÑдалÑннÑÑ Ð°Ð³ÐµÐ½Ñов опÑеделÑеÑÑÑ Ð·Ð½Ð°Ñением паÑамеÑÑа
-j/--threads.ÐÑновной пÑоÑеÑÑ pg_probackup иÑполÑзÑÐµÑ ÑдалÑннÑе агенÑÑ Ð´Ð»Ñ Ð¿ÐµÑедаÑи даннÑÑ Ð¼ÐµÐ¶Ð´Ñ Ð»Ð¾ÐºÐ°Ð»Ñной и ÑдалÑнной ÑиÑÑемой и Ð´Ð»Ñ Ð¾Ð±ÑаÑÐµÐ½Ð¸Ñ Ðº ÐµÑ Ñайлам.
УдалÑннÑе агенÑÑ ÑÑаÑаÑÑÑÑ Ð¼Ð¸Ð½Ð¸Ð¼Ð¸Ð·Ð¸ÑоваÑÑ ÑеÑевой ÑÑаÑик и колиÑеÑÑво опеÑаÑий взаимодейÑÑÐ²Ð¸Ñ Ñзлов.
ÐÑновной пÑоÑеÑÑ Ð¾Ð±ÑÑно запÑÑкаеÑÑÑ Ð² ÑиÑÑеме
backup_hostи подклÑÑаеÑÑÑ Ðº ÑиÑÑемеdb_host, но в ÑлÑÑае командarchive-pushиarchive-getоÑновной пÑоÑеÑÑ Ð·Ð°Ð¿ÑÑкаеÑÑÑ Ð² ÑиÑÑемеdb_hostи подклÑÑаеÑÑÑ Ðºbackup_host.ÐоÑле завеÑÑÐµÐ½Ð¸Ñ Ð¿ÐµÑедаÑи даннÑÑ ÑдалÑннÑе агенÑÑ Ð·Ð°Ð²ÐµÑÑаÑÑÑÑ Ð¸ подклÑÑÐµÐ½Ð¸Ñ SSH закÑÑваÑÑÑÑ.
ÐÑли какой-либо ÑдалÑннÑй Ð°Ð³ÐµÐ½Ñ ÑÑолкнÑлÑÑ Ñ Ð¾Ñибкой, вÑе агенÑÑ Ð·Ð°Ð²ÐµÑÑаÑÑÑÑ, а оÑновной пÑоÑеÑÑ pg_probackup вÑдаÑÑ Ð¸Ð½ÑоÑмаÑÐ¸Ñ Ð¾ возникÑей оÑибке и Ñакже неÑÑаÑно завеÑÑаеÑÑÑ.
СжаÑие даннÑÑ Ð²Ñегда оÑÑÑеÑÑвлÑеÑÑÑ Ð² ÑиÑÑеме
db_host, а ÑаÑпаковка â в ÑиÑÑемеbackup_host.
ÐÑимеÑание
ÐÑ Ð¼Ð¾Ð¶ÐµÑе задаÑÑ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸ÑелÑнÑе огÑаниÑиÑелÑнÑе паÑамеÑÑÑ SSH Ð´Ð»Ñ Ð·Ð°ÑиÑÑ Ñелевой ÑиÑÑÐµÐ¼Ñ Ð² ÑлÑÑае компÑомеÑаÑии иÑполÑзÑемой ÑÑÑÑной запиÑи.
ÐÑимеÑание
ÐÑли Ð´Ð»Ñ pg_probackup, ÑабоÑаÑÑего в ÑдалÑнном Ñежиме ÑеÑез SSH, задаÑÑ ÑиÑло поÑоков болÑÑе 10 (паÑамеÑÑ -j/--threads), Ñо ÑакÑиÑеÑкое ÑиÑло SSH-Ñоединений Ð¼Ð¾Ð¶ÐµÑ Ð¿ÑевÑÑиÑÑ Ð¼Ð°ÐºÑималÑно допÑÑÑимое ÑиÑло одновÑеменнÑÑ
SSH-Ñоединений на ÑдалÑнном ÑеÑвеÑе и, ÑледоваÑелÑно, пÑиведÑÑ Ðº оÑибке «ERROR: Agent error: kex_exchange_identification: Connection closed by remote host» (ÐШÐÐÐÐ: ÐÑибка агенÑа: kex_exchange_identification: Соединение закÑÑÑо ÑдалÑннÑм ÑеÑвеÑом). ЧÑÐ¾Ð±Ñ Ð¸ÑпÑавиÑÑ Ð¾ÑибкÑ, либо ÑменÑÑиÑе колиÑеÑÑво поÑоков pg_probackup, либо измениÑе знаÑение паÑамеÑÑа конÑигÑÑаÑии MaxStartups ÑдалÑнного SSH-ÑеÑвеÑа. ÐÑли SSH наÑÑÑоен как ÑлÑжба xinetd на ÑдалÑнном ÑеÑвеÑе, измениÑе знаÑение паÑамеÑÑа конÑигÑÑаÑии xinetd per_source, а не MaxStartups.
ÐаÑÑÑойка копиÑÐ¾Ð²Ð°Ð½Ð¸Ñ PTRACK
ÐÑимеÑание
ÐеÑÑии PTRACK ниже 2.0 пÑÐ¸Ð·Ð½Ð°Ð½Ñ ÑÑÑаÑевÑими и не поддеÑживаÑÑÑÑ. Ð Postgres Pro Standard и Postgres Pro Enterprise веÑÑии 11.9.1 и новее Ð²Ñ Ð¾Ð´Ð¸Ñ Ð¾Ð±Ð½Ð¾Ð²Ð»ÑннÑй PTRACK 2.0. ÐбновиÑе Ð²Ð°Ñ ÑеÑвеÑ, ÑÑÐ¾Ð±Ñ Ð¸Ð·Ð±ÐµÐ¶Ð°ÑÑ Ð¿Ñоблем Ñ ÑезеÑвнÑми копиÑми, коÑоÑÑе Ð²Ñ Ð±ÑдеÑе делаÑÑ Ð² далÑнейÑем, и обÑзаÑелÑно ÑделайÑе копии ваÑÐ¸Ñ ÐºÐ»Ð°ÑÑеÑов Ñ Ð¾Ð±Ð½Ð¾Ð²Ð»ÑннÑм PTRACK, Ñак как копии, полÑÑеннÑе Ñ Ð¸ÑполÑзованием PTRACK 1.x, могÑÑ Ð±ÑÑÑ Ð¸ÑпоÑÑеннÑми.
ÐÑли Ð²Ñ Ð½Ð°Ð¼ÐµÑÐµÐ½Ñ Ð¸ÑполÑзоваÑÑ Ñежим копиÑÐ¾Ð²Ð°Ð½Ð¸Ñ PTRACK, вÑполниÑе опиÑаннÑе далее дополниÑелÑнÑе дейÑÑвиÑ. РолÑ, Ð¾Ñ Ð¸Ð¼ÐµÐ½Ð¸ коÑоÑой бÑÐ´ÐµÑ Ð²ÑполнÑÑÑÑÑ ÐºÐ¾Ð¿Ð¸Ñование PTRACK (в пÑимеÑаÑ
ниже ÑÑо ÑÐ¾Ð»Ñ backup), должна имеÑÑ Ð´Ð¾ÑÑÑп ко вÑем базам даннÑÑ
в клаÑÑеÑе.
ÐÐ»Ñ Postgres Pro веÑÑии 11 или новее:
СоздайÑе ÑаÑÑиÑение PTRACK:
CREATE EXTENSION ptrack;
ЧÑÐ¾Ð±Ñ Ð²ÐºÐ»ÑÑиÑÑ Ð¾ÑÑлеживание изменений ÑÑÑаниÑ, задайÑе Ð´Ð»Ñ Ð¿Ð°ÑамеÑÑа
ptrack.map_sizeположиÑелÑное Ñелое знаÑение и пеÑезапÑÑÑиÑе ÑеÑвеÑ.ÐÐ»Ñ Ð¾Ð¿ÑималÑной пÑоизводиÑелÑноÑÑи ÑекомендÑеÑÑÑ Ð·Ð°Ð´Ð°Ð²Ð°ÑÑ
ptrack.map_sizeÑавнÑм, гдеN/ 1024Nâ обÑÑм клаÑÑеÑа Postgres Pro в мегабайÑÐ°Ñ . ÐÑли он бÑÐ´ÐµÑ Ð¸Ð¼ÐµÑÑ Ð¼ÐµÐ½ÑÑее знаÑение, ÑÑо ÑвелиÑÐ¸Ñ Ð²ÐµÑоÑÑноÑÑÑ Ð½Ð°Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð¸Ð½ÑоÑмаÑии ÑазнÑÑ Ð±Ð»Ð¾ÐºÐ¾Ð² в каÑÑе PTRACK, ÑÑо повлеÑÑÑ Ð»Ð¾Ð¶Ð½Ñе положиÑелÑнÑе ÑезÑлÑÑаÑÑ Ð¿Ñи опÑеделении изменÑннÑÑ Ð±Ð»Ð¾ÐºÐ¾Ð² и, как ÑледÑÑвие, ÑвелиÑение ÑазмеÑа инкÑеменÑалÑной копии, Ñак как в ÐºÐ¾Ð¿Ð¸Ñ Ð±ÑдÑÑ Ð¿Ð¾Ð¿Ð°Ð´Ð°ÑÑ Ð¸ ÑакÑиÑеÑки неизменÑннÑе блоки. ÐÑполÑзоваÑÑ Ð·Ð½Ð°ÑениÑptrack.map_size, пÑевÑÑаÑÑие 1024, не ÑекомендÑеÑÑÑ, Ñ Ð¾ÑÑ PTRACK поддеÑÐ¶Ð¸Ð²Ð°ÐµÑ Ð±Ð¾Ð»ÑÑие каÑÑÑ.
ÐÑимеÑание
Ð ÑлÑÑае Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð·Ð½Ð°ÑÐµÐ½Ð¸Ñ ptrack.map_size Ñанее ÑозданнÑй Ñайл каÑÑÑ PTRACK оÑиÑаеÑÑÑ, и оÑÑлеживание новÑÑ
блоков наÑинаеÑÑÑ Ñ Ð½Ð°Ñала. Таким обÑазом, пÑежде Ñем ÑоздаваÑÑ Ð½Ð¾Ð²Ñе инкÑеменÑалÑнÑе копии в Ñежиме PTRACK поÑле Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ ptrack.map_size необÑ
одимо ÑделаÑÑ Ð½Ð¾Ð²ÑÑ Ð¿Ð¾Ð»Ð½ÑÑ ÐºÐ¾Ð¿Ð¸Ñ ÐºÐ»Ð°ÑÑеÑа.
ÐÑполÑзование
Создание ÑезеÑвной копии
ÐÐ»Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ ÑезеÑвной копии вÑполниÑе ÑледÑÑÑÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ:
pg_probackup backup -BкаÑалог_копий--instanceимÑ_ÑкземплÑÑа-bÑежим_копиÑованиÑ
ÐдеÑÑ Ñежим_копиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð¼Ð¾Ð¶ÐµÑ Ð¿ÑинимаÑÑ ÑледÑÑÑие знаÑениÑ: FULL, DELTA, PAGE, и PTRACK.
ÐÑи воÑÑÑановлении клаÑÑеÑа из инкÑеменÑалÑной копии pg_probackup иÑполÑзÑÐµÑ ÑодиÑелÑÑкÑÑ Ð¿Ð¾Ð»Ð½ÑÑ ÐºÐ¾Ð¿Ð¸Ñ Ð¸ вÑе инкÑеменÑалÑнÑе копии Ð¼ÐµÐ¶Ð´Ñ Ð½Ð¸Ð¼Ð¸, коÑоÑÑе в ÑовокÑпноÑÑи обÑазÑÑÑ Â«ÑепоÑÐºÑ ÐºÐ¾Ð¿Ð¸Ð¹Â». Таким обÑазом, пÑежде Ñем делаÑÑ Ð¸Ð½ÐºÑеменÑалÑнÑе копии, Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾ ÑделаÑÑ ÐºÐ°Ðº минимÑм Ð¾Ð´Ð½Ñ Ð¿Ð¾Ð»Ð½ÑÑ.
Режим ARCHIVE
Режим ARCHIVE иÑполÑзÑеÑÑÑ Ð² каÑеÑÑве Ñежима доÑÑавки WAL по ÑмолÑаниÑ.
ÐапÑимеÑ, ÑÑÐ¾Ð±Ñ ÑделаÑÑ Ð¿Ð¾Ð»Ð½ÑÑ ÐºÐ¾Ð¿Ð¸Ñ Ð² Ñежиме доÑÑавки WAL ARCHIVE, вÑполниÑе:
pg_probackup backup -BкаÑалог_копий--instanceимÑ_ÑкземплÑÑа-b FULL
РезеÑвное копиÑование ARCHIVE ÑÑебÑÐµÑ Ð¾ÑганизаÑии непÑеÑÑвного аÑÑ Ð¸Ð²Ð¸ÑованиÑ, поÑÑедÑÑвом коÑоÑого ÑÑиÑÑваÑÑÑÑ ÑегменÑÑ WAL, ÑÑебÑÑÑиеÑÑ Ð´Ð»Ñ Ð²Ð¾ÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ ÑоглаÑованного ÑоÑÑоÑÐ½Ð¸Ñ ÐºÐ»Ð°ÑÑеÑа на Ð¼Ð¾Ð¼ÐµÐ½Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ ÐºÐ¾Ð¿Ð¸Ð¸.
РпÑоÑеÑÑе ÑезеÑвного копиÑÐ¾Ð²Ð°Ð½Ð¸Ñ pg_probackup помеÑÐ°ÐµÑ ÑÐ°Ð¹Ð»Ñ WAL, ÑодеÑжаÑие запиÑи Ð¾Ñ Start LSN до Stop LSN, в каÑалог . pg_probackup Ñакже пÑовеÑÑеÑ, ÑÑо запиÑи WAL Ð¼ÐµÐ¶Ð´Ñ ÐºÐ°Ñалог_копий/wal/имÑ_ÑкземплÑÑаStart LSN и Stop LSN коÑÑекÑно ÑиÑаÑÑÑÑ. ÐÑо позволÑÐµÑ Ð¸ÑклÑÑиÑÑ ÑиÑк Ñ
ÑÐ°Ð½ÐµÐ½Ð¸Ñ Ð² аÑÑ
иве повÑеждÑнного WAL.
Режим STREAM
Режим STREAM Ð¼Ð¾Ð¶ÐµÑ Ð¸ÑполÑзоваÑÑÑÑ Ð² каÑеÑÑве алÑÑеÑнаÑивного Ñежима доÑÑавки WAL.
ÐапÑимеÑ, ÑÑÐ¾Ð±Ñ ÑделаÑÑ Ð¿Ð¾Ð»Ð½ÑÑ ÑезеÑвнÑÑ ÐºÐ¾Ð¿Ð¸Ñ Ð² поÑоковом Ñежиме, добавÑÑе Ñлаг --stream к команде, показанной вÑÑе:
pg_probackup backup -BкаÑалог_копий--instanceимÑ_ÑкземплÑÑа-b FULL --stream --temp-slot
ÐеобÑзаÑелÑнÑй паÑамеÑÑ --temp-slot обеÑпеÑÐ¸Ð²Ð°ÐµÑ Ð½Ð°Ð»Ð¸Ñие необÑ
одимÑÑ
ÑегменÑов в ÑлÑÑае пÑокÑÑÑки WAL до завеÑÑÐµÐ½Ð¸Ñ ÑезеÑвного копиÑованиÑ.
РоÑлиÑие Ð¾Ñ ÐºÐ¾Ð¿Ð¸Ð¹ ARCHIVE, копии Ñипа STREAM вклÑÑаÑÑ Ð²Ñе ÑегменÑÑ WAL, Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ñе Ð´Ð»Ñ Ð²Ð¾ÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ ÑоглаÑованного ÑоÑÑоÑÐ½Ð¸Ñ ÐºÐ»Ð°ÑÑеÑа на Ð¼Ð¾Ð¼ÐµÐ½Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ ÐºÐ¾Ð¿Ð¸Ð¸.
РпÑоÑеÑÑе вÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ backup пÑогÑамма pg_probackup пеÑедаÑÑ ÑÐ°Ð¹Ð»Ñ WAL, ÑодеÑжаÑие запиÑи Ð¾Ñ Start LSN до Stop LSN в каÑалог . ЧÑÐ¾Ð±Ñ Ð¸ÑклÑÑиÑÑ ÑиÑк аÑÑ
ивиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð¸ÑпоÑÑеннÑÑ
Ñайлов WAL, pg_probackup Ñакже пÑовеÑÑеÑ, ÑÑо запиÑи WAL Ð¾Ñ ÐºÐ°Ñалог_копий/backups/имÑ_ÑкземплÑÑа/ид_ÑезеÑвной_копии/database/pg_walStart LSN до Stop LSN пÑоÑиÑÑваÑÑÑÑ ÐºÐ¾ÑÑекÑно.
Ðаже еÑли Ð²Ñ Ð¸ÑполÑзÑеÑе непÑеÑÑвное аÑÑ Ð¸Ð²Ð¸Ñование, копиÑование в Ñежиме STREAM Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¿Ð¾Ð»ÐµÐ·Ð½Ð¾ в ÑледÑÑÑÐ¸Ñ ÑлÑÑаÑÑ :
Ðопии Ñипа STREAM могÑÑ Ð±ÑÑÑ Ð²Ð¾ÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ñ Ð½Ð° ÑеÑвеÑе, не имеÑÑем Ñайлового доÑÑÑпа к аÑÑ Ð¸Ð²Ñ WAL.
Ðопии Ñипа STREAM позволÑÑÑ Ð²Ð¾ÑÑÑановиÑÑ ÑоÑÑоÑние клаÑÑеÑа на ÑÐ¾Ñ Ð¼Ð¾Ð¼ÐµÐ½Ñ Ð²Ñемени, Ð´Ð»Ñ ÐºÐ¾ÑоÑого Ñже Ð½ÐµÑ Ñайлов WAL.
ÐопиÑование в Ñежиме STREAM можно пÑоизводиÑÑ Ñ Ð²ÐµÐ´Ð¾Ð¼Ð¾Ð³Ð¾ ÑеÑвеÑа, не дожидаÑÑÑ Ð·Ð°Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ ÑегменÑов WAL, ÑÑо могло Ð±Ñ Ð·Ð°Ð½ÑÑÑ Ð´Ð»Ð¸ÑелÑное вÑÐµÐ¼Ñ Ð¿Ñи неболÑÑом обÑÑме ÑÑаÑика WAL.
ÐÑовеÑка ÑÑÑаниÑ
Ðогда в клаÑÑеÑе ÐРвклÑÑÐµÐ½Ñ ÐºÐ¾Ð½ÑÑолÑнÑе ÑÑммÑ, pg_probackup иÑполÑзÑÐµÑ Ð¸Ñ Ð´Ð»Ñ Ð¿ÑовеÑки ÑелоÑÑноÑÑи Ñайлов даннÑÑ Ð² пÑоÑеÑÑе ÑезеÑвного копиÑованиÑ. ÐÑи ÑÑении каждой ÑÑÑаниÑÑ pg_probackup пÑовеÑÑеÑ, ÑÐ¾Ð²Ð¿Ð°Ð´Ð°ÐµÑ Ð»Ð¸ вÑÑиÑÐ»ÐµÐ½Ð½Ð°Ñ ÑÑмма Ñ ÐºÐ¾Ð½ÑÑолÑной ÑÑммой, Ñ ÑанÑÑейÑÑ Ð² заголовке ÑÑÑаниÑÑ. ÐÑо гаÑанÑиÑÑеÑ, ÑÑо в клаÑÑеÑе Postgres Pro и Ñамой ÑезеÑвной копии не ÑодеÑжаÑÑÑ Ð¸ÑпоÑÑеннÑе ÑÑÑаниÑÑ. ÐамеÑÑÑе, ÑÑо pg_probackup ÑиÑÐ°ÐµÑ ÑÐ°Ð¹Ð»Ñ Ð´Ð°Ð½Ð½ÑÑ Ð½ÐµÐ¿Ð¾ÑÑедÑÑвенно из Ñайловой ÑиÑÑемÑ, поÑÑÐ¾Ð¼Ñ Ð¿Ñи акÑивной запиÑи в Ð¼Ð¾Ð¼ÐµÐ½Ñ ÐºÐ¾Ð¿Ð¸ÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ñ Ð»Ð¾Ð¶Ð½Ñе вÑÑÐ²Ð»ÐµÐ½Ð¸Ñ Ð½ÐµÐºÐ¾ÑÑекÑнÑÑ ÐºÐ¾Ð½ÑÑолÑнÑÑ ÑÑмм из-за ÑаÑÑиÑной запиÑи. Ð ÑлÑÑае неÑÐ¾Ð²Ð¿Ð°Ð´ÐµÐ½Ð¸Ñ ÐºÐ¾Ð½ÑÑолÑной ÑÑÐ¼Ð¼Ñ ÑÑÑаниÑа ÑÑиÑÑваеÑÑÑ Ð¿Ð¾Ð²ÑоÑно, и конÑÑолÑÐ½Ð°Ñ ÑÑмма пÑовеÑÑеÑÑÑ ÐµÑÑ Ñаз.
СÑÑаниÑа пÑизнаÑÑÑÑ Ð¸ÑпоÑÑенной, еÑли пÑовеÑка конÑÑолÑной ÑÑÐ¼Ð¼Ñ Ð½Ðµ пÑÐ¾Ñ Ð¾Ð´Ð¸Ñ Ð±Ð¾Ð»ÐµÐµ 300 Ñаз. Ð ÑÑом ÑлÑÑае ÑезеÑвное копиÑование пÑеÑÑваеÑÑÑ.
Ðаже еÑли конÑÑолÑнÑе ÑÑÐ¼Ð¼Ñ Ð½Ðµ вклÑÑенÑ, pg_probackup вÑегда пÑовеÑÑÐµÑ ÑелоÑÑноÑÑÑ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÐ¾Ð² ÑÑÑаниÑ.
ÐнеÑние каÑалоги
ЧÑÐ¾Ð±Ñ Ð·Ð°Ð°ÑÑ
ивиÑоваÑÑ ÐºÐ°Ñалог, ÑазмеÑÑннÑй вне каÑалога даннÑÑ
, воÑполÑзÑйÑеÑÑ Ð½ÐµÐ¾Ð±ÑзаÑелÑнÑм паÑамеÑÑом --external-dirs, в коÑоÑом можно задаÑÑ Ð¿ÑÑÑ Ðº нÑÐ¶Ð½Ð¾Ð¼Ñ ÐºÐ°ÑалогÑ. ÐÑли Ð²Ñ Ñ
оÑиÑе зааÑÑ
ивиÑоваÑÑ Ð½ÐµÑколÑко внеÑниÑ
каÑалогов, иÑ
пÑÑи нÑжно ÑазделиÑÑ Ð´Ð²Ð¾ÐµÑоÑиÑми в Linux или ÑоÑками Ñ Ð·Ð°Ð¿ÑÑой в Windows.
ÐапÑимеÑ, ÑÑÐ¾Ð±Ñ Ð² ÑиÑÑеме Linux вклÑÑиÑÑ ÐºÐ°Ñалоги /etc/dir1 и /etc/dir2 в полнÑÑ ÐºÐ¾Ð¿Ð¸Ñ ÑкземплÑÑа имÑ_ÑкземплÑÑа, коÑоÑÐ°Ñ Ð±ÑÐ´ÐµÑ ÑазмеÑаÑÑÑÑ Ð² каÑалоге_копий, вÑполниÑе:
pg_probackup backup -BкаÑалог_копий--instanceимÑ_ÑкземплÑÑа-b FULL --external-dirs=/etc/dir1:/etc/dir2
ÐапÑимеÑ, ÑÑÐ¾Ð±Ñ Ð²ÐºÐ»ÑÑиÑÑ ÐºÐ°Ñалоги C:\dir1 и C:\dir2 в полнÑÑ ÐºÐ¾Ð¿Ð¸Ñ, в Windows нÑжно вÑполниÑÑ:
pg_probackup backup -BкаÑалог_копий--instanceимÑ_ÑкземплÑÑа-b FULL --external-dirs=C:\dir1;C:\dir2
ÐÐ»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ внеÑнего каÑалога pg_probackup ÑоздаÑÑ Ð¾ÑделÑнÑй подкаÑалог в каÑалоге ÑезеÑвной копии и ÑекÑÑÑивно копиÑÑÐµÑ Ð² него вÑÑ ÑодеÑжимое внеÑнего каÑалога. Так как внеÑние каÑалоги, попадаÑÑие в ÑазнÑе ÑезеÑвнÑе копии, не обÑзаÑелÑно Ð´Ð¾Ð»Ð¶Ð½Ñ Ð±ÑÑÑ Ð¾Ð´Ð¸Ð½Ð°ÐºÐ¾Ð²Ñми, пÑи воÑÑÑановлении клаÑÑеÑа из инкÑеменÑалÑной копии бÑдÑÑ Ð²Ð¾ÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ñ ÑолÑко Ñе каÑалоги, коÑоÑÑе оÑноÑÑÑÑÑ Ð¸Ð¼ÐµÐ½Ð½Ð¾ к ней. ÐнеÑние каÑалоги, ÑÐ¾Ñ ÑанÑннÑе в пÑедÑдÑÑÐ¸Ñ ÐºÐ¾Ð¿Ð¸ÑÑ , воÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ñ Ð½Ðµ бÑдÑÑ.
ЧÑÐ¾Ð±Ñ Ð½ÑжнÑе каÑалоги вклÑÑалиÑÑ Ð² каждÑÑ ÑезеÑвнÑÑ ÐºÐ¾Ð¿Ð¸Ñ Ð²Ð°Ñего клаÑÑеÑа, иÑ
ÑпиÑок можно ÑоÑ
ÑаниÑÑ Ð² Ñайле конÑигÑÑаÑии pg_probackup.conf, воÑполÑзовавÑиÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¾Ð¹ set-config Ñ ÐºÐ»ÑÑом --external-dirs.
ÐÑовеÑка ÑелоÑÑноÑÑи клаÑÑеÑа
ЧÑÐ¾Ð±Ñ ÑбедиÑÑÑÑ Ð² оÑÑÑÑÑÑвии повÑеждений в клаÑÑеÑе Postgres Pro, вÑполниÑе ÑледÑÑÑÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ:
pg_probackup checkdb [-BкаÑалог_копий[--instanceимÑ_ÑкземплÑÑа]] [-DкаÑалог_даннÑÑ] [паÑамеÑÑÑ_подклÑÑениÑ]
ÐÑа команда вÑполнÑÐµÑ ÑизиÑеÑкÑÑ Ð¿ÑовеÑÐºÑ Ð²ÑеÑ
Ñайлов даннÑÑ
в Ñказанном каÑалоге даннÑÑ
, пÑÐ¾Ð²Ð¾Ð´Ñ Ð¿ÑовеÑки ÑелоÑÑноÑÑи заголовков ÑÑÑаниÑ, а Ñакже пÑовеÑÑÑ ÐºÐ¾Ð½ÑÑолÑнÑе ÑÑÐ¼Ð¼Ñ Ð½Ð° ÑÑовне блоков, еÑли в клаÑÑеÑе вклÑÑÐµÐ½Ñ ÐºÐ¾Ð½ÑÑолÑнÑе ÑÑммÑ. Ð ÑлÑÑае обнаÑÑÐ¶ÐµÐ½Ð¸Ñ Ð¸ÑпоÑÑенной ÑÑÑаниÑÑ checkdb пÑÐ¾Ð´Ð¾Ð»Ð¶Ð°ÐµÑ ÑабоÑÑ, пока не бÑдÑÑ Ð¿ÑовеÑÐµÐ½Ñ Ð²Ñе ÑÑÑаниÑÑ Ð² клаÑÑеÑе.
Ðо ÑмолÑÐ°Ð½Ð¸Ñ pg_probackup вÑполнÑÐµÑ Ð¿Ð¾Ð´Ð¾Ð±Ð½ÑÑ Ð¿ÑовеÑÐºÑ ÑÑÑаниÑÑ Ð°Ð²ÑомаÑиÑеÑки в пÑоÑеÑÑе ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ ÐºÐ¾Ð¿Ð¸Ð¸. Ðоманда checkdb позволÑÐµÑ Ð¿Ñи желании пÑоводиÑÑ Ð¿ÑовеÑки ÑÑÑÐ°Ð½Ð¸Ñ Ð² клаÑÑеÑе, не ÑÐ¾Ð·Ð´Ð°Ð²Ð°Ñ ÑезеÑвнÑе копии (пÑи ÑÑом даже необÑзаÑелÑно наÑÑÑаиваÑÑ ÐºÐ¾Ð¿Ð¸Ñование клаÑÑеÑа в pg_probackup).
ЧÑÐ¾Ð±Ñ Ð¿ÑовеÑÑи пÑовеÑÐºÑ ÐºÐ»Ð°ÑÑеÑа, пÑиложение pg_probackup должно подклÑÑиÑÑÑÑ Ðº немÑ. ÐбÑÑно Ð´Ð»Ñ Ð¿Ð¾Ð»ÑÑÐµÐ½Ð¸Ñ ÑÑебÑемÑÑ
паÑамеÑÑов подклÑÑÐµÐ½Ð¸Ñ Ð´Ð¾ÑÑаÑоÑно ÑказаÑÑ ÑвÑзаннÑй Ñ Ð´Ð°Ð½Ð½Ñм клаÑÑеÑом копиÑÑемÑй ÑкземплÑÑ. Ðднако еÑли паÑамеÑÑÑ -B и --instance опÑÑкаÑÑÑÑ, паÑамеÑÑÑ_ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ð¸ каÑалог_даннÑÑ
необÑ
одимо задаÑÑ Ð² командной ÑÑÑоке или в пеÑеменнÑÑ
окÑÑжениÑ.
Ðажно понимаÑÑ, ÑÑо пÑовеÑка на ÑизиÑеÑком ÑÑовне не позволÑÐµÑ Ð²ÑÑвиÑÑ Ð»Ð¾Ð³Ð¸ÑеÑкие неÑооÑвеÑÑÑвиÑ, поÑеÑÑ Ð¸Ð»Ð¸ обнÑление блоков или ÑелÑÑ Ñайлов и дÑÑгие подобнÑе аномалии. ÐÑовеÑÑи логиÑеÑкÑÑ Ð¿ÑовеÑÐºÑ Ð² некоÑоÑом обÑÑме позволÑÑÑ ÑаÑÑиÑÐµÐ½Ð¸Ñ amcheck и amcheck_next.
ÐÑли Ð²Ñ Ñ
оÑиÑе помимо ÑизиÑеÑкой пÑовеÑки пÑовеÑиÑÑ Ñакже вÑе индекÑÑ Ð²Ð¾ вÑеÑ
базаÑ
, иÑполÑзÑÑ ÑÑи ÑаÑÑиÑениÑ, Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе пеÑедаÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ðµ checkdb Ñлаг --amcheck:
pg_probackup checkdb -DкаÑалог_даннÑÑ--amcheck [паÑамеÑÑÑ_ÑоединениÑ]
ÐÑовеÑÐºÑ Ð½Ð° ÑизиÑеÑком ÑÑовне можно оÑклÑÑиÑÑ, воÑполÑзовавÑиÑÑ Ñлагом --skip-block-validation. Ð ÑÑом ÑлÑÑае задаваÑÑ ÐºÐ°Ñалог_копий и каÑалог_даннÑÑ
не нÑжно, ÑÑебÑеÑÑÑ Ð·Ð°Ð´Ð°ÑÑ ÑолÑко паÑамеÑÑÑ Ð¿Ð¾Ð´ÐºÐ»ÑÑениÑ:
pg_probackup checkdb --amcheck --skip-block-validation [паÑамеÑÑÑ_ÑоединениÑ]ÐогиÑеÑÐºÐ°Ñ Ð¿ÑовеÑка Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð±Ð¾Ð»ÐµÐµ доÑконалÑной, еÑли запÑÑÑиÑÑ ÐµÑ Ñ ÐºÐ»ÑÑом --heapallindexed. Ð ÑÑом ÑлÑÑае бÑÐ´ÐµÑ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸ÑелÑно пÑовеÑено, ÑÑо в индекÑе дейÑÑвиÑелÑно пÑедÑÑÐ°Ð²Ð»ÐµÐ½Ñ Ð²Ñе коÑÑежи кÑÑи, коÑоÑÑе Ð´Ð¾Ð»Ð¶Ð½Ñ Ð² него попаÑÑÑ, но ÑÑо ÑоздаÑÑ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸ÑелÑнÑÑ Ð½Ð°Ð³ÑÑÐ·ÐºÑ Ð½Ð° пÑоÑеÑÑоÑ, памÑÑÑ Ð¸ подÑиÑÑÐµÐ¼Ñ Ð²Ð²Ð¾Ð´Ð°/вÑвода.
ÐÑовеÑка ÑезеÑвнÑÑ ÐºÐ¾Ð¿Ð¸Ð¹
pg_probackup вÑÑиÑлÑÐµÑ ÐºÐ¾Ð½ÑÑолÑнÑе ÑÑÐ¼Ð¼Ñ Ð´Ð»Ñ Ð²ÑÐµÑ Ñайлов копии в Ñ Ð¾Ð´Ðµ ÑезеÑвного копиÑованиÑ. ÐÑоÑеÑÑ Ð¿ÑовеÑки конÑÑолÑнÑÑ ÑÑмм Ñайлов назÑваеÑÑÑ Ð¿ÑовеÑкой ÑелоÑÑноÑÑи копии. Ðо ÑмолÑÐ°Ð½Ð¸Ñ Ð¿ÑовеÑка вÑполнÑеÑÑÑ ÑÑÐ°Ð·Ñ Ð¿Ð¾Ñле ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ ÑезеÑвной копии и непоÑÑедÑÑвенно пеÑед воÑÑÑановлением Ð´Ð»Ñ Ð²ÑÑÐ²Ð»ÐµÐ½Ð¸Ñ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½ÑÑ Ð¿Ð¾Ð²Ñеждений ÑезеÑвнÑÑ ÐºÐ¾Ð¿Ð¸Ð¹.
ÐÑли Ð²Ñ Ñ
оÑиÑе пÑопÑÑÑиÑÑ Ð¿ÑовеÑÐºÑ ÑезеÑвной копии, Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе пеÑедаÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð°Ð¼ backup и restore Ñлаг --no-validate.
ЧÑÐ¾Ð±Ñ ÑбедиÑÑÑÑ, ÑÑо вÑе Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ñе ÑÐ°Ð¹Ð»Ñ ÑезеÑвнÑÑ ÐºÐ¾Ð¿Ð¸Ð¹ имеÑÑÑÑ Ð² налиÑии и ÑÑо, иÑполÑзÑÑ Ð¸Ñ , можно воÑÑÑановиÑÑ ÐºÐ»Ð°ÑÑÐµÑ Ð±Ð°Ð· даннÑÑ , Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе запÑÑÑиÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ validate Ñ Ñеми же паÑамеÑÑами ÑоÑки воÑÑÑановлениÑ, Ñ ÐºÐ¾ÑоÑÑми Ð²Ñ Ð±ÑдеÑе пÑоизводиÑÑ Ð²Ð¾ÑÑÑановление.
ÐапÑимеÑ, ÑÑÐ¾Ð±Ñ ÑбедиÑÑÑÑ, ÑÑо Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе воÑÑÑановиÑÑ ÐºÐ»Ð°ÑÑÐµÑ Ð±Ð°Ð· даннÑÑ Ð¸Ð· ÑезеÑвной копии, оÑÑановивÑиÑÑ Ð½Ð° ÑÑанзакÑии Ñ Ð¸Ð´ÐµÐ½ÑиÑикаÑоÑом 4242, вÑполниÑе командÑ:
pg_probackup validate -BкаÑалог_копий--instanceимÑ_ÑкземплÑÑа--recovery-target-xid=4242
ÐÑли пÑовеÑка пÑÐ¾Ñ Ð¾Ð´Ð¸Ñ ÑÑпеÑно, pg_probackup вÑдаÑÑ ÑообÑение об ÑÑом. Ð ÑлÑÑае же неÑдаÑи Ð²Ñ Ð¿Ð¾Ð»ÑÑиÑе ÑообÑение об оÑибке Ñ Ñказанием ÑоÑного вÑемени, иденÑиÑикаÑоÑа ÑÑанзакÑии и знаÑÐµÐ½Ð¸Ñ LSN, до коÑоÑого возможно воÑÑÑановление.
ÐÑли Ð²Ñ ÑкажеÑе иденÑиÑикаÑÐ¾Ñ ÐºÐ¾Ð¿Ð¸Ð¸ в клÑÑе -i/--backup-id, бÑÐ´ÐµÑ Ð¿ÑовеÑена ÑолÑко ÑезеÑÐ²Ð½Ð°Ñ ÐºÐ¾Ð¿Ð¸Ñ Ñ ÑказаннÑм иденÑиÑикаÑоÑом. ÐÑли иденÑиÑикаÑÐ¾Ñ ÐºÐ¾Ð¿Ð¸Ð¸ ÑказÑваеÑÑÑ Ð²Ð¼ÐµÑÑе Ñ Ð¿Ð°ÑамеÑÑами ÑоÑки воÑÑÑановлениÑ, команда validate пÑовеÑиÑ, возможно ли воÑÑÑановиÑÑ ÑказаннÑÑ ÑезеÑвнÑÑ ÐºÐ¾Ð¿Ð¸Ñ Ð´Ð¾ заданной ÑоÑки.
ÐапÑимеÑ, ÑÑÐ¾Ð±Ñ ÑбедиÑÑÑÑ, ÑÑо Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе воÑÑÑановиÑÑ ÐºÐ»Ð°ÑÑÐµÑ Ð±Ð°Ð· даннÑÑ
из ÑезеÑвной копии Ñ Ð¸Ð´ÐµÐ½ÑиÑикаÑоÑом PT8XFX до заданного моменÑа вÑемени, вÑполниÑе командÑ:
pg_probackup validate -BкаÑалог_копий--instanceимÑ_ÑкземплÑÑа-i PT8XFX --recovery-target-time="2017-05-18 14:18:11+03"
ÐÑли Ð²Ñ ÑкажеÑе ид_ÑезеÑвной_копии, оÑноÑÑÑийÑÑ Ðº инкÑеменÑалÑной копии, бÑдÑÑ Ð¿ÑовеÑÐµÐ½Ñ Ð²Ñе нÑжнÑе ей ÑодиÑелÑÑкие копии, наÑÐ¸Ð½Ð°Ñ Ñ Ð¿Ð¾Ð»Ð½Ð¾Ð¹.
ÐÑли Ð²Ñ Ð¾Ð¿ÑÑÑиÑе вÑе паÑамеÑÑÑ, бÑдÑÑ Ð¿ÑовеÑÐµÐ½Ñ Ð²Ñе ÑезеÑвнÑе копии.
ÐоÑÑÑановление клаÑÑеÑа
ЧÑÐ¾Ð±Ñ Ð²Ð¾ÑÑÑановиÑÑ ÐºÐ»Ð°ÑÑÐµÑ Ð±Ð°Ð· даннÑÑ Ð¸Ð· ÑезеÑвной копии, вÑполниÑе ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ restore как минимÑм Ñо ÑледÑÑÑими паÑамеÑÑами:
pg_probackup restore -BкаÑалог_копий--instanceимÑ_ÑкземплÑÑа-iид_ÑезеÑвной_копии
ÐдеÑÑ:
каÑалог_копийâ каÑалог, в коÑоÑом Ñ ÑанÑÑÑÑ Ð²Ñе ÑÐ°Ð¹Ð»Ñ ÑезеÑвнÑÑ ÐºÐ¾Ð¿Ð¸Ð¹ и меÑаданнÑе.имÑ_ÑкземплÑÑаâ Ð¸Ð¼Ñ ÑкземплÑÑа ÑезеÑвной копии клаÑÑеÑа, коÑоÑÐ°Ñ Ð±ÑÐ´ÐµÑ Ð²Ð¾ÑÑÑановлена.ид_ÑезеÑвной_копииопÑеделÑеÑ, из какой ÑезеÑвной копии бÑÐ´ÐµÑ Ð²Ð¾ÑÑÑановлен клаÑÑеÑ. ÐÑли ÑÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð¾Ð¿ÑÑкаеÑÑÑ, pg_probackup иÑполÑзÑÐµÑ Ð¿Ð¾ÑледнÑÑ Ð¿Ð¾Ð´Ñ Ð¾Ð´ÑÑÑÑ ÐºÐ¾Ð¿Ð¸Ñ Ð´Ð»Ñ Ð·Ð°Ð´Ð°Ð½Ð½Ð¾Ð³Ð¾ ÑкземплÑÑа. ÐÑли Ð²Ñ Ð²ÑбиÑаеÑе Ð´Ð»Ñ Ð²Ð¾ÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð¸Ð½ÐºÑеменÑалÑнÑÑ ÐºÐ¾Ð¿Ð¸Ñ, pg_probackup авÑомаÑиÑеÑки воÑÑÑÐ°Ð½Ð°Ð²Ð»Ð¸Ð²Ð°ÐµÑ Ð½Ð¸Ð¶ÐµÐ»ÐµÐ¶Ð°ÑÑÑ Ð¿Ð¾Ð»Ð½ÑÑ ÐºÐ¾Ð¿Ð¸Ñ Ð¸ заÑем поÑледоваÑелÑно пÑименÑÐµÑ Ð²Ñе Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ñе добавлениÑ.
ÐоÑле оконÑÐ°Ð½Ð¸Ñ ÑабоÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ restore запÑÑÑиÑе ÑлÑÐ¶Ð±Ñ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ
.
ÐÑли Ð²Ñ Ð²Ð¾ÑÑÑанавливаеÑе ÐºÐ¾Ð¿Ð¸Ñ ARCHIVE, вÑполнÑеÑе воÑÑÑановление PITR или пеÑедаÑÑе Ñлаг --restore-as-replica команде restore Ð´Ð»Ñ Ð½Ð°ÑÑÑойки ведомого ÑеÑвеÑа, pg_probackup ÑоздаÑÑ Ñайл конÑигÑÑаÑии воÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð¿Ð¾Ñле копиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð²ÑеÑ
Ñайлов даннÑÑ
в Ñелевой каÑалог. ÐÑÐ¾Ñ Ñайл вклÑÑÐ°ÐµÑ Ð½ÐµÐ¾Ð±Ñ
одимÑе Ð´Ð»Ñ Ð²Ð¾ÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð¿Ð°ÑамеÑÑÑ, за иÑклÑÑением паÑолÑ, заданного в primary_conninfo; еÑли он ÑÑебÑеÑÑÑ, его нÑжно дополниÑелÑно задаÑÑ Ð²ÑÑÑнÑÑ Ð¸Ð»Ð¸ воÑполÑзоваÑÑÑÑ Ð¿Ð°ÑамеÑÑом --primary-conninfo. ÐÐ»Ñ Postgres Pro веÑÑии 11 и ниже паÑамеÑÑÑ Ð²Ð¾ÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ ÑоÑ
ÑанÑÑÑÑÑ Ð² Ñайле recovery.conf, но Ð´Ð»Ñ Ð²ÐµÑÑий Postgres Pro, наÑÐ¸Ð½Ð°Ñ Ñ 12, pg_probackup ÑоÑ
ÑанÑÐµÑ ÑÑи паÑамеÑÑÑ Ð² Ñайле probackup_recovery.conf в каÑалоге даннÑÑ
и подклÑÑÐ°ÐµÑ ÐµÐ³Ð¾ в postgresql.auto.conf.
ÐÑли воÑÑÑанавливалаÑÑ ÐºÐ¾Ð¿Ð¸Ñ Ñипа STREAM, воÑÑÑановление завеÑÑаеÑÑÑ ÑÑазÑ, и клаÑÑÐµÑ Ð²Ð¾Ð·Ð²ÑаÑаеÑÑÑ Ð² ÑоглаÑованное ÑоÑÑоÑние на Ð¼Ð¾Ð¼ÐµÐ½Ñ Ð²Ñемени, в коÑоÑÑй бÑла Ñделана ÑезеÑÐ²Ð½Ð°Ñ ÐºÐ¾Ð¿Ð¸Ñ. ÐÐ»Ñ ÐºÐ¾Ð¿Ð¸Ð¹ Ñипа ARCHIVE Postgres Pro воÑпÑÐ¾Ð¸Ð·Ð²Ð¾Ð´Ð¸Ñ Ð²Ñе имеÑÑиеÑÑ Ð² аÑÑ
иве ÑегменÑÑ WAL, в ÑезÑлÑÑаÑе Ñего воÑÑÑанавливаеÑÑÑ Ñамое поÑледнее ÑоÑÑоÑние клаÑÑеÑа на ÑекÑÑей линии вÑемени. ÐÑо поведение можно измениÑÑ, опÑеделив паÑамеÑÑÑ ÑоÑки воÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð´Ð»Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ restore как опиÑÑваеÑÑÑ Ð² ÐодÑазделе «ÐÑполнение воÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð½Ð° Ð¼Ð¾Ð¼ÐµÐ½Ñ Ð²Ñемени (PITR)».
ÐÑли клаÑÑеÑ, подлежаÑий воÑÑÑановлениÑ, ÑодеÑÐ¶Ð¸Ñ ÑаблиÑнÑе пÑоÑÑÑанÑÑва, pg_probackup по ÑмолÑÐ°Ð½Ð¸Ñ Ð²Ð¾ÑÑÑÐ°Ð½Ð°Ð²Ð»Ð¸Ð²Ð°ÐµÑ Ð¸Ñ
в иÑÑ
однÑе ÑаÑположениÑ. ЧÑÐ¾Ð±Ñ ÑмениÑÑ ÑаÑÐ¿Ð¾Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ ÑаблиÑнÑÑ
пÑоÑÑÑанÑÑв, воÑполÑзÑйÑеÑÑ Ð¿Ð°ÑамеÑÑом --tablespace-mapping/-T. РпÑоÑивном ÑлÑÑае пÑи воÑÑÑановлении клаÑÑеÑа на Ñом же ÑеÑвеÑе пÑоизойдÑÑ Ð¾Ñибка, еÑли ÑÑи ÑаблиÑнÑе пÑоÑÑÑанÑÑва бÑдÑÑ Ð¸ÑполÑзоваÑÑÑÑ, Ñак как воÑÑÑанавливаемÑе даннÑе нÑжно бÑÐ´ÐµÑ Ð·Ð°Ð¿Ð¸ÑаÑÑ Ð² Ñе же каÑалоги.
ÐÑполÑзÑÑ Ð¿Ð°ÑамеÑÑ --tablespace-mapping/-T, Ð²Ñ Ð´Ð¾Ð»Ð¶Ð½Ñ Ð·Ð°Ð´Ð°ÑÑ Ð°Ð±ÑолÑÑнÑе пÑÑи к ÑÑаÑÐ¾Ð¼Ñ Ð¸ Ð½Ð¾Ð²Ð¾Ð¼Ñ ÐºÐ°ÑÐ°Ð»Ð¾Ð³Ñ ÑаблиÑного пÑоÑÑÑанÑÑва. ÐÑли пÑÑÑ ÑодеÑÐ¶Ð¸Ñ Ð·Ð½Ð°Ðº Ñавно (=), ÑкÑаниÑÑйÑе его обÑаÑной коÑой ÑеÑÑой. ÐаннÑй паÑамеÑÑ Ð¼Ð¾Ð¶ÐµÑ ÑказÑваÑÑÑÑ Ð½ÐµÐ¾Ð´Ð½Ð¾ÐºÑаÑно Ð´Ð»Ñ Ð¿ÐµÑемеÑÐµÐ½Ð¸Ñ Ð½ÐµÑколÑкиÑ
ÑаблиÑнÑÑ
пÑоÑÑÑанÑÑв. ÐапÑимеÑ:
pg_probackup restore -BкаÑалог_копий--instanceимÑ_ÑкземплÑÑа-DкаÑалог_даннÑÑ-j 4 -iид_ÑезеÑвной_копии-T каÑалог_Ñабл_пÑоÑÑÑанÑÑва1=новÑй_каÑалог_Ñабл_пÑоÑÑÑанÑÑва1-T каÑалог_Ñабл_пÑоÑÑÑанÑÑва2=новÑй_каÑалог_Ñабл_пÑоÑÑÑанÑÑва2
ÐоÑÑÑановление клаÑÑеÑа на ÑдалÑнном компÑÑÑеÑе опиÑано в ÐодÑазделе «ÐÑполÑзование pg_probackup в ÑдалÑнном Ñежиме».
ÐÑимеÑание
Ðо ÑмолÑÐ°Ð½Ð¸Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° restore пÑовеÑÑÐµÑ ÑказаннÑÑ ÑезеÑвнÑÑ ÐºÐ¾Ð¿Ð¸Ñ Ð¿ÐµÑед воÑÑÑановлением клаÑÑеÑа. ÐÑли Ð²Ñ Ð¿ÑоводиÑе пÑовеÑÐºÑ ÐºÐ¾Ð¿Ð¸Ð¹ ÑегÑлÑÑно и Ñ
оÑели Ð±Ñ ÑÑкономиÑÑ Ð²ÑÐµÐ¼Ñ Ð¿Ñи воÑÑÑановлении клаÑÑеÑа, Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе добавиÑÑ ÐºÐ»ÑÑ --no-validate Ð´Ð»Ñ Ð¿ÑопÑÑка пÑовеÑки и ÑÑкоÑÐµÐ½Ð¸Ñ Ð²Ð¾ÑÑÑановлениÑ.
ÐнкÑеменÑалÑное воÑÑÑановление
СкоÑоÑÑÑ Ð²Ð¾ÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ ÑезеÑвной копии можно знаÑиÑелÑно ÑвелиÑиÑÑ, заменÑÑ Ð² ÑÑÑеÑÑвÑÑÑем каÑалоге даннÑÑ Postgres Pro ÑолÑко некоÑÑекÑнÑе или изменÑннÑе ÑÑÑаниÑÑ. ÐÑо можно ÑеализоваÑÑ, иÑполÑзÑÑ Ð¿Ð°ÑамеÑÑÑ Ð¸Ð½ÐºÑеменÑалÑного воÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¾Ð¹ restore.
ЧÑÐ¾Ð±Ñ Ð²Ð¾ÑÑÑановиÑÑ ÐºÐ»Ð°ÑÑÐµÑ Ð±Ð°Ð· даннÑÑ Ð¸Ð· ÑезеÑвной копии в инкÑеменÑалÑном Ñежиме, вÑполниÑе ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ restore Ñо ÑледÑÑÑими паÑамеÑÑами:
pg_probackup restore -BкаÑалог_копий--instanceимÑ_ÑкземплÑÑа-DкаÑалог_даннÑÑ-IинкÑеменÑалÑнÑй_Ñежим
ÐдеÑÑ Ð¸Ð½ÐºÑеменÑалÑнÑй_Ñежим Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ ÑледÑÑÑим:
CHECKSUMâ пÑоÑиÑаÑÑ Ð²Ñе ÑÐ°Ð¹Ð»Ñ Ð´Ð°Ð½Ð½ÑÑ Ð² Ñелевом каÑалоге, пÑовеÑиÑÑ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²Ð¾Ðº и конÑÑолÑнÑÑ ÑÑÐ¼Ð¼Ñ ÐºÐ°Ð¶Ð´Ð¾Ð¹ ÑÑÑаниÑÑ Ð¸ замениÑÑ ÑолÑко некоÑÑекÑнÑе ÑÑÑаниÑÑ, а Ñакже ÑÑÑаниÑÑ, в коÑоÑÑÑ ÐºÐ¾Ð½ÑÑолÑÐ½Ð°Ñ ÑÑмма и LSN оÑлиÑаÑÑÑÑ Ð¾Ñ Ð·Ð½Ð°Ñений в ÑооÑвеÑÑÑвÑÑÑей ÑÑÑаниÑе в копии. ÐÑо ÑамÑй пÑоÑÑой и надÑжнÑй инкÑеменÑалÑнÑй Ñежим. Ðго ÑекомендÑеÑÑÑ Ð¸ÑполÑзоваÑÑ Ð¿Ð¾ ÑмолÑаниÑ.LSNâ пÑоÑиÑаÑÑ Ñайлpg_controlв каÑалоге даннÑÑ , полÑÑиÑÑ Ð¸Ð· него знаÑÐµÐ½Ð¸Ñ REDO LSN и REDO TLI, позволÑÑÑие опÑеделиÑÑ ÑоÑÐºÑ Ð² иÑÑоÑии (ÑоÑÐºÑ Ñдвига), в коÑоÑой ÑоÑÑоÑние каÑалога даннÑÑ ÑдвинÑлиÑÑ Ñ ÑепоÑки ÑезеÑвнÑÑ ÐºÐ¾Ð¿Ð¸Ð¹. ÐÑли ÑоÑка Ñдвига Ð½Ð°Ñ Ð¾Ð´Ð¸ÑÑÑ Ð·Ð° пÑеделами иÑÑоÑии ÑезеÑвнÑÑ ÐºÐ¾Ð¿Ð¸Ð¹, воÑÑÑановление пÑеÑÑваеÑÑÑ. ÐÑли же ÑоÑка Ñдвига доÑÑижима, пÑоÑиÑÑваÑÑÑÑ Ð²Ñе ÑÐ°Ð¹Ð»Ñ Ð´Ð°Ð½Ð½ÑÑ Ð² каÑалоге даннÑÑ , пÑовеÑÑеÑÑÑ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²Ð¾Ðº и конÑÑолÑÐ½Ð°Ñ ÑÑмма на каждой ÑÑÑаниÑе, а заÑем заменÑÑÑÑÑ ÑолÑко ÑÑÑаниÑÑ Ñ Ð½ÐµÐ²ÐµÑной конÑÑолÑной ÑÑммой или Ñ LSN, пÑевÑÑаÑÑим позиÑÐ¸Ñ ÑоÑки Ñдвига. Ð ÑÑом Ñежиме обеÑпеÑиваеÑÑÑ ÑвелиÑÐµÐ½Ð½Ð°Ñ ÑкоÑоÑÑÑ Ð¿Ð¾ ÑÑÐ°Ð²Ð½ÐµÐ½Ð¸Ñ Ñ Ñежимом CHECKSUM, но ÑÑебÑеÑÑÑ Ð²Ñполнение двÑÑ ÑÑловий. Ðо-пеÑвÑÑ , в Ñелевом каÑалоге Ð´Ð¾Ð»Ð¶Ð½Ñ Ð±ÑÑÑ Ð²ÐºÐ»ÑÑÐµÐ½Ñ ÐºÐ¾Ð½ÑÑолÑнÑе ÑÑÐ¼Ð¼Ñ (Ñм. data_checksums), ÑÑÐ¾Ð±Ñ Ð½Ðµ пÑоизоÑло повÑÐµÐ¶Ð´ÐµÐ½Ð¸Ñ Ð´Ð°Ð½Ð½ÑÑ Ð¸Ð·-за Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð²ÑпомогаÑелÑнÑÑ Ð±Ð¸Ñов. ÐÑо ÑÑловие бÑÐ´ÐµÑ Ð¿ÑовеÑÑÑÑÑÑ Ð¿ÐµÑед инкÑеменÑалÑнÑм воÑÑÑановлением â в ÑлÑÑае оÑÑÑÑÑÑÐ²Ð¸Ñ ÐºÐ¾Ð½ÑÑолÑнÑÑ ÑÑмм опеÑаÑÐ¸Ñ Ð¿ÑеÑÑваеÑÑÑ. Ðо-вÑоÑÑÑ , Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð° ÑÐ¸Ð½Ñ ÑонноÑÑÑ Ñайлаpg_controlÑ ÑоÑÑоÑнием каÑалога даннÑÑ . ÐÑо ÑÑловие нелÑÐ·Ñ Ð¿ÑовеÑиÑÑ Ð² наÑале воÑÑÑановлениÑ, Ñак ÑÑо гаÑанÑиÑоваÑÑ Ð¿ÑавилÑноÑÑÑ Ð¸Ð½ÑоÑмаÑии вpg_controlдолжен полÑзоваÑелÑ. ÐоÑÑÐ¾Ð¼Ñ Ð¸ÑполÑзоваÑÑ Ñежим LSN ÑекомендÑеÑÑÑ Ð½Ðµ во вÑÐµÑ ÑиÑÑаÑиÑÑ , напÑимеÑ, он пÑоÑивопоказан, когда Ñайлpg_controlповÑеждÑн или его ÑодеÑÐ¶Ð¸Ð¼Ð¾Ð¼Ñ Ð½ÐµÐ»ÑÐ·Ñ Ð´Ð¾Ð²ÐµÑÑÑÑ: поÑле вÑполнениÑpg_resetxlog, поÑле воÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð¸Ð· копии без пÑоÑедÑÑÑ Ð²Ð¾ÑпÑÐ¾Ð¸Ð·Ð²ÐµÐ´ÐµÐ½Ð¸Ñ Ð¶ÑÑнала и Ñ. д.NONEâ обÑÑное воÑÑÑановление без инкÑеменÑалÑнÑÑ Ð¾Ð¿ÑимизаÑий.
Ðне завиÑимоÑÑи Ð¾Ñ Ð²ÑбÑанного инкÑеменÑалÑного Ñежима, pg_probackup бÑÐ´ÐµÑ Ð¿ÑовеÑÑÑÑ, ÑÑо Ñ Ð·Ð°Ð´Ð°Ð½Ð½Ñм ÑелевÑм каÑалогом не ÑабоÑÐ°ÐµÑ Ð¿ÑоÑеÑÑ postmaster и знаÑÐµÐ½Ð¸Ñ system-identifier в Ñелевом ÑкземплÑÑе и копии ÑовпадаÑÑ.
ÐÑедположим, Ð²Ñ Ñ Ð¾ÑиÑе воÑÑÑановиÑÑ ÑÑаÑÑй ведÑÑий ÑеÑÐ²ÐµÑ Ð² виде Ñеплики поÑле пеÑеклÑÑениÑ, иÑполÑзÑÑ Ð¸Ð½ÐºÑеменÑалÑное воÑÑÑановление в Ñежиме LSN:
=============================================================================================================================================
Instance Version ID Recovery Time Mode WAL Mode TLI Time Data WAL Zratio Start LSN Stop LSN Status
=============================================================================================================================================
node 12 QBRNBP 2020-06-11 17:40:58+03 DELTA ARCHIVE 16/15 40s 194MB 16MB 8.26 15/2C000028 15/2D000128 OK
node 12 QBRIDX 2020-06-11 15:51:42+03 PAGE ARCHIVE 15/15 11s 18MB 16MB 5.10 14/DC000028 14/DD0000B8 OK
node 12 QBRIAJ 2020-06-11 15:51:08+03 PAGE ARCHIVE 15/15 20s 141MB 96MB 6.22 14/D4BABFE0 14/DA9871D0 OK
node 12 QBRHT8 2020-06-11 15:45:56+03 FULL ARCHIVE 15/0 2m:11s 1371MB 416MB 10.93 14/9D000028 14/B782E9A0 OK
pg_probackup restore -B /backup --instance node -R -I lsn
INFO: Running incremental restore into nonempty directory: "/var/lib/pgsql/12/data"
INFO: Destination directory redo point 15/2E000028 on tli 16 is within reach of backup QBRIDX with Stop LSN 14/DD0000B8 on tli 15
INFO: shift LSN: 14/DD0000B8
INFO: Restoring the database from backup at 2020-06-11 17:40:58+03
INFO: Extracting the content of destination directory for incremental restore
INFO: Destination directory content extracted, time elapsed: 1s
INFO: Removing redundant files in destination directory
INFO: Redundant files are removed, time elapsed: 1s
INFO: Start restoring backup files. PGDATA size: 15GB
INFO: Backup files are restored. Transfered bytes: 1693MB, time elapsed: 43s
INFO: Restore incremental ratio (less is better): 11% (1693MB/15GB)
INFO: Restore of backup QBRNBP completed.
ÐÑимеÑание
ÐнкÑеменÑалÑное воÑÑÑановление возможно ÑолÑко Ð´Ð»Ñ ÐºÐ¾Ð¿Ð¸Ð¹, Ñ ÐºÐ¾ÑоÑÑÑ
program_version болÑÑе или Ñавна 2.4.0.
ЧаÑÑиÑное воÑÑÑановление
ÐÑли Ð²Ñ Ð¿Ð¾Ð´Ð³Ð¾ÑовилиÑÑ Ðº ÑаÑÑиÑÐ½Ð¾Ð¼Ñ Ð²Ð¾ÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð´Ð¾ Ñого, как Ñделали ÑезеÑвнÑÑ ÐºÐ¾Ð¿Ð¸Ñ, Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе воÑÑÑановиÑÑ ÑолÑко некоÑоÑÑе Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ , иÑполÑзÑÑ Ð¿Ð°ÑамеÑÑÑ ÑаÑÑиÑного воÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¾Ð¹ restore.
ЧÑÐ¾Ð±Ñ Ð²Ð¾ÑÑÑановиÑÑ ÑолÑко некоÑоÑÑе Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ
, вÑполниÑе ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ restore как минимÑм Ñо ÑледÑÑÑими паÑамеÑÑами:
pg_probackup restore -BкаÑалог_копий--instanceимÑ_ÑкземплÑÑа--db-include=имÑ_базÑ
ÐлÑÑ --db-include Ð¼Ð¾Ð¶ÐµÑ Ð´Ð¾Ð±Ð°Ð²Ð»ÑÑÑÑÑ Ð¼Ð½Ð¾Ð³Ð¾ÐºÑаÑно. ÐапÑимеÑ, ÑÑÐ¾Ð±Ñ Ð²Ð¾ÑÑÑановиÑÑ ÑолÑко Ð±Ð°Ð·Ñ db1 и db2, вÑполниÑе ÑледÑÑÑÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ:
pg_probackup restore -BкаÑалог_копий--instanceимÑ_ÑкземплÑÑа--db-include=db1 --db-include=db2
ЧÑÐ¾Ð±Ñ Ð¸ÑклÑÑиÑÑ Ð¾Ð´Ð½Ñ Ð¸Ð»Ð¸ неÑколÑко баз из ÑиÑла воÑÑÑанавливаемÑÑ
, иÑполÑзÑйÑе клÑÑ --db-exclude:
pg_probackup restore -BкаÑалог_копий--instanceимÑ_ÑкземплÑÑа--db-exclude=имÑ_базÑ
ÐлÑÑ --db-exclude Ð¼Ð¾Ð¶ÐµÑ Ð´Ð¾Ð±Ð°Ð²Ð»ÑÑÑÑÑ Ð¼Ð½Ð¾Ð³Ð¾ÐºÑаÑно. ÐапÑимеÑ, ÑÑÐ¾Ð±Ñ Ð¿Ñи воÑÑÑановлении иÑклÑÑиÑÑ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ
db1 и db2, вÑполниÑе ÑледÑÑÑÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ:
pg_probackup restore -BкаÑалог_копий--instanceимÑ_ÑкземплÑÑа--db-exclude=db1 --db-exclude=db2
ÐеÑ
анизм ÑаÑÑиÑного воÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ ÑаÑÑÑиÑÑÐ²Ð°ÐµÑ Ð½Ð° Ñо, ÑÑо в пÑоÑеÑÑе воÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Postgres Pro налиÑие пÑÑÑÑÑ
Ñайлов не бÑÐ´ÐµÑ Ð¿Ñоблемой, Ñак как ÑÐ°Ð¹Ð»Ñ Ð¸ÑклÑÑÑннÑÑ
баз даннÑÑ
воÑÑÑанавливаÑÑÑÑ Ð¿ÑÑÑÑми. ÐоÑле ÑÑпеÑного запÑÑка клаÑÑеÑа Postgres Pro воÑÑÑановленнÑе опÑÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ð¸ÑклÑÑÑннÑÑ
баз даннÑÑ
можно ÑдалиÑÑ Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ DROP DATABASE.
ЧÑÐ¾Ð±Ñ Ð¼Ð°ÐºÑималÑно бÑÑÑÑо ÑазделиÑÑ Ð¾Ð´Ð¸Ð½ клаÑÑеÑ, ÑодеÑжаÑий неÑколÑко баз даннÑÑ
, на ÑазнÑе клаÑÑеÑÑ, можно вÑполниÑÑ ÑаÑÑиÑное воÑÑÑановление иÑÑ
одного клаÑÑеÑа в виде ведомого, пеÑедав клÑÑ --restore-as-replica Ð´Ð»Ñ Ð¾Ð¿ÑеделÑннÑÑ
баз даннÑÑ
.
ÐÑимеÑание
ÐÐ°Ð·Ñ template0 и template1 воÑÑÑанавливаÑÑÑÑ Ð²Ñегда.
ÐÑимеÑание
Ðз-за оÑобенноÑÑей воÑÑÑановлениÑ, пÑиÑÑÑиÑ
веÑÑиÑм Postgres Pro до 12, пÑи ÑаÑÑиÑном воÑÑÑановлении клаÑÑеÑа Postgres Pro ÑÑиÑ
веÑÑий ÑекомендÑеÑÑÑ ÑÑÑановиÑÑ Ð´Ð»Ñ Ð¿Ð°ÑамеÑÑа hot_standby знаÑение off. РпÑоÑивном ÑлÑÑае пÑи воÑÑÑановлении возможен Ñбой.
ÐÑполнение воÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð½Ð° Ð¼Ð¾Ð¼ÐµÐ½Ñ Ð²Ñемени (PITR)
ÐÑли Ð²Ñ Ð½Ð°ÑÑÑаивали непÑеÑÑвное аÑÑ Ð¸Ð²Ð¸Ñование WAL до ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ ÑезеÑвнÑÑ ÐºÐ¾Ð¿Ð¸Ð¹, Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе воÑÑÑановиÑÑ ÑоÑÑоÑние клаÑÑеÑа на лÑбой Ð¼Ð¾Ð¼ÐµÐ½Ñ Ð²Ñемени (до заданной ÑоÑки воÑÑÑановлениÑ), иÑполÑзÑÑ Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¾Ð¹ restore паÑамеÑÑÑ ÑоÑки воÑÑÑановлениÑ.
ÐÐ»Ñ Ð²Ð¾ÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð½Ð° Ð¼Ð¾Ð¼ÐµÐ½Ñ Ð²Ñемени Ð¼Ð¾Ð¶ÐµÑ Ð¸ÑполÑзоваÑÑÑÑ ÐºÐ¾Ð¿Ð¸Ñ Ñипа STREAM или ARCHIVE, но пÑи ÑÑом обÑзаÑелÑно налиÑие аÑÑ
ива WAL Ñ Ð¼Ð¾Ð¼ÐµÐ½Ñа ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ ÐºÐ¾Ð¿Ð¸Ð¸ или более Ñаннего. ÐÑли паÑамеÑÑ -i/--backup-id не задан, pg_probackup авÑомаÑиÑеÑки вÑбиÑÐ°ÐµÑ ÑезеÑвнÑÑ ÐºÐ¾Ð¿Ð¸Ñ, ближайÑÑÑ Ðº заданной Ñели воÑÑÑановлениÑ, и наÑÐ¸Ð½Ð°ÐµÑ Ð¿ÑоÑеÑÑ Ð²Ð¾ÑÑÑановлениÑ. РпÑоÑивном ÑлÑÑае pg_probackup попÑÑаеÑÑÑ Ð²Ð¾ÑÑÑановиÑÑ Ð´Ð¾ заданной Ñели воÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð¸Ð¼ÐµÐ½Ð½Ð¾ ÐºÐ¾Ð¿Ð¸Ñ Ñ Ð·Ð°Ð´Ð°Ð½Ð½Ñм ид_ÑезеÑвной_копии.
ЧÑÐ¾Ð±Ñ Ð²Ð¾ÑÑÑановиÑÑ ÑоÑÑоÑние клаÑÑеÑа на опÑеделÑннÑй Ð¼Ð¾Ð¼ÐµÐ½Ñ Ð²Ñемени, ÑкажиÑе ÑÑо вÑÐµÐ¼Ñ Ð² паÑамеÑÑе
--recovery-target-time, в ÑоÑмаÑе timestamp. ÐапÑимеÑ:pg_probackup restore -B
каÑалог_копий--instanceимÑ_ÑкземплÑÑа--recovery-target-time="2017-05-18 14:18:11+03"ЧÑÐ¾Ð±Ñ Ð²Ð¾ÑÑÑановиÑÑ ÑоÑÑоÑние клаÑÑеÑа до опÑеделÑнной ÑÑанзакÑии, воÑполÑзÑйÑеÑÑ ÐºÐ»ÑÑом
--recovery-target-xid:pg_probackup restore -B
каÑалог_копий--instanceимÑ_ÑкземплÑÑа--recovery-target-xid=687ЧÑÐ¾Ð±Ñ Ð²Ð¾ÑÑÑановиÑÑ ÑоÑÑоÑние клаÑÑеÑа до опÑеделÑнной позиÑии в жÑÑнале (LSN), воÑполÑзÑйÑеÑÑ ÐºÐ»ÑÑом
--recovery-target-lsn:pg_probackup restore -B
каÑалог_копий--instanceимÑ_ÑкземплÑÑа--recovery-target-lsn=16/B374D848ЧÑÐ¾Ð±Ñ Ð²Ð¾ÑÑÑановиÑÑ ÑоÑÑоÑние клаÑÑеÑа до заданной именованной ÑоÑки воÑÑÑановлениÑ, воÑполÑзÑйÑеÑÑ ÐºÐ»ÑÑом
--recovery-target-name:pg_probackup restore -B
каÑалог_копий--instanceимÑ_ÑкземплÑÑа--recovery-target-name="before_app_upgrade"ЧÑÐ¾Ð±Ñ Ð²Ð¾ÑÑÑановиÑÑ Ð¿Ð¾Ñледнее возможное ÑоÑÑоÑние, иÑÑ Ð¾Ð´Ñ Ð¸Ð· ÑодеÑжимого аÑÑ Ð¸Ð²Ð° WAL, пеÑедайÑе в паÑамеÑÑе
--recovery-targetзнаÑениеlatest:pg_probackup restore -B
каÑалог_копий--instanceимÑ_ÑкземплÑÑа--recovery-target="latest"ЧÑÐ¾Ð±Ñ Ð²Ð¾ÑÑÑановиÑÑ Ñамое Ñаннее из возможнÑÑ ÑоглаÑованное ÑоÑÑоÑние клаÑÑеÑа, пеÑедайÑе в паÑамеÑÑе
--recovery-targetзнаÑениеimmediate:pg_probackup restore -B
каÑалог_копий--instanceимÑ_ÑкземплÑÑа--recovery-target='immediate'
ÐÑполÑзование pg_probackup в ÑдалÑнном Ñежиме
ÐÑогÑамма pg_probackup поддеÑÐ¶Ð¸Ð²Ð°ÐµÑ ÑабоÑÑ Ð² ÑдалÑнном Ñежиме, Ñо еÑÑÑ Ð¼Ð¾Ð¶ÐµÑ Ð²ÑполнÑÑÑ Ð¾Ð¿ÐµÑаÑии backup и restore ÑдалÑнно, иÑполÑзÑÑ SSH. Ð ÑÑом Ñежиме каÑалог ÑезеÑвнÑÑ
копий ÑаÑполагаеÑÑÑ Ð² локалÑной ÑиÑÑеме, а Ñелевой ÑкземплÑÑ Postgres Pro ÑабоÑÐ°ÐµÑ Ð² ÑдалÑнной. ÐÑи ÑÑом pg_probackup должен бÑÑÑ ÑÑÑановлен в обеиÑ
ÑиÑÑемаÑ
.
ÐÑимеÑание
pg_probackup ÑаÑÑÑиÑÑÐ²Ð°ÐµÑ Ð½Ð° Ñо, ÑÑо ÑÐ·Ð»Ñ Ð±ÑдÑÑ Ð²Ð·Ð°Ð¸Ð¼Ð¾Ð´ÐµÐ¹ÑÑвоваÑÑ Ð¼ÐµÐ¶Ð´Ñ Ñобой Ñ Ð¸ÑполÑзованием SSH без паÑолÑ.
ТипиÑÐ½Ð°Ñ ÑÑ ÐµÐ¼Ð° его иÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð²ÑглÑÐ´Ð¸Ñ Ñак:
Ð ÑиÑÑеме ÑезеÑвного копиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð½Ð°ÑÑÑойÑе pg_probackup, как опиÑÑваеÑÑÑ Ð² подÑазделе УÑÑановка и наÑÑÑойка. ÐÐ»Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´ add-instance и set-config Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾ задаÑÑ Ð¿Ð°ÑамеÑÑÑ ÑдалÑнного ÑеÑвеÑа, ÑказÑваÑÑие на ÑеÑÐ²ÐµÑ Ñ ÑкземплÑÑом Postgres Pro.
ÐÑли Ð²Ñ Ñ Ð¾ÑиÑе в ÑдалÑнном Ñежиме вÑполнÑÑÑ ÑÑÑаниÑное копиÑование (PAGE), иÑполÑзоваÑÑ Ð´Ð¾ÑÑÐ°Ð²ÐºÑ WAL в Ñежиме ARCHIVE или оÑÑÑеÑÑвлÑÑÑ Ð²Ð¾ÑÑÑановление PITR, наÑÑÑойÑе непÑеÑÑвное аÑÑ Ð¸Ð²Ð¸Ñование WAL Ñ ÑеÑвеÑа ÐРв ÑиÑÑÐµÐ¼Ñ ÑезеÑвного копиÑованиÑ, как опиÑано в подÑазделе ÐаÑÑÑойка непÑеÑÑвного аÑÑ Ð¸Ð²Ð¸ÑÐ¾Ð²Ð°Ð½Ð¸Ñ WAL. ÐÐ»Ñ ÑÑого в ÐºÐ¾Ð¼Ð°Ð½Ð´Ð°Ñ archive-push и archive-get ÑÑебÑеÑÑÑ Ð·Ð°Ð´Ð°ÑÑ Ð¿Ð°ÑамеÑÑÑ ÑдалÑнного ÑеÑвеÑа, ÑказÑваÑÑие на ÑеÑвеÑ, где Ð½Ð°Ñ Ð¾Ð´Ð¸ÑÑÑ ÐºÐ°Ñалог ÑезеÑвнÑÑ ÐºÐ¾Ð¿Ð¸Ð¹.
ÐапÑÑÑиÑе ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ backup или restore Ñ Ð¿Ð°ÑамеÑÑами ÑдалÑнного ÑеÑвеÑа в ÑиÑÑеме ÑезеÑвного копиÑованиÑ. pg_probackup подклÑÑиÑÑÑ Ðº ÑдалÑнной ÑиÑÑеме по SSH и ÑооÑвеÑÑÑвенно ÑоздаÑÑ ÑезеÑвнÑÑ ÐºÐ¾Ð¿Ð¸Ñ Ð² локалÑной ÑиÑÑеме или воÑÑÑÐ°Ð½Ð¾Ð²Ð¸Ñ Ð² ÑдалÑнной ÑиÑÑеме Ñанее ÑделаннÑÑ ÐºÐ¾Ð¿Ð¸Ñ.
ÐапÑимеÑ, ÑÑÐ¾Ð±Ñ ÑоздаÑÑ Ð¿Ð¾Ð»Ð½ÑÑ Ð°ÑÑ
ивнÑÑ ÐºÐ¾Ð¿Ð¸Ñ ÐºÐ»Ð°ÑÑеÑа Postgres Pro, ÑабоÑаÑÑего в ÑдалÑнной ÑиÑÑеме Ñ Ð°Ð´ÑеÑом 192.168.0.2, подклÑÑивÑиÑÑ Ðº ÑеÑвеÑÑ Ð¿Ð¾ SSH ÑеÑез поÑÑ 2302 Ñ Ð¸Ð¼ÐµÐ½ÐµÐ¼ полÑзоваÑÐµÐ»Ñ postgres, вÑполниÑе:
pg_probackup backup -BкаÑалог_копий--instanceимÑ_ÑкземплÑÑа-b FULL --remote-user=postgres --remote-host=192.168.0.2 --remote-port=2302
ЧÑÐ¾Ð±Ñ Ð²Ð¾ÑÑÑановиÑÑ Ð¿Ð¾ÑледнÑÑ Ð¸Ð¼ÐµÑÑÑÑÑÑ ÐºÐ¾Ð¿Ð¸Ñ Ð² ÑдалÑнной ÑиÑÑеме Ñ Ð°Ð´ÑеÑом 192.168.0.2, подклÑÑивÑиÑÑ Ðº ÑеÑвеÑÑ Ð¿Ð¾ SSH ÑеÑез поÑÑ 2302 Ñ Ð¸Ð¼ÐµÐ½ÐµÐ¼ полÑзоваÑÐµÐ»Ñ postgres, вÑполниÑе:
pg_probackup restore -BкаÑалог_копий--instanceимÑ_ÑкземплÑÑа--remote-user=postgres --remote-host=192.168.0.2 --remote-port=2302
ÐÐ»Ñ Ð²Ð¾ÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð°ÑÑ
ивнÑÑ
копий или воÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð½Ð° Ð¼Ð¾Ð¼ÐµÐ½Ñ Ð²Ñемени в ÑдалÑнном Ñежиме ÑÑебÑеÑÑÑ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸ÑелÑÐ½Ð°Ñ Ð¸Ð½ÑоÑмаÑиÑ: Ñелевой адÑеÑ, поÑÑ Ð¸ Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑзоваÑÐµÐ»Ñ Ð´Ð»Ñ ÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ SSH-подклÑÑÐµÐ½Ð¸Ñ c ÑеÑвеÑа ÐРк ÑиÑÑеме, где наÑ
одиÑÑÑ ÐºÐ°Ñалог копий. ÐÑÑ Ð¸Ð½ÑоÑмаÑÐ¸Ñ Ð±ÑÐ´ÐµÑ Ð¸ÑполÑзоваÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° restore_command Ð´Ð»Ñ ÐºÐ¾Ð¿Ð¸ÑÐ¾Ð²Ð°Ð½Ð¸Ñ ÑегменÑов WAL из аÑÑ
ива в каÑалог Postgres Pro pg_wal.
ÐÐ»Ñ Ð¿ÐµÑедаÑи ÑÑой инÑоÑмаÑии Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе задаÑÑ Ð¿Ð°ÑамеÑÑÑ ÑдалÑнного аÑÑ Ð¸Ð²Ð° WAL.
ÐапÑимеÑ, Ð´Ð»Ñ Ð²Ð¾ÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð¿Ð¾Ñледней копии в ÑдалÑнной ÑиÑÑеме, наÑÑÑоенной Ð´Ð»Ñ Ð¿ÑиÑма подклÑÑÐµÐ½Ð¸Ñ Ð¿Ð¾Ð»ÑзоваÑÐµÐ»Ñ postgres по адÑеÑÑ 192.168.0.2 ÑеÑез поÑÑ 2302, Ñ Ð¸ÑполÑзованием каÑалога ÑезеÑвнÑÑ
копий в ÑиÑÑеме, наÑÑÑоенной Ð´Ð»Ñ Ð¿Ð¾Ð´ÐºÐ»ÑÑÐµÐ½Ð¸Ñ Ð¿Ð¾Ð»ÑзоваÑÐµÐ»Ñ backup по адÑеÑÑ 192.168.0.3 ÑеÑез поÑÑ 2303, вÑполниÑе:
pg_probackup restore -BкаÑалог_копий--instanceимÑ_ÑкземплÑÑа--remote-user=postgres --remote-host=192.168.0.2 --remote-port=2302 --archive-host=192.168.0.3 --archive-port=2303 --archive-user=backup
ÐеÑеданнÑе аÑгÑменÑÑ Ð±ÑдÑÑ Ð¸ÑполÑзоваÑÑÑÑ Ð¿Ñи ÑоÑÑавлении ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ restore_command:
restore_command = '"пÑÑÑ_инÑÑаллÑÑии/pg_probackup" archive-get -B "каÑалог_копий" --instanceимÑ_ÑкземплÑÑа--wal-file-path=%p --wal-file-name=%f --remote-host=192.168.0.3 --remote-port=2303 --remote-user=backup'
Также Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе воÑполÑзоваÑÑÑÑ ÐºÐ»ÑÑом --restore-command и пеÑедаÑÑ Ð²ÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ restore_command Ñеликом:
pg_probackup restore -BкаÑалог_копий--instanceимÑ_ÑкземплÑÑа--remote-user=postgres --remote-host=192.168.0.2 --remote-port=2302 --restore-command='"пÑÑÑ_инÑÑаллÑÑии/pg_probackup" archive-get -B "каÑалог_копий" --instanceимÑ_ÑкземплÑÑа--wal-file-path=%p --wal-file-name=%f --remote-host=192.168.0.3 --remote-port=2303 --remote-user=backup'
ÐÑимеÑание
ÐÑполÑзование ÑдалÑнного Ñежима на плаÑÑоÑме Windows в наÑÑоÑÑее вÑÐµÐ¼Ñ Ð½Ðµ поддеÑживаеÑÑÑ.
ÐапÑÑк pg_probackup в паÑаллелÑнÑÑ Ð¿Ð¾ÑокаÑ
ÐÐ¾Ð¼Ð°Ð½Ð´Ñ backup, restore, merge, delete, checkdb и validate могÑÑ Ð²ÑполнÑÑÑÑÑ Ð² неÑколÑко паÑаллелÑнÑÑ Ð¿Ð¾Ñоков. ÐÑо Ð¼Ð¾Ð¶ÐµÑ ÑÑÑеÑÑвенно ÑÑкоÑÑÑÑ ÑабоÑÑ pg_probackup пÑи налиÑии доÑÑаÑоÑнÑÑ ÑеÑÑÑÑов (ÑÐ´ÐµÑ Ð¿ÑоÑеÑÑоÑа, пÑоизводиÑелÑноÑÑи диÑковой подÑиÑÑÐµÐ¼Ñ Ð¸ ÑеÑи).
ÐаÑаллелÑнÑм вÑполнением ÑпÑавлÑÐµÑ ÐºÐ»ÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð½Ð¾Ð¹ ÑÑÑоки -j/--threads. ÐапÑимеÑ, ÑÑÐ¾Ð±Ñ Ð·Ð°Ð¿ÑÑÑиÑÑ ÑезеÑвное копиÑование в ÑеÑÑÑе паÑаллелÑнÑÑ
поÑока, вÑполниÑе:
pg_probackup backup -BкаÑалог_копий--instanceимÑ_ÑкземплÑÑа-b FULL -j 4
ÐÑимеÑание
ÐоÑÑÑановление пÑоиÑÑ Ð¾Ð´Ð¸Ñ Ð² паÑаллелÑном Ñежиме ÑолÑко на ÑÑапе копиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð´Ð°Ð½Ð½ÑÑ Ð¸Ð· каÑалога копий в каÑалог даннÑÑ ÐºÐ»Ð°ÑÑеÑа. ÐÑи запÑÑке ÑеÑвеÑа Postgres Pro он должен бÑÐ´ÐµÑ Ð²Ð¾ÑпÑоизвеÑÑи запиÑи из WAL, а ÑÑо Ð¼Ð¾Ð¶ÐµÑ Ð¿ÑоиÑÑ Ð¾Ð´Ð¸ÑÑ ÑолÑко поÑледоваÑелÑно.
ÐаÑÑÑойка pg_probackup
ÐÑоиниÑиализиÑовав каÑалог ÑезеÑвнÑÑ
копий и добавив опÑеделение копиÑÑемого ÑкземплÑÑа, Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе иÑполÑзоваÑÑ Ñайл pg_probackup.conf в каÑалоге Ð´Ð»Ñ Ñонкой наÑÑÑойки конÑигÑÑаÑии pg_probackup.каÑалог_копий/backups/имÑ_ÑкземплÑÑа
ÐапÑимеÑ, ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ backup и checkdb ÑабоÑаÑÑ ÑеÑез обÑÑное подклÑÑение Postgres Pro. ЧÑÐ¾Ð±Ñ ÐºÐ°Ð¶Ð´Ñй Ñаз не задаваÑÑ Ð¿Ð°ÑамеÑÑÑ Ð¿Ð¾Ð´ÐºÐ»ÑÑÐµÐ½Ð¸Ñ Ð² командной ÑÑÑоке, Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе опÑеделиÑÑ Ð¸Ñ
в Ñайле конÑигÑÑаÑии pg_probackup.conf Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ set-config.
ÐÑимеÑание
РедакÑиÑоваÑÑ pg_probackup.conf вÑÑÑнÑÑ Ð½Ðµ ÑекомендÑеÑÑÑ.
ÐзнаÑалÑно pg_probackup.conf ÑодеÑÐ¶Ð¸Ñ ÑледÑÑÑие паÑамеÑÑÑ:
PGDATAâ пÑÑÑ Ðº каÑÐ°Ð»Ð¾Ð³Ñ Ð´Ð°Ð½Ð½ÑÑ ÐºÐ»Ð°ÑÑеÑа, коÑоÑÑй бÑÐ´ÐµÑ ÐºÐ¾Ð¿Ð¸ÑоваÑÑÑÑ.system-identifierâ ÑникалÑнÑй иденÑиÑикаÑÐ¾Ñ ÑкземплÑÑа Postgres Pro.
ÐÑ Ð¼Ð¾Ð¶ÐµÑе дополниÑелÑно ÑÑÑановиÑÑ Ð¿Ð°ÑамеÑÑÑ ÑдалÑнного Ñежима, Ñ
ÑÐ°Ð½ÐµÐ½Ð¸Ñ ÐºÐ¾Ð¿Ð¸Ð¹, Ð²ÐµÐ´ÐµÐ½Ð¸Ñ Ð¶ÑÑнала и ÑжаÑиÑ, иÑполÑзÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ set-config:
pg_probackup set-config -BкаÑалог_копий--instanceимÑ_ÑкземплÑÑа[--external-dirs=пÑÑÑ_внеÑнего_каÑалога] [паÑамеÑÑÑ_ÑдалÑнного_Ñежима] [паÑамеÑÑÑ_ÑоединениÑ] [паÑамеÑÑÑ_Ñ ÑанениÑ] [паÑамеÑÑÑ_жÑÑнала]
ЧÑÐ¾Ð±Ñ Ð¿ÑоÑмоÑÑеÑÑ ÑекÑÑие паÑамеÑÑÑ, вÑполниÑе ÑÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ:
pg_probackup show-config -BкаÑалог_копий--instanceимÑ_ÑкземплÑÑа
ÐаÑамеÑÑÑ, заданнÑе в pg_probackup.conf, можно пеÑеопÑеделиÑÑ, Ð·Ð°Ð´Ð°Ð²Ð°Ñ ÑооÑвеÑÑÑвÑÑÑие пеÑеменнÑе окÑÑÐ¶ÐµÐ½Ð¸Ñ Ð¸Ð»Ð¸ паÑамеÑÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð½Ð¾Ð¹ ÑÑÑоки пÑи вÑзове команд pg_probackup.
Указание паÑамеÑÑов подклÑÑениÑ
ÐÑли Ð²Ñ Ð¾Ð¿ÑеделиÑе ÑвойÑÑва ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ð² Ñайле конÑигÑÑаÑии pg_probackup.conf, Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе не ÑказÑваÑÑ Ð¿Ð°ÑамеÑÑÑ ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ð²Ð¾ вÑеÑ
поÑледÑÑÑиÑ
командаÑ
pg_probackup. Ðднако еÑли ÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ñ ÑооÑвеÑÑÑвÑÑÑие пеÑеменнÑе окÑÑжениÑ, они имеÑÑ Ð±Ð¾Ð»ÑÑий пÑиоÑиÑеÑ. ÐаÑамеÑÑÑ, заданнÑе в командной ÑÑÑоке, пеÑеопÑеделÑÑÑ ÐºÐ°Ðº пеÑеменнÑе окÑÑжениÑ, Ñак и ÑвойÑÑва в Ñайле конÑигÑÑаÑии.
ÐÑли не задано ниÑего, иÑполÑзÑÑÑÑÑ Ð·Ð½Ð°ÑÐµÐ½Ð¸Ñ Ð¿Ð¾ ÑмолÑаниÑ. Ð ÑаÑÑноÑÑи, pg_probackup пÑÑаеÑÑÑ Ð¿Ð¾Ð´ÐºÐ»ÑÑиÑÑÑÑ Ðº Unix-ÑокеÑÑ Ð»Ð¾ÐºÐ°Ð»Ñного ÑеÑвеÑа (или к localhost в Windows), а в каÑеÑÑве имени Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ
и имени полÑзоваÑÐµÐ»Ñ Ð²ÑбиÑÐ°ÐµÑ Ð·Ð½Ð°Ñение пеÑеменной окÑÑÐ¶ÐµÐ½Ð¸Ñ PGUSER либо Ð¸Ð¼Ñ ÑекÑÑего полÑзоваÑÐµÐ»Ñ ÐС.
УпÑавление каÑалогом ÑезеÑвнÑÑ ÐºÐ¾Ð¿Ð¸Ð¹
С помоÑÑÑ pg_probackup Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе ÑпÑавлÑÑÑ ÑезеÑвнÑми копиÑми в командной ÑÑÑоке:
ÐÑоÑмоÑÑ Ð¸Ð½ÑоÑмаÑии о ÑезеÑвнÑÑ ÐºÐ¾Ð¿Ð¸ÑÑ
ЧÑÐ¾Ð±Ñ Ð¿ÑоÑмоÑÑеÑÑ ÑпиÑок ÑÑÑеÑÑвÑÑÑÐ¸Ñ ÐºÐ¾Ð¿Ð¸Ð¹ Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ ÑкземплÑÑа, вÑполниÑе командÑ:
pg_probackup show -B каÑалог_копийpg_probackup вÑÐ²Ð¾Ð´Ð¸Ñ ÑпиÑок вÑÐµÑ Ð¸Ð¼ÐµÑÑÐ¸Ñ ÑÑ ÑезеÑвнÑÑ ÐºÐ¾Ð¿Ð¸Ð¹. ÐапÑимеÑ:
BACKUP INSTANCE 'node' ====================================================================================================================================== Instance Version ID Recovery time Mode WAL Mode TLI Time Data WAL Zratio Start LSN Stop LSN Status ====================================================================================================================================== node 10 PYSUE8 2019-10-03 15:51:48+03 FULL ARCHIVE 1/0 16s 9047kB 16MB 4.31 0/12000028 0/12000160 OK node 10 P7XDQV 2018-04-29 05:32:59+03 DELTA STREAM 1/1 11s 19MB 16MB 1.00 0/15000060 0/15000198 OK node 10 P7XDJA 2018-04-29 05:28:36+03 PTRACK STREAM 1/1 21s 32MB 32MB 1.00 0/13000028 0/13000198 OK node 10 P7XDHU 2018-04-29 05:27:59+03 PAGE STREAM 1/1 15s 33MB 16MB 1.00 0/11000028 0/110001D0 OK node 10 P7XDHB 2018-04-29 05:27:15+03 FULL STREAM 1/0 11s 39MB 16MB 1.00 0/F000028 0/F000198 OK
ÐÐ»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð¹ копии вÑдаÑÑÑÑ ÑледÑÑÑие ÑведениÑ:
Instanceâ Ð¸Ð¼Ñ ÑкземплÑÑа.Versionâ Ð±Ð°Ð·Ð¾Ð²Ð°Ñ Ð²ÐµÑÑÐ¸Ñ Postgres Pro.IDâ иденÑиÑикаÑÐ¾Ñ ÑезеÑвной копии.Recovery timeâ Ñамое Ñанее вÑемÑ, на коÑоÑое можно воÑÑÑановиÑÑ ÐºÐ»Ð°ÑÑÐµÑ Ð¸Ð· данной копии.Modeâ Ñежим, в коÑоÑом бÑла Ñделана копиÑ. ÐозможнÑе знаÑениÑ:FULL(полнаÑ),PAGE(ÑÑÑаниÑнаÑ),DELTA(инкÑеменÑалÑнаÑ),PTRACK(копиÑование изменений).WAL Modeâ Ñежим доÑÑавки WAL. ÐозможнÑе знаÑениÑ:STREAM(поÑоковÑй) иARCHIVE(аÑÑ Ð¸Ð²Ð½Ñй).TLIâ иденÑиÑикаÑоÑÑ Ð»Ð¸Ð½Ð¸Ð¸ вÑемени ÑекÑÑей копии и ÐµÑ ÑодиÑелÑ.Timeâ вÑемÑ, за коÑоÑое бÑла вÑполнена Ð´Ð°Ð½Ð½Ð°Ñ ÐºÐ¾Ð¿Ð¸Ñ.Dataâ обÑÑм Ñайлов даннÑÑ Ð² ÑÑой копии. ÐÑо знаÑение не вклÑÑÐ°ÐµÑ Ð² ÑÐµÐ±Ñ Ð¾Ð±ÑÑм Ñайлов WAL. ÐÐ»Ñ ÐºÐ¾Ð¿Ð¸Ð¹, ÑделаннÑÑ Ð² Ñежиме STREAM, обÑий ÑÐ°Ð·Ð¼ÐµÑ Ð¼Ð¾Ð¶Ð½Ð¾ ÑаÑÑÑиÑаÑÑ, Ñложив знаÑениÑDataиWAL.WALâ ÑÐ°Ð·Ð¼ÐµÑ Ð½ÐµÑжаÑÑÑ Ñайлов WAL, коÑоÑÑе Ð´Ð¾Ð»Ð¶Ð½Ñ Ð±ÑÑÑ Ð¿ÑÐ¸Ð¼ÐµÐ½ÐµÐ½Ñ Ð² пÑоÑеÑÑе воÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ ÐºÐ¾Ð¿Ð¸Ð¸ Ð´Ð»Ñ Ð´Ð¾ÑÑÐ¸Ð¶ÐµÐ½Ð¸Ñ ÑоглаÑованного ÑоÑÑоÑниÑ.Zratioâ коÑÑÑиÑÐ¸ÐµÐ½Ñ ÑжаÑиÑ, вÑÑиÑленнÑй как оÑноÑение «uncompressed-bytes» (обÑÑм неÑжаÑÑÑ Ð´Ð°Ð½Ð½ÑÑ Ð² байÑÐ°Ñ ) к «data-bytes» (иÑоговÑй обÑÑм даннÑÑ ).Start LSNâ поÑледоваÑелÑнÑй Ð½Ð¾Ð¼ÐµÑ Ð² жÑÑнале WAL, ÑооÑвеÑÑÑвÑÑÑий наÑÐ°Ð»Ñ Ð¿ÑоÑеÑÑа копиÑованиÑ. С ÑÑой позиÑии накаÑÑваÑÑÑÑ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ (REDO) в пÑоÑеÑÑе воÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Postgres Pro.Stop LSNâ поÑледоваÑелÑнÑй Ð½Ð¾Ð¼ÐµÑ Ð² жÑÑнале WAL, ÑооÑвеÑÑÑвÑÑÑий оконÑÐ°Ð½Ð¸Ñ Ð¿ÑоÑеÑÑа копиÑованиÑ. ÐÑо позиÑÐ¸Ñ ÑоÑки ÑоглаÑованноÑÑи пÑи воÑÑÑановлении Postgres Pro.Statusâ ÑоÑÑоÑние ÑезеÑвной копии. ÐозможнÑе ваÑианÑÑ:OKâ ÑезеÑÐ²Ð½Ð°Ñ ÐºÐ¾Ð¿Ð¸Ñ Ñделана и пÑигодна к иÑполÑзованиÑ.DONEâ ÑезеÑÐ²Ð½Ð°Ñ ÐºÐ¾Ð¿Ð¸Ñ Ñделана, но не пÑовеÑена.RUNNINGâ ÑезеÑвное копиÑование вÑполнÑеÑÑÑ.MERGINGâ ÑезеÑÐ²Ð½Ð°Ñ ÐºÐ¾Ð¿Ð¸Ñ Ð¾Ð±ÑединÑеÑÑÑ.MERGEDâ ÑÐ°Ð¹Ð»Ñ ÑезеÑвной копии бÑли ÑÑпеÑно обÑабоÑÐ°Ð½Ñ Ð² пÑоÑеÑÑе обÑÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ ÐºÐ¾Ð¿Ð¸Ð¹, но ÐµÑ Ð¼ÐµÑаданнÑе еÑÑ Ð¸Ð·Ð¼ÐµÐ½ÑÑÑÑÑ. ÐÑо ÑоÑÑоÑние могÑÑ Ð¸Ð¼ÐµÑÑ ÑолÑко полнÑе ÑезеÑвнÑе копии.DELETINGâ ÑÐ°Ð¹Ð»Ñ ÑезеÑвной копии ÑдалÑÑÑÑÑ.CORRUPTâ некоÑоÑÑе ÑÐ°Ð¹Ð»Ñ ÑезеÑвной копии повÑежденÑ.ERRORâ ÑезеÑвное копиÑование бÑло пÑеÑвано из-за неожиданной оÑибки.ORPHANâ ÑезеÑÐ²Ð½Ð°Ñ ÐºÐ¾Ð¿Ð¸Ñ Ð½ÐµÐ¿Ñигодна к иÑполÑзованиÑ, Ñак как ÐµÑ ÑодиÑелÑÑÐºÐ°Ñ ÐºÐ¾Ð¿Ð¸Ñ Ð¸ÑпоÑÑена или оÑÑÑÑÑÑвÑеÑ.HIDDEN_FOR_TESTâ ÑкÑÐ¸Ð¿Ñ ÑеÑÑа помеÑил ÐºÐ¾Ð¿Ð¸Ñ ÐºÐ°Ðº неÑÑÑеÑÑвÑÑÑÑÑ. (СобÑÑвенно pg_probackup никогда не ÑÑÑÐ°Ð½Ð°Ð²Ð»Ð¸Ð²Ð°ÐµÑ ÑÑо ÑоÑÑоÑние.)
ÐоÑÑÑановиÑÑ ÐºÐ»Ð°ÑÑÐµÑ Ð¸Ð· копии можно ÑолÑко Ð´Ð»Ñ ÐºÐ¾Ð¿Ð¸Ð¹ Ñ ÑоÑÑоÑнием OK или DONE.
ЧÑÐ¾Ð±Ñ Ð¿Ð¾Ð»ÑÑиÑÑ Ð±Ð¾Ð»ÐµÐµ подÑобнÑÑ Ð¸Ð½ÑоÑмаÑÐ¸Ñ Ð¾ копии, ÑкажиÑе в команде show ÐµÑ Ð¸Ð´ÐµÐ½ÑиÑикаÑоÑ:
pg_probackup show -BкаÑалог_копий--instanceимÑ_ÑкземплÑÑа-iид_ÑезеÑвной_копии
ÐÑÐ¸Ð¼ÐµÑ Ð²Ñвода:
#Configuration backup-mode = FULL stream = false compress-alg = zlib compress-level = 1 from-replica = false #Compatibility block-size = 8192 wal-block-size = 8192 checksum-version = 1 program-version = 2.1.3 server-version = 10 #Result backup info timelineid = 1 start-lsn = 0/04000028 stop-lsn = 0/040000f8 start-time = '2017-05-16 12:57:29' end-time = '2017-05-16 12:57:31' recovery-xid = 597 recovery-time = '2017-05-16 12:57:31' expire-time = '2020-05-16 12:57:31' data-bytes = 22288792 wal-bytes = 16777216 uncompressed-bytes = 39961833 pgdata-bytes = 39859393 status = OK parent-backup-id = 'PT8XFX' primary_conninfo = 'user=backup passfile=/var/lib/pgsql/.pgpass port=5432 sslmode=disable sslcompression=1 target_session_attrs=any'
Ð ÑаÑÑиÑенном вÑводе пÑедÑÑÐ°Ð²Ð»ÐµÐ½Ñ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸ÑелÑнÑе аÑÑибÑÑÑ:
compress-algâ алгоÑиÑм ÑжаÑиÑ, иÑполÑзÑемÑй пÑи полÑÑении ÑезеÑвной копии. ÐозможнÑе знаÑениÑ:zlib,pglzиnone(ÑжаÑие не пÑоизводилоÑÑ).compress-levelâ ÑÑÐ¾Ð²ÐµÐ½Ñ ÑжаÑиÑ, пÑименÑемÑй в пÑоÑеÑÑе ÑезеÑвного копиÑованиÑ.from-replicaâ пÑизнак Ñого, ÑÑо ÐºÐ¾Ð¿Ð¸Ñ Ð±Ñла Ñделана Ñ Ð²ÐµÐ´Ð¾Ð¼Ð¾Ð³Ð¾ ÑеÑвеÑа. ÐозможнÑе знаÑениÑ:1,0.block-sizeâ знаÑение паÑамеÑÑа block_size, ÑÑÑановленное в клаÑÑеÑе Postgres Pro, Ñ ÐºÐ¾ÑоÑого бÑла Ñделана копиÑ.checksum-versionâ пÑизнак вклÑÑÐµÐ½Ð¸Ñ Ð¿Ð°ÑамеÑÑа data_checksums в иÑÑ Ð¾Ð´Ð½Ð¾Ð¼ клаÑÑеÑе Postgres Pro. ÐозможнÑе знаÑениÑ:1,0.program-versionâ Ð¿Ð¾Ð»Ð½Ð°Ñ Ð²ÐµÑÑÐ¸Ñ Ð¿ÑогÑÐ°Ð¼Ð¼Ñ pg_probackup, коÑоÑÐ°Ñ Ñоздала ÑÑÑ ÐºÐ¾Ð¿Ð¸Ñ.start-timeâ вÑÐµÐ¼Ñ Ð½Ð°Ñала ÑезеÑвного копиÑованиÑ.end-timeâ вÑÐµÐ¼Ñ Ð¾ÐºÐ¾Ð½ÑÐ°Ð½Ð¸Ñ ÑезеÑвного копиÑованиÑ.expire-timeâ вÑемÑ, когда закÑеплÑÐ½Ð½Ð°Ñ ÐºÐ¾Ð¿Ð¸Ñ Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð»Ð¸ÐºÐ²Ð¸Ð´Ð¸Ñована в ÑооÑвеÑÑÑвии Ñ Ð¿Ð¾Ð»Ð¸Ñикой Ñ ÑанениÑ. ÐÑÐ¾Ñ Ð°ÑÑибÑÑ Ð¸Ð¼ÐµÐµÑÑÑ ÑолÑко Ñ Ð·Ð°ÐºÑеплÑннÑÑ ÐºÐ¾Ð¿Ð¸Ð¹.uncompressed-bytesâ ÑÐ°Ð·Ð¼ÐµÑ Ñайлов даннÑÑ Ð´Ð¾ Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÐ¾Ð² ÑÑÑÐ°Ð½Ð¸Ñ Ð¸ ÑжаÑиÑ. Ð ÑлÑÑае иÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ ÑжаÑÐ¸Ñ Ð¾ÑениÑÑ ÐµÐ³Ð¾ ÑÑÑекÑивноÑÑÑ Ð¼Ð¾Ð¶Ð½Ð¾, ÑопоÑÑавив обÑÑмuncompressed-bytes(байÑов неÑжаÑÑÑ Ð´Ð°Ð½Ð½ÑÑ ) Ñdata-bytes(байÑов даннÑÑ ).pgdata-bytesâ ÑÐ°Ð·Ð¼ÐµÑ Ñайлов даннÑÑ Postgres Pro на Ð¼Ð¾Ð¼ÐµÐ½Ñ ÐºÐ¾Ð¿Ð¸ÑованиÑ. ÐÑÑекÑивноÑÑÑ Ð¸Ð½ÐºÑеменÑалÑного меÑода копиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð¼Ð¾Ð¶Ð½Ð¾ оÑениÑÑ, ÑопоÑÑавив обÑÑмpgdata-bytes(байÑов в PGDATA) Ñuncompressed-bytes(байÑов неÑжаÑÑÑ Ð´Ð°Ð½Ð½ÑÑ ).recovery-xidâ иденÑиÑикаÑÐ¾Ñ ÑÑанзакÑии, ÑооÑвеÑÑÑвÑÑÑей моменÑÑ Ð¾ÐºÐ¾Ð½ÑÐ°Ð½Ð¸Ñ ÑезеÑвного копиÑованиÑ.parent-backup-idâ иденÑиÑикаÑÐ¾Ñ ÑодиÑелÑÑкой копии. ÐпÑеделÑн ÑолÑко Ð´Ð»Ñ Ð¸Ð½ÐºÑеменÑалÑнÑÑ ÐºÐ¾Ð¿Ð¸Ð¹.primary_conninfoâ паÑамеÑÑÑ Ð¿Ð¾Ð´ÐºÐ»ÑÑÐµÐ½Ð¸Ñ libpq, Ñ Ð¸ÑполÑзованием коÑоÑÑÑ Ð¿ÑоизводилоÑÑ Ð¿Ð¾Ð´ÐºÐ»ÑÑение к клаÑÑеÑÑ Postgres Pro Ð´Ð»Ñ Ð¿Ð¾Ð»ÑÑÐµÐ½Ð¸Ñ ÑÑой ÑезеÑвной копии. ÐаÑÐ¾Ð»Ñ Ð² ÑÑи паÑамеÑÑÑ Ð½Ðµ вклÑÑаеÑÑÑ.noteâ ÑекÑÑовое пÑимеÑание, ÑвÑзанное Ñ ÐºÐ¾Ð¿Ð¸ÐµÐ¹.content-crcâ конÑÑолÑÐ½Ð°Ñ ÑÑмма Ñайлаbackup_content.control, ÑаÑÑÑиÑÐ°Ð½Ð½Ð°Ñ Ð¿Ð¾ алгоÑиÑÐ¼Ñ CRC32. Ðна позволÑÐµÑ Ð²ÑÑвиÑÑ Ð¿Ð¾Ð²Ñеждение меÑаданнÑÑ ÐºÐ¾Ð¿Ð¸Ð¸.
ÐÑ Ñакже можеÑе полÑÑиÑÑ Ð¿Ð¾Ð´ÑобнÑÑ Ð¸Ð½ÑоÑмаÑÐ¸Ñ Ð¾ ÑезеÑвной копии в ÑоÑмаÑе JSON:
pg_probackup show -BкаÑалог_копий--instanceимÑ_ÑкземплÑÑа--format=json -i backup_id
ÐÑÐ¸Ð¼ÐµÑ Ð²Ñвода:
[
{
"instance": "node",
"backups": [
{
"id": "PT91HZ",
"parent-backup-id": "PT8XFX",
"backup-mode": "DELTA",
"wal": "ARCHIVE",
"compress-alg": "zlib",
"compress-level": 1,
"from-replica": false,
"block-size": 8192,
"xlog-block-size": 8192,
"checksum-version": 1,
"program-version": "2.1.3",
"server-version": "10",
"current-tli": 16,
"parent-tli": 2,
"start-lsn": "0/8000028",
"stop-lsn": "0/8000160",
"start-time": "2019-06-17 18:25:11+03",
"end-time": "2019-06-17 18:25:16+03",
"recovery-xid": 0,
"recovery-time": "2019-06-17 18:25:15+03",
"data-bytes": 106733,
"wal-bytes": 16777216,
"primary_conninfo": "user=backup passfile=/var/lib/pgsql/.pgpass port=5432 sslmode=disable sslcompression=1 target_session_attrs=any",
"status": "OK"
}
]
}
]ÐÑоÑмоÑÑ Ð¾Ð³Ð»Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð°ÑÑ Ð¸Ð²Ð° WAL
ЧÑÐ¾Ð±Ñ Ð¿Ð¾Ð»ÑÑиÑÑ Ð¸Ð½ÑоÑмаÑÐ¸Ñ Ð¾Ð± аÑÑ Ð¸Ð²Ðµ WAL Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ ÑкземплÑÑа, вÑполниÑе командÑ:
pg_probackup show -BкаÑалог_копий[--instanceимÑ_ÑкземплÑÑа] --archive
pg_probackup вÑÐ²Ð¾Ð´Ð¸Ñ ÑпиÑок вÑÐµÑ Ð¸Ð¼ÐµÑÑÐ¸Ñ ÑÑ Ñайлов WAL, ÑгÑÑппиÑованнÑÑ Ð¿Ð¾ линиÑм вÑемени. ÐапÑимеÑ:
ARCHIVE INSTANCE 'node' =================================================================================================================================== TLI Parent TLI Switchpoint Min Segno Max Segno N segments Size Zratio N backups Status =================================================================================================================================== 5 1 0/B000000 00000005000000000000000B 00000005000000000000000C 2 685kB 48.00 0 OK 4 3 0/18000000 000000040000000000000018 00000004000000000000001A 3 648kB 77.00 0 OK 3 2 0/15000000 000000030000000000000015 000000030000000000000017 3 648kB 77.00 0 OK 2 1 0/B000108 00000002000000000000000B 000000020000000000000015 5 892kB 94.00 1 DEGRADED 1 0 0/0 000000010000000000000001 00000001000000000000000A 10 8774kB 19.00 1 OK
ÐÐ»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð¹ линии вÑемени вÑдаÑÑÑÑ ÑледÑÑÑие ÑведениÑ:
TLIâ иденÑиÑикаÑÐ¾Ñ Ð»Ð¸Ð½Ð¸Ð¸ вÑемени.Parent TLIâ иденÑиÑикаÑÐ¾Ñ Ð»Ð¸Ð½Ð¸Ð¸ вÑемени, Ð¾Ñ ÐºÐ¾ÑоÑой бÑла оÑвеÑвлена даннаÑ.Switchpointâ LSN моменÑа, когда ÑÑа Ð»Ð¸Ð½Ð¸Ñ Ð²Ñемени оÑвеÑвилаÑÑ Ð¾Ñ ÑодиÑелÑÑкой.Min Segnoâ пеÑвÑй ÑÐµÐ³Ð¼ÐµÐ½Ñ WAL, оÑноÑÑÑийÑÑ Ðº ÑÑой линии вÑемени.Max Segnoâ поÑледний ÑÐµÐ³Ð¼ÐµÐ½Ñ WAL, оÑноÑÑÑийÑÑ Ðº ÑÑой линии вÑемени.N segmentsâ колиÑеÑÑво ÑегменÑов WAL, оÑноÑÑÑÐ¸Ñ ÑÑ Ðº ÑÑой линии вÑемени.Sizeâ обÑÑм, коÑоÑÑй занимаÑÑ ÑÐ°Ð¹Ð»Ñ Ð½Ð° диÑке.Zratioâ коÑÑÑиÑÐ¸ÐµÐ½Ñ ÑжаÑиÑ, вÑÑиÑлÑемÑй по ÑоÑмÑлеN segments*wal_segment_size*wal_block_size/Size.N backupsâ ÑиÑло копий, оÑноÑÑÑÐ¸Ñ ÑÑ Ðº ÑÑой линии вÑемени. ÐÐ»Ñ Ð¿Ð¾Ð»ÑÑÐµÐ½Ð¸Ñ Ð¿Ð¾Ð´ÑобнÑÑ Ñведений об ÑÑÐ¸Ñ ÐºÐ¾Ð¿Ð¸ÑÑ Ð²Ð¾ÑполÑзÑйÑеÑÑ ÑоÑмаÑом JSON.Statusâ ÑоÑÑоÑние аÑÑ Ð¸Ð²Ð° WAL Ð´Ð»Ñ ÑÑой линии вÑемени. ÐозможнÑе знаÑениÑ:OKâ в аÑÑ Ð¸Ð²Ðµ пÑиÑÑÑÑÑвÑÑÑ Ð²Ñе ÑегменÑÑ WAL междÑMin SegnoиMax Segno.DEGRADEDâ некоÑоÑÑе ÑегменÑÑ WAL в инÑеÑвале междÑMin SegnoиMax SegnoоÑÑÑÑÑÑвÑÑÑ. ÐонÑÑÑ, какие именно, можно, полÑÑив оÑÑÑÑ Ð² ÑоÑмаÑе JSON.
ЧÑÐ¾Ð±Ñ Ð¿Ð¾Ð»ÑÑиÑÑ Ð±Ð¾Ð»ÐµÐµ подÑобнÑÑ Ð¸Ð½ÑоÑмаÑÐ¸Ñ Ð¾Ð± аÑÑ Ð¸Ð²Ðµ WAL в ÑоÑмаÑе JSON, вÑполниÑе командÑ:
pg_probackup show -BкаÑалог_копий[--instanceимÑ_ÑкземплÑÑа] --archive --format=json
ÐÑÐ¸Ð¼ÐµÑ Ð²Ñвода:
[
{
"instance": "replica",
"timelines": [
{
"tli": 5,
"parent-tli": 1,
"switchpoint": "0/B000000",
"min-segno": "00000005000000000000000B",
"max-segno": "00000005000000000000000C",
"n-segments": 2,
"size": 685320,
"zratio": 48.00,
"closest-backup-id": "PXS92O",
"status": "OK",
"lost-segments": [],
"backups": []
},
{
"tli": 4,
"parent-tli": 3,
"switchpoint": "0/18000000",
"min-segno": "000000040000000000000018",
"max-segno": "00000004000000000000001A",
"n-segments": 3,
"size": 648625,
"zratio": 77.00,
"closest-backup-id": "PXS9CE",
"status": "OK",
"lost-segments": [],
"backups": []
},
{
"tli": 3,
"parent-tli": 2,
"switchpoint": "0/15000000",
"min-segno": "000000030000000000000015",
"max-segno": "000000030000000000000017",
"n-segments": 3,
"size": 648911,
"zratio": 77.00,
"closest-backup-id": "PXS9CE",
"status": "OK",
"lost-segments": [],
"backups": []
},
{
"tli": 2,
"parent-tli": 1,
"switchpoint": "0/B000108",
"min-segno": "00000002000000000000000B",
"max-segno": "000000020000000000000015",
"n-segments": 5,
"size": 892173,
"zratio": 94.00,
"closest-backup-id": "PXS92O",
"status": "DEGRADED",
"lost-segments": [
{
"begin-segno": "00000002000000000000000D",
"end-segno": "00000002000000000000000E"
},
{
"begin-segno": "000000020000000000000010",
"end-segno": "000000020000000000000012"
}
],
"backups": [
{
"id": "PXS9CE",
"backup-mode": "FULL",
"wal": "ARCHIVE",
"compress-alg": "none",
"compress-level": 1,
"from-replica": "false",
"block-size": 8192,
"xlog-block-size": 8192,
"checksum-version": 1,
"program-version": "2.1.5",
"server-version": "10",
"current-tli": 2,
"parent-tli": 0,
"start-lsn": "0/C000028",
"stop-lsn": "0/C000160",
"start-time": "2019-09-13 21:43:26+03",
"end-time": "2019-09-13 21:43:30+03",
"recovery-xid": 0,
"recovery-time": "2019-09-13 21:43:29+03",
"data-bytes": 104674852,
"wal-bytes": 16777216,
"primary_conninfo": "user=backup passfile=/var/lib/pgsql/.pgpass port=5432 sslmode=disable sslcompression=1 target_session_attrs=any",
"status": "OK"
}
]
},
{
"tli": 1,
"parent-tli": 0,
"switchpoint": "0/0",
"min-segno": "000000010000000000000001",
"max-segno": "00000001000000000000000A",
"n-segments": 10,
"size": 8774805,
"zratio": 19.00,
"closest-backup-id": "",
"status": "OK",
"lost-segments": [],
"backups": [
{
"id": "PXS92O",
"backup-mode": "FULL",
"wal": "ARCHIVE",
"compress-alg": "none",
"compress-level": 1,
"from-replica": "true",
"block-size": 8192,
"xlog-block-size": 8192,
"checksum-version": 1,
"program-version": "2.1.5",
"server-version": "10",
"current-tli": 1,
"parent-tli": 0,
"start-lsn": "0/4000028",
"stop-lsn": "0/6000028",
"start-time": "2019-09-13 21:37:36+03",
"end-time": "2019-09-13 21:38:45+03",
"recovery-xid": 0,
"recovery-time": "2019-09-13 21:37:30+03",
"data-bytes": 25987319,
"wal-bytes": 50331648,
"primary_conninfo": "user=backup passfile=/var/lib/pgsql/.pgpass port=5432 sslmode=disable sslcompression=1 target_session_attrs=any",
"status": "OK"
}
]
}
]
},
{
"instance": "master",
"timelines": [
{
"tli": 1,
"parent-tli": 0,
"switchpoint": "0/0",
"min-segno": "000000010000000000000001",
"max-segno": "00000001000000000000000B",
"n-segments": 11,
"size": 8860892,
"zratio": 20.00,
"status": "OK",
"lost-segments": [],
"backups": [
{
"id": "PXS92H",
"parent-backup-id": "PXS92C",
"backup-mode": "PAGE",
"wal": "ARCHIVE",
"compress-alg": "none",
"compress-level": 1,
"from-replica": "false",
"block-size": 8192,
"xlog-block-size": 8192,
"checksum-version": 1,
"program-version": "2.1.5",
"server-version": "10",
"current-tli": 1,
"parent-tli": 1,
"start-lsn": "0/4000028",
"stop-lsn": "0/50000B8",
"start-time": "2019-09-13 21:37:29+03",
"end-time": "2019-09-13 21:37:31+03",
"recovery-xid": 0,
"recovery-time": "2019-09-13 21:37:30+03",
"data-bytes": 1328461,
"wal-bytes": 33554432,
"primary_conninfo": "user=backup passfile=/var/lib/pgsql/.pgpass port=5432 sslmode=disable sslcompression=1 target_session_attrs=any",
"status": "OK"
},
{
"id": "PXS92C",
"backup-mode": "FULL",
"wal": "ARCHIVE",
"compress-alg": "none",
"compress-level": 1,
"from-replica": "false",
"block-size": 8192,
"xlog-block-size": 8192,
"checksum-version": 1,
"program-version": "2.1.5",
"server-version": "10",
"current-tli": 1,
"parent-tli": 0,
"start-lsn": "0/2000028",
"stop-lsn": "0/2000160",
"start-time": "2019-09-13 21:37:24+03",
"end-time": "2019-09-13 21:37:29+03",
"recovery-xid": 0,
"recovery-time": "2019-09-13 21:37:28+03",
"data-bytes": 24871902,
"wal-bytes": 16777216,
"primary_conninfo": "user=backup passfile=/var/lib/pgsql/.pgpass port=5432 sslmode=disable sslcompression=1 target_session_attrs=any",
"status": "OK"
}
]
}
]
}
]РоÑновном в ÑÑом ÑоÑмаÑе пÑедÑÑÐ°Ð²Ð»ÐµÐ½Ñ Ñе же полÑ, ÑÑо и в ÑекÑÑовом ÑоÑмаÑе, Ñ Ð½ÐµÐºÐ¾ÑоÑÑми иÑклÑÑениÑми:
Ð Ð°Ð·Ð¼ÐµÑ Ð²ÑÑажаеÑÑÑ Ð² байÑÐ°Ñ .
ÐÑÑибÑÑ
closest-backup-idÑодеÑÐ¶Ð¸Ñ Ð¸Ð´ÐµÐ½ÑиÑикаÑÐ¾Ñ Ñамой поÑледней доÑÑÑпной копии, пÑинадлежаÑей к одной из пÑедÑдÑÑÐ¸Ñ Ð»Ð¸Ð½Ð¸Ð¹ вÑемени. ÐÑ Ð¼Ð¾Ð¶ÐµÑе иÑполÑзоваÑÑ ÑÑÑ ÐºÐ¾Ð¿Ð¸Ñ Ð´Ð»Ñ Ð²Ð¾ÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð½Ð° моменÑ, оÑноÑÑÑийÑÑ Ðº ÑÑой линии вÑемени. ÐÑли Ñакой копии не ÑÑÑеÑÑвÑеÑ, даннÑй аÑÑибÑÑ Ð±ÑÐ´ÐµÑ Ð¿ÑÑÑÑм.РмаÑÑиве
lost-segmentsпÑедÑÑÐ°Ð²Ð»ÐµÐ½Ñ Ð¸Ð½ÑеÑÐ²Ð°Ð»Ñ Ð¾ÑÑÑÑÑÑвÑÑÑÐ¸Ñ ÑегменÑов на линиÑÑ Ð²Ñемени в непÑигодном ÑоÑÑоÑнии (DEGRADED). Ðа линиÑÑ Ð²Ñемени в ÑелоÑÑном ÑоÑÑоÑнииOKмаÑÑивlost-segmentsпÑÑÑ.РмаÑÑиве
backupsпеÑеÑиÑлÑÑÑÑÑ Ð²Ñе ÑезеÑвнÑе копии, оÑноÑÑÑиеÑÑ Ðº данной линии вÑемени. ÐÑли к линии вÑемени не оÑноÑÑÑÑÑ ÑезеÑвнÑе копии, ÑÑÐ¾Ñ Ð¼Ð°ÑÑив пÑÑÑ.
ÐаÑÑÑойка полиÑики Ñ ÑанениÑ
ÐÑполÑзÑÑ pg_probackup, Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе ÑеализоваÑÑ Ð¿Ð¾Ð»Ð¸Ñики Ñ ÑÐ°Ð½ÐµÐ½Ð¸Ñ ÑезеÑвнÑÑ ÐºÐ¾Ð¿Ð¸Ð¹, в ÑооÑвеÑÑÑвии Ñ ÐºÐ¾ÑоÑÑми могÑÑ ÑдалÑÑÑÑÑ Ð»Ð¸Ñние копии, оÑиÑаÑÑÑÑ Ð½ÐµÐ½ÑжнÑе ÑегменÑÑ WAL. ÐÑоме Ñого, можно закÑеплÑÑÑ Ð¾Ð¿ÑеделÑннÑе копии, ÑÑÐ¾Ð±Ñ Ð¾Ð½Ð¸ ÑÐ¾Ñ ÑанÑлиÑÑ Ð½ÐµÐ·Ð°Ð²Ð¸Ñимо Ð¾Ñ Ð¿Ð¾Ð»Ð¸Ñики, как опиÑано ниже. ÐÑи Ð¿Ð¾Ð´Ñ Ð¾Ð´Ñ Ð¼Ð¾Ð¶Ð½Ð¾ комбиниÑоваÑÑ Ð¿ÑоизволÑнÑм обÑазом.
Удаление ненÑжнÑÑ ÐºÐ¾Ð¿Ð¸Ð¹
Ðо ÑмолÑÐ°Ð½Ð¸Ñ Ð²Ñе ÑезеÑвнÑе копии, коÑоÑÑе ÑоздаÑÑ pg_probackup, ÑÐ¾Ñ ÑанÑÑÑÑÑ Ð² пÑедназнаÑенном Ð´Ð»Ñ Ð½Ð¸Ñ ÐºÐ°Ñалоге. ÐÐ»Ñ Ñкономии диÑкового пÑоÑÑÑанÑÑва Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе наÑÑÑоиÑÑ Ð¿Ð¾Ð»Ð¸ÑÐ¸ÐºÑ ÑÐ¾Ñ ÑÐ°Ð½ÐµÐ½Ð¸Ñ ÐºÐ¾Ð¿Ð¸Ð¹, ÑÑÐ¾Ð±Ñ Ð½ÐµÐ½ÑжнÑе копии ÑдалÑлиÑÑ.
ЧÑÐ¾Ð±Ñ Ð½Ð°ÑÑÑоиÑÑ Ð¿Ð¾Ð»Ð¸ÑÐ¸ÐºÑ Ñ
ÑанениÑ, задайÑе Ð¾Ð´Ð½Ñ Ð¸Ð»Ð¸ неÑколÑко ÑледÑÑÑиÑ
пеÑеменнÑÑ
в Ñайле pg_probackup.conf Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ set-config:
--retention-redundancy=избÑÑоÑноÑÑÑÐпÑеделÑÐµÑ ÐºÐ¾Ð»Ð¸ÑеÑÑво полнÑÑ ÑезеÑвнÑÑ ÐºÐ¾Ð¿Ð¸Ð¹, коÑоÑое должно ÑÐ¾Ñ ÑанÑÑÑÑÑ Ð² каÑалоге копий.
--retention-window=окноÐпÑеделÑÐµÑ ÑамÑй Ñанний Ð¼Ð¾Ð¼ÐµÐ½Ñ Ð²Ñемени, на коÑоÑÑй pg_probackup Ð¼Ð¾Ð¶ÐµÑ Ð²ÑполниÑÑ Ð²Ð¾ÑÑÑановление. Ð ÑÑом паÑамеÑÑе задаÑÑÑÑ ÐºÐ¾Ð»Ð¸ÑеÑÑво дней Ð¾Ñ ÑекÑÑего моменÑа. ÐапÑимеÑ, еÑли retention-window=7, должна ÑоÑ
ÑаниÑÑÑÑ Ð¼Ð¸Ð½Ð¸Ð¼Ñм одна ÐºÐ¾Ð¿Ð¸Ñ ÑÑаÑее 7 дней, вмеÑÑе Ñ ÑооÑвеÑÑÑвÑÑÑими Ñайлами WAL и вÑеми поÑледÑÑÑими копиÑми.
ÐÑли ÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ñ Ð¿Ð°ÑамеÑÑÑ --retention-redundancy и --retention-window, пÑи оÑиÑÑке каÑалога Ð¾Ñ Ð½ÐµÐ½ÑжнÑÑ
копий пÑинимаÑÑÑÑ Ð²Ð¾ внимание оба заданнÑÑ
ими ÑÑловиÑ. ÐапÑимеÑ, еÑли задаÑÑ Ð¿Ð°ÑамеÑÑÑ --retention-redundancy=2 и --retention-window=7, пÑогÑамма pg_probackup должна ÑоÑ
ÑаниÑÑ Ð´Ð²Ðµ полнÑе ÑезеÑвнÑе копии, а Ñакже вÑе копии, необÑ
одимÑе Ð´Ð»Ñ Ð²Ð¾ÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð´Ð°Ð½Ð½ÑÑ
, за поÑледние ÑÐµÐ¼Ñ Ð´Ð½ÐµÐ¹:
pg_probackup set-config -BкаÑалог_копий--instanceимÑ_ÑкземплÑÑа--retention-redundancy=2 --retention-window=7
ЧÑÐ¾Ð±Ñ Ð¾ÑиÑÑиÑÑ ÐºÐ°Ñалог копий в ÑооÑвеÑÑÑвии Ñ Ð¿Ð¾Ð»Ð¸Ñикой Ñ ÑанениÑ, нÑжно запÑÑÑиÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ delete Ñ Ñлагами ÑÐ¾Ñ ÑанениÑ, как показано ниже, или вÑполниÑÑ Ñ ÑÑими Ñлагами ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ backup. РпоÑледнем ÑлÑÑае ненÑжнÑе копии бÑдÑÑ ÑÐ´Ð°Ð»ÐµÐ½Ñ ÑÑÐ°Ð·Ñ Ð¿Ð¾Ñле ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð½Ð¾Ð²Ð¾Ð¹ копии.
ÐапÑимеÑ, ÑÑÐ¾Ð±Ñ ÑдалиÑÑ Ð²Ñе ÑезеÑвнÑе копии, ÑÑиÑаÑÑиеÑÑ Ð½ÐµÐ½ÑжнÑми ÑоглаÑно ÑÑÑановленной полиÑике Ñ
ÑанениÑ, нÑжно вÑполниÑÑ ÑледÑÑÑÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ Ñ Ñлагом --delete-expired:
pg_probackup delete -BкаÑалог_копий--instanceимÑ_ÑкземплÑÑа--delete-expired
ÐÑли Ð²Ñ Ñ
оÑиÑе Ñакже ÑдалиÑÑ ÑÐ°Ð¹Ð»Ñ WAL, коÑоÑÑе болÑÑе не ÑÑебÑÑÑÑÑ Ð½Ð¸ Ð´Ð»Ñ ÐºÐ°ÐºÐ¸Ñ
копий, ÑкажиÑе дополниÑелÑно --delete-wal:
pg_probackup delete -BкаÑалог_копий--instanceимÑ_ÑкземплÑÑа--delete-expired --delete-wal
ÐÑ Ñакже можеÑе ÑÑÑановиÑÑ Ð¸Ð»Ð¸ пеÑеопÑеделиÑÑ ÑекÑÑÑÑ Ð¿Ð¾Ð»Ð¸ÑÐ¸ÐºÑ Ñ
ÑанениÑ, добавив паÑамеÑÑÑ --retention-redundancy и --retention-window непоÑÑедÑÑвенно пÑи вÑполнении команд delete или backup:
pg_probackup delete -BкаÑалог_копий--instanceимÑ_ÑкземплÑÑа--delete-expired --retention-window=7 --retention-redundancy=2
Так как Ð´Ð»Ñ Ð¸Ð½ÐºÑеменÑалÑнÑÑ
копий ÑÑебÑеÑÑÑ Ð½Ð°Ð»Ð¸Ñие вÑеÑ
ÑодиÑелÑÑкиÑ
полнÑÑ
копий и вÑеÑ
пÑедÑдÑÑиÑ
инкÑеменÑалÑнÑÑ
копий, даже по иÑÑеÑении ÑÑока иÑ
Ñ
ÑÐ°Ð½ÐµÐ½Ð¸Ñ ÑÑи копии нелÑÐ·Ñ ÑдалиÑÑ, пока минимÑм одна инкÑеменÑалÑÐ½Ð°Ñ ÐºÐ¾Ð¿Ð¸Ñ Ð² ÑепоÑке ÑдовлеÑвоÑÑÐµÑ Ð¿Ð¾Ð»Ð¸Ñике Ñ
ÑанениÑ. ЧÑÐ¾Ð±Ñ Ð½Ðµ Ñ
ÑаниÑÑ ÑÑÑаÑевÑие копии, коÑоÑÑе вÑÑ ÐµÑÑ Ð½ÑÐ¶Ð½Ñ Ð´Ð»Ñ Ð²Ð¾ÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð½Ñжной инкÑеменÑалÑной копии, Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе обÑединиÑÑ Ð¸Ñ
Ñ Ð½ÐµÐ¹, воÑполÑзовавÑиÑÑ ÐºÐ»ÑÑом --merge-expired ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ backup или delete.
ÐÑедположим, ÑÑо Ð²Ñ Ð·Ð°Ð°ÑÑ
ивиÑовали ÑкземплÑÑ node в каÑалог_копий Ñо знаÑением паÑамеÑÑа --retention-window, ÑавнÑм 7, и на 10 апÑÐµÐ»Ñ 2019 г. Ñ Ð²Ð°Ñ ÐµÑÑÑ ÑледÑÑÑие копии:
BACKUP INSTANCE 'node' =================================================================================================================================== Instance Version ID Recovery time Mode WAL TLI Time Data WAL Zratio Start LSN Stop LSN Status =================================================================================================================================== node 10 P7XDHR 2019-04-10 05:27:15+03 FULL STREAM 1/0 11s 200MB 16MB 1.0 0/18000059 0/18000197 OK node 10 P7XDQV 2019-04-08 05:32:59+03 PAGE STREAM 1/0 11s 19MB 16MB 1.0 0/15000060 0/15000198 OK node 10 P7XDJA 2019-04-03 05:28:36+03 DELTA STREAM 1/0 21s 32MB 16MB 1.0 0/13000028 0/13000198 OK -------------------------------------------------------retention window-------------------------------------------------------- node 10 P7XDHU 2019-04-02 05:27:59+03 PAGE STREAM 1/0 31s 33MB 16MB 1.0 0/11000028 0/110001D0 OK node 10 P7XDHB 2019-04-01 05:27:15+03 FULL STREAM 1/0 11s 200MB 16MB 1.0 0/F000028 0/F000198 OK node 10 P7XDFT 2019-03-29 05:26:25+03 FULL STREAM 1/0 11s 200MB 16MB 1.0 0/D000028 0/D000198 OK
ÐеÑмоÑÑÑ Ð½Ð° Ñо, ÑÑо копии P7XDHB и P7XDHU вÑÑ
одÑÑ Ð·Ð° Ñамки окна Ñ
ÑанениÑ, иÑ
нелÑÐ·Ñ ÑдалиÑÑ, Ñак как Ð¾Ñ Ð½Ð¸Ñ
завиÑÑÑ Ð¿Ð¾ÑледÑÑÑие инкÑеменÑалÑнÑе копии P7XDJA и P7XDQV, коÑоÑÑе вÑÑ ÐµÑÑ Ð½ÑжнÑ. ÐоÑÑомÑ, еÑли Ð²Ñ Ð²ÑполниÑе ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ delete Ñ ÐºÐ»ÑÑом --delete-expired, бÑÐ´ÐµÑ Ñдалена ÑолÑко Ð¿Ð¾Ð»Ð½Ð°Ñ ÐºÐ¾Ð¿Ð¸Ñ P7XDFT.
С клÑÑом --merge-expired ÑезеÑÐ²Ð½Ð°Ñ ÐºÐ¾Ð¿Ð¸Ñ P7XDJA обÑединÑеÑÑÑ Ñ Ð½Ð¸Ð¶ÐµÐ»ÐµÐ¶Ð°Ñими P7XDHU и P7XDHB и ÑÑановиÑÑÑ Ð¿Ð¾Ð»Ð½Ð¾Ð¹, поÑÑÐ¾Ð¼Ñ Ñ
ÑаниÑÑ Ð´Ð²Ðµ пÑедÑдÑÑие пÑоÑÑоÑеннÑе копии болÑÑе не нÑжно:
pg_probackup delete -BкаÑалог_копий--instance node --delete-expired --merge-expired pg_probackup show -BкаÑалог_копий
BACKUP INSTANCE 'node' ================================================================================================================================== Instance Version ID Recovery time Mode WAL TLI Time Data WAL Zratio Start LSN Stop LSN Status ================================================================================================================================== node 10 P7XDHR 2019-04-10 05:27:15+03 FULL STREAM 1/0 11s 200MB 16MB 1.0 0/18000059 0/18000197 OK node 10 P7XDQV 2019-04-08 05:32:59+03 PAGE STREAM 1/0 11s 19MB 16MB 1.0 0/15000060 0/15000198 OK node 10 P7XDJA 2019-04-03 05:28:36+03 FULL STREAM 1/0 21s 32MB 16MB 1.0 0/13000028 0/13000198 OK
Ðоле Time (ÐÑемÑ) Ð´Ð»Ñ Ð¾Ð±ÑединÑнной копии показÑÐ²Ð°ÐµÑ Ð²ÑемÑ, коÑоÑое занÑла пÑоÑедÑÑа обÑединениÑ.
ÐакÑепление ÑезеÑвнÑÑ ÐºÐ¾Ð¿Ð¸Ð¹
ÐÑли вам нÑжно Ñ ÑаниÑÑ Ð¾ÑделÑнÑе копии долÑÑе, Ñем допÑÑÐºÐ°ÐµÑ ÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ð°Ñ Ð¿Ð¾Ð»Ð¸Ñика Ñ ÑанениÑ, Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе дополниÑелÑно закÑепиÑÑ Ð¸Ñ Ð½Ð° опÑеделÑнное вÑемÑ. ÐапÑимеÑ:
pg_probackup set-backup -BкаÑалог_копий--instanceимÑ_ÑкземплÑÑа-iид_ÑезеÑвной_копии--ttl=30d
ÐÑа команда задаÑÑ ÑÑок Ñ
ÑÐ°Ð½ÐµÐ½Ð¸Ñ Ð·Ð°Ð´Ð°Ð½Ð½Ð¾Ð¹ ÑезеÑвной копии 30 дней, наÑÐ¸Ð½Ð°Ñ Ñ Ð¼Ð¾Ð¼ÐµÐ½Ñа, Ñказанного в аÑÑибÑÑе recovery-time ÑÑой копии.
ÐÑ Ñакже можеÑе Ñвно задаÑÑ Ð²ÑÐµÐ¼Ñ Ð¸ÑÑеÑÐµÐ½Ð¸Ñ ÑÑока Ñ
ÑÐ°Ð½ÐµÐ½Ð¸Ñ ÐºÐ¾Ð¿Ð¸Ð¸, воÑполÑзовавÑиÑÑ ÐºÐ»ÑÑом --expire-time. ÐапÑимеÑ:
pg_probackup set-backup -BкаÑалог_копий--instanceимÑ_ÑкземплÑÑа-iид_ÑезеÑвной_копии--expire-time="2020-01-01 00:00:00+03"
Также можно воÑполÑзоваÑÑÑÑ ÐºÐ»ÑÑами --ttl и --expire-time ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ backup и ÑÑÐ°Ð·Ñ Ð·Ð°ÐºÑепиÑÑ ÑоздаваемÑÑ ÐºÐ¾Ð¿Ð¸Ñ:
pg_probackup backup -BкаÑалог_копий--instanceимÑ_ÑкземплÑÑа-b FULL --ttl=30d pg_probackup backup -BкаÑалог_копий--instanceимÑ_ÑкземплÑÑа-b FULL --expire-time="2020-01-01 00:00:00+03"
ÐпÑеделиÑÑ, закÑеплена ли копиÑ, можно Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ show:
pg_probackup show -BкаÑалог_копий--instanceимÑ_ÑкземплÑÑа-iид_ÑезеÑвной_копии
ÐÑли ÐºÐ¾Ð¿Ð¸Ñ Ð·Ð°ÐºÑеплена, Ñ Ð½ÐµÑ ÐµÑÑÑ Ð°ÑÑибÑÑ expire-time, ÑодеÑжаÑий вÑÐµÐ¼Ñ Ð¾ÐºÐ¾Ð½ÑÐ°Ð½Ð¸Ñ ÑÑока ÐµÑ Ñ
ÑанениÑ:
... recovery-time = '2017-05-16 12:57:31' expire-time = '2020-01-01 00:00:00+03' data-bytes = 22288792 ...
ÐÑмениÑÑ Ð·Ð°ÐºÑепление копии можно, пеÑедав в паÑамеÑÑе --ttl нолÑ:
pg_probackup set-backup -BкаÑалог_копий--instanceимÑ_ÑкземплÑÑа-iид_ÑезеÑвной_копии--ttl=0
ÐÑимеÑание
ÐÐ»Ñ Ð·Ð°ÐºÑеплÑнной инкÑеменÑалÑной копии неÑвнÑм обÑазом закÑеплÑÑÑÑÑ Ð²Ñе нÑжнÑе ей ÑодиÑелÑÑкие копии. ÐÑли Ð²Ñ Ð¿Ð¾Ð·Ð¶Ðµ ÑнимиÑе Ñ Ð½ÐµÑ Ð·Ð°ÐºÑепление, поÑледние Ñакже авÑомаÑиÑеÑки пеÑеÑÑанÑÑ Ð±ÑÑÑ Ð·Ð°ÐºÑеплÑннÑми.
ÐаÑÑÑойка полиÑики Ñ ÑÐ°Ð½ÐµÐ½Ð¸Ñ Ð°ÑÑ Ð¸Ð²Ð° WAL
Ðогда оÑÑÑеÑÑвлÑеÑÑÑ Ð½ÐµÐ¿ÑеÑÑвное аÑÑ
ивиÑование WAL, ÑегменÑÑ WAL могÑÑ Ð·Ð°Ð½Ð¸Ð¼Ð°ÑÑ Ð¼Ð½Ð¾Ð³Ð¾ меÑÑа на диÑке. Ðаже еÑли Ð²Ñ Ð²ÑÐµÐ¼Ñ Ð¾Ñ Ð²Ñемени ÑдалÑеÑе ÑÑаÑÑе ÑезеÑвнÑе копии, Ñ Ñлагом --delete-wal могÑÑ Ð±ÑÑÑ ÑÐ´Ð°Ð»ÐµÐ½Ñ ÑолÑко Ñе ÑегменÑÑ WAL, коÑоÑÑе не оÑноÑÑÑÑÑ Ð½Ð¸ к какой копии из оÑÑаÑÑиÑ
ÑÑ Ð² каÑалоге. Ðднако еÑли возможноÑÑÑ Ð²Ð¾ÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð½Ð° Ð¼Ð¾Ð¼ÐµÐ½Ñ Ð²Ñемени нÑжна ÑолÑко Ð´Ð»Ñ Ð¿Ð¾ÑледниÑ
копий, можно наÑÑÑоиÑÑ Ð¿Ð¾Ð»Ð¸ÑÐ¸ÐºÑ Ñ
ÑÐ°Ð½ÐµÐ½Ð¸Ñ Ð°ÑÑ
ива WAL, ÑÑÐ¾Ð±Ñ Ð¾Ð³ÑаниÑиÑÑ Ð³Ð»ÑÐ±Ð¸Ð½Ñ Ð°ÑÑ
ива и ÑÑкономиÑÑ Ð¼ÐµÑÑо на диÑке.
ЧÑÐ¾Ð±Ñ Ð½Ð°ÑÑÑоиÑÑ Ð¿Ð¾Ð»Ð¸ÑÐ¸ÐºÑ Ñ
ÑÐ°Ð½ÐµÐ½Ð¸Ñ Ð°ÑÑ
ива WAL, запÑÑÑиÑе ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ set-config Ñ Ð¿Ð°ÑамеÑÑом --wal-depth, задаÑÑим колиÑеÑÑво копий, коÑоÑÑе могÑÑ Ð±ÑÑÑ Ð¸ÑполÑÐ·Ð¾Ð²Ð°Ð½Ñ Ð´Ð»Ñ PITR. ÐÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð´ÐµÐ¹ÑÑвÑÐµÑ Ð´Ð»Ñ Ð²ÑеÑ
линий вÑемени, поÑÑÐ¾Ð¼Ñ Ð²Ñ ÑможеÑе вÑполнÑÑÑ PITR Ð´Ð»Ñ Ð¾Ð´Ð¸Ð½Ð°ÐºÐ¾Ð²Ð¾Ð³Ð¾ колиÑеÑÑва копий на каждой линии вÑемени, пÑи иÑ
налиÑии. ÐакÑеплÑннÑе копии в ÑÑом ÑиÑле не ÑÑиÑÑваÑÑÑÑ: еÑли закÑеплÑеÑÑÑ Ð¾Ð´Ð½Ð° из поÑледниÑ
копий, pg_probackup обеÑпеÑÐ¸Ð²Ð°ÐµÑ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾ÑÑÑ PITR Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð¹ дополниÑелÑной копии.
ЧÑÐ¾Ð±Ñ ÑдалиÑÑ ÑегменÑÑ WAL, не ÑдовлеÑвоÑÑÑÑие заданной полиÑике Ñ
ÑÐ°Ð½ÐµÐ½Ð¸Ñ Ð°ÑÑ
ива WAL, Ð²Ñ Ð´Ð¾Ð»Ð¶Ð½Ñ Ð¿ÑоÑÑо вÑполниÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ delete или backup Ñ Ñлагом --delete-wal. ÐÐ»Ñ Ð°ÑÑ
ивнÑÑ
копий ÑегменÑÑ WAL Ð¼ÐµÐ¶Ð´Ñ Start LSN и Stop LSN вÑегда ÑоÑ
ÑанÑÑÑÑÑ, Ñак ÑÑо ÑÑи копии оÑÑаÑÑÑÑ ÑабоÑими вне завиÑимоÑÑи Ð¾Ñ Ð·Ð½Ð°ÑÐµÐ½Ð¸Ñ --wal-depth и пÑи необÑ
одимоÑÑи могÑÑ Ð±ÑÑÑ Ð²Ð¾ÑÑÑановленÑ.
ÐÑ Ñакже можеÑе иÑполÑзоваÑÑ Ð¿Ð°ÑамеÑÑ --wal-depth Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð°Ð¼Ð¸ delete и backup Ð´Ð»Ñ Ð¿ÐµÑеопÑÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ñанее заданной полиÑики ÑоÑ
ÑÐ°Ð½ÐµÐ½Ð¸Ñ WAL и ÑÐ´Ð°Ð»ÐµÐ½Ð¸Ñ ÑÑаÑÑÑ
ÑегменÑов WAL «на леÑÑ».
ÐÑедположим, ÑÑо Ð²Ñ Ð·Ð°Ð°ÑÑ
ивиÑовали ÑкземплÑÑ node в каÑалог_копий и наÑÑÑоили непÑеÑÑвное аÑÑ
ивиÑование WAL:
pg_probackup show -B каÑалог_копий --instance nodeBACKUP INSTANCE 'node' ==================================================================================================================================== Instance Version ID Recovery Time Mode WAL Mode TLI Time Data WAL Zratio Start LSN Stop LSN Status ==================================================================================================================================== node 11 PZ9442 2019-10-12 10:43:21+03 DELTA STREAM 1/0 10s 121kB 16MB 1.00 0/46000028 0/46000160 OK node 11 PZ943L 2019-10-12 10:43:04+03 FULL STREAM 1/0 10s 180MB 32MB 1.00 0/44000028 0/44000160 OK node 11 PZ7YR5 2019-10-11 19:49:56+03 DELTA STREAM 1/1 10s 112kB 32MB 1.00 0/41000028 0/41000160 OK node 11 PZ7YMP 2019-10-11 19:47:16+03 DELTA STREAM 1/1 10s 376kB 32MB 1.00 0/3E000028 0/3F0000B8 OK node 11 PZ7YK2 2019-10-11 19:45:45+03 FULL STREAM 1/0 11s 180MB 16MB 1.00 0/3C000028 0/3C000198 OK node 11 PZ7YFO 2019-10-11 19:43:04+03 FULL STREAM 1/0 10s 30MB 16MB 1.00 0/2000028 0/200ADD8 OK
ÐÑ Ð¼Ð¾Ð¶ÐµÑе пÑовеÑиÑÑ ÑоÑÑоÑние аÑÑ
ива WAL, запÑÑÑив ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ show Ñ ÐºÐ»ÑÑом --archive:
pg_probackup show -B каÑалог_копий --instance node --archiveARCHIVE INSTANCE 'node' =============================================================================================================================== TLI Parent TLI Switchpoint Min Segno Max Segno N segments Size Zratio N backups Status =============================================================================================================================== 1 0 0/0 000000010000000000000001 000000010000000000000047 71 36MB 31.00 6 OK
ÐпеÑаÑÐ¸Ñ Ð¾ÑиÑÑки WAL без клÑÑа --wal-depth Ð¼Ð¾Ð¶ÐµÑ ÑдалиÑÑ Ð»Ð¸ÑÑ Ð¾Ð´Ð¸Ð½ ÑегменÑ:
pg_probackup delete -B каÑалог_копий --instance node --delete-walARCHIVE INSTANCE 'node' =============================================================================================================================== TLI Parent TLI Switchpoint Min Segno Max Segno N segments Size Zratio N backups Status =============================================================================================================================== 1 0 0/0 000000010000000000000002 000000010000000000000047 70 34MB 32.00 6 OK
ÐапÑимеÑ, еÑли Ð²Ñ Ñ
оÑиÑе оÑÑавиÑÑ ÑолÑко Ñе ÑегменÑÑ, коÑоÑÑе могÑÑ Ð¿ÑименÑÑÑÑÑ Ðº Ñамой поÑледней копии, пеÑедайÑе в паÑамеÑÑе --wal-depth знаÑение 1:
pg_probackup delete -B каÑалог_копий --instance node --delete-wal --wal-depth=1ARCHIVE INSTANCE 'node' ================================================================================================================================ TLI Parent TLI Switchpoint Min Segno Max Segno N segments Size Zratio N backups Status ================================================================================================================================ 1 0 0/0 000000010000000000000046 000000010000000000000047 2 143kB 228.00 6 OK
Также Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе иÑполÑзоваÑÑ Ð¿Ð°ÑамеÑÑ --wal-depth Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¾Ð¹ backup:
pg_probackup backup -B каÑалог_даннÑÑ
--instance node -b DELTA --wal-depth=1 --delete-walARCHIVE INSTANCE 'node' =============================================================================================================================== TLI Parent TLI Switchpoint Min Segno Max Segno N segments Size Zratio N backups Status =============================================================================================================================== 1 0 0/0 000000010000000000000048 000000010000000000000049 1 72kB 228.00 7 OK
ÐбÑединение ÑезеÑвнÑÑ ÐºÐ¾Ð¿Ð¸Ð¹
Ðо меÑе Ñого как Ð²Ñ Ð±ÑдеÑе делаÑÑ Ð½Ð¾Ð²Ñе и новÑе инкÑеменÑалÑнÑе копии, обÑий ÑÐ°Ð·Ð¼ÐµÑ ÐºÐ°Ñалога ÑезеÑвнÑÑ
копий Ð¼Ð¾Ð¶ÐµÑ ÑÑÑеÑÑвенно ÑвелиÑиÑÑÑÑ. ÐÐ»Ñ Ñкономии меÑÑа на диÑке Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе обÑединиÑÑ Ð¸Ð½ÐºÑеменÑалÑнÑе копии Ñ ÑодиÑелÑÑкой полной копией, вÑполнив ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ merge и пеÑедав ей иденÑиÑикаÑÐ¾Ñ ÐºÐ¾Ð¿Ð¸Ð¸ Ñамой поÑледней ÑезеÑвной копии, подлежаÑей обÑединениÑ:
pg_probackup merge -BкаÑалог_копий--instanceимÑ_ÑкземплÑÑа-iид_ÑезеÑвной_копии
ÐÑа команда обÑединÑÐµÑ ÐºÐ¾Ð¿Ð¸Ð¸, оÑноÑÑÑиеÑÑ Ðº одной ÑепоÑке инкÑеменÑалÑнÑÑ ÐºÐ¾Ð¿Ð¸Ð¹. ÐÑли вÑбиÑаеÑÑÑ Ð¿Ð¾Ð»Ð½Ð°Ñ ÐºÐ¾Ð¿Ð¸Ñ, она бÑÐ´ÐµÑ Ð¾Ð±Ñединена Ñ Ð¿ÐµÑвой инкÑеменÑалÑной копией поÑле неÑ. ÐÑли вÑбÑана инкÑеменÑалÑÐ½Ð°Ñ ÐºÐ¾Ð¿Ð¸Ñ, он бÑÐ´ÐµÑ Ð¾Ð±Ñединена Ñ ÑодиÑелÑÑкой полной копией, вклÑÑÐ°Ñ Ð²Ñе инкÑеменÑалÑнÑе копии Ð¼ÐµÐ¶Ð´Ñ Ð½Ð¸Ð¼Ð¸. ÐоÑле завеÑÑÐµÐ½Ð¸Ñ Ð¾Ð±ÑÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ ÑезÑлÑÑиÑÑÑÑÐ°Ñ Ð¿Ð¾Ð»Ð½Ð°Ñ ÐºÐ¾Ð¿Ð¸Ñ Ð±ÑÐ´ÐµÑ Ð²Ð¼ÐµÑаÑÑ Ð² ÑÐµÐ±Ñ Ð²Ñе даннÑе, а инкÑеменÑалÑнÑе копии бÑдÑÑ ÑÐ´Ð°Ð»ÐµÐ½Ñ ÐºÐ°Ðº избÑÑоÑнÑе. Таким обÑазом, опеÑаÑÐ¸Ñ Ð¾Ð±ÑÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ð¿Ð¾ ÑÑÑи ÑавнознаÑна ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð½Ð¾Ð²Ð¾Ð¹ полной копии Ñ Ñдалением вÑÐµÑ ÑÑÑаÑевÑÐ¸Ñ ÐºÐ¾Ð¿Ð¸Ð¹, но вÑполнÑеÑÑÑ Ð¾Ð½Ð° бÑÑÑÑее, оÑобенно Ñ Ð±Ð¾Ð»ÑÑими обÑÑмами даннÑÑ , и не нагÑÑÐ¶Ð°ÐµÑ Ð¿Ð¾Ð´ÑиÑÑÐµÐ¼Ñ Ð²Ð²Ð¾Ð´Ð°/вÑвода и ÑеÑÑ (еÑли pg_probackup ÑабоÑÐ°ÐµÑ Ð² ÑдалÑнном Ñежиме).
ÐеÑед обÑединением pg_probackup пÑовеÑÑÐµÑ Ð²Ñе задейÑÑвÑемÑе ÑезеÑвнÑе копии, ÑÑÐ¾Ð±Ñ ÑдоÑÑовеÑиÑÑÑÑ Ð² Ð¸Ñ ÑелоÑÑноÑÑи. ÐÑ Ð¼Ð¾Ð¶ÐµÑе пÑовеÑиÑÑ ÑекÑÑее ÑоÑÑоÑние ÑезеÑвной копии, пеÑедав ÐµÑ Ð¸Ð´ÐµÐ½ÑиÑикаÑÐ¾Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ðµ show.
pg_probackup show -BкаÑалог_копий--instanceимÑ_ÑкземплÑÑа-iид_ÑезеÑвной_копии
ÐÑли пÑоÑеÑÑ Ð¾Ð±ÑÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ ÐµÑÑ Ð½Ðµ законÑен, Ð²Ñ ÑвидиÑе ÑоÑÑоÑние MERGING. ÐÐ»Ñ Ð¿Ð¾Ð»Ð½ÑÑ
копий Ñакже можно ÑвидеÑÑ ÑоÑÑоÑние MERGED в пÑоÑеÑÑе Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¼ÐµÑаданнÑÑ
на поÑледнем ÑÑапе обÑединениÑ. Ð ÑлÑÑае пÑеÑÑÐ²Ð°Ð½Ð¸Ñ Ð¾Ð¿ÐµÑаÑии обÑÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ð¾Ð½Ð° Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¿ÐµÑезапÑÑена.
Удаление ÑезеÑвнÑÑ ÐºÐ¾Ð¿Ð¸Ð¹
ÐÐ»Ñ ÑÐ´Ð°Ð»ÐµÐ½Ð¸Ñ ÑезеÑвной копии, ÑÑавÑей ненÑжной, вÑполниÑе командÑ:
pg_probackup delete -BкаÑалог_копий--instanceимÑ_ÑкземплÑÑа-iид_ÑезеÑвной_копии
ÐÑа команда ÑÐ´Ð°Ð»Ð¸Ñ ÑезеÑвнÑÑ ÐºÐ¾Ð¿Ð¸Ñ Ñ Ð·Ð°Ð´Ð°Ð½Ð½Ñм ид_ÑезеÑвной_копии вмеÑÑе Ñо вÑеми инкÑеменÑалÑнÑми копиÑми, коÑоÑÑе Ð¾Ñ Ð½ÐµÑ Ð·Ð°Ð²Ð¸ÑÑÑ (еÑли ÑаковÑе найдÑÑÑÑ). Таким обÑазом Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе ÑдалиÑÑ Ð½ÐµÐºÐ¾ÑоÑÑе поÑледние инкÑеменÑалÑнÑе копии, ÑоÑ
Ñанив пÑедÑдÑÑÑÑ Ð¿Ð¾Ð»Ð½ÑÑ ÐºÐ¾Ð¿Ð¸Ñ Ð¸ некоÑоÑÑе ÑледÑÑÑие за ней инкÑеменÑалÑнÑе копии.
ÐÐ»Ñ ÑÐ´Ð°Ð»ÐµÐ½Ð¸Ñ ÑÑаÑÑÑ
Ñайлов WAL, коÑоÑÑе не нÑÐ¶Ð½Ñ Ð´Ð»Ñ Ð²Ð¾ÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð½Ð¸ÐºÐ°ÐºÐ¸Ñ
из оÑÑавÑиÑ
ÑÑ ÑезеÑвнÑÑ
копий, воÑполÑзÑйÑеÑÑ ÐºÐ»ÑÑом --delete-wal:
pg_probackup delete -BкаÑалог_копий--instanceимÑ_ÑкземплÑÑа--delete-wal
ЧÑÐ¾Ð±Ñ ÑдалиÑÑ ÑезеÑвнÑе копии, ÑÑиÑаÑÑиеÑÑ Ð½ÐµÐ½ÑжнÑми ÑоглаÑно ÑекÑÑей полиÑике Ñ
ÑанениÑ, воÑполÑзÑйÑеÑÑ ÐºÐ»ÑÑом --delete-expired:
pg_probackup delete -BкаÑалог_копий--instanceимÑ_ÑкземплÑÑа--delete-expired
Ðопии Ñ Ð¸ÑÑÑкÑим ÑÑоком нелÑÐ·Ñ ÑдалиÑÑ, пока на ниÑ
базиÑÑеÑÑÑ Ð¼Ð¸Ð½Ð¸Ð¼Ñм одна инкÑеменÑалÑÐ½Ð°Ñ ÐºÐ¾Ð¿Ð¸Ñ, ÑдовлеÑвоÑÑÑÑÐ°Ñ Ð¿Ð¾Ð»Ð¸Ñике Ñ
ÑанениÑ. ÐÑли Ð²Ñ Ñ
оÑиÑе ÑокÑаÑиÑÑ ÑиÑло ÑезеÑвнÑÑ
копий, ÑÑебÑÑÑиÑ
ÑÑ Ð´Ð»Ñ Ð²Ð¾ÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð¸Ð½ÐºÑеменÑалÑнÑÑ
копий, ÑкажиÑе паÑамеÑÑ --merge-expired пÑи вÑполнении ÑÑой командÑ:
pg_probackup delete -BкаÑалог_копий--instanceимÑ_ÑкземплÑÑа--delete-expired --merge-expired
Ð ÑÑом ÑлÑÑае pg_probackup иÑÐµÑ ÑамÑÑ ÑÑаÑÑÑ Ð¸Ð½ÐºÑеменÑалÑнÑÑ ÐºÐ¾Ð¿Ð¸Ñ, ÑдовлеÑвоÑÑÑÑÑÑ Ð¿Ð¾Ð»Ð¸Ñике Ñ ÑÐ°Ð½ÐµÐ½Ð¸Ñ Ð¸ обÑединÑÐµÑ ÐµÑ Ñ Ð±Ð°Ð·Ð¾Ð²Ñми Ð´Ð»Ñ Ð½ÐµÑ Ð¿Ð¾Ð»Ð½Ð¾Ð¹ и инкÑеменÑалÑнÑми копиÑми, ÑÑок Ñ ÑÐ°Ð½ÐµÐ½Ð¸Ñ ÐºÐ¾ÑоÑÑÑ Ð¸ÑÑÑк, Ñем ÑамÑм пÑевÑаÑÐ°Ñ ÐµÑ Ð² полнÑÑ ÐºÐ¾Ð¿Ð¸Ñ. ÐоÑле завеÑÑÐµÐ½Ð¸Ñ Ð¾Ð±ÑÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ ÑÑавÑие ненÑжнÑми копии ÑдалÑÑÑÑÑ.
ÐÑежде Ñем обÑединÑÑÑ Ð¸Ð»Ð¸ ÑдалÑÑÑ ÑезеÑвнÑе копии, Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе вÑполниÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ delete Ñ Ð¿Ð°ÑамеÑÑом --dry-run и полÑÑиÑÑ Ð² ÑезÑлÑÑаÑе ÑоÑÑоÑние вÑеÑ
имеÑÑиÑ
ÑÑ ÐºÐ¾Ð¿Ð¸Ð¹ в ÑооÑвеÑÑÑвии Ñ ÑекÑÑей полиÑикой Ñ
ÑанениÑ; никакие необÑаÑимÑе дейÑÑÐ²Ð¸Ñ Ð¿Ñи ÑÑом вÑполнÑÑÑÑÑ Ð½Ðµ бÑдÑÑ.
ÐÐ»Ñ ÑÐ´Ð°Ð»ÐµÐ½Ð¸Ñ Ð²ÑеÑ
копий Ñ Ð¾Ð¿ÑеделÑннÑм ÑоÑÑоÑнием, воÑполÑзÑйÑеÑÑ Ð¿Ð°ÑамеÑÑом --status:
pg_probackup delete -BкаÑалог_копий--instanceимÑ_ÑкземплÑÑа--status=ERROR
ÐÑи Ñдалении копий по кÑиÑеÑÐ¸Ñ ÑоÑÑоÑÐ½Ð¸Ñ ÑÑÑановленнÑе полиÑики ÑÐ¾Ñ ÑÐ°Ð½ÐµÐ½Ð¸Ñ Ð½Ðµ ÑÑиÑÑваÑÑÑÑ.
ÐлониÑование и ÑÐ¸Ð½Ñ ÑонизаÑÐ¸Ñ ÑкземплÑÑа Postgres Pro
Ð pg_probackup Ñеализована команда catchup, коÑоÑÐ°Ñ Ð¿Ð¾Ð·Ð²Ð¾Ð»ÑÐµÑ ÑоздаÑÑ ÐºÐ¾Ð¿Ð¸Ñ ÑкземплÑÑа ÑеÑвеÑа Postgres Pro напÑÑмÑÑ, не иÑполÑзÑÑ ÐºÐ°Ñалог ÑезеÑвнÑÑ ÐºÐ¾Ð¿Ð¸Ð¹. ÐÑа команда Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¿Ð¾Ð»ÐµÐ·Ð½Ð°:
ÐÐ»Ñ Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð½Ð¾Ð²Ð¾Ð³Ð¾ ведомого ÑеÑвеÑа.
Ðак пÑавило, Ð´Ð»Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ ÐºÐ¾Ð¿Ð¸Ð¸ ÑкземплÑÑа Postgres Pro иÑполÑзÑеÑÑÑ pg_basebackup. Ðоманда
catchup, еÑли Ñказан пÑÑÑой Ñелевой каÑалог, ÑÐ´ÐµÐ»Ð°ÐµÑ Ñо же Ñамое, но в паÑаллелÑном Ñежиме Ð¼Ð¾Ð¶ÐµÑ ÑÑабоÑаÑÑ Ð³Ð¾Ñаздо бÑÑÑÑее.ÐÐ»Ñ ÑÐ¸Ð½Ñ ÑонизаÑии оÑÑÑавÑего ведомого ÑеÑвеÑа Ñ Ð²ÐµÐ´ÑÑим.
ÐÑи акÑивной запиÑи на ведÑÑем ÑеÑвеÑе Ñеплики могÑÑ Ð½Ðµ ÑÑпеваÑÑ Ð²Ð¾ÑпÑоизводиÑÑ WAL Ñ Ð´Ð¾ÑÑаÑоÑной ÑкоÑоÑÑÑÑ Ð¸ в ÑезÑлÑÑаÑе оÑÑÑаваÑÑ. ÐбÑÑно в ÑÑом ÑлÑÑае ÑоздаÑÑÑÑ Ð½Ð¾Ð²Ð°Ñ Ñеплика, а Ð´Ð»Ñ ÑÑого нÑжно пеÑедаÑÑ Ð¸ ÑÐ¾Ñ ÑаниÑÑ Ð½Ð° диÑке болÑÑой обÑÑм даннÑÑ . Ðоманда
catchupнапÑÑмÑÑ Ð¿ÐµÑеноÑÐ¸Ñ ÑазлиÑÐ¸Ñ Ñ Ð²ÐµÐ´ÑÑего ÑеÑвеÑа, ÑÑо намного бÑÑÑÑее позволÑÐµÑ Ð¾Ð±Ð½Ð¾Ð²Ð¸ÑÑ Ð´Ð°Ð½Ð½Ñе на Ñже ÑÑÑеÑÑвÑÑÑей Ñеплике.
ÐпеÑаÑÐ¸Ñ catchup оÑлиÑаеÑÑÑ Ð¾Ñ Ð´ÑÑгиÑ
опеÑаÑий pg_probackup:
Ðе ÑÑебÑеÑÑÑ ÐºÐ°Ñалог ÑезеÑвнÑÑ ÐºÐ¾Ð¿Ð¸Ð¹.
РкаÑеÑÑве меÑода доÑÑавки WAL поддеÑживаеÑÑÑ ÑолÑко STREAM.
ÐопиÑование внеÑÐ½Ð¸Ñ ÐºÐ°Ñалогов не поддеÑживаеÑÑÑ.
ÐдновÑеменно Ñ
catchupнелÑÐ·Ñ Ð²ÑполнÑÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ DDL CREATE TABLESPACE/DROP TABLESPACE.ÐÑи ÑÐ¸Ð½Ñ ÑонизаÑии
catchupбеÑÑÑ ÑÐ°Ð¹Ð»Ñ ÐºÐ¾Ð½ÑигÑÑаÑии, Ñакие какpostgresql.conf,postgresql.auto.confилиpg_hba.conf, Ñ Ð¸ÑÑ Ð¾Ð´Ð½Ð¾Ð³Ð¾ ÑеÑвеÑа и заменÑÐµÑ Ð¸Ð¼Ð¸ ÑооÑвеÑÑÑвÑÑÑие ÑÐ°Ð¹Ð»Ñ Ð½Ð° Ñелевом ÑеÑвеÑе. ЧÑÐ¾Ð±Ñ Ð¾ÑÑавиÑÑ ÑÐ°Ð¹Ð»Ñ ÐºÐ¾Ð½ÑигÑÑаÑии без изменений, иÑполÑзÑйÑе паÑамеÑÑ--exclude-path.
ЧÑÐ¾Ð±Ñ Ð¿Ð¾Ð´Ð³Ð¾ÑовиÑÑ ÑкземплÑÑ Postgres Pro к клониÑованиÑ/ÑÐ¸Ð½Ñ ÑонизаÑии, наÑÑÑойÑе иÑÑ Ð¾Ð´Ð½Ñй ÑеÑÐ²ÐµÑ ÐÐ ÑледÑÑÑим обÑазом:
ÐаÑÑÑойÑе клаÑÑÐµÑ Ð±Ð°Ð· даннÑÑ Ð´Ð»Ñ ÐºÐ¾Ð¿Ð¸ÑÐ¾Ð²Ð°Ð½Ð¸Ñ ÑкземплÑÑа ÑеÑвеÑа.
ÐÐ»Ñ ÐºÐ¾Ð¿Ð¸ÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ñ ÑдалÑнного ÑеÑвеÑа наÑÑÑойÑе ÑдалÑннÑй Ñежим.
ÐÐ»Ñ Ð¸ÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ñежима PTRACK наÑÑÑойÑе копиÑование PTRACK.
ÐеÑед клониÑованием/ÑÐ¸Ð½Ñ ÑонизаÑией ÑкземплÑÑа Postgres Pro ÑбедиÑеÑÑ, ÑÑо иÑÑ Ð¾Ð´Ð½Ñй ÑеÑÐ²ÐµÑ Ð·Ð°Ð¿ÑÑен и пÑÐ¸Ð½Ð¸Ð¼Ð°ÐµÑ Ð¿Ð¾Ð´ÐºÐ»ÑÑениÑ. ЧÑÐ¾Ð±Ñ ÐºÐ»Ð¾Ð½Ð¸ÑоваÑÑ/ÑÐ¸Ð½Ñ ÑонизиÑоваÑÑ ÑкземплÑÑ Postgres Pro, в ÑиÑÑеме Ñ ÑелевÑм ÑеÑвеÑом вÑполниÑе ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ catchup:
pg_probackup catchup -bÑежим_ÑÐ¸Ð½Ñ ÑонизаÑии--source-pgdata=пÑÑÑ_к_копиÑÑемомÑ_каÑалогÑ_даннÑÑ--destination-pgdata=пÑÑÑ_к_ÑелевомÑ_каÑалогÑ_даннÑÑ--stream [паÑамеÑÑÑ_подклÑÑениÑ] [паÑамеÑÑÑ_ÑдалÑнного_Ñежима]
ÐдеÑÑ Ñежим_ÑинÑ
ÑонизаÑии Ð¼Ð¾Ð¶ÐµÑ Ð¿ÑинимаÑÑ ÑледÑÑÑие знаÑениÑ:
FULLâ ÑоздаÑÑÑÑ Ð¿Ð¾Ð»Ð½Ð°Ñ ÐºÐ¾Ð¿Ð¸Ñ ÑкземплÑÑа Postgres Pro, Ð´Ð»Ñ ÑÑого Ñелевой каÑалог даннÑÑ ÐРдолжен бÑÑÑ Ð¿ÑÑÑÑм.DELTAâ ÑÑиÑÑваÑÑÑÑ Ð²Ñе ÑÐ°Ð¹Ð»Ñ Ð´Ð°Ð½Ð½ÑÑ Ð² каÑалоге даннÑÑ Ð¸ ÑоздаÑÑÑÑ Ð¸Ð½ÐºÑеменÑалÑÐ½Ð°Ñ ÐºÐ¾Ð¿Ð¸Ñ Ð´Ð»Ñ ÑÑÑаниÑ, изменÑннÑÑ Ñ Ð¼Ð¾Ð¼ÐµÐ½Ñа оÑÑановки Ñелевого ÑкземплÑÑа.PTRACKâ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð² ÑÑÑаниÑÐ°Ñ Ð¾ÑÑлеживаÑÑÑÑ Ð½Ð° леÑÑ, ÑÑиÑÑваÑÑÑÑ Ð¸ копиÑÑÑÑÑÑ ÑолÑко ÑÑÑаниÑÑ, изменÑннÑе Ñ ÑоÑки ÑаÑÑ Ð¾Ð¶Ð´ÐµÐ½Ð¸Ñ Ð¸ÑÑ Ð¾Ð´Ð½Ð¾Ð³Ð¾ и Ñелевого ÑкземплÑÑов.ÐÑедÑпÑеждение
ЧÑÐ¾Ð±Ñ ÑÐ¸Ð½Ñ ÑонизиÑоваÑÑ ÑкземплÑÑ Ð² Ñежиме PTRACK, Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼ PTRACK веÑÑии 2.0 или вÑÑе, а знаÑиÑ, и Postgres Pro веÑÑии не ниже 11.
Указав паÑамеÑÑ --stream, можно задаÑÑ Ñежим STREAM, пÑи коÑоÑом вÑе необÑ
одимÑе ÑÐ°Ð¹Ð»Ñ WAL пеÑедаÑÑÑÑ Ñ Ð¸ÑÑ
одного ÑеÑвеÑа по пÑоÑÐ¾ÐºÐ¾Ð»Ñ ÑепликаÑии.
ÐÑ Ð¼Ð¾Ð¶ÐµÑе задаÑÑ Ð¿Ð°ÑамеÑÑÑ_подклÑÑÐµÐ½Ð¸Ñ Ðº иÑÑ Ð¾Ð´Ð½Ð¾Ð¹ ÐÐ, а еÑли она Ð½Ð°Ñ Ð¾Ð´Ð¸ÑÑÑ Ð½Ð° дÑÑгом ÑеÑвеÑе, Ñакже ÑкажиÑе паÑамеÑÑÑ_ÑдалÑнного_Ñежима.
ÐÑли в иÑÑ
одной ÐРеÑÑÑ ÑаблиÑнÑе пÑоÑÑÑанÑÑва, коÑоÑÑе Ð´Ð¾Ð»Ð¶Ð½Ñ ÑаÑполагаÑÑÑÑ Ð² дÑÑгиÑ
каÑалогаÑ
в Ñелевой ÑиÑÑеме, задайÑе Ñакже паÑамеÑÑ --tablespace-mapping:
pg_probackup catchup -bÑежим_ÑÐ¸Ð½Ñ ÑонизаÑии--source-pgdata=пÑÑÑ_к_копиÑÑемомÑ_каÑалогÑ_даннÑÑ--destination-pgdata=пÑÑÑ_к_ÑелевомÑ_каÑалогÑ_даннÑÑ--stream --tablespace-mapping=СТÐРЫÐ_ÐÐТÐÐÐÐ=ÐÐÐЫÐ_ÐÐТÐÐÐÐ
ЧÑÐ¾Ð±Ñ Ð¾Ð¿ÐµÑаÑÐ¸Ñ catchup вÑполнÑлаÑÑ Ð² неÑколÑко паÑаллелÑнÑÑ
поÑоков, задайÑе ÑиÑло поÑоков Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ Ð¿Ð°ÑамеÑÑа --threads:
pg_probackup catchup -bÑежим_ÑÐ¸Ð½Ñ ÑонизаÑии--source-pgdata=пÑÑÑ_к_копиÑÑемомÑ_каÑалогÑ_даннÑÑ--destination-pgdata=пÑÑÑ_к_ÑелевомÑ_каÑалогÑ_даннÑÑ--stream --threads=ÑиÑло_поÑоков
ÐеÑед клониÑованием/ÑинÑ
ÑонизаÑией ÑкземплÑÑа Postgres Pro Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе запÑÑÑиÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ catchup Ñ Ñлагом --dry-run, ÑÑÐ¾Ð±Ñ Ð¾ÑениÑÑ ÑÐ°Ð·Ð¼ÐµÑ Ð¿ÐµÑедаваемÑÑ
Ñайлов даннÑÑ
без внеÑÐµÐ½Ð¸Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ð¹ на диÑк:
pg_probackup catchup -bÑежим_ÑÐ¸Ð½Ñ ÑонизаÑии--source-pgdata=пÑÑÑ_к_копиÑÑемомÑ_каÑалогÑ_даннÑÑ--destination-pgdata=пÑÑÑ_к_ÑелевомÑ_каÑалогÑ_даннÑÑ--stream --dry-run
ÐапÑимеÑ, пÑедположим, ÑÑо оÑÑÑал ÑдалÑннÑй ведомÑй ÑкземплÑÑ Postgres Pro, даннÑе коÑоÑого Ñ
ÑанÑÑÑÑ Ð² каÑалоге /replica-pgdata. ЧÑÐ¾Ð±Ñ ÑинÑ
ÑонизиÑоваÑÑ ÑÑÐ¾Ñ ÑкземплÑÑ Ñ ÑкземплÑÑом в каÑалоге даннÑÑ
/master-pgdata, Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе вÑполниÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ catchup, вклÑÑив Ñежим PTRACK и иÑполÑзÑÑ ÑеÑÑÑе паÑаллелÑнÑÑ
поÑока, ÑледÑÑÑим обÑазом:
pg_probackup catchup --source-pgdata=/master-pgdata --destination-pgdata=/replica-pgdata -p 5432 -d postgres -U remote-postgres-user --stream --backup-mode=PTRACK --remote-host=remote-hostname --remote-user=remote-unix-username -j 4 --exclude-path=postgresql.conf --exclude-path=postgresql.auto.conf --exclude-path=pg_hba.conf --exclude-path=pg_ident.conf
ÐбÑаÑиÑе внимание, ÑÑо в ÑÑом пÑимеÑе ÑÐ°Ð¹Ð»Ñ ÐºÐ¾Ð½ÑигÑÑаÑии не бÑдÑÑ Ð¿ÐµÑезапиÑÐ°Ð½Ñ Ð²Ð¾ вÑÐµÐ¼Ñ ÑÐ¸Ð½Ñ ÑонизаÑии.
РпÑимеÑе ниже показано, как можно добавиÑÑ ÐµÑÑ Ð¾Ð´Ð¸Ð½ ÑдалÑннÑй ведомÑй ÑеÑÐ²ÐµÑ Postgres Pro Ñ ÐºÐ°Ñалогом даннÑÑ
/replica-pga, запÑÑÑив catchup в Ñежиме FULL в ÑеÑÑÑе паÑаллелÑнÑÑ
поÑока:
pg_probackup catchup --source-pgdata=/master-pgdata --destination-pgdata=/replica-pgdata -p 5432 -d postgres -U remote-postgres-user --stream --backup-mode=FULL --remote-host=remote-hostname --remote-user=remote-unix-username -j 4
СпÑавка по командной ÑÑÑоке
ÐомандÑ
Ð ÑÑом подÑазделе опиÑÑваÑÑÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ pg_probackup. ÐеобÑзаÑелÑнÑе паÑамеÑÑÑ ÑÑÐ¸Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´ заклÑÑаÑÑÑÑ Ð² квадÑаÑнÑе Ñкобки. РподÑобноÑÑÑÑ Ð²Ñе паÑамеÑÑÑ Ð¾Ð¿Ð¸ÑÑваÑÑÑÑ Ð² подÑазделе ÐаÑамеÑÑÑ.
version
pg_probackup version
ÐÑÐ²Ð¾Ð´Ð¸Ñ Ð²ÐµÑÑÐ¸Ñ Ð¸ ÑедакÑÐ¸Ñ pg_probackup, а Ñакже веÑÑÐ¸Ñ Ð¸ ÑедакÑÐ¸Ñ ÑеÑвеÑа Postgres Pro.
help
pg_probackup help [команда]ÐÑдаÑÑ ÑпÑÐ°Ð²ÐºÑ Ð¿Ð¾ командам pg_probackup. ÐÑли в паÑамеÑÑÐ°Ñ Ð·Ð°Ð´Ð°ÑÑÑÑ Ð¾Ð´Ð½Ð° из команд pg_probackup, вÑÐ²Ð¾Ð´Ð¸Ñ Ð¿Ð¾Ð´ÑобнÑÑ Ð¸Ð½ÑоÑмаÑÐ¸Ñ Ð¿Ð¾ паÑамеÑÑам, коÑоÑÑе пÑÐ¸Ð½Ð¸Ð¼Ð°ÐµÑ ÑÑа команда.
init
pg_probackup init -B каÑалог_копий [--skip-if-exists] [--help]ÐниÑиализиÑÑÐµÑ ÐºÐ°Ñалог_копий, в коÑоÑом бÑдÑÑ Ñ
ÑаниÑÑÑÑ ÑезеÑвнÑе копии, аÑÑ
ив WAL и меÑаинÑоÑмаÑÐ¸Ñ Ð¾ ÑкопиÑованнÑÑ
клаÑÑеÑаÑ
баз даннÑÑ
. ÐÑли заданнÑй каÑалог_копий Ñже ÑÑÑеÑÑвÑеÑ, он должен бÑÑÑ Ð¿ÑÑÑÑм. РпÑоÑивном ÑлÑÑае pg_probackup вÑдаÑÑ ÑооÑвеÑÑÑвÑÑÑее ÑообÑение об оÑибке. ÐÑ Ð¼Ð¾Ð¶ÐµÑе оÑклÑÑиÑÑ Ð²Ñвод ÑÑого ÑообÑениÑ, Ñказав --skip-if-exists. ХоÑÑ ÐºÐ°Ñалог не бÑÐ´ÐµÑ Ð¸Ð½Ð¸ÑиализиÑован, пÑиложение веÑнÑÑ 0.
Ðа подÑобноÑÑÑми обÑаÑиÑеÑÑ Ðº подÑÐ°Ð·Ð´ÐµÐ»Ñ ÐниÑиализаÑÐ¸Ñ ÐºÐ°Ñалога копий.
add-instance
pg_probackup add-instance -BкаÑалог_копий-DкаÑалог_даннÑÑ--instanceимÑ_ÑкземплÑÑа[--skip-if-exists] [--help]
ÐниÑиализиÑÑÐµÑ Ð½Ð¾Ð²Ñй копиÑÑемÑй ÑкземплÑÑ Ð² каÑалоге каÑалог_копий и ÑоздаÑÑ Ñайл конÑигÑÑаÑии pg_probackup.conf, ÑпÑавлÑÑÑий паÑамеÑÑами pg_probackup, оÑноÑÑÑимиÑÑ Ðº клаÑÑеÑÑ Ð² Ñказанном каÑалоге_даннÑÑ
. ÐÑли каÑалог Ñже бÑл иниÑиализиÑован, ÑообÑение об оÑибке можно оÑклÑÑиÑÑ, Ñказав --skip-if-exists.
Ðа подÑобноÑÑÑми обÑаÑиÑеÑÑ Ðº подÑÐ°Ð·Ð´ÐµÐ»Ñ ÐпÑеделение копиÑÑемого ÑкземплÑÑа.
del-instance
pg_probackup del-instance -BкаÑалог_копий--instanceимÑ_ÑкземплÑÑа[--help]
УдалÑÐµÑ Ð²Ñе ÑезеÑвнÑе копии и ÑÐ°Ð¹Ð»Ñ WAL, ÑвÑзаннÑе Ñ ÑказаннÑм ÑкземплÑÑом.
set-config
pg_probackup set-config -BкаÑалог_копий--instanceимÑ_ÑкземплÑÑа[--help] [--pgdata=пÑÑÑ_к_pgdata] [--retention-redundancy=избÑÑоÑноÑÑÑ][--retention-window=окно][--wal-depth=глÑбина_wal] [--compress-algorithm=алгоÑиÑм_ÑжаÑиÑ] [--compress-level=ÑÑовенÑ_ÑжаÑиÑ] [-dимÑ_базÑ] [-hÑеÑвеÑ] [-pпоÑÑ] [-UимÑ_полÑзоваÑелÑ] [--archive-timeout=Ñайм-аÑÑ] [--external-dirs=пÑÑÑ_внеÑнего_каÑалога] [--restore-command=команда] [паÑамеÑÑÑ_ÑдалÑнного_Ñежима] [паÑамеÑÑÑ_ÑдалÑнного_аÑÑ Ð¸Ð²Ð°_wal] [паÑамеÑÑÑ_жÑÑнала]
ÐобавлÑÐµÑ Ð·Ð°Ð´Ð°Ð½Ð½Ñе паÑамеÑÑÑ ÑоединениÑ, ÑжаÑиÑ, Ñ
ÑанениÑ, Ð²ÐµÐ´ÐµÐ½Ð¸Ñ Ð¶ÑÑнала и ÑÐºÐ°Ð·Ð°Ð½Ð¸Ñ Ð²Ð½ÐµÑниÑ
каÑалогов в конÑигÑÑаÑионнÑй Ñайл pg_probackup.conf либо изменÑÐµÑ Ñанее заданнÑе знаÑениÑ.
ÐÑе поддеÑживаемÑе паÑамеÑÑÑ Ð¾Ð¿Ð¸ÑÑваÑÑÑÑ Ð² подÑазделе ÐаÑамеÑÑÑ.
РедакÑиÑоваÑÑ pg_probackup.conf вÑÑÑнÑÑ Ð½Ðµ ÑекомендÑеÑÑÑ.
set-backup
pg_probackup set-backup -BкаÑалог_копий--instanceимÑ_ÑкземплÑÑа-iид_ÑезеÑвной_копии{--ttl=вÑемÑ_жизни| --expire-time=вÑемÑ} [--note=замеÑка_к_копии] [--help]
УÑÑÐ°Ð½Ð°Ð²Ð»Ð¸Ð²Ð°ÐµÑ Ð·Ð°Ð´Ð°Ð½Ð½Ñе Ð´Ð»Ñ ÐºÐ¾Ð½ÐºÑеÑной ÑезеÑвной копии паÑамеÑÑÑ Ð² конÑигÑÑаÑионном Ñайле backup.control или изменÑÐµÑ Ñанее опÑеделÑннÑе знаÑениÑ.
--note=замеÑка_к_копииÐадаÑÑ ÑекÑÑовÑÑ Ð·Ð°Ð¼ÐµÑÐºÑ Ð´Ð»Ñ ÑезеÑвной копии. ÐÑли
замеÑка_к_копииÑодеÑÐ¶Ð¸Ñ ÑÐ¸Ð¼Ð²Ð¾Ð»Ñ Ð¿ÐµÑевода ÑÑÑоки, ÑÐ¾Ñ Ñанена бÑÐ´ÐµÑ ÑолÑко подÑÑÑока до пеÑвого пеÑевода ÑÑÑоки. ÐакÑималÑнÑй ÑÐ°Ð·Ð¼ÐµÑ Ð·Ð°Ð¼ÐµÑки Ñавен 1 ÐÐ. ÐнаÑение'none'ÑдалÑÐµÑ ÑекÑÑÑÑ Ð·Ð°Ð¼ÐµÑкÑ.
ÐÑе поддеÑживаемÑе ваÑианÑÑ Ð·Ð°ÐºÑÐµÐ¿Ð»ÐµÐ½Ð¸Ñ Ð¾Ð¿Ð¸ÑÑваÑÑÑÑ Ð² подÑазделе ÐаÑамеÑÑÑ Ð·Ð°ÐºÑеплениÑ.
show-config
pg_probackup show-config -BкаÑалог_копий--instanceимÑ_ÑкземплÑÑа[--format=plain|json]
ÐÑÐ²Ð¾Ð´Ð¸Ñ ÑодеÑжимое Ñайла pg_probackup.conf, ÑазмеÑÑнного в каÑалоге . ÐÑ Ð¼Ð¾Ð¶ÐµÑе добавиÑÑ Ð¿Ð°ÑамеÑÑ ÐºÐ°Ñалог_копий/backups/имÑ_ÑкземплÑÑа--format=json Ð´Ð»Ñ Ð¿Ð¾Ð»ÑÑÐµÐ½Ð¸Ñ ÑезÑлÑÑаÑа в ÑоÑмаÑе JSON. Ðо ÑмолÑÐ°Ð½Ð¸Ñ Ð¿Ð°ÑамеÑÑÑ ÐºÐ¾Ð½ÑигÑÑаÑии вÑводÑÑÑÑ Ð¾Ð±ÑÑнÑм ÑекÑÑом.
ЧÑÐ¾Ð±Ñ Ð¸Ð·Ð¼ÐµÐ½Ð¸ÑÑ ÑодеÑжимое pg_probackup.conf, иÑполÑзÑйÑе ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ set-config.
show
pg_probackup show -BкаÑалог_копий[--help] [--instanceимÑ_ÑкземплÑÑа[-iид_ÑезеÑвной_копии| --archive]] [--format=plain|json] [--no-color]
ÐоказÑÐ²Ð°ÐµÑ ÑодеÑжимое каÑалога копий. ÐÑли задано имÑ_ÑкземплÑÑа и ид_ÑезеÑвной_копии, вÑводиÑÑÑ Ð¿Ð¾Ð´ÑÐ¾Ð±Ð½Ð°Ñ Ð¸Ð½ÑоÑмаÑÐ¸Ñ Ð¾Ð± ÑÑой копии. С Ñказанием --archive ÑÑа команда показÑÐ²Ð°ÐµÑ ÑодеÑжимое аÑÑ
ива WAL в данном каÑалоге.
Ðо ÑмолÑÐ°Ð½Ð¸Ñ ÑодеÑжимое каÑалога пÑедÑÑавлÑеÑÑÑ Ð² виде обÑÑного ÑекÑÑа. ÐÑ Ð¼Ð¾Ð¶ÐµÑе пеÑедаÑÑ Ð¿Ð°ÑамеÑÑ --format=json, ÑÑÐ¾Ð±Ñ Ð¿Ð¾Ð»ÑÑиÑÑ ÑезÑлÑÑÐ°Ñ Ð² ÑоÑмаÑе JSON. С паÑамеÑÑом --no-color вÑводимÑе ÑообÑÐµÐ½Ð¸Ñ Ð½Ðµ вÑделÑÑÑÑÑ ÑвеÑом.
Ðолее подÑобно иÑполÑзование ÑÑой ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ Ð¾Ð¿Ð¸ÑÑваеÑÑÑ Ð² подÑÐ°Ð·Ð´ÐµÐ»Ð°Ñ Ð£Ð¿Ñавление каÑалогом ÑезеÑвнÑÑ ÐºÐ¾Ð¿Ð¸Ð¹ и ÐÑоÑмоÑÑ Ð¾Ð³Ð»Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð°ÑÑ Ð¸Ð²Ð° WAL.
backup
pg_probackup backup -BкаÑалог_копий-bÑежим_копиÑованиÑ--instanceимÑ_ÑкземплÑÑа[--help] [-jÑиÑло_поÑоков] [--progress] [-C] [--stream [-S slot_name] [--temp-slot]] [--backup-pg-log] [--no-validate] [--skip-block-validation] [-w --no-password] [-W --password] [--archive-timeout=Ñайм-аÑÑ] [--external-dirs=пÑÑÑ_внеÑнего_каÑалога] [--no-sync] [--note=замеÑка_к_копии] [паÑамеÑÑÑ_ÑоединениÑ] [паÑамеÑÑÑ_ÑжаÑиÑ] [паÑамеÑÑÑ_ÑдалÑнного_Ñежима] [паÑамеÑÑÑ_Ñ ÑанениÑ] [паÑамеÑÑÑ_закÑеплениÑ] [паÑамеÑÑÑ_жÑÑнала]
СоздаÑÑ ÑезеÑвнÑÑ ÐºÐ¾Ð¿Ð¸Ñ ÑкземплÑÑа Postgres Pro.
-bÑежим--backup-mode=ÑежимÐÑбиÑÐ°ÐµÑ Ñежим ÑезеÑвного копиÑованиÑ. ÐоддеÑживаÑÑÑÑ ÑледÑÑÑие ÑежимÑ:
FULL,DELTA,PAGEиPTRACK.-C--smooth-checkpointРаÑÑÑÐ³Ð¸Ð²Ð°ÐµÑ Ð²Ñполнение конÑÑолÑной ÑоÑки во вÑемени. Ðо ÑмолÑÐ°Ð½Ð¸Ñ pg_probackup пÑÑаеÑÑÑ Ð¿ÑоизвеÑÑи конÑÑолÑнÑÑ ÑоÑÐºÑ Ð¼Ð°ÐºÑималÑно бÑÑÑÑо.
--streamСоздаÑÑ Ð¿Ð¾ÑоковÑÑ ÑезеÑвнÑÑ ÐºÐ¾Ð¿Ð¸Ñ (STREAM), вклÑÑÐ°Ñ Ð² Ð½ÐµÑ Ð²Ñе Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ñе ÑÐ°Ð¹Ð»Ñ WAL, полÑÑаемÑе Ð¾Ñ ÑеÑвеÑа по пÑоÑÐ¾ÐºÐ¾Ð»Ñ ÑепликаÑии.
--temp-slotСоздаÑÑ Ð²ÑеменнÑй ÑÐ»Ð¾Ñ ÑизиÑеÑкой ÑепликаÑии Ð´Ð»Ñ Ð¿ÐµÑедаÑи WAL Ñ Ð°ÑÑ Ð¸Ð²Ð¸ÑÑемого ÑкземплÑÑа Postgres Pro. ÐÑо гаÑанÑиÑÑеÑ, ÑÑо вÑе нÑжнÑе ÑегменÑÑ WAL бÑдÑÑ Ð´Ð¾ÑÑÑпнÑ, еÑли в пÑоÑеÑÑе копиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð¿ÑоизойдÑÑ Ð¿ÐµÑеклÑÑение ÑегменÑов WAL. ÐÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð¼Ð¾Ð¶ÐµÑ Ð¸ÑполÑзоваÑÑÑÑ ÑолÑко вмеÑÑе Ñ Ð¿Ð°ÑамеÑÑом
--stream. Ðо ÑмолÑÐ°Ð½Ð¸Ñ Ð¸Ð¼Ñ ÑлоÑа âpg_probackup_slot, но его можно поменÑÑÑ, воÑполÑзовавÑиÑÑ Ð¿Ð°ÑамеÑÑом--slot/-S.-SимÑ_ÑлоÑа--slot=имÑ_ÑлоÑаÐадаÑÑ ÑÐ»Ð¾Ñ ÑепликаÑии Ð´Ð»Ñ Ð¿ÐµÑедаÑи WAL. ÐÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð¼Ð¾Ð¶Ð½Ð¾ ÑказаÑÑ ÑолÑко вмеÑÑе Ñ Ð¿Ð°ÑамеÑÑом
--stream.--backup-pg-logÐклÑÑÐ°ÐµÑ Ð² ÑезеÑвнÑÑ ÐºÐ¾Ð¿Ð¸Ñ ÐºÐ°Ñалог
log. ÐÑÐ¾Ñ ÐºÐ°Ñалог обÑÑно ÑодеÑÐ¶Ð¸Ñ Ð¶ÑÑÐ½Ð°Ð»Ñ ÑообÑений ÑеÑвеÑа. Ðо ÑмолÑÐ°Ð½Ð¸Ñ ÐºÐ°Ñалогlogв ÐºÐ¾Ð¿Ð¸Ñ Ð½Ðµ вклÑÑаеÑÑÑ.-EпÑÑÑ_внеÑнего_каÑалога--external-dirs=пÑÑÑ_внеÑнего_каÑалогаÐклÑÑÐ°ÐµÑ Ð² ÑоздаваемÑÑ ÐºÐ¾Ð¿Ð¸Ñ ÑказаннÑй каÑалог, ÑекÑÑÑивно копиÑÑÑ ÐµÐ³Ð¾ ÑодеÑжимое в оÑделÑнÑй подкаÑалог каÑалога ÑезеÑвной копии. ÐÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð¿Ð¾Ð»ÐµÐ·ÐµÐ½ Ð´Ð»Ñ Ð°ÑÑ Ð¸Ð²Ð¸ÑÐ¾Ð²Ð°Ð½Ð¸Ñ ÑкÑипÑов, SQL-дампов и Ñайлов конÑигÑÑаÑии, ÑаÑположеннÑÑ Ð²Ð½Ðµ каÑалога даннÑÑ . ÐÑли Ð²Ñ Ñ Ð¾ÑиÑе аÑÑ Ð¸Ð²Ð¸ÑоваÑÑ Ð½ÐµÑколÑко внеÑÐ½Ð¸Ñ ÐºÐ°Ñалогов, Ð¸Ñ Ð¿ÑÑи нÑжно ÑазделÑÑÑ Ð´Ð²Ð¾ÐµÑоÑием в Linux или ÑоÑкой Ñ Ð·Ð°Ð¿ÑÑой в Windows.
--archive-timeout=вÑемÑ_ожиданиÑÐадаÑÑ Ñайм-аÑÑ Ð´Ð»Ñ Ð°ÑÑ Ð¸Ð²Ð¸ÑÐ¾Ð²Ð°Ð½Ð¸Ñ ÑегменÑов WAL и поÑоковой пеÑедаÑи (в ÑекÑÐ½Ð´Ð°Ñ ). Ðо ÑмолÑÐ°Ð½Ð¸Ñ pg_probackup ждÑÑ Ð²ÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ ÑÑÐ¸Ñ Ð¾Ð¿ÐµÑаÑий 300 ÑекÑнд.
--skip-block-validationÐÑклÑÑÐ°ÐµÑ Ð¿ÑовеÑÐºÑ ÐºÐ¾Ð½ÑÑолÑнÑÑ ÑÑмм на ÑÑовне блоков в пÑоÑеÑÑе ÑезеÑвного копиÑованиÑ.
--no-validateÐÑопÑÑÐºÐ°ÐµÑ Ð°Ð²ÑомаÑиÑеÑкÑÑ Ð¿ÑовеÑÐºÑ Ñозданной ÑезеÑвной копии. ÐÑÐ¾Ñ ÐºÐ»ÑÑ Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¿Ð¾Ð»ÐµÐ·ÐµÐ½, еÑли Ð²Ñ ÑегÑлÑÑно пÑовеÑÑеÑе ÑезеÑвнÑе копии и Ñ Ð¾ÑиÑе ÑокÑаÑиÑÑ Ð²ÑÐµÐ¼Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ ÐºÐ¾Ð¿Ð¸Ð¸.
--no-syncÐе ÑбÑаÑÑваÑÑ ÐºÐ¾Ð¿Ð¸ÑÑемÑе ÑÐ°Ð¹Ð»Ñ Ð½Ð° диÑк. ÐÑÐ¾Ñ Ñлаг позволÑÐµÑ Ð½ÐµÑколÑко ÑÑкоÑиÑÑ Ð¿ÑоÑеÑÑ ÐºÐ¾Ð¿Ð¸ÑованиÑ. ÐÑполÑзование ÑÑого Ñлага Ð¼Ð¾Ð¶ÐµÑ Ð¿ÑивеÑÑи к повÑÐµÐ¶Ð´ÐµÐ½Ð¸Ñ Ð´Ð°Ð½Ð½ÑÑ Ð² ÑлÑÑае аваÑии опеÑаÑионной ÑиÑÑÐµÐ¼Ñ Ð¸Ð»Ð¸ аппаÑаÑного ÑбоÑ. ÐÑли Ð²Ñ Ð¸ÑполÑзÑеÑе его, ÑекомендÑеÑÑÑ Ð²ÑполниÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ validate ÑÑÐ°Ð·Ñ Ð¿Ð¾Ñле завеÑÑÐµÐ½Ð¸Ñ ÐºÐ¾Ð¿Ð¸ÑованиÑ, ÑÑÐ¾Ð±Ñ ÑбедиÑÑÑÑ Ð² оÑÑÑÑÑÑвии пÑоблем.
--note=замеÑка_к_копииÐадаÑÑ ÑекÑÑовÑÑ Ð·Ð°Ð¼ÐµÑÐºÑ Ð´Ð»Ñ ÑезеÑвной копии. ÐÑли
замеÑка_к_копииÑодеÑÐ¶Ð¸Ñ ÑÐ¸Ð¼Ð²Ð¾Ð»Ñ Ð¿ÐµÑевода ÑÑÑоки, ÑÐ¾Ñ Ñанена бÑÐ´ÐµÑ ÑолÑко подÑÑÑока до пеÑвого пеÑевода ÑÑÑоки. ÐакÑималÑнÑй ÑÐ°Ð·Ð¼ÐµÑ Ð·Ð°Ð¼ÐµÑки Ñавен 1 ÐÐ. ÐнаÑение'none'ÑдалÑÐµÑ ÑекÑÑÑÑ Ð·Ð°Ð¼ÐµÑкÑ.
ÐополниÑелÑно Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе задаÑÑ Ð¿Ð°ÑамеÑÑÑ ÑоединениÑ, Ñ ÑанениÑ, закÑеплениÑ, ÑдалÑнного Ñежима, ÑжаÑÐ¸Ñ Ð¸ Ð²ÐµÐ´ÐµÐ½Ð¸Ñ Ð¶ÑÑнала, а Ñакже обÑие паÑамеÑÑÑ.
Ðа подÑобноÑÑÑми обÑаÑиÑеÑÑ Ðº подÑÐ°Ð·Ð´ÐµÐ»Ñ Ð¡Ð¾Ð·Ð´Ð°Ð½Ð¸Ðµ ÑезеÑвной копии.
restore
pg_probackup restore -BкаÑалог_копий--instanceимÑ_ÑкземплÑÑа[--help] [-DкаÑалог_даннÑÑ] [-iид_ÑезеÑвной_копии] [-jÑиÑло_поÑоков] [--progress] [-TСТÐРЫÐ_ÐÐТÐÐÐÐ=ÐÐÐЫÐ_ÐÐТÐÐÐÐ] [--external-mapping=СТÐРЫÐ_ÐÐТÐÐÐÐ=ÐÐÐЫÐ_ÐÐТÐÐÐÐ] [--skip-external-dirs] [-R | --restore-as-replica] [--no-validate] [--skip-block-validation] [--force] [--no-sync] [--restore-command=команда] [--primary-conninfo=ÑÑÑока_подклÑÑениÑ] [-S | --primary-slot-name=имÑ_ÑлоÑа] [-XкаÑалог_WAL| --waldir=каÑалог_WAL] [паÑамеÑÑÑ_ÑоÑки_воÑÑÑановлениÑ] [паÑамеÑÑÑ_жÑÑнала] [паÑамеÑÑÑ_ÑдалÑнного_Ñежима] [паÑамеÑÑÑ_ÑаÑÑиÑного_воÑÑÑановлениÑ] [паÑамеÑÑÑ_ÑдалÑнного_аÑÑ Ð¸Ð²Ð°_wal]
ÐоÑÑÑÐ°Ð½Ð°Ð²Ð»Ð¸Ð²Ð°ÐµÑ ÑкземплÑÑ Postgres Pro из ÑезеÑвной копии, ÑаÑположенной в каÑалоге каÑалог_копий. ÐÑли Ð²Ñ ÑкажеÑе один или неÑколÑко паÑамеÑÑов ÑоÑки воÑÑÑановлениÑ, pg_probackup найдÑÑ Ð±Ð»Ð¸Ð¶Ð°Ð¹ÑÑÑ Ðº ÑÑой ÑоÑке ÐºÐ¾Ð¿Ð¸Ñ Ð¸ вÑÐ¿Ð¾Ð»Ð½Ð¸Ñ Ð²Ð¾ÑÑÑановление до заданной ÑоÑки. ÐÑли ни иденÑиÑикаÑÐ¾Ñ ÐºÐ¾Ð¿Ð¸Ð¸, ни паÑамеÑÑÑ ÑоÑки воÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð½Ðµ задаÑÑÑÑ, pg_probackup вÑполнÑÐµÑ Ð²Ð¾ÑÑÑановление, иÑполÑзÑÑ ÑамÑÑ Ð¿Ð¾ÑледнÑÑ ÐºÐ¾Ð¿Ð¸Ñ.
-R--restore-as-replicaСоздаÑÑ Ð¼Ð¸Ð½Ð¸Ð¼Ð°Ð»ÑнÑй Ñайл конÑигÑÑаÑии воÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð´Ð»Ñ Ð¾Ð±Ð»ÐµÐ³ÑÐµÐ½Ð¸Ñ Ð½Ð°ÑÑÑойки ведомого ÑеÑвеÑа. ÐÑли Ð´Ð»Ñ ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ ÑепликаÑии ÑÑебÑеÑÑÑ Ð¿Ð°ÑолÑ, его нÑжно дополниÑелÑно задаÑÑ Ð²ÑÑÑнÑÑ Ð² primary_conninfo. ÐÐ»Ñ Postgres Pro веÑÑии 11 и ниже паÑамеÑÑÑ Ð²Ð¾ÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ ÑÐ¾Ñ ÑанÑÑÑÑÑ Ð² каÑалоге даннÑÑ Ð² Ñайле
recovery.conf, но Ð´Ð»Ñ Ð²ÐµÑÑий Postgres Pro, наÑÐ¸Ð½Ð°Ñ Ñ 12, pg_probackup ÑÐ¾Ñ ÑанÑÐµÑ ÑÑи паÑамеÑÑÑ Ð² Ñайлеprobackup_recovery.conf.--primary-conninfo=ÑÑÑока_подклÑÑениÑУÑÑÐ°Ð½Ð°Ð²Ð»Ð¸Ð²Ð°ÐµÑ Ð·Ð°Ð´Ð°Ð½Ð½Ð¾Ðµ знаÑение Ð´Ð»Ñ Ð¿Ð°ÑамеÑÑа primary_conninfo. ÐÑо знаÑение ÑÑиÑÑваеÑÑÑ ÑолÑко пÑи иÑполÑзовании Ñлага
-R.ÐÑимеÑ:
--primary-conninfo="host=192.168.1.50 port=5432 user=foo password=foopass"-S--primary-slot-name=имÑ_ÑлоÑаУÑÑÐ°Ð½Ð°Ð²Ð»Ð¸Ð²Ð°ÐµÑ Ð·Ð°Ð´Ð°Ð½Ð½Ð¾Ðµ знаÑение Ð´Ð»Ñ Ð¿Ð°ÑамеÑÑа primary_slot_name. ÐÑо знаÑение ÑÑиÑÑваеÑÑÑ ÑолÑко пÑи иÑполÑзовании Ñлага
-R.-TСТÐРЫÐ_ÐÐТÐÐÐÐ=ÐÐÐЫÐ_ÐÐТÐÐÐÐ--tablespace-mapping=СТÐРЫÐ_ÐÐТÐÐÐÐ=ÐÐÐЫÐ_ÐÐТÐÐÐÐÐеÑемеÑÐ°ÐµÑ ÑаблиÑное пÑоÑÑÑанÑÑво из каÑалога
СТÐРЫÐ_ÐÐТÐÐÐÐвÐÐÐЫÐ_ÐÐТÐÐÐÐво вÑÐµÐ¼Ñ Ð²Ð¾ÑÑÑановлениÑ. ÐСТÐРЫÐ_ÐÐТÐÐÐÐ, иÐÐÐЫÐ_ÐÐТÐÐÐÐÐ´Ð¾Ð»Ð¶Ð½Ñ Ð·Ð°Ð´Ð°Ð²Ð°ÑÑÑÑ Ð°Ð±ÑолÑÑнÑми пÑÑÑми. ÐÑли пÑÑÑ ÑодеÑÐ¶Ð¸Ñ Ð·Ð½Ð°Ðº Ñавно (=), ÑкÑаниÑÑйÑе ÑÑÐ¾Ñ Ð·Ð½Ð°Ðº обÑаÑной коÑой ÑеÑÑой. ÐаннÑй паÑамеÑÑ Ð¼Ð¾Ð¶ÐµÑ ÑказÑваÑÑÑÑ Ð½ÐµÐ¾Ð´Ð½Ð¾ÐºÑаÑно Ð´Ð»Ñ Ð¿ÐµÑемеÑÐµÐ½Ð¸Ñ Ð½ÐµÑколÑÐºÐ¸Ñ ÑаблиÑнÑÑ Ð¿ÑоÑÑÑанÑÑв.--external-mapping=СТÐРЫÐ_ÐÐТÐÐÐÐ=ÐÐÐЫÐ_ÐÐТÐÐÐÐÐеÑемеÑÐ°ÐµÑ Ð²Ð½ÐµÑний каÑалог, вклÑÑÑннÑй в ÑезеÑвнÑÑ ÐºÐ¾Ð¿Ð¸Ñ, из каÑалога
СТÐРЫÐ_ÐÐТÐÐÐÐвÐÐÐЫÐ_ÐÐТÐÐÐÐво вÑÐµÐ¼Ñ Ð²Ð¾ÑÑÑановлениÑ. ÐСТÐРЫÐ_ÐÐТÐÐÐÐ, иÐÐÐЫÐ_ÐÐТÐÐÐÐÐ´Ð¾Ð»Ð¶Ð½Ñ Ð·Ð°Ð´Ð°Ð²Ð°ÑÑÑÑ Ð°Ð±ÑолÑÑнÑми пÑÑÑми. ÐÑли пÑÑÑ ÑодеÑÐ¶Ð¸Ñ Ð·Ð½Ð°Ðº Ñавно (=), ÑкÑаниÑÑйÑе ÑÑÐ¾Ñ Ð·Ð½Ð°Ðº обÑаÑной коÑой ÑеÑÑой. ÐаннÑй паÑамеÑÑ Ð¼Ð¾Ð¶ÐµÑ ÑказÑваÑÑÑÑ Ð½ÐµÐ¾Ð´Ð½Ð¾ÐºÑаÑно Ð´Ð»Ñ Ð½ÐµÑколÑÐºÐ¸Ñ ÐºÐ°Ñалогов.--skip-external-dirsÐÑопÑÑкаÑÑ Ð²Ð½ÐµÑние каÑалоги, вклÑÑÑннÑе в ÑезеÑвнÑÑ ÐºÐ¾Ð¿Ð¸Ñ Ñказанием
--external-dirs. СодеÑжимое ÑÑÐ¸Ñ ÐºÐ°Ñалогов не бÑÐ´ÐµÑ Ð²Ð¾ÑÑÑановлено.--skip-block-validationÐÑклÑÑÐ°ÐµÑ Ð¿ÑовеÑÐºÑ ÐºÐ¾Ð½ÑÑолÑнÑÑ ÑÑмм на ÑÑовне блоков Ð´Ð»Ñ ÑÑкоÑÐµÐ½Ð¸Ñ Ð¿ÑовеÑки ÑелоÑÑноÑÑи. ÐÑи авÑомаÑиÑеÑкой пÑовеÑке пеÑед воÑÑÑановлением бÑдÑÑ Ð¿ÑовеÑÑÑÑÑÑ ÑолÑко конÑÑолÑнÑе ÑÑÐ¼Ð¼Ñ Ð½Ð° ÑÑовне Ñайлов.
--no-validateÐÑопÑÑÐºÐ°ÐµÑ Ð¿ÑовеÑÐºÑ ÑезеÑвного копиÑованиÑ. ÐÑÐ¾Ñ ÐºÐ»ÑÑ Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¿Ð¾Ð»ÐµÐ·ÐµÐ½, еÑли Ð²Ñ ÑегÑлÑÑно пÑовеÑÑеÑе копии и Ñ Ð¾ÑиÑе ÑокÑаÑиÑÑ Ð²ÑÐµÐ¼Ñ Ð²Ð¾ÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð´Ð°Ð½Ð½ÑÑ .
--restore-command=командаÐадаÑÑ Ð·Ð½Ð°Ñение Ð´Ð»Ñ Ð¿Ð°ÑамеÑÑа restore_command. ÐапÑимеÑ:
--restore-command='cp /mnt/server/archivedir/%f "%p"'--forceÐозволÑÐµÑ Ð¸Ð³Ð½Ð¾ÑиÑоваÑÑ Ð¾ÑибоÑное ÑоÑÑоÑние копии. ÐÑÐ¾Ñ Ñлаг можно иÑполÑзоваÑÑ, когда ÑÑебÑеÑÑÑ Ð²Ð¾ÑÑÑановиÑÑ ÐºÐ»Ð°ÑÑÐµÑ Postgres Pro из повÑеждÑнной или некоÑÑекÑной копии. ÐÑименÑйÑе его Ñ Ð¾ÑÑоÑожноÑÑÑÑ. ÐÑли в Ñелевом каÑалоге
PGDATAиденÑиÑикаÑÐ¾Ñ ÑиÑÑÐµÐ¼Ñ Ð¾ÑлиÑаеÑÑÑ Ð¾Ñ Ñого, ÑÑо Ñказан в копии, пÑи инкÑеменÑалÑном воÑÑÑановлении Ñ ÑÑим Ñлагом ÑодеÑжимое каÑалога бÑÐ´ÐµÑ Ð¿ÐµÑезапиÑано (Ñогда как без Ñлага Ð²Ð¾Ð·Ð½Ð¸ÐºÐ½ÐµÑ Ð¾Ñибка). Также в ÑлÑÑае пеÑенапÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ñказанием--tablespace-mappingÑаблиÑнÑÑ Ð¿ÑоÑÑÑанÑÑв в непÑÑÑÑе каÑалоги ÑодеÑжимое ÑÑÐ¸Ñ ÐºÐ°Ñалогов бÑÐ´ÐµÑ Ñдалено.--no-syncÐе ÑбÑаÑÑваÑÑ Ð²Ð¾ÑÑÑанавливаемÑе ÑÐ°Ð¹Ð»Ñ Ð½Ð° диÑк. ÐÑÐ¾Ñ Ñлаг позволÑÐµÑ Ð½ÐµÑколÑко ÑÑкоÑиÑÑ Ð¿ÑоÑеÑÑ Ð²Ð¾ÑÑÑановлениÑ. ÐÑполÑзование ÑÑого Ñлага Ð¼Ð¾Ð¶ÐµÑ Ð¿ÑивеÑÑи к повÑÐµÐ¶Ð´ÐµÐ½Ð¸Ñ Ð´Ð°Ð½Ð½ÑÑ Ð² ÑлÑÑае аваÑии опеÑаÑионной ÑиÑÑÐµÐ¼Ñ Ð¸Ð»Ð¸ аппаÑаÑного ÑбоÑ. ÐÑли Ñакое ÑобÑÑие пÑоизойдÑÑ, вам поÑÑебÑеÑÑÑ Ð·Ð°Ð¿ÑÑÑиÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ restore еÑÑ Ñаз.
-XкаÑалог_WAL--waldir=каÑалог_WALУказÑÐ²Ð°ÐµÑ ÐºÐ°Ñалог, в коÑоÑом должен Ñ ÑаниÑÑÑÑ WAL.
ÐополниÑелÑно Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе задаÑÑ Ð¿Ð°ÑамеÑÑÑ ÑоÑки воÑÑÑановлениÑ, ÑдалÑнного ÑеÑвеÑа, ÑдалÑнного аÑÑ Ð¸Ð²Ð° WAL, Ð²ÐµÐ´ÐµÐ½Ð¸Ñ Ð¶ÑÑнала и ÑаÑÑиÑного воÑÑÑановлениÑ, а Ñакже обÑие паÑамеÑÑÑ.
Ðа подÑобноÑÑÑми обÑаÑиÑеÑÑ Ðº подÑÐ°Ð·Ð´ÐµÐ»Ñ ÐоÑÑÑановление клаÑÑеÑа.
checkdb
pg_probackup checkdb [-BкаÑалог_копий] [--instanceимÑ_ÑкземплÑÑа] [-DкаÑалог_даннÑÑ] [--help] [-jÑиÑло_поÑоков] [--progress] [--amcheck [--skip-block-validation] [--checkunique] [--heapallindexed]] [паÑамеÑÑÑ_ÑоединениÑ] [паÑамеÑÑÑ_жÑÑнала]
ÐÑовеÑÑÐµÑ ÑелоÑÑноÑÑÑ ÐºÐ»Ð°ÑÑеÑа баз даннÑÑ Postgres Pro, вÑÑвлÑÑ ÑизиÑеÑкие и логиÑеÑкие повÑеждениÑ.
--amcheckÐÑÐ¾Ð¸Ð·Ð²Ð¾Ð´Ð¸Ñ Ð»Ð¾Ð³Ð¸ÑеÑкÑÑ Ð¿ÑовеÑÐºÑ Ð¸Ð½Ð´ÐµÐºÑов Ð´Ð»Ñ Ñказанного ÑкземплÑÑа Postgres Pro, еÑли не бÑли вÑÑÐ²Ð»ÐµÐ½Ñ Ð¿Ð¾Ð²ÑÐµÐ¶Ð´ÐµÐ½Ð¸Ñ Ð¿Ñи пÑовеÑке Ñайлов даннÑÑ . ÐÐ»Ñ Ð¿ÑовеÑки индекÑов в базе даннÑÑ Ð² ней должно бÑÑÑ ÑÑÑановлено ÑаÑÑиÑение amcheck или amcheck_next. Ð Ð±Ð°Ð·Ð°Ñ Ð´Ð°Ð½Ð½ÑÑ , где amcheck оÑÑÑÑÑÑвÑеÑ, индекÑÑ Ð¿ÑовеÑÑÑÑÑÑ Ð½Ðµ бÑдÑÑ. ÐополниÑелÑнÑе паÑамеÑÑÑ
--checkuniqueи--heapallindexedдейÑÑвÑÑÑ Ð² завиÑимоÑÑи Ð¾Ñ ÑÑÑановленной веÑÑии amcheck.--checkuniqueÐÑовеÑÑÐµÑ Ð¾Ð³ÑаниÑÐµÐ½Ð¸Ñ ÑникалÑноÑÑи во вÑÐµÐ¼Ñ Ð»Ð¾Ð³Ð¸ÑеÑкой пÑовеÑки индекÑов. ÐÑ Ð¼Ð¾Ð¶ÐµÑе иÑполÑзоваÑÑ ÑÑÐ¾Ñ Ñлаг ÑолÑко вмеÑÑе Ñ Ñлагом
--amcheck, когда в базе даннÑÑ ÑÑÑановлено ÑаÑÑиÑение amcheck.ÐÑа пÑовеÑка возможна, ÑолÑко еÑли в иÑполÑзÑемой вами веÑÑии ÑаÑÑиÑÐµÐ½Ð¸Ñ amcheck ÑÑнкÑиÑ
bt_index_checkпÑÐ¸Ð½Ð¸Ð¼Ð°ÐµÑ Ð¿Ð°ÑамеÑÑcheckunique.--heapallindexedÐÑовеÑÑеÑ, оÑÑÐ°Ð¶ÐµÐ½Ñ Ð»Ð¸ в индекÑÐ°Ñ Ð²Ñе коÑÑежи кÑÑи, коÑоÑÑе Ð´Ð¾Ð»Ð¶Ð½Ñ Ð±ÑÑÑ Ð¿ÑоиндекÑиÑованÑ. ÐÑÐ¾Ñ ÐºÐ»ÑÑ Ð¼Ð¾Ð¶Ð½Ð¾ иÑполÑзоваÑÑ ÑолÑко вмеÑÑе Ñ
--amcheck.ÐÑа пÑовеÑка возможна, ÑолÑко еÑли в иÑполÑзÑемой вами веÑÑии ÑаÑÑиÑÐµÐ½Ð¸Ñ amcheck/amcheck_next ÑÑнкÑиÑ
bt_index_checkпÑÐ¸Ð½Ð¸Ð¼Ð°ÐµÑ Ð¿Ð°ÑамеÑÑheapallindexed.--skip-block-validationÐÑопÑÑÑиÑÑ Ð¿ÑовеÑÐºÑ Ñайлов даннÑÑ . ÐÑ Ð¼Ð¾Ð¶ÐµÑе иÑполÑзоваÑÑ ÑÑÐ¾Ñ ÐºÐ»ÑÑ Ð²Ð¼ÐµÑÑе Ñ
--amcheck, ÑÑÐ¾Ð±Ñ Ð¿ÑоизвеÑÑи ÑолÑко логиÑеÑкÑÑ Ð¿ÑовеÑÐºÑ Ð¸Ð½Ð´ÐµÐºÑов.
Также Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе задаÑÑ Ð¿Ð°ÑамеÑÑÑ ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ð¸ Ð²ÐµÐ´ÐµÐ½Ð¸Ñ Ð¶ÑÑнала.
Ðа подÑобноÑÑÑми обÑаÑиÑеÑÑ Ðº подÑÐ°Ð·Ð´ÐµÐ»Ñ ÐÑовеÑка клаÑÑеÑа.
validate
pg_probackup validate -BкаÑалог_копий[--help] [--instanceимÑ_ÑкземплÑÑа] [-iид_ÑезеÑвной_копии] [-jÑиÑло_поÑоков] [--progress] [--skip-block-validation] [паÑамеÑÑÑ_ÑоÑки_воÑÑÑановлениÑ] [паÑамеÑÑÑ_жÑÑнала]
ÐÑовеÑÑÐµÑ Ð½Ð°Ð»Ð¸Ñие и ÑелоÑÑноÑÑÑ Ð²ÑеÑ
Ñайлов, необÑ
одимÑÑ
Ð´Ð»Ñ Ð²Ð¾ÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ ÐºÐ»Ð°ÑÑеÑа. ÐÑли имÑ_ÑкземплÑÑа не задаÑÑÑÑ, pg_probackup пÑовеÑÑÐµÑ Ð²Ñе ÑезеÑвнÑе копии, имеÑÑиеÑÑ Ð² каÑалоге копий. ÐÑли Ð²Ñ Ð·Ð°Ð´Ð°Ð´Ð¸Ñе имÑ_ÑкземплÑÑа без дополниÑелÑнÑÑ
паÑамеÑÑов, pg_probackup пÑовеÑÐ¸Ñ Ð²Ñе ÑезеÑвнÑе копии, коÑоÑÑе имеÑÑÑÑ Ð´Ð»Ñ ÑÑого ÑкземплÑÑа. ÐÑли задаÑÑ Ð¸Ð¼Ñ_ÑкземплÑÑа Ñ Ñказанием ÑоÑки воÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð¸Ð»Ð¸ ид_ÑезеÑвной_копии, pg_probackup пÑовеÑиÑ, возможно ли воÑÑÑановиÑÑ ÐºÐ»Ð°ÑÑÐµÑ Ñ ÑÑими паÑамеÑÑами.
Ðа подÑобноÑÑÑми обÑаÑиÑеÑÑ Ðº подÑÐ°Ð·Ð´ÐµÐ»Ñ ÐÑовеÑка копии.
merge
pg_probackup merge -BкаÑалог_копий--instanceимÑ_ÑкземплÑÑа-iид_ÑезеÑвной_копии[--help] [-jÑиÑло_поÑоков] [--progress] [--no-validate] [--no-sync] [паÑамеÑÑÑ_жÑÑнала]
ÐбÑединÑÐµÑ ÐºÐ¾Ð¿Ð¸Ð¸, оÑноÑÑÑиеÑÑ Ðº одной ÑепоÑке инкÑеменÑалÑнÑÑ ÐºÐ¾Ð¿Ð¸Ð¹. ÐÑли вÑбÑана Ð¿Ð¾Ð»Ð½Ð°Ñ ÐºÐ¾Ð¿Ð¸Ñ, она бÑÐ´ÐµÑ Ð¾Ð±Ñединена Ñ Ð¿ÐµÑвой инкÑеменÑалÑной копией поÑле неÑ. ÐÑли вÑбÑана инкÑеменÑалÑÐ½Ð°Ñ ÐºÐ¾Ð¿Ð¸Ñ, она бÑÐ´ÐµÑ Ð¾Ð±Ñединена Ñ ÑодиÑелÑÑкой полной копией, вклÑÑÐ°Ñ Ð²Ñе инкÑеменÑалÑнÑе копии Ð¼ÐµÐ¶Ð´Ñ Ð½Ð¸Ð¼Ð¸. ÐоÑле завеÑÑÐµÐ½Ð¸Ñ Ð¾Ð±ÑÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ ÑезÑлÑÑиÑÑÑÑÐ°Ñ Ð¿Ð¾Ð»Ð½Ð°Ñ ÐºÐ¾Ð¿Ð¸Ñ Ð±ÑÐ´ÐµÑ Ð²Ð¼ÐµÑаÑÑ Ð² ÑÐµÐ±Ñ Ð²Ñе даннÑе, а инкÑеменÑалÑнÑе копии бÑдÑÑ ÑÐ´Ð°Ð»ÐµÐ½Ñ ÐºÐ°Ðº избÑÑоÑнÑе.
--no-validateÐÑопÑÑÐºÐ°ÐµÑ Ð°Ð²ÑомаÑиÑеÑкÑÑ Ð¿ÑовеÑÐºÑ Ð´Ð¾ и поÑле обÑединениÑ.
--no-syncÐе ÑбÑаÑÑваÑÑ Ð¾Ð±ÑединÑемÑе ÑÐ°Ð¹Ð»Ñ Ð½Ð° диÑк. ÐÑÐ¾Ñ Ñлаг позволÑÐµÑ Ð½ÐµÑколÑко ÑÑкоÑиÑÑ Ð¿ÑоÑеÑÑ Ð¾Ð±ÑединениÑ. ÐÑполÑзование ÑÑого Ñлага Ð¼Ð¾Ð¶ÐµÑ Ð¿ÑивеÑÑи к повÑÐµÐ¶Ð´ÐµÐ½Ð¸Ñ Ð´Ð°Ð½Ð½ÑÑ Ð² ÑлÑÑае аваÑии опеÑаÑионной ÑиÑÑÐµÐ¼Ñ Ð¸Ð»Ð¸ аппаÑаÑного ÑбоÑ.
Ðа подÑобноÑÑÑми обÑаÑиÑеÑÑ Ðº подÑÐ°Ð·Ð´ÐµÐ»Ñ ÐбÑединение ÑезеÑвнÑÑ ÐºÐ¾Ð¿Ð¸Ð¹.
delete
pg_probackup delete -BкаÑалог_копий--instanceимÑ_ÑкземплÑÑа[--help] [-jÑиÑло_поÑоков] [--progress] [--retention-redundancy=избÑÑоÑноÑÑÑ][--retention-window=окно][--wal-depth=глÑбина_wal] [--delete-wal] {-iид_ÑезеÑвной_копии| --delete-expired [--merge-expired] | --merge-expired | --status=ÑоÑÑоÑние} [--dry-run] [--no-validate] [--no-sync] [паÑамеÑÑÑ_жÑÑнала]
УдалÑÐµÑ ÐºÐ¾Ð¿Ð¸Ñ Ñ Ð·Ð°Ð´Ð°Ð½Ð½Ñм иденÑиÑикаÑоÑом (ид_ÑезеÑвной_копии) или запÑÑÐºÐ°ÐµÑ Ð¿ÑоÑедÑÑÑ ÑÐ´Ð°Ð»ÐµÐ½Ð¸Ñ ÑезеÑвнÑÑ
копий или зааÑÑ
ивиÑованнÑÑ
Ñайлов WAL, не ÑдовлеÑвоÑÑÑÑиÑ
ÑекÑÑей полиÑике Ñ
ÑанениÑ.
--no-validateÐÑопÑÑÐºÐ°ÐµÑ Ð°Ð²ÑомаÑиÑеÑкÑÑ Ð¿ÑовеÑÐºÑ Ð´Ð¾ и поÑле обÑÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ ÐºÐ¾Ð¿Ð¸Ð¹ в ÑооÑвеÑÑÑвии Ñ Ð¿Ð¾Ð»Ð¸Ñикой Ñ ÑанениÑ.
--no-syncÐе ÑбÑаÑÑваÑÑ Ð¾Ð±ÑединÑемÑе ÑÐ°Ð¹Ð»Ñ Ð½Ð° диÑк. ÐÑÐ¾Ñ Ñлаг позволÑÐµÑ Ð½ÐµÑколÑко ÑÑкоÑиÑÑ Ð¿ÑоÑеÑÑ Ð¾Ð±ÑÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ ÐºÐ¾Ð¿Ð¸Ð¹ в ÑооÑвеÑÑÑвии Ñ Ð¿Ð¾Ð»Ð¸Ñикой Ñ ÑанениÑ. ÐÑполÑзование ÑÑого Ñлага Ð¼Ð¾Ð¶ÐµÑ Ð¿ÑивеÑÑи к повÑÐµÐ¶Ð´ÐµÐ½Ð¸Ñ Ð´Ð°Ð½Ð½ÑÑ Ð² ÑлÑÑае аваÑии опеÑаÑионной ÑиÑÑÐµÐ¼Ñ Ð¸Ð»Ð¸ аппаÑаÑного ÑбоÑ.
Ðа подÑобноÑÑÑми обÑаÑиÑеÑÑ Ðº подÑазделам Удаление ÑезеÑвнÑÑ ÐºÐ¾Ð¿Ð¸Ð¹, ÐаÑамеÑÑÑ Ñ ÑÐ°Ð½ÐµÐ½Ð¸Ñ Ð¸ ÐаÑÑÑойка полиÑики Ñ ÑанениÑ.
archive-push
pg_probackup archive-push -BкаÑалог_копий--instanceимÑ_ÑкземплÑÑа--wal-file-name=имÑ_Ñайла_wal[--wal-file-path=пÑÑÑ_Ñайлов_wal] [--help] [--no-sync] [--compress] [--no-ready-rename] [--overwrite] [-jÑиÑло_поÑоков] [--batch-size=ÑазмеÑ_поÑÑии] [--archive-timeout=Ñайм-аÑÑ] [--compress-algorithm=алгоÑиÑм_ÑжаÑиÑ] [--compress-level=ÑÑовенÑ_ÑжаÑиÑ] [паÑамеÑÑÑ_ÑдалÑнного_Ñежима] [паÑамеÑÑÑ_жÑÑнала]
ÐопиÑÑÐµÑ ÑÐ°Ð¹Ð»Ñ WAL в ÑооÑвеÑÑÑвÑÑÑий подкаÑалог каÑалога копий, пÑовеÑÑÑ Ñелевой ÑкземплÑÑ Ð¿Ð¾ имени_ÑкземплÑÑа и знаÑÐµÐ½Ð¸Ñ system-identifier. ÐÑли паÑамеÑÑÑ ÑкземплÑÑа ÑезеÑвной копии и клаÑÑеÑа не ÑовпадаÑÑ, опеÑаÑÐ¸Ñ ÐºÐ¾Ð¿Ð¸ÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð½Ðµ вÑполнÑеÑÑÑ, и вÑдаÑÑÑÑ Ð¾Ñибка: Refuse to push WAL segment segment_name into archive. Instance parameters mismatch. (ÐÑказано в помеÑении ÑегменÑа имÑ_ÑегменÑа в аÑÑ
ив. ÐаÑамеÑÑÑ ÑкземплÑÑа не ÑовпадаÑÑ.)
ÐÑли ÑайлÑ, коÑоÑÑе ÑÑебÑеÑÑÑ ÐºÐ¾Ð¿Ð¸ÑоваÑÑ, Ñже имеÑÑÑÑ Ð² каÑалоге копий, pg_probackup вÑÑиÑлÑÐµÑ Ð¸ ÑÑÐ°Ð²Ð½Ð¸Ð²Ð°ÐµÑ Ð¸Ñ
конÑÑолÑнÑе ÑÑммÑ. Ð ÑлÑÑае ÑÐ¾Ð²Ð¿Ð°Ð´ÐµÐ½Ð¸Ñ ÐºÐ¾Ð½ÑÑолÑнÑÑ
ÑÑмм archive-push пÑопÑÑÐºÐ°ÐµÑ ÑооÑвеÑÑÑвÑÑÑий Ñайл и вÑдаÑÑ ÐºÐ¾Ð´ ÑÑпеÑного завеÑÑениÑ. ÐÑли же они не ÑовпадаÑÑ, опеÑаÑÐ¸Ñ archive-push завеÑÑаеÑÑÑ Ñ Ð¾Ñибкой. ÐÑли Ð²Ñ Ñ
оÑиÑе заменÑÑÑ ÑÑÑеÑÑвÑÑÑие ÑÐ°Ð¹Ð»Ñ WAL в ÑлÑÑае неÑÐ¾Ð²Ð¿Ð°Ð´ÐµÐ½Ð¸Ñ ÐºÐ¾Ð½ÑÑолÑнÑÑ
ÑÑмм, добавÑÑе к команде archive-push клÑÑ --overwrite.
СодеÑжимое каждого Ñайла копиÑÑеÑÑÑ Ð²Ð¾ вÑеменнÑй Ñайл Ñ ÑаÑÑиÑением .part. ÐÑли Ñакой вÑеменнÑй Ñайл Ñже ÑÑÑеÑÑвÑеÑ, pg_probackup ждÑÑ, ÑÑо он иÑÑÐµÐ·Ð½ÐµÑ Ð² ÑеÑение заданного паÑамеÑÑом archive_timeout вÑемени, а еÑли ÑÑого не пÑоиÑÑ
одиÑ, оÑбÑаÑÑÐ²Ð°ÐµÑ ÐµÐ³Ð¾. ÐоÑле пеÑеноÑа ÑодеÑжимого вÑполнÑеÑÑÑ Ð°ÑомаÑÐ½Ð°Ñ Ð¾Ð¿ÐµÑаÑÐ¸Ñ Ð¿ÐµÑеименованиÑ. Тем ÑамÑм гаÑанÑиÑÑеÑÑÑ, ÑÑо в ÑлÑÑае оÑибки ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ archive-push непÑеÑÑвное аÑÑ
ивиÑование не оÑÑановиÑÑÑ Ð¸ ÑÑо пÑи паÑаллелÑном аÑÑ
ивиÑовании WAL из ÑазнÑÑ
иÑÑоÑников в один аÑÑ
ив повÑеждение аÑÑ
ива иÑклÑÑено.
ÐÐ»Ñ ÑÑкоÑÐµÐ½Ð¸Ñ Ð°ÑÑ
ивиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе воÑполÑзоваÑÑÑÑ Ð¿Ð°ÑамеÑÑом --batch-size, опÑеделÑÑÑим ÑÐ°Ð·Ð¼ÐµÑ Ð¿Ð¾ÑÑии из неÑколÑкиÑ
копиÑÑемÑÑ
ÑегменÑов WAL. ÐмеÑÑе Ñ Ð¿Ð°ÑамеÑÑом --batch-size Ñакже можно пÑимениÑÑ Ñказание -j, ÑÑÐ¾Ð±Ñ Ð¿Ð¾ÑÑии копиÑовалиÑÑ Ð² неÑколÑко поÑоков.
СегменÑÑ WAL, копиÑÑемÑе в аÑÑ
ив, по ÑмолÑÐ°Ð½Ð¸Ñ (без ÑÐºÐ°Ð·Ð°Ð½Ð¸Ñ Ñлага --no-sync) гаÑанÑиÑованно ÑбÑаÑÑваÑÑÑÑ Ð½Ð° диÑк.
ÐÐ¾Ð¼Ð°Ð½Ð´Ñ archive-push можно иÑполÑзоваÑÑ Ð² знаÑении паÑамеÑÑа archive_command Postgres Pro пÑи наÑÑÑойке непÑеÑÑвного аÑÑ
ивиÑÐ¾Ð²Ð°Ð½Ð¸Ñ WAL.
Ðа подÑобноÑÑÑми обÑаÑиÑеÑÑ Ðº подÑазделам ÐаÑамеÑÑÑ Ð°ÑÑ Ð¸Ð²Ð¸ÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð¸ ÐаÑамеÑÑÑ ÑжаÑиÑ.
archive-get
pg_probackup archive-get -BкаÑалог_копий--instanceимÑ_ÑкземплÑÑа--wal-file-path=пÑÑÑ_Ñайлов_wal--wal-file-name=имÑ_Ñайла_wal[-jÑиÑло_поÑоков] [--batch-size=ÑазмеÑ_поÑÑии] [--prefetch-dir=каÑалог_пÑедвÑбоÑки] [--no-validate-wal] [--help] [паÑамеÑÑÑ_ÑдалÑнного_Ñежима] [паÑамеÑÑÑ_жÑÑнала]
ÐопиÑÑÐµÑ ÑÐ°Ð¹Ð»Ñ WAL из ÑооÑвеÑÑÑвÑÑÑего подкаÑалога каÑалога ÑезеÑвнÑÑ
копий в каÑалог жÑÑнала пÑедзапиÑи клаÑÑеÑа. ÐÑа команда авÑомаÑиÑеÑки ÑÑÑанавливаеÑÑÑ Ð¿ÑогÑаммой pg_probackup в знаÑении паÑамеÑÑа restore_command пÑи воÑÑÑановлении аÑÑ
ивнÑÑ
копий Ñ Ð¿Ñименением аÑÑ
ива WAL. УÑÑанавливаÑÑ ÐµÑ Ð²ÑÑÑнÑÑ Ð½Ðµ нÑжно.
ÐÐ»Ñ ÑÑкоÑÐµÐ½Ð¸Ñ Ð²Ð¾ÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе воÑполÑзоваÑÑÑÑ Ð¿Ð°ÑамеÑÑом --batch-size, опÑеделÑÑÑим ÑÐ°Ð·Ð¼ÐµÑ Ð¿Ð¾ÑÑии из неÑколÑкиÑ
копиÑÑемÑÑ
ÑегменÑов WAL. ÐмеÑÑе Ñ Ð¿Ð°ÑамеÑÑом --batch-size Ñакже можно пÑимениÑÑ Ñказание -j, ÑÑÐ¾Ð±Ñ Ð¿Ð¾ÑÑии ÑегменÑов копиÑовалиÑÑ Ð² неÑколÑко поÑоков.
Ðа подÑобноÑÑÑми обÑаÑиÑеÑÑ Ðº подÑÐ°Ð·Ð´ÐµÐ»Ñ ÐаÑамеÑÑÑ Ð°ÑÑ Ð¸Ð²Ð°Ñии.
catchup
pg_probackup catchup -bÑежим_ÑÐ¸Ð½Ñ ÑонизаÑии--source-pgdata=пÑÑÑ_к_копиÑÑемомÑ_каÑалогÑ_даннÑÑ--destination-pgdata=пÑÑÑ_к_ÑелевомÑ_каÑалогÑ_даннÑÑ[--help] [-j | --threads=ÑиÑло_поÑоков] [--stream] [--dry-run] [--temp-slot] [-P | --perm-slot] [-S | --slot=имÑ_ÑлоÑа] [--exclude-path=ÐУТЬ] [-TСТÐРЫÐ_ÐÐТÐÐÐÐ=ÐÐÐЫÐ_ÐÐТÐÐÐÐ] [паÑамеÑÑÑ_подклÑÑениÑ] [паÑамеÑÑÑ_ÑдалÑнного_Ñежима]
СоздаÑÑ ÐºÐ¾Ð¿Ð¸Ñ ÑкземплÑÑа Postgres Pro, не иÑполÑзÑÑ ÐºÐ°Ñалог ÑезеÑвнÑÑ ÐºÐ¾Ð¿Ð¸Ð¹.
-bÑежим_ÑÐ¸Ð½Ñ ÑонизаÑии--backup-mode=Ñежим_ÑÐ¸Ð½Ñ ÑонизаÑииÐÑбиÑÐ°ÐµÑ Ñежим ÑÐ¸Ð½Ñ ÑонизаÑии. ÐоддеÑживаÑÑÑÑ ÑледÑÑÑие ÑежимÑ:
FULL,DELTAиPTRACK.--source-pgdata=пÑÑÑ_к_копиÑÑемомÑ_каÑалогÑ_даннÑÑÐадаÑÑ Ð¿ÑÑÑ Ðº каÑÐ°Ð»Ð¾Ð³Ñ Ð´Ð°Ð½Ð½ÑÑ ÐºÐ¾Ð¿Ð¸ÑÑемого ÑкземплÑÑа. ÐаÑалог Ð¼Ð¾Ð¶ÐµÑ Ð½Ð°Ñ Ð¾Ð´Ð¸ÑÑÑÑ ÐºÐ°Ðº локалÑно, Ñак и ÑдалÑнно.
--destination-pgdata=пÑÑÑ_к_ÑелевомÑ_каÑалогÑ_даннÑÑÐадаÑÑ Ð¿ÑÑÑ Ðº локалÑÐ½Ð¾Ð¼Ñ ÑÐµÐ»ÐµÐ²Ð¾Ð¼Ñ ÐºÐ°ÑÐ°Ð»Ð¾Ð³Ñ Ð´Ð°Ð½Ð½ÑÑ .
-jÑиÑло_поÑоков--threads=ÑиÑло_поÑоковÐадаÑÑ ÑиÑло паÑаллелÑнÑÑ Ð¿Ð¾Ñоков Ð´Ð»Ñ Ð¿ÑоÑеÑÑа
catchup.--streamÐопиÑÑÐµÑ ÑкземплÑÑ Ð² Ñежиме доÑÑавки STREAM, пÑи коÑоÑом вÑе Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ñе ÑÐ°Ð¹Ð»Ñ WAL пеÑедаÑÑÑÑ Ñ Ð¸ÑÑ Ð¾Ð´Ð½Ð¾Ð³Ð¾ ÑеÑвеÑа по пÑоÑÐ¾ÐºÐ¾Ð»Ñ ÑепликаÑии.
--dry-runÐÑобÑÐ°Ð¶Ð°ÐµÑ Ð¾Ð±Ñий ÑÐ°Ð·Ð¼ÐµÑ Ñайлов, коÑоÑÑе бÑдÑÑ Ð¿ÐµÑÐµÐ´Ð°Ð½Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¾Ð¹
catchup. ÐÑли ÑÑÑановлен Ñлаг--dry-run, вÑполнÑеÑÑÑ Ð¿ÑобнÑй запÑÑкcatchup, пÑи коÑоÑом не ÑоздаÑÑÑÑ, не ÑдалÑÑÑÑÑ Ð¸ не пеÑемеÑаÑÑÑÑ ÑÐ°Ð¹Ð»Ñ Ð½Ð° диÑке и пÑопÑÑкаеÑÑÑ Ð¿Ð¾ÑÐ¾ÐºÐ¾Ð²Ð°Ñ ÑÑанÑлÑÑÐ¸Ñ WAL. ÐÑÐ¾Ñ Ñлаг Ñакже позволÑÐµÑ Ð¿ÑовеÑиÑÑ Ð¿ÑавилÑноÑÑÑ Ð²ÑÐµÑ Ð¿Ð°ÑамеÑÑов и гоÑовноÑÑÑ Ðº запÑÑÐºÑ ÐºÐ»Ð¾Ð½Ð¸ÑованиÑ/ÑÐ¸Ð½Ñ ÑонизаÑии.-x=пÑеÑикÑ_пÑÑи--exclude-path=пÑеÑикÑ_пÑÑиÐпÑеделÑÐµÑ Ð¿ÑеÑÐ¸ÐºÑ Ð´Ð»Ñ Ñайлов, коÑоÑÑе не бÑдÑÑ ÐºÐ¾Ð¿Ð¸ÑоваÑÑÑÑ Ð¿Ñи ÑÐ¸Ð½Ñ ÑонизаÑии ÑкземплÑÑов Postgres Pro. Такой пÑеÑÐ¸ÐºÑ Ð´Ð¾Ð»Ð¶ÐµÐ½ ÑодеÑжаÑÑ Ð¿ÑÑÑ Ð¾ÑноÑиÑелÑно каÑалога даннÑÑ ÑкземплÑÑа. ÐÑли в пÑеÑикÑе Ñказан каÑалог, ни один Ñайл в ÑÑом каÑалоге не бÑÐ´ÐµÑ ÐºÐ¾Ð¿Ð¸Ñован.
ÐÑедÑпÑеждение
ÐÑполÑзÑйÑе ÑÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ñ Ð¾ÑÑоÑожноÑÑÑÑ, поÑколÑÐºÑ Ð¸ÑклÑÑение Ñайлов Ð¼Ð¾Ð¶ÐµÑ Ð¿ÑивеÑÑи к неполной ÑÐ¸Ð½Ñ ÑонизаÑии.
--temp-slotСоздаÑÑ Ð²ÑеменнÑй ÑÐ»Ð¾Ñ ÑизиÑеÑкой ÑепликаÑии Ð´Ð»Ñ Ð¿ÐµÑедаÑи WAL Ñ ÐºÐ¾Ð¿Ð¸ÑÑемого ÑкземплÑÑа Postgres Pro. ÐÑо гаÑанÑиÑÑеÑ, ÑÑо вÑе нÑжнÑе ÑегменÑÑ WAL бÑдÑÑ Ð´Ð¾ÑÑÑпнÑ, еÑли в пÑоÑеÑÑе копиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð¿ÑоизойдÑÑ Ð¿ÐµÑеклÑÑение ÑегменÑов WAL. ÐÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð¼Ð¾Ð¶Ð½Ð¾ иÑполÑзоваÑÑ ÑолÑко вмеÑÑе Ñ Ð¿Ð°ÑамеÑÑом
--streamи нелÑÐ·Ñ Ð¸ÑполÑзоваÑÑ Ñ Ð¿Ð°ÑамеÑÑом--perm-slot. Ðо ÑмолÑÐ°Ð½Ð¸Ñ Ð¸Ð¼Ñ Ð²Ñеменного ÑлоÑа âpg_probackup_slot, но его можно поменÑÑÑ, воÑполÑзовавÑиÑÑ Ð¿Ð°ÑамеÑÑом--slot/-S.-P--perm-slotСоздаÑÑ Ð¿Ð¾ÑÑоÑннÑй ÑÐ»Ð¾Ñ ÑизиÑеÑкой ÑепликаÑии Ð´Ð»Ñ Ð¿ÐµÑедаÑи WAL Ñ ÐºÐ¾Ð¿Ð¸ÑÑемого ÑкземплÑÑа Postgres Pro. ÐÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð¼Ð¾Ð¶Ð½Ð¾ иÑполÑзоваÑÑ ÑолÑко вмеÑÑе Ñ Ð¿Ð°ÑамеÑÑом
--streamи нелÑÐ·Ñ Ð¸ÑполÑзоваÑÑ Ñ Ð¿Ð°ÑамеÑÑом--temp-slot. Ðо ÑмолÑÐ°Ð½Ð¸Ñ Ð¸Ð¼Ñ Ð¿Ð¾ÑÑоÑнного ÑлоÑа âpg_probackup_perm_slot, но его можно поменÑÑÑ, воÑполÑзовавÑиÑÑ Ð¿Ð°ÑамеÑÑом--slot/-S.-SимÑ_ÑлоÑа--slot=имÑ_ÑлоÑаÐадаÑÑ ÑÐ»Ð¾Ñ ÑепликаÑии Ð´Ð»Ñ Ð¿ÐµÑедаÑи WAL. ÐÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð¼Ð¾Ð¶Ð½Ð¾ ÑказаÑÑ ÑолÑко вмеÑÑе Ñ Ð¿Ð°ÑамеÑÑом
--stream.-TСТÐРЫÐ_ÐÐТÐÐÐÐ=ÐÐÐЫÐ_ÐÐТÐÐÐÐ--tablespace-mapping=СТÐРЫÐ_ÐÐТÐÐÐÐ=ÐÐÐЫÐ_ÐÐТÐÐÐÐÐеÑемеÑÐ°ÐµÑ ÑаблиÑное пÑоÑÑÑанÑÑво из каÑалога
СТÐРЫÐ_ÐÐТÐÐÐÐвÐÐÐЫÐ_ÐÐТÐÐÐÐво вÑÐµÐ¼Ñ Ð²Ð¾ÑÑÑановлениÑ. ÐСТÐРЫÐ_ÐÐТÐÐÐÐ, иÐÐÐЫÐ_ÐÐТÐÐÐÐÐ´Ð¾Ð»Ð¶Ð½Ñ Ð·Ð°Ð´Ð°Ð²Ð°ÑÑÑÑ Ð°Ð±ÑолÑÑнÑми пÑÑÑми. ÐÑли пÑÑÑ ÑодеÑÐ¶Ð¸Ñ Ð·Ð½Ð°Ðº Ñавно (=), ÑкÑаниÑÑйÑе ÑÑÐ¾Ñ Ð·Ð½Ð°Ðº обÑаÑной коÑой ÑеÑÑой. ÐаннÑй паÑамеÑÑ Ð¼Ð¾Ð¶ÐµÑ ÑказÑваÑÑÑÑ Ð½ÐµÐ¾Ð´Ð½Ð¾ÐºÑаÑно Ð´Ð»Ñ Ð¿ÐµÑемеÑÐµÐ½Ð¸Ñ Ð½ÐµÑколÑÐºÐ¸Ñ ÑаблиÑнÑÑ Ð¿ÑоÑÑÑанÑÑв.
Также Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе задаÑÑ Ð¿Ð°ÑамеÑÑÑ ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ð¸ паÑамеÑÑÑ ÑдалÑнного Ñежима.
Ðа подÑобноÑÑÑми обÑаÑиÑеÑÑ Ðº подÑÐ°Ð·Ð´ÐµÐ»Ñ ÐлониÑование и ÑÐ¸Ð½Ñ ÑонизаÑÐ¸Ñ ÑкземплÑÑа Postgres Pro.
ÐаÑамеÑÑÑ
Ð ÑÑом подÑазделе опиÑÑваÑÑÑÑ Ð¿Ð°ÑамеÑÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð½Ð¾Ð¹ ÑÑÑоки Ð´Ð»Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´ pg_probackup. ÐÑли какое-либо знаÑение паÑамеÑÑа Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¿Ð¾Ð»ÑÑено из пеÑеменной окÑÑжениÑ, Ð¸Ð¼Ñ ÑÑой пеÑеменной ÑказÑваеÑÑÑ Ð² веÑÑ
нем ÑегиÑÑÑе ниже паÑамеÑÑа командной ÑÑÑоки. ÐекоÑоÑÑе знаÑÐµÐ½Ð¸Ñ Ð¼Ð¾Ð³ÑÑ Ð±ÑÑÑ Ð¿Ð¾Ð»ÑÑÐµÐ½Ñ Ð¸Ð· Ñайла конÑигÑÑаÑии pg_probackup.conf, наÑ
одÑÑегоÑÑ Ð² каÑалоге копий.
Ðа подÑобноÑÑÑми обÑаÑиÑеÑÑ Ðº ÐодÑÐ°Ð·Ð´ÐµÐ»Ñ Â«ÐаÑÑÑойка pg_probackup».
ÐÑли некоÑоÑÑй паÑамеÑÑ Ð·Ð°Ð´Ð°ÑÑÑÑ Ð½ÐµÑколÑкими ÑпоÑобами, знаÑение в командной ÑÑÑоке Ð¸Ð¼ÐµÐµÑ Ð½Ð°Ð¸Ð²ÑÑÑий пÑиоÑиÑеÑ, а знаÑение в pg_probackup.conf â наименÑÑий.
ÐбÑие паÑамеÑÑÑ
Ðиже пÑиведÑн ÑпиÑок паÑамеÑÑов обÑего Ñ Ð°ÑакÑеÑа.
-BкаÑалог--backup-path=каÑалогBACKUP_PATHÐадаÑÑ Ð°Ð±ÑолÑÑнÑй пÑÑÑ Ðº каÑÐ°Ð»Ð¾Ð³Ñ ÐºÐ¾Ð¿Ð¸Ð¹. ÐаÑалог копий â ÑÑо каÑалог, в коÑоÑом Ñ ÑанÑÑÑÑ Ð²Ñе ÑÐ°Ð¹Ð»Ñ ÑезеÑвнÑÑ ÐºÐ¾Ð¿Ð¸Ð¹ и меÑаинÑоÑмаÑиÑ. ÐоÑколÑÐºÑ ÑÑо ÑаÑположение Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾ задаваÑÑ Ð¿Ð¾ÑÑи Ð´Ð»Ñ Ð²ÑÐµÑ ÐºÐ¾Ð¼Ð°Ð½Ð´ pg_probackup, Ð¸Ð¼ÐµÐµÑ ÑмÑÑл ÑказаÑÑ ÐµÐ³Ð¾ один Ñаз в пеÑеменной окÑÑжениÑ
BACKUP_PATH. Ð ÑÑом ÑлÑÑае каждÑй Ñаз ÑказÑваÑÑ ÑÑÐ¾Ñ Ð¿ÑÑÑ Ð² командной ÑÑÑоке не нÑжно.-DкаÑалог--pgdata=каÑалогPGDATAÐадаÑÑ Ð°Ð±ÑолÑÑнÑй пÑÑÑ Ðº каÑÐ°Ð»Ð¾Ð³Ñ Ð´Ð°Ð½Ð½ÑÑ ÐºÐ»Ð°ÑÑеÑа. ÐÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ ÑвлÑеÑÑÑ Ð¾Ð±ÑзаÑелÑнÑм ÑолÑко Ð´Ð»Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ add-instance. ÐÑÑгие ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ Ð¼Ð¾Ð³ÑÑ Ð¿Ð¾Ð»ÑÑаÑÑ ÑÑÐ¾Ñ Ð¿ÑÑÑ Ð¸Ð· пеÑеменной окÑÑжениÑ
PGDATAили из Ñайла конÑигÑÑаÑииpg_probackup.conf.-iид_ÑезеÑвной_копии--backup-id=ид_ÑезеÑвной_копииÐадаÑÑ ÑникалÑнÑй иденÑиÑикаÑÐ¾Ñ ÑезеÑвной копии.
-jÑиÑло_поÑоков--threads=ÑиÑло_поÑоковÐадаÑÑ ÑиÑло паÑаллелÑнÑÑ Ð¿Ð¾Ñоков, запÑÑкаемÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð°Ð¼Ð¸
backup,restore,merge,validate,checkdbиarchive-push.--progressÐклÑÑÐ°ÐµÑ Ð²Ñвод пÑогÑеÑÑа вÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð¾Ð¿ÐµÑаÑий.
--helpÐÑÐ²Ð¾Ð´Ð¸Ñ Ð¿Ð¾Ð´ÑобнÑÑ Ð¸Ð½ÑоÑмаÑÐ¸Ñ Ð¿Ð¾ паÑамеÑÑам, коÑоÑÑе пÑÐ¸Ð½Ð¸Ð¼Ð°ÐµÑ ÑÑа команда.
ÐаÑамеÑÑÑ ÑоÑки воÑÑÑановлениÑ
ÐÑли наÑÑÑоено непÑеÑÑвное аÑÑ Ð¸Ð²Ð¸Ñование WAL, Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе пеÑедаÑÑ Ð¾Ð´Ð¸Ð½ из ÑÑÐ¸Ñ Ð¿Ð°ÑамеÑÑов Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¾Ð¹ restore или validate, ÑÑÐ¾Ð±Ñ ÑказаÑÑ Ð¼Ð¾Ð¼ÐµÐ½Ñ, до коÑоÑого должен бÑÑÑ Ð²Ð¾ÑÑÑановлен или пÑовеÑен клаÑÑÐµÑ Ð±Ð°Ð· даннÑÑ .
--recovery-target=immediate|latestÐпÑеделÑеÑ, когда оÑÑановиÑÑ Ð²Ð¾ÑÑÑановление:
Со знаÑением
immediateвоÑÑÑановление завеÑÑаеÑÑÑ ÑÑÐ°Ð·Ñ Ð¿Ð¾Ñле доÑÑÐ¸Ð¶ÐµÐ½Ð¸Ñ ÑоглаÑованного ÑоÑÑоÑÐ½Ð¸Ñ Ð²ÑбÑанной копии, либо поÑледней копии из имеÑÑÐ¸Ñ ÑÑ, еÑли паÑамеÑÑ-i/--backup-idопÑÑен. Такое поведение по ÑмолÑÐ°Ð½Ð¸Ñ Ð¿ÑименÑеÑÑÑ Ð´Ð»Ñ ÐºÐ¾Ð¿Ð¸Ð¹ Ñипа STREAM.Со знаÑением
latestвоÑÑÑановление пÑодолжаеÑÑÑ Ð´Ð¾ ÑÐµÑ Ð¿Ð¾Ñ, пока не бÑдÑÑ Ð¿ÑÐ¸Ð¼ÐµÐ½ÐµÐ½Ñ Ð²Ñе имеÑÑиеÑÑ Ð² аÑÑ Ð¸Ð²Ðµ ÑегменÑÑ WAL. Такое поведение по ÑмолÑÐ°Ð½Ð¸Ñ Ð¿ÑименÑеÑÑÑ Ð´Ð»Ñ ÐºÐ¾Ð¿Ð¸Ð¹ Ñипа ARCHIVE.
--recovery-target-timeline=линиÑ_вÑемениÐÑбиÑÐ°ÐµÑ Ð»Ð¸Ð½Ð¸Ñ Ð²Ñемени Ð´Ð»Ñ Ð²Ð¾ÑÑÑановлениÑ. Ðо ÑмолÑÐ°Ð½Ð¸Ñ Ð²ÑбиÑаеÑÑÑ Ð»Ð¸Ð½Ð¸Ñ Ð²Ñемени Ñказанной ÑезеÑвной копии.
--recovery-target-lsn=lsnУказÑÐ²Ð°ÐµÑ Ð¿Ð¾ÑледоваÑелÑнÑй Ð½Ð¾Ð¼ÐµÑ Ð² жÑÑнале пÑедзапиÑи, до коÑоÑого бÑÐ´ÐµÑ Ð¿ÑоизводиÑÑÑÑ Ð²Ð¾ÑÑÑановление.
--recovery-target-name=имÑ_Ñели_воÑÑÑановлениÑУказÑÐ²Ð°ÐµÑ Ð¸Ð¼ÐµÐ½Ð¾Ð²Ð°Ð½Ð½ÑÑ ÑоÑÐºÑ ÑÐ¾Ñ ÑанениÑ, вплоÑÑ Ð´Ð¾ коÑоÑой бÑÐ´ÐµÑ Ð²Ð¾ÑÑÑановлен клаÑÑеÑ.
--recovery-target-time=вÑемÑУказÑÐ²Ð°ÐµÑ ÑоÑÐºÑ Ð²Ñемени, вплоÑÑ Ð´Ð¾ коÑоÑой бÑÐ´ÐµÑ Ð¿ÑоизводиÑÑÑÑ Ð²Ð¾ÑÑÑановление. ÐÑли ÑаÑовой поÑÑ Ð½Ðµ ÑказÑваеÑÑÑ, подÑазÑмеваеÑÑÑ Ð¼ÐµÑÑное вÑемÑ.
ÐапÑимеÑ:
--recovery-target-time="2020-01-01 00:00:00+03"--recovery-target-xid=ид_ÑÑанзакÑииУказÑÐ²Ð°ÐµÑ Ð¸Ð´ÐµÐ½ÑиÑикаÑÐ¾Ñ ÑÑанзакÑии, вплоÑÑ Ð´Ð¾ коÑоÑой бÑÐ´ÐµÑ Ð¿ÑоизводиÑÑÑÑ Ð²Ð¾ÑÑÑановление.
--recovery-target-inclusive=логиÑеÑкое_знаÑениеУказÑÐ²Ð°ÐµÑ Ð½Ð° Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾ÑÑÑ Ð¾ÑÑановки ÑÑÐ°Ð·Ñ Ð¿Ð¾Ñле (
true) либо до (false) доÑÑÐ¸Ð¶ÐµÐ½Ð¸Ñ Ñелевой ÑоÑки. ÐÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð¼Ð¾Ð¶Ð½Ð¾ иÑполÑзоваÑÑ ÑолÑко вмеÑÑе Ñ Ð¿Ð°ÑамеÑÑом--recovery-target-name,--recovery-target-time,--recovery-target-lsnили--recovery-target-xid. ÐнаÑение по ÑмолÑÐ°Ð½Ð¸Ñ Ð¾Ð¿ÑеделÑеÑÑÑ Ð¿Ð°ÑамеÑÑом recovery_target_inclusive.--recovery-target-action=pause|promote|shutdownÐадаÑÑ Ð´ÐµÐ¹ÑÑвие (recovery_target_action), коÑоÑое должен вÑполниÑÑ ÑеÑÐ²ÐµÑ Ð¿Ð¾ доÑÑижении Ñели воÑÑÑановлениÑ.
Ðо ÑмолÑаниÑ:
pause
ÐаÑамеÑÑÑ ÑÐ¾Ñ ÑанениÑ
ÐÑи паÑамеÑÑÑ Ð¼Ð¾Ð³ÑÑ Ð¸ÑполÑзоваÑÑÑÑ Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð°Ð¼Ð¸ backup и delete.
ÐодÑобнее о полиÑике Ñ ÑÐ°Ð½ÐµÐ½Ð¸Ñ ÑаÑÑказÑваеÑÑÑ Ð² подÑазделе ÐаÑÑÑойка полиÑики Ñ ÑанениÑ.
--retention-redundancy=избÑÑоÑноÑÑÑУказÑваеÑ, ÑколÑко полнÑÑ ÑезеÑвнÑÑ ÐºÐ¾Ð¿Ð¸Ð¹ должно ÑÐ¾Ñ ÑанÑÑÑÑÑ Ð² каÑалоге даннÑÑ . Ðолжно бÑÑÑ Ð½ÐµÐ¾ÑÑиÑаÑелÑнÑм ÑелÑм ÑиÑлом. ÐÐ¾Ð»Ñ Ð¾ÑклÑÑÐ°ÐµÑ ÑÐ¾Ñ Ñанение.
Ðо ÑмолÑаниÑ:
0--retention-window=окноÐолиÑеÑÑво дней, в ÑеÑение коÑоÑого возможно воÑÑÑановление. Ðолжно бÑÑÑ Ð½ÐµÐ¾ÑÑиÑаÑелÑнÑм ÑелÑм ÑиÑлом. ÐÑи нÑлевом знаÑении окно воÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð¾ÑÑÑÑÑÑвÑеÑ.
Ðо ÑмолÑаниÑ:
0--wal-depth=глÑбина_walÐолиÑеÑÑво ÑезеÑвнÑÑ ÐºÐ¾Ð¿Ð¸Ð¹ на каждой линии вÑемени, коÑоÑое должно ÑÐ¾Ñ ÑанÑÑÑÑÑ Ð´Ð»Ñ Ð¾Ð±ÐµÑпеÑÐµÐ½Ð¸Ñ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾ÑÑи воÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ PITR. Ðолжно бÑÑÑ Ð½ÐµÐ¾ÑÑиÑаÑелÑнÑм ÑелÑм ÑиÑлом. ÐÑи нÑлевом знаÑении ÑÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð¾ÑклÑÑаеÑÑÑ.
Ðо ÑмолÑаниÑ:
0--delete-walУдалÑÐµÑ ÑÐ°Ð¹Ð»Ñ WAL, коÑоÑÑе не ÑвлÑÑÑÑÑ Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ñми Ð´Ð»Ñ Ð²Ð¾ÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ ÐºÐ»Ð°ÑÑеÑа из имеÑÑÐ¸Ñ ÑÑ ÑезеÑвнÑÑ ÐºÐ¾Ð¿Ð¸Ð¹.
--delete-expiredУдалÑÐµÑ ÑезеÑвнÑе копии, не ÑдовлеÑвоÑÑÑÑие полиÑике ÑÐ¾Ñ ÑанениÑ, опÑеделÑнной в Ñайле конÑигÑÑаÑии
pg_probackup.conf.--merge-expiredÐбÑединÑÐµÑ ÑамÑÑ ÑÑаÑÑÑ Ð¸Ð½ÐºÑеменÑалÑнÑÑ ÐºÐ¾Ð¿Ð¸Ñ, ÑдовлеÑвоÑÑÑÑÑÑ ÑÑебованиÑм полиÑики Ñ ÑанениÑ, Ñ ÐµÑ ÑодиÑелÑÑкими копиÑми, ÑÑок Ñ ÑÐ°Ð½ÐµÐ½Ð¸Ñ ÐºÐ¾ÑоÑÑÑ Ð¸ÑÑÑк.
--dry-runÐÑÐ²Ð¾Ð´Ð¸Ñ ÑекÑÑее ÑоÑÑоÑние вÑÐµÑ Ð¸Ð¼ÐµÑÑÐ¸Ñ ÑÑ ÑезеÑвнÑÑ ÐºÐ¾Ð¿Ð¸Ð¹, но никакие опеÑаÑии, напÑимеÑ, Ñдаление или обÑединение ÑÑаÑÑÑ ÐºÐ¾Ð¿Ð¸Ð¹, пÑи ÑÑом не пÑоизводÑÑÑÑ.
ÐаÑамеÑÑÑ Ð·Ð°ÐºÑеплениÑ
ÐÑи паÑамеÑÑÑ Ð¼Ð¾Ð³ÑÑ Ð¸ÑполÑзоваÑÑÑÑ Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð°Ð¼Ð¸ backup и set-backup.
Ðа подÑобноÑÑÑми обÑаÑиÑеÑÑ Ðº подÑÐ°Ð·Ð´ÐµÐ»Ñ ÐакÑепление ÑезеÑвнÑÑ ÐºÐ¾Ð¿Ð¸Ð¹.
--ttl=вÑемÑ_жизниÐадаÑÑ Ð²ÑемÑ, на коÑоÑое закÑеплÑеÑÑÑ ÑезеÑÐ²Ð½Ð°Ñ ÐºÐ¾Ð¿Ð¸Ñ. ÐнаÑение должно бÑÑÑ Ð½ÐµÐ¾ÑÑиÑаÑелÑнÑм ÑелÑм. ÐÑлевое знаÑение оÑменÑÐµÑ ÑÑÑановленное Ñанее закÑепление ÑезеÑвной копии. ÐоддеÑживаÑÑÑÑ ÑледÑÑÑие единиÑÑ Ð¸Ð·Ð¼ÐµÑениÑ: ms (миллиÑекÑндÑ), s (ÑекÑндÑ), min (минÑÑÑ), h (ÑаÑÑ), d (дни). Ðо ÑмолÑÐ°Ð½Ð¸Ñ Ð¿Ð¾Ð´ÑазÑмеваÑÑÑÑ ÑекÑндÑ.
ÐапÑимеÑ:
--ttl=30d--expire-time=вÑемÑÐпÑеделÑÐµÑ Ð¼Ð¾Ð¼ÐµÐ½Ñ Ð²Ñемени, до коÑоÑого бÑÐ´ÐµÑ Ñ ÑаниÑÑÑÑ ÑезеÑÐ²Ð½Ð°Ñ ÐºÐ¾Ð¿Ð¸Ñ. ÐÑÐµÐ¼Ñ Ð´Ð¾Ð»Ð¶Ð½Ð¾ задаваÑÑÑÑ Ð² ÑоÑмаÑе ISO-8601. ÐÑли ÑаÑовой поÑÑ Ð½Ðµ ÑказÑваеÑÑÑ, подÑазÑмеваеÑÑÑ Ð¼ÐµÑÑное вÑемÑ.
ÐапÑимеÑ:
--expire-time="2020-01-01 00:00:00+03"
ÐаÑамеÑÑÑ Ð²ÐµÐ´ÐµÐ½Ð¸Ñ Ð¶ÑÑнала
ÐÑи паÑамеÑÑÑ Ð¼Ð¾Ð³ÑÑ Ð¸ÑполÑзоваÑÑÑÑ Ñ Ð»Ñбой командой.
--no-colorÐÑклÑÑÐ°ÐµÑ ÑвеÑовое вÑделение ÑообÑений ÑÑовней
warningиerrorв конÑоли.--log-level-console=ÑÑовенÑ_ÑообÑенийУпÑавлÑÐµÑ ÑÑовнем ÑообÑений, коÑоÑÑе бÑдÑÑ Ð²ÑводиÑÑÑÑ Ð² жÑÑнал конÑоли. ÐопÑÑÑимÑе ÑÑовни:
verbose,log,info,warning,errorиoff. ÐаждÑй ÑÑÐ¾Ð²ÐµÐ½Ñ Ð²ÐºÐ»ÑÑÐ°ÐµÑ Ð²Ñе поÑледÑÑÑие, и Ñ ÐºÐ°Ð¶Ð´Ñм поÑледÑÑÑим ÑÑовнем обÑÑм ÑообÑений ÑменÑÑаеÑÑÑ. ÐаÑианÑoffоÑклÑÑÐ°ÐµÑ Ð²Ñвод в жÑÑнал конÑоли.Ðо ÑмолÑаниÑ:
infoÐÑимеÑание
ÐÑе вÑводимÑе в конÑÐ¾Ð»Ñ ÑообÑÐµÐ½Ð¸Ñ Ð¶ÑÑнала пеÑедаÑÑÑÑ ÑеÑез stderr, ÑÑÐ¾Ð±Ñ Ð¸Ñ Ð¼Ð¾Ð¶Ð½Ð¾ бÑло оÑделиÑÑ Ð¾Ñ Ð²Ñвода команд show и show-config.
--log-level-file=ÑÑовенÑ_ÑообÑенийУпÑавлÑÐµÑ ÑÑовнем ÑообÑений, коÑоÑÑе бÑдÑÑ Ð²ÑводиÑÑÑÑ Ð² Ñайл жÑÑнала. ÐопÑÑÑимÑе ÑÑовни:
verbose,log,info,warning,errorиoff. ÐаждÑй ÑÑÐ¾Ð²ÐµÐ½Ñ Ð²ÐºÐ»ÑÑÐ°ÐµÑ Ð²Ñе поÑледÑÑÑие, и Ñ ÐºÐ°Ð¶Ð´Ñм поÑледÑÑÑим ÑÑовнем обÑÑм ÑообÑений ÑменÑÑаеÑÑÑ. ÐаÑианÑoffоÑклÑÑÐ°ÐµÑ Ð²Ñвод в Ñайл жÑÑнала.Ðо ÑмолÑаниÑ:
off--log-filename=Ñайл_жÑÑналаÐпÑеделÑÐµÑ Ð¸Ð¼ÐµÐ½Ð° Ð´Ð»Ñ ÑоздаваемÑÑ Ñайлов жÑÑналов. Ðмена Ñайлов обÑабаÑÑваÑÑÑÑ Ð¿Ð¾ ÑаблонÑ
strftime, Ñак ÑÑо Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе иÑполÑзоваÑÑ ÑпеÑÐºÐ¾Ð´Ñ Ñ % Ð´Ð»Ñ Ð²ÑбоÑа имÑн Ñайлов, завиÑÑÑÐ¸Ñ Ð¾Ñ Ð²Ñемени.Ðо ÑмолÑаниÑ:
pg_probackup.logÐапÑимеÑ, еÑли задаÑÑ Ñаблон
pg_probackup-%u.log, pg_probackup бÑÐ´ÐµÑ Ð·Ð°Ð¿Ð¸ÑÑваÑÑ Ð¶ÑÑнал в оÑделÑнÑе ÑÐ°Ð¹Ð»Ñ Ð¿Ð¾ днÑм недели, и ÑимволÑ%uв имени бÑдÑÑ Ð·Ð°Ð¼ÐµÐ½ÑÑÑÑÑ ÑооÑвеÑÑÑвÑÑÑим деÑÑÑиÑнÑм номеÑом:pg_probackup-1.logв понеделÑник,pg_probackup-2.logво вÑоÑник и Ñ. д.ÐÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð´ÐµÐ¹ÑÑвÑеÑ, еÑли вклÑÑена запиÑÑ Ð² жÑÑнал (паÑамеÑÑом
--log-level-file).--error-log-filename=Ñайл_жÑÑнала_ÑобÑÑийÐпÑеделÑÐµÑ Ð¸Ð¼ÐµÐ½Ð° ÑолÑко Ð´Ð»Ñ Ñайлов жÑÑналов оÑибок. Ðмена Ñайлов обÑабаÑÑваÑÑÑÑ Ð¿Ð¾ ÑаблонÑ
strftime, Ñак ÑÑо Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе иÑполÑзоваÑÑ ÑпеÑÐºÐ¾Ð´Ñ Ñ % Ð´Ð»Ñ Ð²ÑбоÑа имÑн Ñайлов, завиÑÑÑÐ¸Ñ Ð¾Ñ Ð²Ñемени.Ðо ÑмолÑаниÑ: none
ÐапÑимеÑ, еÑли задаÑÑ Ñаблон
error-pg_probackup-%u.log, pg_probackup бÑÐ´ÐµÑ Ð·Ð°Ð¿Ð¸ÑÑваÑÑ Ð¶ÑÑнал в оÑделÑнÑе ÑÐ°Ð¹Ð»Ñ Ð¿Ð¾ днÑм недели, и ÑимволÑ%uв имени бÑдÑÑ Ð·Ð°Ð¼ÐµÐ½ÑÑÑÑÑ ÑооÑвеÑÑÑвÑÑÑим деÑÑÑиÑнÑм номеÑом:error-pg_probackup-1.logв понеделÑник,error-pg_probackup-2.logво вÑоÑник и Ñ. д.ÐÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð¿Ð¾Ð»ÐµÐ·ÐµÐ½ Ð´Ð»Ñ Ð´Ð¸Ð°Ð³Ð½Ð¾ÑÑики и ÑеÑÐµÐ½Ð¸Ñ Ð²Ð¾Ð·Ð½Ð¸ÐºÐ°ÑÑÐ¸Ñ Ð¿Ñоблем.
--log-directory=каÑалог_жÑÑналаÐпÑеделÑÐµÑ ÐºÐ°Ñалог, в коÑоÑом бÑдÑÑ ÑоздаваÑÑÑÑ ÑÐ°Ð¹Ð»Ñ Ð¶ÑÑналов. ÐÑ Ð´Ð¾Ð»Ð¶Ð½Ñ Ð·Ð°Ð´Ð°ÑÑ Ð² ÑÑом паÑамеÑÑе абÑолÑÑнÑй пÑÑÑ. ÐÑÐ¾Ñ ÐºÐ°Ñалог ÑоздаÑÑÑÑ ÑолÑко пÑи Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾ÑÑи, когда в жÑÑнал вÑводиÑÑÑ Ð¿ÐµÑвое ÑообÑение.
Ðо ÑмолÑаниÑ:
$BACKUP_PATH/log/--log-format-console=ÑоÑмаÑ_жÑÑналаÐпÑеделÑÐµÑ ÑоÑÐ¼Ð°Ñ Ð¶ÑÑнала конÑоли. УÑÑанавливаеÑÑÑ ÑолÑко из командной ÑÑÑоки. ÐбÑаÑиÑе внимание, ÑÑо ÑÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð½ÐµÐ»ÑÐ·Ñ ÑказаÑÑ Ð² Ñайле конÑигÑÑаÑии
pg_probackup.confпоÑÑедÑÑвом ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ set-config и ÑÑо команда backup Ñакже воÑпÑÐ¸Ð½Ð¸Ð¼Ð°ÐµÑ Ñказание ÑÑого паÑамеÑÑа в конÑигÑÑаÑионном Ñайле как оÑибкÑ. ÐÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð¼Ð¾Ð¶ÐµÑ Ð¸Ð¼ÐµÑÑ ÑледÑÑÑие знаÑениÑ:ÐÑли
plain, Ñо жÑÑнал вÑводиÑÑÑ Ð½Ð° конÑÐ¾Ð»Ñ Ð² ÑоÑмаÑе обÑÑного ÑекÑÑа.ÐÑли
json, Ñо жÑÑнал вÑводиÑÑÑ Ð½Ð° конÑÐ¾Ð»Ñ Ð² ÑоÑмаÑе JSON.
Ðо ÑмолÑаниÑ:
plain--log-format-file=ÑоÑмаÑ_жÑÑналаÐпÑеделÑÐµÑ Ð¸ÑполÑзÑемÑй ÑоÑÐ¼Ð°Ñ Ñайлов жÑÑнала. ÐÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð¼Ð¾Ð¶ÐµÑ Ð¸Ð¼ÐµÑÑ ÑледÑÑÑие знаÑениÑ:
ÐÑли
plain, Ñо ÑÐ°Ð¹Ð»Ñ Ð¶ÑÑнала запиÑÑваÑÑÑÑ Ð² ÑоÑмаÑе обÑÑного ÑекÑÑа.ÐÑли
json, Ñо ÑÐ°Ð¹Ð»Ñ Ð¶ÑÑнала запиÑÑваÑÑÑÑ Ð² ÑоÑмаÑе JSON.
Ðо ÑмолÑаниÑ:
plain--log-rotation-size=ÑазмеÑ_жÑÑнала_длÑ_ÑоÑаÑииÐакÑималÑнÑй ÑÐ°Ð·Ð¼ÐµÑ Ð¾ÑделÑного Ñайла жÑÑнала. ÐÑли ÑÑо знаÑение доÑÑигаеÑÑÑ, Ñайл жÑÑнала пÑокÑÑÑиваеÑÑÑ Ð¿Ñи вÑполнении какой-либо ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ pg_probackup, за иÑклÑÑением
helpиversion. ÐÑлевое знаÑение оÑклÑÑÐ°ÐµÑ Ð¿ÑокÑÑÑÐºÑ Ð² завиÑимоÑÑи Ð¾Ñ ÑазмеÑа. ÐоддеÑживаÑÑÑÑ ÑледÑÑÑие единиÑÑ: kB (по ÑмолÑаниÑ), MB, GB, TB.Ðо ÑмолÑаниÑ:
0--log-rotation-age=возÑаÑÑ_жÑÑнала_длÑ_ÑоÑаÑииÐакÑималÑное вÑÐµÐ¼Ñ Ð¶Ð¸Ð·Ð½Ð¸ оÑделÑного Ñайла жÑÑнала. ÐÑли ÑÑо знаÑение доÑÑигаеÑÑÑ, Ñайл жÑÑнала пÑокÑÑÑиваеÑÑÑ Ð¿Ñи вÑполнении какой-либо ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ pg_probackup, за иÑклÑÑением
helpиversion. ÐÑÐµÐ¼Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð¿Ð¾Ñледнего Ñайла жÑÑнала ÑÐ¾Ñ ÑанÑеÑÑÑ Ð²$BACKUP_PATH/log/log_rotation. ÐÑлевое знаÑение оÑклÑÑÐ°ÐµÑ Ð¿ÑокÑÑÑÐºÑ Ð¿Ð¾ вÑемени. ÐоддеÑживаемÑе единиÑÑ: ms (миллиÑекÑндÑ), s (ÑекÑндÑ), min (минÑÑÑ, по ÑмолÑаниÑ), h (ÑаÑÑ), d (дни).Ðо ÑмолÑаниÑ:
0
ÐаÑамеÑÑÑ Ð¿Ð¾Ð´ÐºÐ»ÑÑениÑ
ÐÑи паÑамеÑÑÑ Ð¼Ð¾Ð³ÑÑ Ð¸ÑполÑзоваÑÑÑÑ Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð°Ð¼Ð¸ backup, catchup и checkdb.
pg_probackup поддеÑÐ¶Ð¸Ð²Ð°ÐµÑ Ð²Ñе пеÑеменнÑе окÑÑÐ¶ÐµÐ½Ð¸Ñ libpq.
-dимÑ_бд--pgdatabase=имÑ_бдPGDATABASEÐадаÑÑ Ð¸Ð¼Ñ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ Ð´Ð»Ñ Ð¿Ð¾Ð´ÐºÐ»ÑÑениÑ. ÐÑо подклÑÑение иÑполÑзÑеÑÑÑ ÑолÑко Ð´Ð»Ñ ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¿ÑоÑеÑÑом ÑезеÑвного копиÑованиÑ, Ñак ÑÑо Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе подклÑÑиÑÑÑÑ Ðº лÑбой ÑÑÑеÑÑвÑÑÑей базе. ÐÑли ÑÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð½Ðµ задаÑÑÑÑ Ð² командной ÑÑÑоке, пеÑеменной окÑÑжениÑ
PGDATABASEили в конÑигÑÑаÑионном Ñайлеpg_probackup.conf, pg_probackup пÑÐ¸Ð½Ð¸Ð¼Ð°ÐµÑ Ð² каÑеÑÑве имени Ð±Ð°Ð·Ñ Ð·Ð½Ð°Ñение пеÑеменной окÑÑжениÑPGUSERили Ð¸Ð¼Ñ ÑекÑÑего полÑзоваÑелÑ, еÑли пеÑеменнаÑPGUSERне задана.-hÑеÑвеÑ--pghost=ÑеÑвеÑPGHOSTУказÑÐ²Ð°ÐµÑ Ð¸Ð¼Ñ ÑиÑÑемÑ, в коÑоÑой ÑабоÑÐ°ÐµÑ ÑеÑвеÑ. ÐÑли знаÑение наÑинаеÑÑÑ Ñ ÐºÐ¾Ñой ÑеÑÑÑ, оно опÑеделÑÐµÑ ÐºÐ°Ñалог Unix-ÑокеÑа.
Ðо ÑмолÑаниÑ:
localhost-pпоÑÑ--pgport=поÑÑPGPORTУказÑÐ²Ð°ÐµÑ TCP-поÑÑ Ð¸Ð»Ð¸ ÑаÑÑиÑение Ñайла локалÑного Unix-ÑокеÑа, ÑеÑез коÑоÑÑй ÑеÑÐ²ÐµÑ Ð¿ÑÐ¸Ð½Ð¸Ð¼Ð°ÐµÑ Ð¿Ð¾Ð´ÐºÐ»ÑÑениÑ.
Ðо ÑмолÑаниÑ:
5432-UимÑ_полÑзоваÑелÑ--pguser=имÑ_полÑзоваÑелÑPGUSERÐÐ¼Ñ Ð¿Ð¾Ð»ÑзоваÑÐµÐ»Ñ Ð´Ð»Ñ Ð¿Ð¾Ð´ÐºÐ»ÑÑениÑ.
-w--no-passwordÐе вÑдаваÑÑ Ð·Ð°Ð¿ÑÐ¾Ñ Ð½Ð° ввод паÑолÑ. ÐÑли ÑеÑÐ²ÐµÑ ÑÑебÑÐµÑ Ð°ÑÑенÑиÑикаÑÐ¸Ñ Ð¿Ð¾ паÑÐ¾Ð»Ñ Ð¸ паÑÐ¾Ð»Ñ Ð½Ðµ доÑÑÑпен Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ Ð´ÑÑÐ³Ð¸Ñ ÑÑедÑÑв, ÑÐ°ÐºÐ¸Ñ ÐºÐ°Ðº Ñайл .pgpass или пеÑÐµÐ¼ÐµÐ½Ð½Ð°Ñ Ð¾ÐºÑÑжениÑ
PGPASSWORD, попÑÑка ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ð½Ðµ ÑдаÑÑÑÑ. ÐÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¿Ð¾Ð»ÐµÐ·ÐµÐ½ в пакеÑнÑÑ Ð·Ð°Ð´Ð°Ð½Ð¸ÑÑ Ð¸ ÑкÑипÑÐ°Ñ , где Ð½ÐµÑ Ð¿Ð¾Ð»ÑзоваÑелÑ, коÑоÑÑй Ð²Ð²Ð¾Ð´Ð¸Ñ Ð¿Ð°ÑолÑ.-W--passwordÐапÑаÑиваÑÑ Ð¿Ð°ÑолÑ. (УÑÑаÑевÑий паÑамеÑÑ.)
ÐаÑамеÑÑÑ ÑжаÑиÑ
ÐÑи паÑамеÑÑÑ Ð¼Ð¾Ð³ÑÑ Ð¸ÑполÑзоваÑÑÑÑ Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð°Ð¼Ð¸ backup и archive-push.
--compress-algorithm=алгоÑиÑм_ÑжаÑиÑÐпÑеделÑÐµÑ Ð°Ð»Ð³Ð¾ÑиÑм, коÑоÑÑй бÑÐ´ÐµÑ Ð¸ÑполÑзоваÑÑÑÑ Ð´Ð»Ñ ÑжаÑÐ¸Ñ Ñайлов даннÑÑ . ÐозможнÑе знаÑениÑ:
zlib,lz4,zstd,pglzиnone. ÐÑбое знаÑение, оÑлиÑное оÑnone, вклÑÑÐ°ÐµÑ ÑжаÑие. ÐÑи ÑÑом ÑжимаÑÑÑÑ Ð¸ ÑÐ°Ð¹Ð»Ñ Ð´Ð°Ð½Ð½ÑÑ , и ÑÐ°Ð¹Ð»Ñ WAL. Ðо ÑмолÑÐ°Ð½Ð¸Ñ ÑжаÑие оÑклÑÑено. ÐÐ»Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ archive-push алгоÑиÑм ÑжаÑиÑpglzне поддеÑживаеÑÑÑ.ÐÑимеÑание
ÐÑогÑамма pg_probackup поддеÑÐ¶Ð¸Ð²Ð°ÐµÑ Ð°Ð»Ð³Ð¾ÑиÑÐ¼Ñ ÑжаÑиÑ, вклÑÑÑннÑе в конкÑеÑнÑÑ Ð²ÐµÑÑÐ¸Ñ Postgres Pro. Ð ÑаÑÑноÑÑи:
lz4 поддеÑживаеÑÑÑ Ð´Ð»Ñ Postgres Pro веÑÑии 14 и вÑÑе.
zstd поддеÑживаеÑÑÑ Ð´Ð»Ñ Postgres Pro веÑÑии 15 и вÑÑе.
Ðо ÑмолÑаниÑ:
none--compress-level=ÑÑовенÑ_ÑжаÑиÑÐпÑеделÑÐµÑ ÑÑÐ¾Ð²ÐµÐ½Ñ ÑжаÑÐ¸Ñ (Ð¾Ñ 0 до 9, где 0 обознаÑÐ°ÐµÑ Ð¾ÑÑÑÑÑÑвие ÑжаÑиÑ, а 9 â наилÑÑÑее). ÐÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð¼Ð¾Ð¶ÐµÑ Ð¸ÑполÑзоваÑÑÑÑ ÑолÑко вмеÑÑе Ñ
--compress-algorithm.Ðо ÑмолÑаниÑ:
1--compressÐлÑÑеÑнаÑивнÑй ваÑÐ¸Ð°Ð½Ñ Ð¾Ð´Ð½Ð¾Ð²Ñеменного ÑказаниÑ
--compress-algorithm=zlibи--compress-level=1.
ÐаÑамеÑÑÑ Ð°ÑÑ Ð¸Ð²Ð°Ñии
ÐÑи паÑамеÑÑÑ Ð¼Ð¾Ð³ÑÑ Ð¸ÑполÑзоваÑÑÑÑ Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¾Ð¹ archive-push в знаÑении паÑамеÑÑа archive_command и Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¾Ð¹ archive-get в знаÑении restore_command.
ÐополниÑелÑно Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе задаÑÑ Ð¿Ð°ÑамеÑÑÑ ÑдалÑнного ÑеÑвеÑа и Ð²ÐµÐ´ÐµÐ½Ð¸Ñ Ð¶ÑÑнала.
--wal-file-path=пÑÑÑ_Ñайлов_walÐадаÑÑ Ð¿ÑÑÑ Ñайла WAL в
archive_commandиrestore_command. РкаÑеÑÑве знаÑÐµÐ½Ð¸Ñ Ð´Ð»Ñ Ð´Ð°Ð½Ð½Ð¾Ð³Ð¾ паÑамеÑÑа ÑкажиÑе%pили Ñвно задайÑе пÑÑÑ Ðº ÑÐ°Ð¹Ð»Ñ Ð²Ð½Ðµ каÑалога даннÑÑ . ÐÑли ÑÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð½Ðµ задан, иÑполÑзÑеÑÑÑ Ð¿ÑÑÑ, заданнÑй в Ñайлеpg_probackup.conf.--wal-file-name=имÑ_Ñайла_walÐадаÑÑ Ð¸Ð¼Ñ Ñайла WAL в
archive_commandиrestore_command. РкаÑеÑÑве знаÑÐµÐ½Ð¸Ñ Ð´Ð»Ñ Ð´Ð°Ð½Ð½Ð¾Ð³Ð¾ паÑамеÑÑа ÑкажиÑе%fÐ´Ð»Ñ Ð¿ÑавилÑной его обÑабоÑки. ÐÑли знаÑением паÑамеÑÑа--wal-file-pathÑвлÑеÑÑÑ Ð¿ÑÑÑ Ð²Ð½Ðµ каÑалога даннÑÑ , ÑледÑÐµÑ Ñвно ÑказÑваÑÑ Ð¸Ð¼Ñ Ñайла.--overwriteРазÑеÑÐ°ÐµÑ Ð¿ÐµÑезапиÑÑ Ñайлов WAL в аÑÑ Ð¸Ð²Ðµ. ÐÑÐ¾Ñ ÐºÐ»ÑÑ Ð´ÐµÐ¹ÑÑвÑÐµÑ Ð¿Ñи вÑполнении ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ archive-push, когда ÑказаннÑй подкаÑалог каÑалога ÑезеÑвнÑÑ ÐºÐ¾Ð¿Ð¸Ð¹ Ñже ÑодеÑÐ¶Ð¸Ñ Ð´Ð°Ð½Ð½Ñй Ñайл WAL, и его нÑжно замениÑÑ Ð½Ð¾Ð²Ð¾Ð¹ копией. Ðез ÑÑого клÑÑа
archive-pushÑообÑиÑ, ÑÑо ÑÐµÐ³Ð¼ÐµÐ½Ñ WAL Ñже ÑÑÑеÑÑвÑеÑ, и пÑеÑвÑÑ Ð¾Ð¿ÐµÑаÑиÑ. ÐÑли заменÑемÑй Ñайл не изменилÑÑ,archive-pushпÑопÑÑÐºÐ°ÐµÑ ÐµÐ³Ð¾, незавиÑимо Ð¾Ñ ÑказаниÑ--overwrite.--batch-size=ÑазмеÑ_поÑÑииÐадаÑÑ Ð¼Ð°ÐºÑималÑное колиÑеÑÑво Ñайлов, коÑоÑое Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ ÑкопиÑовано в аÑÑ Ð¸Ð² одним пÑоÑеÑÑом
archive-pushили из аÑÑ Ð¸Ð²Ð° одним пÑоÑеÑÑомarchive-get.--archive-timeout=вÑемÑ_ожиданиÑÐадаÑÑ Ð¸Ð½ÑеÑвал, по иÑÑеÑении коÑоÑого ÑÑÑеÑÑвÑÑÑие ÑайлÑ
.partбÑдÑÑ ÑÑиÑаÑÑÑÑ Ð¿Ð¾ÑеÑÑннÑми. Ðо ÑмолÑÐ°Ð½Ð¸Ñ pg_probackup ждÑÑ Ð¸ÑÑÐµÐ·Ð½Ð¾Ð²ÐµÐ½Ð¸Ñ ÑÑÐ¸Ñ Ñайлов 300 ÑекÑнд. ÐÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð¼Ð¾Ð¶Ð½Ð¾ иÑполÑзоваÑÑ ÑолÑко Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¾Ð¹ archive-push.--no-ready-renameÐÑедоÑвÑаÑÐ°ÐµÑ Ð¿ÐµÑеименование Ñайлов ÑоÑÑоÑÐ½Ð¸Ñ Ð² каÑалоге
archive_status. ÐÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð¿Ð¾Ð»ÐµÐ·ÐµÐ½, ÑолÑко когда вarchive_commandзадано неÑколÑко команд, и пÑименÑÑÑ ÐµÐ³Ð¾ можно ÑолÑко Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¾Ð¹ archive-push.--no-syncÐе ÑбÑаÑÑваÑÑ ÐºÐ¾Ð¿Ð¸ÑÑемÑе ÑÐ°Ð¹Ð»Ñ WAL на диÑк. ÐÑÐ¾Ñ Ñлаг позволÑÐµÑ Ð½ÐµÑколÑко ÑÑкоÑиÑÑ Ð¿ÑоÑеÑÑ Ð°ÑÑ Ð¸Ð²Ð°Ñии. ÐÑполÑзование ÑÑого Ñлага Ð¼Ð¾Ð¶ÐµÑ Ð¿ÑивеÑÑи к повÑÐµÐ¶Ð´ÐµÐ½Ð¸Ñ Ð°ÑÑ Ð¸Ð²Ð° WAL в ÑлÑÑае аваÑии опеÑаÑионной ÑиÑÑÐµÐ¼Ñ Ð¸Ð»Ð¸ аппаÑаÑного ÑбоÑ. ÐаннÑй паÑамеÑÑ Ð¼Ð¾Ð¶Ð½Ð¾ ÑказаÑÑ ÑолÑко Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¾Ð¹ archive-push.
--prefetch-dir=пÑÑÑÐаÑалог, в коÑоÑом бÑдÑÑ Ñ ÑаниÑÑÑÑ Ð¿ÑедзагÑÑжаемÑе ÑегменÑÑ WAL пÑи иÑполÑзовании паÑамеÑÑа
--batch-size. ÐÑÐ¾Ñ ÐºÐ°Ñалог должен Ð½Ð°Ñ Ð¾Ð´Ð¸ÑÑÑÑ Ð² Ñой же Ñайловой ÑиÑÑеме и ниже Ñой же ÑоÑки монÑиÑованиÑ, ÑÑо иPGDATA/pg_wal. Ðо ÑмолÑÐ°Ð½Ð¸Ñ ÑÑи ÑегменÑÑ ÑазмеÑаÑÑÑÑ Ð² каÑалогеPGDATA/pg_wal/pbk_prefetch. ÐаннÑй паÑамеÑÑ Ð¼Ð¾Ð¶ÐµÑ Ð¿ÑименÑÑÑÑÑ ÑолÑко Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¾Ð¹ archive-get.--no-validate-walÐÑклÑÑÐ°ÐµÑ Ð¿ÑовеÑÐºÑ Ð¿ÑедзагÑÑженнÑÑ Ñайлов WAL пеÑед иÑполÑзованием. ÐÑименÑйÑе ÑÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ, еÑли Ð²Ñ Ñ Ð¾ÑиÑе ÑвелиÑиÑÑ ÑкоÑоÑÑÑ Ð²Ð¾ÑÑÑановлениÑ. ÐаннÑй паÑамеÑÑ Ð¼Ð¾Ð¶ÐµÑ Ð¿ÑименÑÑÑÑÑ ÑолÑко Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¾Ð¹ archive-get.
ÐаÑамеÑÑÑ ÑдалÑнного Ñежима
Ð ÑÑом подÑазделе опиÑÑваÑÑÑÑ Ð¿Ð°ÑамеÑÑÑ, ÑвÑзаннÑе Ñ ÑдалÑннÑм вÑполнением опеÑаÑий pg_probackup по SSH. ÐÑи паÑамеÑÑÑ Ð¼Ð¾Ð³ÑÑ Ð¸ÑполÑзоваÑÑÑÑ Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð°Ð¼Ð¸ add-instance, set-config, backup, catchup, restore, archive-push и archive-get.
ÐодÑобнее о наÑÑÑойке и иÑполÑзовании ÑдалÑнного Ñежима ÑаÑÑказÑваеÑÑÑ Ð² ÐодÑазделе «ÐаÑÑÑойка ÑдалÑнного Ñежима» и ÐодÑазделе «ÐÑполÑзование pg_probackup в ÑдалÑнном Ñежиме».
--remote-proto=пÑоÑоколÐадаÑÑ Ð¿ÑоÑокол Ð´Ð»Ñ ÑдалÑнного вÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð¾Ð¿ÐµÑаÑий. РнаÑÑоÑÑее вÑÐµÐ¼Ñ Ð¿Ð¾Ð´Ð´ÐµÑживаеÑÑÑ ÑолÑко пÑоÑокол SSH. ÐозможнÑе знаÑениÑ:
sshâ вклÑÑÐ°ÐµÑ ÑдалÑннÑй Ñежим Ñ Ð¸ÑполÑзованием SSH. ÐÑÐ¾Ñ Ð²Ð°ÑÐ¸Ð°Ð½Ñ Ð¸ÑполÑзÑеÑÑÑ Ð¿Ð¾ ÑмолÑаниÑ.noneâ ÑвнÑм обÑазом оÑклÑÑÐ°ÐµÑ ÑдалÑннÑй Ñежим.
ÐÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð¼Ð¾Ð¶Ð½Ð¾ не задаваÑÑ, еÑли ÑказÑваеÑÑÑ
--remote-host.--remote-host=Ñелевой_адÑеÑÐадаÑÑ Ð¸Ð¼Ñ Ð¸Ð»Ð¸ IP-адÑÐµÑ Ñелевого ÑдалÑнного ÑеÑвеÑа.
--remote-port=поÑÑÐадаÑÑ Ñелевой поÑÑ Ð½Ð° ÑдалÑнном ÑеÑвеÑе.
Ðо ÑмолÑаниÑ:
22--remote-user=имÑ_полÑзоваÑелÑÐадаÑÑ Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑзоваÑÐµÐ»Ñ Ð½Ð° ÑдалÑнном ÑеÑвеÑе Ð´Ð»Ñ SSH-ÑоединениÑ. РоÑÑÑÑÑÑвие ÑÑого паÑамеÑÑа иÑполÑзÑеÑÑÑ Ð¸Ð¼Ñ ÑекÑÑего полÑзоваÑелÑ, ÑÑÑанавливаÑÑего SSH-ÑоединениÑ.
--remote-path=пÑÑÑÐадаÑÑ ÐºÐ°Ñалог, в коÑоÑом pg_probackup ÑÑÑановлен на ÑдалÑнной ÑиÑÑеме.
--ssh-options=паÑамеÑÑÑ_sshÐадаÑÑ ÑÑÑÐ¾ÐºÑ Ð¿Ð°ÑамеÑÑов командной ÑÑÑоки Ð´Ð»Ñ SSH. ÐапÑимеÑ, ÑледÑÑÑим обÑазом можно ÑÑÑановиÑÑ ÑвойÑÑва
keep-aliveÐ´Ð»Ñ SSH-подклÑÑений, коÑоÑÑе бÑÐ´ÐµÑ Ð¾ÑкÑÑваÑÑ pg_probackup:--ssh-options="-o ServerAliveCountMax=5 -o ServerAliveInterval=60". ÐолнÑй ÑпиÑок вÑÐµÑ Ð¿Ð°ÑамеÑÑов можно найÑи в ÑÑководÑÑве по ssh_config.
ÐаÑамеÑÑÑ ÑдалÑнного аÑÑ Ð¸Ð²Ð° WAL
Ð ÑÑом подÑазделе опиÑÑваÑÑÑÑ Ð¿Ð°ÑамеÑÑÑ, позволÑÑÑие задаÑÑ Ð°ÑгÑменÑÑ archive-get Ð´Ð»Ñ Ð¸ÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ ÑдалÑнного Ñежима в команде restore_command пÑи воÑÑÑановлении PITR или воÑÑÑановлении копий Ñипа ARCHIVE.
--archive-host=Ñелевой_адÑеÑÐадаÑÑ Ð·Ð½Ð°Ñение аÑгÑменÑа
--remote-hostÐ´Ð»Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñarchive-get.--archive-port=поÑÑÐадаÑÑ Ð·Ð½Ð°Ñение аÑгÑменÑа
--remote-portÐ´Ð»Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñarchive-get.Ðо ÑмолÑаниÑ:
22--archive-user=имÑ_полÑзоваÑелÑÐадаÑÑ Ð·Ð½Ð°Ñение аÑгÑменÑа
--remote-userÐ´Ð»Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñarchive-get. РоÑÑÑÑÑÑвие ÑÑого ÑÐºÐ°Ð·Ð°Ð½Ð¸Ñ Ð¸ÑполÑзÑеÑÑÑ Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑзоваÑелÑ, запÑÑкаÑÑего клаÑÑÐµÑ Postgres Pro.Ðо ÑмолÑаниÑ: полÑзоваÑÐµÐ»Ñ Postgres Pro
ÐаÑамеÑÑÑ Ð¸Ð½ÐºÑеменÑалÑного воÑÑÑановлениÑ
Ð ÑÑом подÑазделе опиÑÑваÑÑÑÑ Ð¿Ð°ÑамеÑÑÑ, ÑвÑзаннÑе Ñ Ð¸Ð½ÐºÑеменÑалÑнÑм воÑÑÑановлением клаÑÑеÑа. ÐÑи паÑамеÑÑÑ Ð¼Ð¾Ð³ÑÑ Ð¿ÐµÑедаваÑÑÑÑ Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¾Ð¹ restore.
-IинкÑеменÑалÑнÑй_Ñежим--incremental-mode=инкÑеменÑалÑнÑй_ÑежимÐÑбиÑÐ°ÐµÑ Ð¸Ð½ÐºÑеменÑалÑнÑй Ñежим. ÐоддеÑживаÑÑÑÑ ÑледÑÑÑие ÑежимÑ:
CHECKSUMâ заменÑÑÑ ÑолÑко ÑÑÑаниÑÑ Ñ Ð½ÐµÐ¿Ð¾Ð´Ñ Ð¾Ð´ÑÑей конÑÑолÑной ÑÑммой и LSN.LSNâ заменÑÑÑ ÑолÑко Ñе ÑÑÑаниÑÑ, LSN коÑоÑÑÑ Ð±Ð¾Ð»ÑÑе ÑоÑки ÑаÑÑ Ð¾Ð¶Ð´ÐµÐ½Ð¸Ñ.NONEâ обÑÑное воÑÑÑановление.
ÐаÑамеÑÑÑ ÑаÑÑиÑного воÑÑÑановлениÑ
Ð ÑÑом подÑазделе опиÑÑваÑÑÑÑ Ð¿Ð°ÑамеÑÑÑ, ÑвÑзаннÑе Ñ ÑаÑÑиÑнÑм воÑÑÑановлением клаÑÑеÑа. ÐÑи паÑамеÑÑÑ Ð¼Ð¾Ð³ÑÑ Ð¿ÐµÑедаваÑÑÑÑ Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¾Ð¹ restore.
--db-exclude=имÑ_бдÐадаÑÑ Ð¸Ð¼Ñ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ , коÑоÑÐ°Ñ Ð´Ð¾Ð»Ð¶Ð½Ð° бÑÑÑ Ð¸ÑклÑÑена из ÑиÑла воÑÑÑанавливаемÑÑ . ÐÑе оÑÑалÑнÑе Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ Ð² клаÑÑеÑе бÑдÑÑ Ð²Ð¾ÑÑÑанавливаÑÑÑÑ, вклÑÑаÑ
template0иtemplate1. ÐÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð¼Ð¾Ð¶Ð½Ð¾ задаÑÑ Ð½ÐµÑколÑко Ñаз, Ñаким обÑазом иÑклÑÑив неÑколÑко баз даннÑÑ .--db-include=имÑ_бдÐадаÑÑ Ð¸Ð¼Ñ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ , коÑоÑÐ°Ñ Ð´Ð¾Ð»Ð¶Ð½Ð° воÑÑÑанавливаÑÑÑÑ. ÐÑе оÑÑалÑнÑе Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ Ð²Ð¾ÑÑÑанавливаÑÑÑÑ Ð½Ðµ бÑдÑÑ, за иÑклÑÑением
template0иtemplate1. ÐÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð¼Ð¾Ð¶Ð½Ð¾ задаÑÑ Ð½ÐµÑколÑко Ñаз, Ñаким обÑазом вÑбÑав Ð´Ð»Ñ Ð²Ð¾ÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð½ÐµÑколÑко баз даннÑÑ .
ÐаÑамеÑÑÑ ÑеÑÑиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð¸ оÑладки
Ð ÑÑом подÑазделе опиÑÑваÑÑÑÑ Ð¿Ð°ÑамеÑÑÑ, полезнÑе лиÑÑ Ð¿Ñи ÑеÑÑиÑовании или ÑазÑабоÑке.
PGPROBACKUP_TESTS_SKIP_HIDDENУказÑÐ²Ð°ÐµÑ pg_probackup игноÑиÑоваÑÑ ÐºÐ¾Ð¿Ð¸Ð¸, помеÑеннÑе как ÑкÑÑÑÑе. ÐамеÑÑÑе, ÑÑо Ñама ÑÑилиÑа pg_probackup никогда не помеÑÐ°ÐµÑ ÐºÐ¾Ð¿Ð¸Ð¸ как ÑкÑÑÑÑе. ÐобиÑÑÑÑ Ñакого ÑоÑÑоÑÐ½Ð¸Ñ ÐºÐ¾Ð¿Ð¸Ð¸ можно, ÑолÑко вÑÑÑнÑÑ Ð¾ÑÑедакÑиÑовав Ñайл
backup.control. ÐадаÑÑ ÑÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð¼Ð¾Ð¶Ð½Ð¾ ÑолÑко в пеÑеменнÑÑ Ð¾ÐºÑÑжениÑ.--destroy-all-other-dbsÐо ÑмолÑÐ°Ð½Ð¸Ñ pg_probackup завеÑÑÐ°ÐµÑ ÑабоÑÑ Ð¾Ñибкой пÑи попÑÑке вÑполниÑÑ ÑаÑÑиÑное инкÑеменÑалÑное воÑÑÑановление, поÑколÑÐºÑ Ð¿Ñи ÑÑом ÑдалÑÑÑÑÑ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ , не вклÑÑÑннÑе в ÑпиÑок воÑÑÑановлениÑ. ÐÑÐ¾Ñ Ñлаг позволÑÐµÑ Ð¸Ð³Ð½Ð¾ÑиÑоваÑÑ Ð¾ÑÐ¸Ð±ÐºÑ Ð¸ пÑодолжаÑÑ ÑаÑÑиÑное инкÑеменÑалÑное воÑÑÑановление (напÑимеÑ, ÑÑÐ¾Ð±Ñ Ñнимок ÑеÑÑовой ÐÐ Ð½Ð°Ñ Ð¾Ð´Ð¸Ð»ÑÑ Ð² Ñом же ÑоÑÑоÑнии, ÑÑо и Ñнимок пÑоизводÑÑвенной ÐÐ). ÐÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð¼Ð¾Ð¶Ð½Ð¾ иÑполÑзоваÑÑ Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¾Ð¹ restore.
Ðажно
Ðикогда не иÑполÑзÑйÑе ÑÑÐ¾Ñ Ñлаг в пÑоизводÑÑвенном клаÑÑеÑе.
PGPROBACKUP_TESTS_SKIP_EMPTY_COMMITУказÑÐ²Ð°ÐµÑ pg_probackup пÑопÑÑкаÑÑ Ð¿ÑÑÑÑе ÑÑанзакÑии поÑле pg_backup_stop.
ÐÑакÑиÑеÑкие пÑимеÑÑ
Ðо вÑеÑ
поÑледÑÑÑиÑ
пÑимеÑаÑ
пÑедполагаеÑÑÑ Ð¸ÑполÑзование ÑдалÑнного Ñежима по пÑоÑÐ¾ÐºÐ¾Ð»Ñ SSH. ÐÑли Ð²Ñ Ñ
оÑиÑе вÑполнÑÑÑ ÑезеÑвное копиÑование и воÑÑÑановление локалÑно, пÑопÑÑÑиÑе ÑÑап «ÐаÑÑÑойка SSH-подклÑÑÐµÐ½Ð¸Ñ Ð±ÐµÐ· паÑолÑ» и не ÑказÑвайÑе никакие паÑамеÑÑÑ --remote-*.
ÐоказаннÑе здеÑÑ Ð´ÐµÐ¹ÑÑÐ²Ð¸Ñ Ð²ÑполнÑлиÑÑ Ð² ÑÑеде Ñ Ubuntu 18.04, Postgres Pro 11 и pg_probackup 2.2.0.
backupâ ÑÐ¾Ð»Ñ Ð² Postgres Pro, иÑполÑзÑÐµÐ¼Ð°Ñ Ð´Ð»Ñ Ð¿Ð¾Ð´ÐºÐ»ÑÑÐµÐ½Ð¸Ñ Ðº клаÑÑеÑÑ Postgres Pro.backupdbâ база даннÑÑ , ÑеÑез коÑоÑÑÑ Ð²ÑполнÑеÑÑÑ Ð¿Ð¾Ð´ÐºÐ»ÑÑение к клаÑÑеÑÑ Postgres Pro.backup_hostâ ÑиÑÑема, где Ð½Ð°Ñ Ð¾Ð´Ð¸ÑÑÑ ÐºÐ°Ñалог ÑезеÑвнÑÑ ÐºÐ¾Ð¿Ð¸Ð¹.backupmanâ полÑзоваÑÐµÐ»Ñ Ð² ÑиÑÑемеbackup_host, Ð¾Ñ Ð¸Ð¼ÐµÐ½Ð¸ коÑоÑого вÑполнÑÑÑÑÑ Ð²Ñе опеÑаÑии pg_probackup./mnt/backupsâ пÑÑÑ Ðº каÑÐ°Ð»Ð¾Ð³Ñ ÑезеÑвнÑÑ ÐºÐ¾Ð¿Ð¸Ð¹ в ÑиÑÑемеbackup_host.postgres_hostâ ÑиÑÑема, в коÑоÑой ÑабоÑÐ°ÐµÑ Postgres Pro.postgresâ полÑзоваÑÐµÐ»Ñ Ð² ÑиÑÑемеpostgres_host, Ð¾Ñ Ð¸Ð¼ÐµÐ½Ð¸ коÑоÑого запÑÑкаеÑÑÑ ÐºÐ»Ð°ÑÑÐµÑ Postgres Pro./var/lib/postgresql/11/mainâ пÑÑÑ Ðº каÑÐ°Ð»Ð¾Ð³Ñ Ð´Ð°Ð½Ð½ÑÑ Postgres Pro в ÑиÑÑемеpostgres_host.
ÐинималÑÐ½Ð°Ñ Ð½Ð°ÑÑÑойка
ÐаннÑй ÑÑенаÑий иллÑÑÑÑиÑÑÐµÑ Ð½Ð°ÑÑÑÐ¾Ð¹ÐºÑ Ð´Ð»Ñ Ð²ÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð¿Ð¾Ð»Ð½Ð¾Ð³Ð¾ и ÑазноÑÑного копиÑованиÑ.
ÐаÑÑÑойÑе подклÑÑение ÑеÑез SSH Ñ
backup_hostкpostgres_host:[backupman@backup_host] ssh-copy-id postgres@postgres_host
ÐаÑÑÑойÑе клаÑÑÐµÑ Postgres Pro.
Ðз ÑообÑажений безопаÑноÑÑи Ð´Ð»Ñ Ð²ÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ ÑезеÑвного копиÑÐ¾Ð²Ð°Ð½Ð¸Ñ ÑекомендÑеÑÑÑ Ð¸ÑполÑзоваÑÑ Ð¾ÑделÑнÑÑ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ .
postgres=# CREATE DATABASE backupdb;
ÐодклÑÑиÑеÑÑ Ðº базе
backupdb, ÑоздайÑе ÑолÑprobackupи дайÑе ей ÑледÑÑÑие пÑава:backupdb=# BEGIN; CREATE ROLE backup WITH LOGIN REPLICATION; GRANT USAGE ON SCHEMA pg_catalog TO backup; GRANT EXECUTE ON FUNCTION pg_catalog.current_setting(text) TO backup; GRANT EXECUTE ON FUNCTION pg_catalog.set_config(text, text, boolean) TO backup; GRANT EXECUTE ON FUNCTION pg_catalog.pg_is_in_recovery() TO backup; GRANT EXECUTE ON FUNCTION pg_catalog.pg_start_backup(text, boolean, boolean) TO backup; GRANT EXECUTE ON FUNCTION pg_catalog.pg_stop_backup(boolean, boolean) TO backup; GRANT EXECUTE ON FUNCTION pg_catalog.pg_create_restore_point(text) TO backup; GRANT EXECUTE ON FUNCTION pg_catalog.pg_switch_wal() TO backup; GRANT EXECUTE ON FUNCTION pg_catalog.pg_last_wal_replay_lsn() TO backup; GRANT EXECUTE ON FUNCTION pg_catalog.txid_current() TO backup; GRANT EXECUTE ON FUNCTION pg_catalog.txid_current_snapshot() TO backup; GRANT EXECUTE ON FUNCTION pg_catalog.txid_snapshot_xmax(txid_snapshot) TO backup; GRANT EXECUTE ON FUNCTION pg_catalog.pg_control_checkpoint() TO backup; COMMIT;
ÐÑоиниÑиализиÑÑйÑе каÑалог ÑезеÑвнÑÑ ÐºÐ¾Ð¿Ð¸Ð¹:
[backupman@backup_host]$ pg_probackup-11 init -B /mnt/backups INFO: Backup catalog '/mnt/backups' successfully inited
ÐобавÑÑе ÑкземплÑÑ
pg-11в каÑалог ÑезеÑвнÑÑ ÐºÐ¾Ð¿Ð¸Ð¹:[backupman@backup_host]$ pg_probackup-11 add-instance -B /mnt/backups --instance pg-11 --remote-host=postgres_host --remote-user=postgres -D /var/lib/postgresql/11/main INFO: Instance 'node' successfully inited
СделайÑе полнÑÑ ÑезеÑвнÑÑ ÐºÐ¾Ð¿Ð¸Ñ:
[backupman@backup_host] pg_probackup-11 backup -B /mnt/backups --instance pg-11 -b FULL --stream --remote-host=postgres_host --remote-user=postgres -U backup -d backupdb INFO: Backup start, pg_probackup version: 2.2.0, instance: node, backup ID: PZ7YK2, backup mode: FULL, wal mode: STREAM, remote: true, compress-algorithm: none, compress-level: 1 INFO: Start transferring data files INFO: Data files are transferred INFO: wait for pg_stop_backup() INFO: pg_stop backup() successfully executed INFO: Validating backup PZ7YK2 INFO: Backup PZ7YK2 data files are valid INFO: Backup PZ7YK2 resident size: 196MB INFO: Backup PZ7YK2 completed
ÐзглÑниÑе на ÑодеÑжимое каÑалога копий:
[backupman@backup_host] pg_probackup-11 show -B /mnt/backups --instance pg-11 BACKUP INSTANCE 'pg-11' ================================================================================================================================== Instance Version ID Recovery Time Mode WAL Mode TLI Time Data WAL Zratio Start LSN Stop LSN Status ================================================================================================================================== node 11 PZ7YK2 2019-10-11 19:45:45+03 FULL STREAM 1/0 11s 180MB 16MB 1.00 0/3C000028 0/3C000198 OK
СделайÑе инкÑеменÑалÑнÑÑ ÑезеÑвнÑÑ ÐºÐ¾Ð¿Ð¸Ñ Ð² Ñежиме DELTA:
[backupman@backup_host] pg_probackup-11 backup -B /mnt/backups --instance pg-11 -b delta --stream --remote-host=postgres_host --remote-user=postgres -U backup -d backupdb INFO: Backup start, pg_probackup version: 2.2.0, instance: node, backup ID: PZ7YMP, backup mode: DELTA, wal mode: STREAM, remote: true, compress-algorithm: none, compress-level: 1 INFO: Parent backup: PZ7YK2 INFO: Start transferring data files INFO: Data files are transferred INFO: wait for pg_stop_backup() INFO: pg_stop backup() successfully executed INFO: Validating backup PZ7YMP INFO: Backup PZ7YMP data files are valid INFO: Backup PZ7YMP resident size: 32MB INFO: Backup PZ7YMP completed
ÐобавÑÑе неÑколÑко паÑамеÑÑов в Ñайл конÑигÑÑаÑии pg_probackup, ÑÑÐ¾Ð±Ñ Ð¸Ñ Ð½Ðµ надо бÑло задаваÑÑ Ð² командной ÑÑÑоке:
[backupman@backup_host] pg_probackup-11 set-config -B /mnt/backups --instance pg-11 --remote-host=postgres_host --remote-user=postgres -U backup -d backupdb
СделайÑе еÑÑ Ð¾Ð´Ð½Ñ Ð¸Ð½ÐºÑеменÑалÑнÑÑ ÐºÐ¾Ð¿Ð¸Ñ Ð² Ñежиме DELTA, опÑÑÑив некоÑоÑÑе из пÑедÑдÑÑÐ¸Ñ Ð¿Ð°ÑамеÑÑов:
[backupman@backup_host] pg_probackup-11 backup -B /mnt/backups --instance pg-11 -b delta --stream INFO: Backup start, pg_probackup version: 2.2.0, instance: node, backup ID: PZ7YR5, backup mode: DELTA, wal mode: STREAM, remote: true, compress-algorithm: none, compress-level: 1 INFO: Parent backup: PZ7YMP INFO: Start transferring data files INFO: Data files are transferred INFO: wait for pg_stop_backup() INFO: pg_stop backup() successfully executed INFO: Validating backup PZ7YR5 INFO: Backup PZ7YR5 data files are valid INFO: Backup PZ7YR5 resident size: 32MB INFO: Backup PZ7YR5 completed
ÐзглÑниÑе на конÑигÑÑаÑÐ¸Ñ ÑкземплÑÑа:
[backupman@backup_host] pg_probackup-11 show-config -B /mnt/backups --instance pg-11 # Backup instance information pgdata = /var/lib/postgresql/11/main system-identifier = 6746586934060931492 xlog-seg-size = 16777216 # Connection parameters pgdatabase = backupdb pghost = postgres_host pguser = backup # Archive parameters archive-timeout = 5min # Logging parameters log-level-console = INFO log-level-file = OFF log-format-console = PLAIN log-format-file = PLAIN log-filename = pg_probackup.log log-rotation-size = 0 log-rotation-age = 0 # Retention parameters retention-redundancy = 0 retention-window = 0 wal-depth = 0 # Compression parameters compress-algorithm = none compress-level = 1 # Remote access parameters remote-proto = ssh remote-host = postgres_host
ÐамеÑÑÑе, ÑÑо паÑамеÑÑÑ, не пеÑеопÑеделÑннÑе командой
set-config, имеÑÑ Ð·Ð½Ð°ÑÐµÐ½Ð¸Ñ Ð¿Ð¾ ÑмолÑаниÑ.ÐзглÑниÑе на ÑодеÑжимое каÑалога копий:
[backupman@backup_host] pg_probackup-11 show -B /mnt/backups --instance pg-11 ==================================================================================================================================== Instance Version ID Recovery Time Mode WAL Mode TLI Time Data WAL Zratio Start LSN Stop LSN Status ==================================================================================================================================== node 11 PZ7YR5 2019-10-11 19:49:56+03 DELTA STREAM 1/1 10s 112kB 32MB 1.00 0/41000028 0/41000160 OK node 11 PZ7YMP 2019-10-11 19:47:16+03 DELTA STREAM 1/1 10s 376kB 32MB 1.00 0/3E000028 0/3F0000B8 OK node 11 PZ7YK2 2019-10-11 19:45:45+03 FULL STREAM 1/0 11s 180MB 16MB 1.00 0/3C000028 0/3C000198 OK
ÐеÑÑиониÑование
ÐÑи ÑазÑабоÑке pg_probackup иÑполÑзÑеÑÑÑ ÑеманÑиÑеÑкое веÑÑиониÑование.
ÐвÑоÑÑ
Postgres Professional, ÐоÑква, РоÑÑиÑ.
ÐлагодаÑноÑÑи
ÐÑогÑамма pg_probackup оÑнована на pg_arman, коÑоÑÐ°Ñ Ð¸Ð·Ð½Ð°ÑалÑно бÑла напиÑана в NTT, а заÑем ÐµÑ Ñазвивал и поддеÑживал ÐикаÑÐ»Ñ ÐакÑе.