pg_rewind
pg_rewind â ÑÐ¸Ð½Ñ ÑонизиÑоваÑÑ ÐºÐ°Ñалог даннÑÑ Postgres Pro Ñ Ð´ÑÑгим каÑалогом, оÑвеÑвлÑннÑм Ð¾Ñ Ð½ÐµÐ³Ð¾
СинÑакÑиÑ
pg_rewind [паÑамеÑÑ...] { -D | --target-pgdata }каÑалог { --source-pgdata= | каÑалог--source-server= } ÑÑÑока_подклÑÑениÑ
ÐпиÑание
УÑилиÑа pg_rewind пÑедÑÑавлÑÐµÑ Ñобой ÑÑедÑÑво ÑÐ¸Ð½Ñ ÑонизаÑии клаÑÑеÑа Postgres Pro Ñ Ð´ÑÑгой копией Ñого же клаÑÑеÑа поÑле ÑаÑÑ Ð¾Ð¶Ð´ÐµÐ½Ð¸Ñ Ð»Ð¸Ð½Ð¸Ð¹ вÑемени ÑÑÐ¸Ñ ÐºÐ»Ð°ÑÑеÑов. ÐбÑÑнÑй ÑÑенаÑий ÐµÑ Ð¸ÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ â веÑнÑÑÑ Ð² ÑабоÑÑ ÑÑаÑÑй главнÑй ÑеÑÐ²ÐµÑ Ð¿Ð¾Ñле пеÑеклÑÑÐµÐ½Ð¸Ñ Ð½Ð° ÑезеÑвнÑй, в каÑеÑÑве ÑезеÑвного Ð´Ð»Ñ ÑеÑвеÑа, ÑÑавÑего главнÑм.
ÐÑ ÑезÑлÑÑÐ°Ñ ÑавнознаÑен замене Ñелевого каÑалога даннÑÑ Ð¸ÑÑ Ð¾Ð´Ð½Ñм. Ð ÑÐ°Ð¹Ð»Ð°Ñ Ð¾ÑноÑений она копиÑÑÐµÑ ÑолÑко изменÑннÑе блоки; вÑе оÑÑалÑнÑе ÑайлÑ, вклÑÑÐ°Ñ ÑÐ°Ð¹Ð»Ñ ÐºÐ¾Ð½ÑигÑÑаÑии, копиÑÑÑÑÑÑ Ñеликом. ÐÑеимÑÑеÑÑво pg_rewind по ÑÑÐ°Ð²Ð½ÐµÐ½Ð¸Ñ Ñ Ñозданием новой базовой копии или Ñакими ÑÑедÑÑвами, как rsync, ÑоÑÑÐ¾Ð¸Ñ Ð² Ñом, ÑÑо pg_rewind не ÑиÑÐ°ÐµÑ Ð½ÐµÐ¸Ð·Ð¼ÐµÐ½ÑннÑе блоки в клаÑÑеÑе. ÐлагодаÑÑ ÑÑÐ¾Ð¼Ñ Ð¾Ð½Ð° дейÑÑвÑÐµÑ Ð³Ð¾Ñаздо бÑÑÑÑее, когда база даннÑÑ Ð±Ð¾Ð»ÑÑаÑ, но ÑазлиÑÐ¸Ñ Ð¼ÐµÐ¶Ð´Ñ ÐºÐ»Ð°ÑÑеÑами огÑаниÑиваÑÑÑÑ Ð»Ð¸ÑÑ Ð½ÐµÐ±Ð¾Ð»ÑÑим колиÑеÑÑвом блоков.
УÑилиÑа pg_rewind изÑÑÐ°ÐµÑ Ð¸ÑÑоÑии линий вÑемени иÑÑ
одного и Ñелевого клаÑÑеÑов Ñ ÑелÑÑ Ð½Ð°Ð¹Ñи ÑоÑкÑ, в коÑоÑой они ÑазоÑлиÑÑ, и Ð¾Ð¶Ð¸Ð´Ð°ÐµÑ Ð½Ð°Ð¹Ñи жÑÑÐ½Ð°Ð»Ñ WAL в каÑалоге pg_wal Ñелевого клаÑÑеÑа вплоÑÑ Ð´Ð¾ ÑоÑки ÑаÑÑ
ождениÑ. ТоÑка ÑаÑÑ
Ð¾Ð¶Ð´ÐµÐ½Ð¸Ñ Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð½Ð°Ð¹Ð´ÐµÐ½Ð° на Ñелевой или иÑÑ
одной линии вÑемени либо в иÑ
обÑем пÑедке. Ð ÑипиÑном ÑÑенаÑии оÑÑабоÑки оÑказа, когда Ñелевой клаÑÑÐµÑ Ð¾ÑклÑÑаеÑÑÑ Ð²ÑкоÑе поÑле ÑаÑÑ
ождениÑ, ÑÑо не пÑоблема, но еÑли Ñелевой клаÑÑÐµÑ Ð¿ÑоÑабоÑал долгое вÑÐµÐ¼Ñ Ð¿Ð¾Ñле ÑаÑÑ
ождениÑ, ÑÑаÑÑе ÑÐ°Ð¹Ð»Ñ WAL могÑÑ Ð±ÑÑÑ Ñже ÑдаленÑ. Ð ÑÑом ÑлÑÑае иÑ
можно вÑÑÑнÑÑ ÑкопиÑоваÑÑ Ð¸Ð· аÑÑ
ива WAL в каÑалог pg_wal или запÑÑÑиÑÑ pg_rewind Ñ ÐºÐ»ÑÑом -c, ÑÑÐ¾Ð±Ñ Ð¾Ð½Ð¸ бÑли авÑомаÑиÑеÑки полÑÑÐµÐ½Ñ Ð¸Ð· аÑÑ
ива WAL. ÐаÑианÑÑ Ð¸ÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ pg_rewind не огÑаниÑиваÑÑÑÑ Ð¾ÑÑабоÑкой оÑказа; напÑимеÑ, ÑезеÑвнÑй ÑеÑÐ²ÐµÑ Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¿Ð¾Ð²ÑÑен, вÑполниÑÑ Ð½ÐµÑколÑко пиÑÑÑиÑ
ÑÑанзакÑий, а заÑем, поÑле воÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ ÑинÑ
ÑонизаÑии, Ð²Ð½Ð¾Ð²Ñ ÑÑаÑÑ ÑезеÑвнÑм.
Ðогда Ñелевой ÑеÑÐ²ÐµÑ Ð·Ð°Ð¿ÑÑкаеÑÑÑ Ð² пеÑвÑй Ñаз поÑле вÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ pg_rewind, он пеÑеÑ
Ð¾Ð´Ð¸Ñ Ð² Ñежим воÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð¸ воÑпÑÐ¾Ð¸Ð·Ð²Ð¾Ð´Ð¸Ñ Ð²Ñе Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¸Ð· WAL Ñ Ð¸ÑÑ
одного ÑеÑвеÑа поÑле ÑоÑки ÑаÑÑ
ождениÑ. ÐÑли какие-Ñо ÑегменÑÑ WAL оказалиÑÑ Ð½ÐµÐ´Ð¾ÑÑÑÐ¿Ð½Ñ Ð½Ð° иÑÑ
одном ÑеÑвеÑе, когда вÑполнÑлаÑÑ pg_rewind, и поÑÑÐ¾Ð¼Ñ Ð½Ðµ могли бÑÑÑ ÑкопиÑÐ¾Ð²Ð°Ð½Ñ Ð² Ñ
оде ÑабоÑÑ pg_rewind, иÑ
необÑ
одимо пÑедоÑÑавиÑÑ, когда ÑеÑÐ²ÐµÑ Ð±ÑÐ´ÐµÑ Ð·Ð°Ð¿ÑÑкаÑÑÑÑ. ÐÑо можно ÑделаÑÑ, Ñоздав Ñайл recovery.signal в Ñелевом каÑалоге даннÑÑ
и опÑеделив подÑ
одÑÑÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ restore_command в postgresql.conf.
УÑилиÑа pg_rewind ÑÑебÑеÑ, ÑÑÐ¾Ð±Ñ Ð½Ð° Ñелевом ÑеÑвеÑе бÑл либо вклÑÑÑн Ñежим wal_log_hints в postgresql.conf, либо вклÑÑÐµÐ½Ñ ÐºÐ¾Ð½ÑÑолÑнÑе ÑÑммÑ, когда клаÑÑÐµÑ Ð±Ñл иниÑиализиÑован командой initdb. Ðо ÑмолÑÐ°Ð½Ð¸Ñ Ñежим wal_log_hints оÑклÑÑÑн, а конÑÑолÑнÑе ÑÑÐ¼Ð¼Ñ Ð²ÐºÐ»ÑÑенÑ. Также должен бÑÑÑ Ð²ÐºÐ»ÑÑÑн Ñежим full_page_writes (по ÑмолÑÐ°Ð½Ð¸Ñ Ð¾Ð½ вклÑÑÑн).
ÐÑедÑпÑеждение
ÐÑли во вÑÐµÐ¼Ñ ÑабоÑÑ pg_rewind пÑоиÑÑ Ð¾Ð´Ð¸Ñ Ð¾Ñибка, веÑоÑÑнее вÑего, Ñелевой каÑалог даннÑÑ Ð±ÑÐ´ÐµÑ Ð² ÑоÑÑоÑнии, не Ð¿Ð¾Ð´Ñ Ð¾Ð´ÑÑем Ð´Ð»Ñ Ð²Ð¾ÑÑÑановлениÑ. Ð ÑÑом ÑлÑÑае ÑекомендÑеÑÑÑ ÑделаÑÑ Ð½Ð¾Ð²ÑÑ ÑезеÑвнÑÑ ÐºÐ¾Ð¿Ð¸Ñ.
ÐÑогÑамма pg_rewind немедленно пÑекÑаÑÐ°ÐµÑ ÑабоÑÑ, еÑли обнаÑÑÐ¶Ð¸Ð²Ð°ÐµÑ ÑайлÑ, непоÑÑедÑÑÐ²ÐµÐ½Ð½Ð°Ñ Ð·Ð°Ð¿Ð¸ÑÑ Ð² коÑоÑÑе невозможна. ÐÑо Ð¼Ð¾Ð¶ÐµÑ Ð¸Ð¼ÐµÑÑ Ð¼ÐµÑÑо, напÑимеÑ, когда на иÑÑ Ð¾Ð´Ð½Ð¾Ð¼ и Ñелевом ÑеÑвеÑÐ°Ñ ÑовпадаÑÑ Ð¿ÑÑи Ñайлов ÑеÑÑиÑикаÑов и клÑÑей SSL, доÑÑÑпнÑÑ ÑолÑко Ð´Ð»Ñ ÑÑениÑ. ÐÑли Ñакие ÑÐ°Ð¹Ð»Ñ ÑÑÑеÑÑвÑÑÑ Ð½Ð° Ñелевом ÑеÑвеÑе, Ð¸Ñ ÑекомендÑеÑÑÑ ÑдалиÑÑ Ð´Ð¾ запÑÑка pg_rewind. ÐоÑле вÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ ÑÐ¸Ð½Ñ ÑонизаÑии некоÑоÑÑе из ÑÐ°ÐºÐ¸Ñ Ñайлов могÑÑ Ð±ÑÑÑ ÑкопиÑÐ¾Ð²Ð°Ð½Ñ Ð¸Ð· иÑÑоÑника и Ñогда Ð¼Ð¾Ð¶ÐµÑ Ð¿Ð¾ÑÑебоваÑÑÑÑ ÑдалиÑÑ ÑкопиÑованнÑе даннÑе и воÑÑÑановиÑÑ ÑÑÑлки/ÑайлÑ, ÑÑÑеÑÑвовавÑие до ÑÐ¸Ð½Ñ ÑонизаÑии.
ÐаÑамеÑÑÑ
pg_rewind пÑÐ¸Ð½Ð¸Ð¼Ð°ÐµÑ ÑледÑÑÑие аÑгÑменÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð½Ð¾Ð¹ ÑÑÑоки:
-DкаÑалог--target-pgdata=каÑалогÐÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð·Ð°Ð´Ð°ÑÑ Ñелевой каÑалог даннÑÑ , коÑоÑÑй бÑÐ´ÐµÑ ÑÐ¸Ð½Ñ ÑонизиÑован Ñ Ð¸ÑÑоÑником. Целевой ÑеÑÐ²ÐµÑ Ð´Ð¾Ð»Ð¶ÐµÐ½ бÑÑÑ Ð¾ÑклÑÑÑн ÑÑаÑнÑм обÑазом до запÑÑка pg_rewind
--source-pgdata=каÑалогÐадаÑÑ Ð¿ÑÑÑ Ð² Ñайловой ÑиÑÑеме к каÑÐ°Ð»Ð¾Ð³Ñ Ð´Ð°Ð½Ð½ÑÑ Ð¸ÑÑ Ð¾Ð´Ð½Ð¾Ð³Ð¾ ÑеÑвеÑа, Ñ ÐºÐ¾ÑоÑÑм бÑÐ´ÐµÑ ÑÐ¸Ð½Ñ ÑонизиÑоваÑÑÑÑ Ñелевой. ÐÐ»Ñ Ð¿ÑÐ¸Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ ÑÑого клÑÑа иÑÑ Ð¾Ð´Ð½Ñй ÑеÑÐ²ÐµÑ Ð´Ð¾Ð»Ð¶ÐµÐ½ бÑÑÑ Ð¾ÑÑановлен ÑÑаÑнÑм обÑазом.
--source-server=ÑÑÑока_подклÑÑениÑÐадаÑÑ ÑÑÑÐ¾ÐºÑ Ð¿Ð¾Ð´ÐºÐ»ÑÑÐµÐ½Ð¸Ñ libpq Ð´Ð»Ñ Ð¿Ð¾Ð´ÐºÐ»ÑÑÐµÐ½Ð¸Ñ Ðº иÑÑ Ð¾Ð´Ð½Ð¾Ð¼Ñ ÑеÑвеÑÑ Postgres Pro, Ñ ÐºÐ¾ÑоÑÑм бÑÐ´ÐµÑ ÑÐ¸Ð½Ñ ÑонизиÑован Ñелевой. ÐодклÑÑение должно ÑÑÑанавливаÑÑÑÑ ÐºÐ°Ðº обÑÑное (не ÑеплиÑиÑÑÑÑее) Ð¾Ñ Ð¸Ð¼ÐµÐ½Ð¸ Ñоли, имеÑÑей Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ñе пÑава Ð´Ð»Ñ Ð²ÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ ÑÑнкÑий pg_rewind на иÑÑ Ð¾Ð´Ð½Ð¾Ð¼ ÑеÑвеÑе (подÑобнее об ÑÑом говоÑиÑÑÑ Ð² ÐамеÑаниÑÑ ), или Ð¾Ñ Ð¸Ð¼ÐµÐ½Ð¸ ÑÑпеÑполÑзоваÑелÑ. ÐÐ»Ñ Ð¿ÑÐ¸Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ ÑÑого паÑамеÑÑа иÑÑ Ð¾Ð´Ð½Ñй ÑеÑÐ²ÐµÑ Ð´Ð¾Ð»Ð¶ÐµÐ½ бÑÑÑ Ð·Ð°Ð¿ÑÑен и ÑабоÑаÑÑ Ð½Ðµ в Ñежиме воÑÑÑановлениÑ.
-n--dry-runÐелаÑÑ Ð²ÑÑ, кÑоме внеÑÐµÐ½Ð¸Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ð¹ в Ñелевой каÑалог.
-N--no-syncÐо ÑмолÑаниÑ
pg_rewindждÑÑ, пока вÑе ÑÐ°Ð¹Ð»Ñ Ð½Ðµ бÑдÑÑ Ð½Ð°Ð´Ñжно запиÑÐ°Ð½Ñ Ð½Ð° диÑк. С даннÑм паÑамеÑÑомpg_rewindзавеÑÑаеÑÑÑ Ð±ÑÑÑÑее, без ожиданиÑ, но в ÑлÑÑае неожиданного ÑÐ±Ð¾Ñ Ð¾Ð¿ÐµÑаÑионной ÑиÑÑÐµÐ¼Ñ Ñелевой каÑалог даннÑÑ Ð¼Ð¾Ð¶ÐµÑ Ð¾ÐºÐ°Ð·Ð°ÑÑÑÑ Ð¸ÑпоÑÑеннÑм. ÐÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¿Ð¾Ð»ÐµÐ·ÐµÐ½ пÑи ÑеÑÑиÑовании; в пÑоизводÑÑвенной ÑÑеде пÑименÑÑÑ ÐµÐ³Ð¾ не ÑледÑеÑ.-P--progressÐклÑÑÐ°ÐµÑ Ð²Ñвод ÑообÑений о пÑогÑеÑÑе. ÐÑи ÑÑом в пÑоÑеÑÑе копиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð´Ð°Ð½Ð½ÑÑ Ð¸Ð· иÑÑ Ð¾Ð´Ð½Ð¾Ð³Ð¾ клаÑÑеÑа бÑÐ´ÐµÑ Ð²ÑдаваÑÑÑÑ Ð¿ÑиблизиÑелÑнÑй пÑоÑÐµÐ½Ñ Ð²ÑполнениÑ.
-c--restore-target-walÐÑполÑзоваÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ
restore_command, опÑеделÑннÑÑ Ð² конÑигÑÑаÑии Ñелевого клаÑÑеÑа, Ð´Ð»Ñ Ð¿Ð¾Ð»ÑÑÐµÐ½Ð¸Ñ Ñайлов WAL из аÑÑ Ð¸Ð²Ð° в ÑлÑÑае оÑÑÑÑÑÑÐ²Ð¸Ñ Ð¸Ñ Ð² каÑалогеpg_wal.--debugÐÑводиÑÑ Ð¿Ð¾Ð´ÑобнÑе оÑладоÑнÑе ÑообÑениÑ, полезнÑе в оÑновном Ð´Ð»Ñ ÑазÑабоÑÑиков, оÑлаживаÑÑÐ¸Ñ pg_rewind.
-V--versionÐоказаÑÑ Ð²ÐµÑÑиÑ, а заÑем завеÑÑиÑÑÑÑ.
-?--helpÐоказаÑÑ ÑпÑавкÑ, а заÑем завеÑÑиÑÑÑÑ.
ÐеÑеменнÑе окÑÑжениÑ
Ðогда иÑполÑзÑеÑÑÑ --source-server, pg_rewind Ñакже иÑполÑзÑÐµÑ Ð¿ÐµÑеменнÑе ÑÑедÑ, поддеÑживаемÑе libpq (Ñм. Раздел 32.14).
ÐеÑÐµÐ¼ÐµÐ½Ð½Ð°Ñ Ð¾ÐºÑÑÐ¶ÐµÐ½Ð¸Ñ PG_COLOR вÑбиÑÐ°ÐµÑ Ð²Ð°ÑÐ¸Ð°Ð½Ñ Ð¸ÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ ÑвеÑа в диагноÑÑиÑеÑкиÑ
ÑообÑениÑÑ
. ÐозможнÑе знаÑениÑ: always (вÑегда), auto (авÑомаÑиÑеÑки) и never (никогда).
ÐÑимеÑаниÑ
Ðогда иÑÑ
однÑм клаÑÑеÑом Ð´Ð»Ñ pg_rewind ÑвлÑеÑÑÑ ÑабоÑаÑÑий ÑеÑвеÑ, вмеÑÑо ÑÑпеÑполÑзоваÑÐµÐ»Ñ Ð¼Ð¾Ð¶ÐµÑ Ð¿ÑименÑÑÑÑÑ ÑолÑ, имеÑÑÐ°Ñ Ð² ÑÑом клаÑÑеÑе доÑÑаÑоÑнÑе пÑава Ð´Ð»Ñ Ð²ÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ ÑÑнкÑий, коÑоÑÑе иÑполÑзÑÐµÑ pg_rewind. ТакÑÑ ÑÐ¾Ð»Ñ (rewind_user) можно ÑоздаÑÑ Ñак:
CREATE USER rewind_user LOGIN; GRANT EXECUTE ON function pg_catalog.pg_ls_dir(text, boolean, boolean) TO rewind_user; GRANT EXECUTE ON function pg_catalog.pg_stat_file(text, boolean) TO rewind_user; GRANT EXECUTE ON function pg_catalog.pg_read_binary_file(text) TO rewind_user; GRANT EXECUTE ON function pg_catalog.pg_read_binary_file(text, bigint, bigint, boolean) TO rewind_user;
Ðогда иÑÑ
однÑм клаÑÑеÑом Ð´Ð»Ñ pg_rewind ÑвлÑеÑÑÑ ÑабоÑаÑÑий ÑеÑÐ²ÐµÑ ÑÑÐ°Ð·Ñ Ð¿Ð¾Ñле повÑÑениÑ, в нÑм необÑ
одимо вÑполниÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ CHECKPOINT, ÑÑÐ¾Ð±Ñ ÐµÐ³Ð¾ ÑпÑавлÑÑÑий Ñайл ÑодеÑжал акÑÑалÑнÑÑ Ð¸Ð½ÑоÑмаÑÐ¸Ñ Ð¾ линии вÑемени. ÐÑа инÑоÑмаÑÐ¸Ñ Ð½Ñжна pg_rewind Ð´Ð»Ñ Ð¿ÑовеÑки, можно ли ÑинÑ
ÑонизиÑоваÑÑ Ñелевой клаÑÑÐµÑ Ñ Ð²ÑбÑаннÑм иÑÑ
однÑм.
Ðак ÑÑо ÑабоÑаеÑ
ÐÑÐ½Ð¾Ð²Ð½Ð°Ñ Ð¸Ð´ÐµÑ ÑоÑÑÐ¾Ð¸Ñ Ð² Ñом, ÑÑÐ¾Ð±Ñ Ð¿ÐµÑенеÑÑи вÑе Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð½Ð° ÑÑовне Ñайловой ÑиÑÑÐµÐ¼Ñ Ð¸Ð· иÑÑ Ð¾Ð´Ð½Ð¾Ð³Ð¾ клаÑÑеÑа в Ñелевой:
ÐÑоÑканиÑоваÑÑ Ð¶ÑÑнал WAL в Ñелевом клаÑÑеÑе, наÑÐ¸Ð½Ð°Ñ Ñ Ð¿Ð¾Ñледней конÑÑолÑной ÑоÑки пеÑед моменÑом, когда иÑÑоÑÐ¸Ñ Ð»Ð¸Ð½Ð¸Ð¸ вÑемени иÑÑ Ð¾Ð´Ð½Ð¾Ð³Ð¾ клаÑÑеÑа ÑазоÑлаÑÑ Ñ ÑелевÑм клаÑÑеÑом. ÐÐ»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð¹ запиÑи WAL оÑмеÑиÑÑ, какие блоки даннÑÑ Ð±Ñли заÑÑонÑÑÑ. Ð ÑезÑлÑÑаÑе бÑÐ´ÐµÑ Ð¿Ð¾Ð»ÑÑен ÑпиÑок вÑÐµÑ Ð±Ð»Ð¾ÐºÐ¾Ð² даннÑÑ , коÑоÑÑе бÑли Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ñ Ð² Ñелевом клаÑÑеÑе поÑле оÑÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ð¸ÑÑ Ð¾Ð´Ð½Ð¾Ð³Ð¾. ÐÑли какие-либо ÑÐ°Ð¹Ð»Ñ WAL Ñже ÑдаленÑ, можно запÑÑÑиÑÑ pg_rewind Ñ ÐºÐ»ÑÑом
-c, ÑÑÐ¾Ð±Ñ Ñелевой ÑеÑÐ²ÐµÑ Ð¾Ð±ÑаÑилÑÑ Ð·Ð° ними к аÑÑ Ð¸Ð²Ñ WAL.СкопиÑоваÑÑ Ð²Ñе ÑÑи изменÑннÑе блоки из иÑÑ Ð¾Ð´Ð½Ð¾Ð³Ð¾ клаÑÑеÑа в Ñелевой либо на ÑÑовне Ñайловой ÑиÑÑÐµÐ¼Ñ (
--source-pgdata), либо на ÑÑовне SQL (--source-server).СкопиÑоваÑÑ Ð²Ñе оÑÑалÑнÑе ÑайлÑ, в ÑаÑÑноÑÑи
pg_xactи ÑÐ°Ð¹Ð»Ñ ÐºÐ¾Ð½ÑигÑÑаÑии, из иÑÑ Ð¾Ð´Ð½Ð¾Ð³Ð¾ клаÑÑеÑа в Ñелевой (пÑопÑÑÐºÐ°Ñ Ð¿Ñи ÑÑом ÑÐ°Ð¹Ð»Ñ Ð¾ÑноÑений). Ðак и пÑи базовом копиÑовании, ÑодеÑжимое каÑалоговpg_dynshmem/,pg_notify/,pg_replslot/,pg_serial/,pg_snapshots/,pg_stat_tmp/иpg_subtrans/иÑклÑÑаеÑÑÑ Ð¸Ð· даннÑÑ , копиÑÑемÑÑ Ð¸Ð· иÑÑ Ð¾Ð´Ð½Ð¾Ð³Ð¾ клаÑÑеÑа. Также иÑклÑÑаÑÑÑÑ ÑÐ°Ð¹Ð»Ñ Ð¸Ð»Ð¸ каÑалоги Ñ Ð¸Ð¼ÐµÐ½Ð°Ð¼Ð¸, наÑинаÑÑимиÑÑ Ñpgsql_tmp, а Ñакже ÑайлÑbackup_label,tablespace_map,pg_internal.init,postmaster.optsиpostmaster.pid.ÐÑимениÑÑ WAL из иÑÑ Ð¾Ð´Ð½Ð¾Ð³Ð¾ клаÑÑеÑа, наÑÐ¸Ð½Ð°Ñ Ñ ÐºÐ¾Ð½ÑÑолÑной ÑоÑки, Ñозданной пÑи пеÑеклÑÑении. (СÑÑого говоÑÑ, ÑÑилиÑа pg_rewind не пÑименÑÐµÑ WAL, она пÑоÑÑо ÑоздаÑÑ Ñайл меÑки ÑезеÑвной копии, обнаÑÑжив коÑоÑÑй, Postgres Pro наÑÐ¸Ð½Ð°ÐµÑ Ð²Ð¾ÑпÑоизведение вÑÐµÑ Ð·Ð°Ð¿Ð¸Ñей WAL Ð¾Ñ ÑÑой конÑÑолÑной ÑоÑки.)