26.2. ÐаÑамеÑÑÑ ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ð²Ð¾ÑÑÑановлением
Ðо ÑмолÑÐ°Ð½Ð¸Ñ Ð¿ÑоÑеÑÑ Ð²Ð¾ÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð¿ÑоизводиÑÑÑ Ð²Ð¿Ð»Ð¾ÑÑ Ð´Ð¾ оконÑÐ°Ð½Ð¸Ñ Ð¶ÑÑнала WAL. ÐижеÑказаннÑе паÑамеÑÑÑ Ð¼Ð¾Ð³ÑÑ Ð¸ÑполÑзоваÑÑÑÑ, ÑÑÐ¾Ð±Ñ Ð¾ÑÑановиÑÑ Ð¿ÑоÑеÑÑ Ð²Ð¾ÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð² более Ñанней ÑоÑке. ÐÑполÑзоваÑÑÑÑ Ð¼Ð¾Ð¶ÐµÑ ÑолÑко один из паÑамеÑÑов recovery_target, recovery_target_name, recovery_target_time и recovery_target_xid; еÑли в конÑигÑÑаÑионном Ñайле задано неÑколÑко паÑамеÑÑов, бÑÐ´ÐµÑ Ð¸ÑполÑзоваÑÑÑÑ Ð¿Ð¾Ñледний.
recovery_target= 'immediate'ÐаннÑй паÑамеÑÑ ÑказÑваеÑ, ÑÑо пÑоÑеÑÑ Ð²Ð¾ÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð´Ð¾Ð»Ð¶ÐµÐ½ завеÑÑиÑÑÑÑ, как ÑолÑко бÑÐ´ÐµÑ Ð´Ð¾ÑÑигнÑÑо ÑелоÑÑное ÑоÑÑоÑние, Ñ. е. как можно ÑанÑÑе. ÐÑи воÑÑÑановлении из опеÑаÑивной ÑезеÑвной копии, ÑÑо бÑÐ´ÐµÑ ÑоÑкой, в коÑоÑой завеÑÑилÑÑ Ð¿ÑоÑеÑÑ ÑезеÑвного копиÑованиÑ.
Ð¢ÐµÑ Ð½Ð¸ÑеÑки ÑÑо ÑÑÑоковÑй паÑамеÑÑ, но знаÑение
'immediate'ÂÂÂâ единÑÑвенно допÑÑÑимое в даннÑй моменÑ.recovery_target_name(string)ÐÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ ÑказÑÐ²Ð°ÐµÑ Ð¸Ð¼ÐµÐ½Ð¾Ð²Ð°Ð½Ð½ÑÑ ÑоÑÐºÑ Ð²Ð¾ÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ (ÑозданнÑÑ Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ
pg_create_restore_point()), до коÑоÑой бÑÐ´ÐµÑ Ð¿ÑоизводиÑÑÑÑ Ð²Ð¾ÑÑÑановление.recovery_target_time(timestamp)ÐаннÑй паÑамеÑÑ ÑказÑÐ²Ð°ÐµÑ ÑоÑÐºÑ Ð²Ñемени, вплоÑÑ Ð´Ð¾ коÑоÑой бÑÐ´ÐµÑ Ð¿ÑоизводиÑÑÑÑ Ð²Ð¾ÑÑÑановление. ТоÑноÑÑÑ ÑÑой ÑоÑки оÑÑанова Ñакже завиÑÐ¸Ñ Ð¾Ñ recovery_target_inclusive.
recovery_target_xid(string)ÐаÑамеÑÑ ÑказÑÐ²Ð°ÐµÑ Ð¸Ð´ÐµÐ½ÑиÑикаÑÐ¾Ñ ÑÑанзакÑии, вплоÑÑ Ð´Ð¾ коÑоÑой Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾ пÑоизвеÑÑи пÑоÑедÑÑÑ Ð²Ð¾ÑÑÑановлениÑ. ÐмейÑе в видÑ, ÑÑо неÑмоÑÑÑ Ð½Ð° Ñо, ÑÑо пÑи ÑÑаÑÑе иденÑиÑикаÑоÑÑ ÑÑанзакÑий назнаÑаÑÑÑÑ Ð¿Ð¾ÑледоваÑелÑно, завеÑÑаÑÑÑÑ Ð¾Ð½Ð¸ могÑÑ Ð² ином поÑÑдке. ÐоÑÑÑанавливаемÑе ÑÑанзакÑии ÑÑо Ñе, ÑÑо бÑли заÑикÑиÑÐ¾Ð²Ð°Ð½Ñ Ð´Ð¾ Ñказанной (и, возможно, вклÑÑÐ°Ñ ÐµÑ). ТоÑноÑÑÑ ÑоÑки оÑÑанова Ñакже завиÑÐ¸Ñ Ð¾Ñ recovery_target_inclusive.
СледÑÑÑие паÑамеÑÑÑ ÑÑоÑнÑÑÑ ÑелевÑÑ ÑоÑÐºÑ Ð²Ð¾ÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð¸ опÑеделÑÑÑ, ÑÑо бÑÐ´ÐµÑ Ð¿ÑоиÑÑ Ð¾Ð´Ð¸ÑÑ Ð¿Ñи ÐµÑ Ð´Ð¾ÑÑижении:
recovery_target_inclusive(boolean)УказÑÐ²Ð°ÐµÑ Ð½Ð° Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾ÑÑÑ Ð¾ÑÑановки ÑÑÐ°Ð·Ñ Ð¿Ð¾Ñле (
true), либо до (false) доÑÑÐ¸Ð¶ÐµÐ½Ð¸Ñ Ñелевой ÑоÑки. ÐÑименÑеÑÑÑ Ð¾Ð´Ð½Ð¾Ð²Ñеменно Ñ recovery_target_time, либо recovery_target_xid. ÐÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð¾Ð¿ÑеделÑеÑ, нÑжно ли воÑÑÑанавливаÑÑ ÑÑанзакÑии, Ñ ÐºÐ¾ÑоÑÑÑ Ð²ÑÐµÐ¼Ñ ÑикÑаÑии либо иденÑиÑикаÑÐ¾Ñ Ð² ÑоÑноÑÑи ÑÐ¾Ð²Ð¿Ð°Ð´Ð°ÐµÑ Ñо знаÑением ÑооÑвеÑÑÑвÑÑÑего паÑамеÑÑа. ÐнаÑение по ÑмолÑÐ°Ð½Ð¸Ñ âtrue.recovery_target_timeline(string)УказÑÐ²Ð°ÐµÑ Ð»Ð¸Ð½Ð¸Ñ Ð²Ñемени Ð´Ð»Ñ Ð²Ð¾ÑÑÑановлениÑ. Ðо ÑмолÑÐ°Ð½Ð¸Ñ Ð¿ÑоизводиÑÑÑ Ð²Ð¾ÑÑÑановление Ñой же линии вÑемени, коÑоÑÐ°Ñ Ð±Ñла ÑекÑÑей в Ð¼Ð¾Ð¼ÐµÐ½Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð±Ð°Ð·Ð¾Ð²Ð¾Ð¹ ÑезеÑвной копии. Со знаÑением
latestвоÑÑÑанавливаÑÑÑÑ Ð±ÑÐ´ÐµÑ Ð¿Ð¾ÑледнÑÑ Ð»Ð¸Ð½Ð¸Ñ Ð²Ñемени, Ð½Ð°Ð¹Ð´ÐµÐ½Ð½Ð°Ñ Ð² аÑÑ Ð¸Ð²Ðµ, ÑÑо полезно Ð´Ð»Ñ ÑезеÑвного ÑеÑвеÑа. Ðное знаÑение паÑамеÑÑа Ð¼Ð¾Ð¶ÐµÑ Ð¿Ð¾ÑÑебоваÑÑÑÑ Ð² более Ñложной ÑиÑÑаÑии повÑоÑного воÑÑÑановлениÑ, когда Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾ веÑнÑÑÑÑÑ Ðº ÑоÑÑоÑниÑ, коÑоÑое Ñамо бÑло доÑÑигнÑÑо поÑле воÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð½Ð° Ð¼Ð¾Ð¼ÐµÐ½Ñ Ð²Ñемени. ÐÑо обÑÑждаеÑÑÑ Ð² ÐодÑазделе 24.3.5.recovery_target_action(enum)УказÑваеÑ, какое дейÑÑвие должен пÑедпÑинÑÑÑ ÑеÑÐ²ÐµÑ Ð¿Ð¾Ñле доÑÑÐ¸Ð¶ÐµÐ½Ð¸Ñ Ñели воÑÑÑановлениÑ. ÐаÑÐ¸Ð°Ð½Ñ Ð¿Ð¾ ÑмолÑÐ°Ð½Ð¸Ñ â
pause, ÑÑо ознаÑÐ°ÐµÑ Ð¿ÑиоÑÑÐ°Ð½Ð¾Ð²ÐºÑ Ð²Ð¾ÑÑÑановлениÑ. ÐÑоÑой ваÑианÑ,promote, ознаÑаеÑ, ÑÑо пÑоÑеÑÑ Ð²Ð¾ÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð·Ð°Ð²ÐµÑÑиÑÑÑ Ð¸ ÑеÑÐ²ÐµÑ Ð½Ð°ÑнÑÑ Ð¿ÑинимаÑÑ Ð¿Ð¾Ð´ÐºÐ»ÑÑениÑ. ÐаконеÑ, Ñ Ð²Ð°ÑианÑомshutdownÑеÑÐ²ÐµÑ Ð¾ÑÑановиÑÑÑ, как ÑолÑко ÑÐµÐ»Ñ Ð²Ð¾ÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð±ÑÐ´ÐµÑ Ð´Ð¾ÑÑигнÑÑа.ÐаÑианÑ
pauseпозволÑÐµÑ Ð²ÑполниÑÑ Ð·Ð°Ð¿ÑоÑÑ Ðº базе даннÑÑ Ð¸ ÑбедиÑÑÑÑ Ð² Ñом, ÑÑо доÑÑигнÑÑÐ°Ñ ÑÐµÐ»Ñ Ð¾ÐºÐ°Ð·Ð°Ð»Ð°ÑÑ Ð¶ÐµÐ»Ð°ÐµÐ¼Ð¾Ð¹ ÑоÑкой воÑÑÑановлениÑ. ÐÐ»Ñ ÑнÑÑÐ¸Ñ Ñ Ð¿Ð°ÑÐ·Ñ Ð½Ñжно вÑзваÑÑpg_xlog_replay_resume()(Ñм. ТаблиÑÑ 9.70), ÑÑо в иÑоге пÑиведÑÑ Ðº завеÑÑÐµÐ½Ð¸Ñ Ð²Ð¾ÑÑÑановлениÑ. ÐÑли же окажеÑÑÑ, ÑÑо Ð¼Ñ ÐµÑÑ Ð½Ðµ доÑÑигли желаемой ÑоÑки воÑÑÑановлениÑ, нÑжно оÑÑановиÑÑ ÑеÑвеÑ, ÑÑÑановиÑÑ Ð±Ð¾Ð»ÐµÐµ позднÑÑ ÑÐµÐ»Ñ Ð¸ пеÑезапÑÑÑиÑÑ ÑеÑÐ²ÐµÑ Ð´Ð»Ñ Ð¿ÑÐ¾Ð´Ð¾Ð»Ð¶ÐµÐ½Ð¸Ñ Ð²Ð¾ÑÑÑановлениÑ.ÐаÑианÑ
shutdownполезен Ð´Ð»Ñ Ð¿Ð¾Ð»ÑÑÐµÐ½Ð¸Ñ Ð³Ð¾Ñового ÑкземплÑÑа ÑеÑвеÑа в желаемой ÑоÑке. ÐÑи ÑÑом даннÑй ÑкземплÑÑ ÑÐ¼Ð¾Ð¶ÐµÑ Ð²Ð¾ÑпÑоизводиÑÑ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸ÑелÑнÑе запиÑи WAL (и на Ñамом деле ÐµÐ¼Ñ Ð¿ÑидÑÑÑÑ Ð²Ð¾ÑпÑоизводиÑÑ Ð·Ð°Ð¿Ð¸Ñи WAL поÑле поÑледней конÑÑолÑной ÑоÑки пÑи ÑледÑÑÑем пеÑезапÑÑке).ÐамеÑÑÑе, ÑÑо Ñак как
recovery.confне пеÑеименовÑваеÑÑÑ, когда вrecovery_target_actionвÑбÑан ваÑианÑshutdown, пÑи поÑледÑÑÑем запÑÑке бÑÐ´ÐµÑ Ð¿ÑоиÑÑ Ð¾Ð´Ð¸ÑÑ Ð½ÐµÐ¼ÐµÐ´Ð»ÐµÐ½Ð½Ð°Ñ Ð¾ÑÑановка, пока Ð²Ñ Ð½Ðµ измениÑе конÑигÑÑаÑÐ¸Ñ Ð¸Ð»Ð¸ не ÑдалиÑе Ñайлrecovery.confвÑÑÑнÑÑ.ÐÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð½Ðµ дейÑÑвÑеÑ, еÑли ÑÐµÐ»Ñ Ð²Ð¾ÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð½Ðµ ÑÑÑановлена. ÐÑли не вклÑÑÑн Ñежим hot_standby, знаÑение
pauseдейÑÑвÑÐµÑ Ñак же, как иshutdown.