F.26. pg_arman
F.26.1. ÐмÑ
pg_arman â Ð¼ÐµÐ½ÐµÐ´Ð¶ÐµÑ ÑезеÑвного копиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð¸ воÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð´Ð»Ñ Postgres Pro
F.26.2. СинÑакÑиÑ
pg_arman [ OPTIONS ]
{ init |
backup |
restore |
show [ DATE | timeline ] |
validate [ DATE ] |
delete DATE }ÐдеÑÑ DATE задаÑÑ Ð²ÑÐµÐ¼Ñ Ð½Ð°Ñала ÑезеÑвного копиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð² ÑоÑмаÑе ISO: (YYYY-MM-DD HH:MI:SS). ÐÐ°Ð´Ð°Ð½Ð½Ð°Ñ Ð´Ð°Ñа ÑÑавниваеÑÑÑ Ñ Ð¸Ð¼ÐµÐ½Ð°Ð¼Ð¸ Ñайлов ÑезеÑвнÑÑ ÐºÐ¾Ð¿Ð¸Ð¹ как пÑеÑикÑ.
F.26.3. ÐпиÑание
pg_arman â ÑÑо ÑлÑÐ¶ÐµÐ±Ð½Ð°Ñ Ð¿ÑогÑамма Ð´Ð»Ñ ÑезеÑвного копиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð¸ воÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ Postgres Pro.
Ðна пÑедоÑÑавлÑÐµÑ ÑледÑÑÑие возможноÑÑи:
РезеÑвное копиÑование во вÑÐµÐ¼Ñ ÑабоÑÑ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ , вклÑÑÐ°Ñ ÑаблиÑнÑе пÑоÑÑÑанÑÑва, Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ Ð²Ñего одной командÑ
ÐоÑÑÑановление из ÑезеÑвной копии вÑего одной командой, Ñ Ð½ÐµÑÑандаÑÑнÑми ваÑианÑами, вклÑÑÐ°Ñ Ð¸ÑполÑзование PITR.
ÐоддеÑжка полного и диÑÑеÑенÑиалÑного копиÑÐ¾Ð²Ð°Ð½Ð¸Ñ + диÑÑеÑенÑиалÑное копиÑование ptrack
УпÑавление ÑезеÑвнÑми копиÑми Ñо вÑÑÑоеннÑми каÑалогами
F.26.4. ÐомандÑ
pg_arman поддеÑÐ¶Ð¸Ð²Ð°ÐµÑ ÑледÑÑÑие командÑ. ÐополниÑелÑнÑе подÑобноÑÑи опиÑÐ°Ð½Ñ Ð² Ñазделе ÐаÑамеÑÑÑ.
init:
ÐниÑиализиÑоваÑÑ каÑалог ÑезеÑвнÑÑ Â ÐºÐ¾Ð¿Ð¸Ð¹.backup:
ÐÑполниÑÑ ÑезеÑвное копиÑÐ¾Ð²Ð°Ð½Ð¸ÐµÂ Â«Ð½Ð°Â Ñ Ð¾Ð´Ñ».restore:
ÐÑполниÑÑ воÑÑÑановление.show:
ÐоказаÑÑ иÑÑоÑиÑ ÑезеÑвного копиÑованиÑ. С паÑамеÑÑом timeline показÑваеÑÑÑ линиÑ вÑемени ÑезеÑвной копии и линиÑ вÑемени ÑодиÑелÑ длÑ каждой копии.validate:
ÐÑовеÑиÑÑ ÑайлÑ ÑезеÑвнÑÑ Â ÐºÐ¾Ð¿Ð¸Ð¹.delete:
УдалиÑÑ ÑайлÑ ÑезеÑвнÑÑ Â ÐºÐ¾Ð¿Ð¸Ð¹.
F.26.4.1. ÐниÑиализаÑиÑ
СнаÑала Ð²Ñ Ð´Ð¾Ð»Ð¶Ð½Ñ ÑоздаÑÑ Â«ÐºÐ°Ñалог ÑезеÑвного копиÑованиÑ», в коÑоÑом бÑдÑÑ Ñ ÑаниÑÑÑÑ ÑÐ°Ð¹Ð»Ñ ÐºÐ¾Ð¿Ð¸Ð¹ и Ð¸Ñ Ð¼ÐµÑаданнÑе. Ðо иниÑиализаÑии ÑÑого каÑалога ÑекомендÑеÑÑÑ Ð½Ð°ÑÑÑоиÑÑ Ð¿Ð°ÑамеÑÑÑ archive_mode и archive_command в postgresql.conf. ÐÑли пеÑеменнÑе иниÑиализиÑованÑ, pg_arman Ð¼Ð¾Ð¶ÐµÑ ÑкоÑÑекÑиÑоваÑÑ Ñайл конÑигÑÑаÑии. Ð ÑÑом ÑлÑÑае Ð²Ñ Ð´Ð¾Ð»Ð¶Ð½Ñ Ð·Ð°Ð´Ð°ÑÑ Ð¿ÑÑÑ Ðº клаÑÑеÑÑ Ð±Ð°Ð· даннÑÑ Ð´Ð»Ñ Postgres Pro. Ðго можно задаÑÑ Ð² пеÑеменной окÑÑÐ¶ÐµÐ½Ð¸Ñ PGDATA или в паÑамеÑÑе -D/--pgdata.
$ pg_arman init -B /path/to/backup/
F.26.4.2. РезеÑвное копиÑование
Ðозможен один из ÑледÑÑÑÐ¸Ñ Ð²Ð°ÑианÑов ÑезеÑвного копиÑованиÑ:
Ðолное ÑезеÑвное копиÑование, копиÑÑеÑÑÑ Ð²ÐµÑÑ ÐºÐ»Ð°ÑÑÐµÑ Ð±Ð°Ð· даннÑÑ .
ÐиÑÑеÑенÑиалÑное ÑезеÑвное копиÑование: копиÑÑÑÑÑÑ ÑолÑко ÑÐ°Ð¹Ð»Ñ Ð¸Ð»Ð¸ ÑÑÑаниÑÑ, изменÑннÑе поÑле поÑледней пÑовеÑенной копии. ÐÐ»Ñ ÑÑого вÑполнÑеÑÑÑ ÑканиÑование запиÑей WAL Ð¾Ñ Ð¿Ð¾Ð·Ð¸Ñии поÑледнего копиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð´Ð¾ LSN вÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ pg_start_backup и вÑе изменÑннÑе блоки запиÑÑваÑÑÑÑ Ð¸ оÑÑлеживаÑÑÑÑ ÐºÐ°Ðº ÑаÑÑÑ ÑезеÑвной копии. Так как пÑоÑканиÑованнÑе ÑегменÑÑ WAL Ð´Ð¾Ð»Ð¶Ð½Ñ Ð½Ð°Ñ Ð¾Ð´Ð¸ÑÑÑÑ Ð² аÑÑ Ð¸Ð²Ðµ WAL, поÑледний ÑегменÑ, задейÑÑвованнÑй поÑле запÑÑка pg_start_backup, должен бÑÑÑ Ð¿ÐµÑеклÑÑен пÑинÑдиÑелÑно.
ÐиÑÑеÑенÑиалÑÐ½Ð°Ñ ÐºÐ¾Ð¿Ð¸Ñ ptrack, иÑполÑзÑÐµÑ Ñайл биÑовой каÑÑÑ ptrack Ð´Ð»Ñ Ð¾ÑÑÐ»ÐµÐ¶Ð¸Ð²Ð°Ð½Ð¸Ñ Ð¸Ð·Ð¼ÐµÐ½ÑннÑÑ ÑÑÑаниÑ. ЧÑÐ¾Ð±Ñ Ð¸ÑполÑзоваÑÑ ÑÑÐ¾Ñ Ð²Ð°ÑианÑ, Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾ задаÑÑ Ð´Ð»Ñ Ð¿Ð°ÑамеÑÑа ptrack_enable знаÑение "on".
ÐоÑле ÑезеÑвного копиÑÐ¾Ð²Ð°Ð½Ð¸Ñ ÑекомендÑеÑÑÑ Ð¿ÑовеÑÑÑÑ ÑÐ°Ð¹Ð»Ñ ÐºÐ¾Ð¿Ð¸Ð¹ как ÑолÑко ÑÑо бÑÐ´ÐµÑ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾. ÐепÑовеÑеннÑе копии нелÑÐ·Ñ Ð¸ÑполÑзоваÑÑ Ð² опеÑаÑиÑÑ Ð²Ð¾ÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð¸ ÑезеÑвного копиÑованиÑ.
F.26.4.3. ÐоÑÑÑановление
СеÑÐ²ÐµÑ Postgres Pro должен бÑÑÑ Ð¾ÑÑановлен до наÑала воÑÑÑановлениÑ. ÐÑли клаÑÑÐµÑ Ð±Ð°Ð· даннÑÑ Ð²ÑÑ ÐµÑÑ ÑÑÑеÑÑвÑеÑ, команда воÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ ÑÐ¾Ñ ÑÐ°Ð½Ð¸Ñ Ð½ÐµÐ·Ð°Ð°ÑÑ Ð¸Ð²Ð¸ÑованнÑй жÑÑнал ÑÑанзакÑий и ÑÐ´Ð°Ð»Ð¸Ñ Ð²Ñе ÑÐ°Ð¹Ð»Ñ Ð±Ð°Ð· даннÑÑ . ÐоÑле воÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ñайлов pg_arman ÑоздаÑÑ recovery.conf в $PGDATA. ÐÑÐ¾Ñ ÐºÐ¾Ð½ÑигÑÑаÑионнÑй Ñайл ÑодеÑÐ¶Ð¸Ñ Ð¿Ð°ÑамеÑÑÑ Ð´Ð»Ñ Ð²Ð¾ÑÑÑановлениÑ. Также возможно оÑÑедакÑиÑоваÑÑ ÑÑÐ¾Ñ Ñайл вÑÑÑнÑÑ.
ÐоÑле ÑÑпеÑного воÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ ÑекомендÑеÑÑÑ Ð¿Ñи пеÑвой же возможноÑÑи ÑделаÑÑ Ð¿Ð¾Ð»Ð½ÑÑ ÑезеÑвнÑÑ ÐºÐ¾Ð¿Ð¸Ñ.
ÐÑли клÑÑ "--recovery-target-timeline" не задан, Ñелевой линией воÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð±ÑÐ´ÐµÑ TimeLineID поÑледней конÑÑолÑной ÑоÑки в ÑпÑавлÑÑÑем Ñайле ($PGDATA/global/pg_control). ÐÑли Ñайл pg_control оÑÑÑÑÑÑвÑеÑ, Ñелевой линией бÑÐ´ÐµÑ TimeLineID в полной ÑезеÑвной копии, иÑполÑзÑемой пÑи воÑÑÑановлении.
F.26.4.4. ÐÑимеÑÑ
ЧÑÐ¾Ð±Ñ ÑменÑÑиÑÑ ÑиÑло аÑгÑменÑов командной ÑÑÑоки, Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе ÑÑÑановиÑÑ Ð² пеÑеменной окÑÑÐ¶ÐµÐ½Ð¸Ñ BACKUP_PATH абÑолÑÑнÑй пÑÑÑ Ðº каÑÐ°Ð»Ð¾Ð³Ñ ÑезеÑвного копиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð¸ запиÑаÑÑ ÐºÐ¾Ð½ÑигÑÑаÑÐ¸Ñ Ð² Ñайл {BACKUP_PATH}/pg_arman.ini.
$ cat $BACKUP_PATH/pg_arman.ini ARCLOG_PATH = /home/postgres/arclog BACKUP_MODE = FULL KEEP_DATA_GENERATIONS = 3 KEEP_DATA_DAYS = 120
F.26.4.5. ÐÑполнение ÑезеÑвного копиÑованиÑ
ÐÑÐ¾Ñ Ð¿ÑÐ¸Ð¼ÐµÑ Ð´ÐµÐ¼Ð¾Ð½ÑÑÑиÑÑÐµÑ Ñоздание полной ÑезеÑвной копии вÑей Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ Ñ Ð¿Ð¾ÑледÑÑÑей пÑовеÑкой вÑÐµÑ Ð½ÐµÐ¿ÑовеÑеннÑÑ ÐºÐ¾Ð¿Ð¸Ð¹.
$ pg_arman backup --backup-mode=full $ pg_arman validate
F.26.4.6. ÐоÑÑÑановление из ÑезеÑвной копии
ÐÐ»Ñ Ð²Ð¾ÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð±Ð°Ð·Ñ Ð¸Ð· копии вÑполнÑеÑÑÑ ÑледÑÑÑие командÑ:
$ pg_ctl stop -m immediate $ pg_arman restore $ pg_ctl start
F.26.4.7. ÐÑоÑмоÑÑ ÑезеÑвнÑÑ ÐºÐ¾Ð¿Ð¸Ð¹
$ pg_arman show =================================================================================== Start Mode Current TLI Parent TLI Time Data Backup Status =================================================================================== 2013-12-25 03:02:31 PAGE 1 0 0m 203kB 67MB DONE 2013-12-25 03:02:31 PAGE 1 0 0m 0B 0B ERROR 2013-12-25 03:02:25 FULL 1 0 0m 33MB 364MB OK
Ðоманда вÑÐ²Ð¾Ð´Ð¸Ñ ÑледÑÑÑие полÑ:
Start: вÑÐµÐ¼Ñ Ð½Ð°Ñала копиÑованиÑ
Mode: Ñежим ÑезеÑвного копиÑованиÑ: FULL (полнÑй) или PAGE (диÑÑеÑенÑиалÑнÑй по ÑÑÑаниÑам) или PTRACK (диÑÑеÑенÑиалÑнÑй по ptrack)
Current TLI: ÑекÑÑÐ°Ñ Ð»Ð¸Ð½Ð¸Ñ Ð²Ñемени ÑезеÑвной копии
Parent TLI: ÑодиÑелÑÑÐºÐ°Ñ Ð»Ð¸Ð½Ð¸Ñ Ð²Ñемени ÑезеÑвной копии
Time: вÑемÑ, поÑÑебовавÑееÑÑ Ð´Ð»Ñ Ð²ÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ ÑезеÑвной копии
Data: ÑÐ°Ð·Ð¼ÐµÑ Ñайлов даннÑÑ
Log: ÑÐ°Ð·Ð¼ÐµÑ Ð¿ÑоÑиÑаннÑÑ Ñайлов жÑÑналов ÑеÑвеÑа
Backup: ÑÐ°Ð·Ð¼ÐµÑ ÑезеÑвной копии (= запиÑаннÑй ÑазмеÑ)
Status: ÑоÑÑоÑние ÑезеÑвной копии. ÐозможнÑе ваÑианÑÑ:
OK: ÑезеÑÐ²Ð½Ð°Ñ ÐºÐ¾Ð¿Ð¸Ñ Ñделана и пÑовеÑена.
DONE: ÑезеÑÐ²Ð½Ð°Ñ ÐºÐ¾Ð¿Ð¸Ñ Ñделана, но еÑÑ Ð½Ðµ пÑовеÑена.
RUNNING: ÑезеÑÐ²Ð½Ð°Ñ ÐºÐ¾Ð¿Ð¸Ñ Ð²ÑполнÑеÑÑÑ.
DELETING: ÑезеÑÐ²Ð½Ð°Ñ ÐºÐ¾Ð¿Ð¸Ñ ÑдалÑеÑÑÑ.
DELETED: ÑезеÑÐ²Ð½Ð°Ñ ÐºÐ¾Ð¿Ð¸Ñ Ñдалена.
ERROR: ÑезеÑÐ²Ð½Ð°Ñ ÐºÐ¾Ð¿Ð¸Ñ Ð½ÐµÐ´Ð¾ÑÑÑпна, Ñак как в пÑоÑеÑÑе копиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð¿ÑоизоÑли оÑибки.
CORRUPT: ÑезеÑÐ²Ð½Ð°Ñ ÐºÐ¾Ð¿Ð¸Ñ Ð½ÐµÐ´Ð¾ÑÑÑпна, Ñак как она иÑпоÑÑена.
Ðогда ÑказÑваеÑÑÑ Ð´Ð°Ñа, вÑдаÑÑÑÑ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸ÑелÑнÑе подÑобноÑÑи о ÑезеÑвной копии:
$ pg_arman show '2011-11-27 19:15:45' # configuration BACKUP_MODE=FULL # result TIMELINEID=1 START_LSN=0/08000020 STOP_LSN=0/080000a0 START_TIME='2011-11-27 19:15:45' END_TIME='2011-11-27 19:19:02' RECOVERY_XID=1759 RECOVERY_TIME='2011-11-27 19:15:53' DATA_BYTES=25420184 BLOCK_SIZE=8192 XLOG_BLOCK_SIZE=8192 STATUS=OK
ÐÑ Ð¼Ð¾Ð¶ÐµÑе опÑеделиÑÑ "RECOVERY_XID" и "RECOVERY_TIME", коÑоÑÑе бÑдÑÑ Ð¸ÑполÑзоваÑÑÑÑ Ð´Ð»Ñ Ð¿Ð°ÑамеÑÑов воÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ "--recovery-target-xid", "--recovery-target-time".
Ðоманда delete ÑдалÑÐµÑ ÑÐ°Ð¹Ð»Ñ ÑезеÑвнÑÑ ÐºÐ¾Ð¿Ð¸Ð¹, не ÑÑебÑÑÑиеÑÑ Ð´Ð»Ñ Ð²Ð¾ÑÑÑановлениÑ, поÑле Ñказанной даÑÑ. ÐÑа команда Ñакже вÑÑиÑÐ°ÐµÑ Ð² аÑÑ Ð¸Ð²Ðµ WAL вÑе ÑегменÑÑ Ð¶ÑÑналов, оказавÑиеÑÑ Ð½ÐµÐ½ÑжнÑми Ð´Ð»Ñ Ð²Ð¾ÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð¸Ð· оÑÑавÑÐ¸Ñ ÑÑ ÐºÐ¾Ð¿Ð¸Ð¹.
F.26.4.8. ÐаÑамеÑÑÑ
pg_arman пÑÐ¸Ð½Ð¸Ð¼Ð°ÐµÑ ÑледÑÑÑие паÑамеÑÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð½Ð¾Ð¹ ÑÑÑоки. ÐекоÑоÑÑе из Ð½Ð¸Ñ Ð¼Ð¾Ð³ÑÑ Ñакже задаваÑÑÑÑ Ð² пеÑеменнÑÑ Ð¾ÐºÑÑжениÑÑ . ÐодÑобнее они опиÑÐ°Ð½Ñ Ð² Ñазделе ÐаÑамеÑÑÑ.
F.26.4.9. ÐбÑие паÑамеÑÑÑ
Ðак пÑавило, пÑÑи к даннÑм Ð´Ð¾Ð»Ð¶Ð½Ñ Ð·Ð°Ð´Ð°Ð²Ð°ÑÑÑÑ ÐºÐ°Ðº абÑолÑÑнÑе; оÑноÑиÑелÑнÑе пÑÑи не допÑÑкаÑÑÑÑ.
-DÂ PATHÂ /Â --pgdata=PATH:
 ÐбÑолÑÑнÑй пÑÑÑ клаÑÑеÑа баз даннÑÑ
. ТÑебÑеÑÑÑ пÑи ÑезеÑвном копиÑовании и воÑÑÑановлении.
-AÂ PATHÂ /Â --arclog-path=PATH:
 ÐбÑолÑÑнÑй пÑÑÑ каÑалога аÑÑ
ива WAL. ТÑебÑеÑÑÑ длÑ команд воÑÑÑановлениÑ и пÑоÑмоÑÑа.
-BÂ PATHÂ /Â --backup-path=PATH:
 ÐбÑолÑÑнÑй пÑÑÑ каÑалога ÑезеÑвного копиÑованиÑ. ÐÑоÑ паÑамеÑÑ ÑвлÑеÑÑÑ обÑзаÑелÑнÑм.
-c / --check:
 ÐÑли ÑказÑваеÑÑÑ, pg_arman не вÑполнÑеÑ ÑакÑиÑеÑкиÑ
 дейÑÑвий, а ÑолÑко пÑовеÑÑеÑ паÑамеÑÑÑ и ÑÑебÑемÑе ÑеÑÑÑÑÑ. ÐÑоÑ паÑамеÑÑ обÑÑно иÑполÑзÑеÑÑÑ Ñ клÑÑом --verbose длÑ пÑовеÑки коÑÑекÑноÑÑи опеÑаÑии.
F.26.4.10. ÐаÑамеÑÑÑ ÑезеÑвного копиÑованиÑ
-b BACKUPMODE / --backup-mode==BACKUPMODE:
 ÐадаÑÑ Ñежим ÑезеÑвного копиÑованиÑ. ÐозможнÑе ваÑианÑÑ: "full", "page" или "ptrack".
-C1Â /Â --smooth-checkpoint:
 ÐÑи каждом ÑезеÑвном копиÑовании вÑполнÑеÑÑÑ конÑÑолÑнаÑ ÑоÑка. ÐÑли задан ÑÑоÑ паÑамеÑÑ, вÑполнÑеÑÑÑ «мÑгкаÑ» конÑÑолÑнаÑ ÑоÑка. См. Ñакже опиÑание вÑоÑого аÑгÑменÑа pg_start_backup().
--validate:
 ÐÑовеÑиÑÑ ÑезеÑвнÑÑ копиÑ поÑле еÑ ÑозданиÑ. ÐÑÑгие ÑезеÑвнÑе копии, ÑозданнÑе Ñанее, игноÑиÑÑÑÑÑÑ.
--keep-data-generations=NUMBERÂ /Â --keep-data-days=DAYS:
 ÐадаÑÑ, как долго бÑдÑÑ Ñ
ÑаниÑÑÑÑ ÑкопиÑованнÑе ÑайлÑ даннÑÑ
. ÐлÑÑ --keep-data-generations задаÑÑ ÑиÑло поколений копиÑованиÑ, а --keep-data-days â ÑиÑло дней, коÑоÑое бÑдеÑ Ñ
ÑаниÑÑÑÑ даннÑе. УдалÑÑÑÑÑ бÑдеÑ ÑолÑко Ñе ÑайлÑ, длÑ коÑоÑÑÑ
 пÑевÑÑаеÑÑÑ одно из ÑÑиÑ
 огÑаниÑений.
-j=NUMBER / --threads=NUMBER: ЧиÑло поÑоков Ð´Ð»Ñ Ð¿ÑоÑеÑÑа ÑезеÑвного копиÑованиÑ.
--stream: ÐклÑÑÐ°ÐµÑ Ð¿Ð¾ÑоковÑÑ ÑепликаÑÐ¸Ñ Ð´Ð»Ñ ÑÐ¾Ñ ÑÐ°Ð½ÐµÐ½Ð¸Ñ WAL в пÑоÑеÑÑе ÑезеÑвного копиÑованиÑ.
--disable-ptrack-clear: ÐÑклÑÑÐ°ÐµÑ Ð¾ÑиÑÑÐºÑ Ñайлов ptrack Ð´Ð»Ñ postgres без Ð´Ð¾Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ ptrack.
F.26.4.11. ÐаÑамеÑÑÑ Ð²Ð¾ÑÑÑановлениÑ
ÐаÑамеÑÑÑ Ñ Ð¸Ð¼ÐµÐ½Ð°Ð¼Ð¸, наÑинаÑÑимиÑÑ Ñ --recovery, оÑноÑÑÑÑÑ Ðº Ñем же паÑамеÑÑам, ÑÑо и в recovery.conf.
--recovery-target-timeline=TIMELINE:
 УÑÑанавливаеÑ воÑÑÑановление в опÑеделÑннÑÑ линиÑ вÑемени. ÐÑли не задано, иÑполÑзÑеÑÑÑ ÑекÑÑаÑ линиÑ вÑемени.
--recovery-target-time=TIMESTAMP:
 ÐÑоÑ паÑамеÑÑ задаÑÑ оÑмеÑкÑ вÑемени, до коÑоÑой бÑдеÑ вÑполнÑÑÑÑÑ воÑÑÑановление.
--recovery-target-xid=XID:
 ÐÑоÑ паÑамеÑÑ задаÑÑ иденÑиÑикаÑоÑ ÑÑанзакÑии, до коÑоÑой бÑдеÑ вÑполнÑÑÑÑÑ воÑÑÑановление.
--recovery-target-inclusive:
 УказÑваеÑ, бÑдеÑ ли ÑеÑвеÑ пÑиоÑÑановлен по доÑÑижении Ñели воÑÑÑановлениÑ.
-j=NUMBER / --threads=NUMBER: ЧиÑло поÑоков Ð´Ð»Ñ Ð²Ð¾ÑÑÑановлениÑ.
--stream: ÐоÑÑÑановиÑÑ Ð±ÐµÐ· recovery.conf и иÑполÑзоваÑÑ WAL в pg_xlog. ÐеÑед ÑÑим Ð²Ñ Ð´Ð¾Ð»Ð¶Ð½Ñ ÑделаÑÑ ÑезеÑвнÑÑ ÐºÐ¾Ð¿Ð¸Ñ Ñ ÐºÐ»ÑÑом --stream. ÐÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð¾ÑклÑÑÐ¸Ñ Ð²Ñе паÑамеÑÑÑ --recovery-.
F.26.4.12. ÐаÑамеÑÑÑ ÐºÐ°Ñалога
-a / --show-all:
 ÐоказаÑÑ вÑе ÑÑÑеÑÑвÑÑÑие копии, вклÑÑаÑ ÑдалÑннÑе.
F.26.4.13. ÐаÑамеÑÑÑ Ð¿Ð¾Ð´ÐºÐ»ÑÑениÑ
ÐаÑамеÑÑÑ Ð´Ð»Ñ Ð¿Ð¾Ð´ÐºÐ»ÑÑÐµÐ½Ð¸Ñ Ðº ÑеÑвеÑÑ Postgres Pro.
-d DBNAME / --dbname=DBNAME:
 ÐмÑ базÑ даннÑÑ
, к коÑоÑой нÑжно подклÑÑиÑÑÑÑ длÑ вÑполнениÑ pg_start_backup() and pg_stop_backup().
-h HOSTNAME / --host=HOSTNAME:
 УказÑваеÑ имÑ компÑÑÑеÑа, на коÑоÑом ÑабоÑаеÑ ÑеÑвеÑ. ÐÑли знаÑение наÑинаеÑÑÑ Ñ коÑой ÑеÑÑÑ, оно опÑеделÑеÑ каÑалог Unix-ÑокеÑа.
-p PORT / --port=PORT:
 УказÑваеÑ TCP-поÑÑ или ÑаÑÑиÑение Ñайла локалÑного Unix-ÑокеÑа, ÑеÑез коÑоÑÑй ÑеÑвеÑ пÑинимаеÑ подклÑÑениÑ.
-UÂ USERNAMEÂ /Â --username=USERNAME:
 ÐмÑ полÑзоваÑелÑ, под коÑоÑÑм пÑоизводиÑÑÑ подклÑÑение.
-w / --no-password:
 Ðе вÑдаваÑÑ запÑоÑ на ввод паÑолÑ. ÐÑли ÑеÑвеÑ ÑÑебÑеÑ аÑÑенÑиÑикаÑиÑ по паÑолÑ и паÑолÑ недоÑÑÑпен Ñ помоÑÑÑ дÑÑгиÑ
 ÑÑедÑÑв, ÑакиÑ
 как Ñайл .pgpass, попÑÑка ÑоединениÑ не ÑдаÑÑÑÑ. ÐÑоÑ паÑамеÑÑ можеÑ бÑÑÑ полезен в пакеÑнÑÑ
 заданиÑÑ
 и ÑкÑипÑаÑ
, где неÑ полÑзоваÑелÑ, коÑоÑÑй вводиÑ паÑолÑ.
-WÂ /Â --password:
 ÐÑинÑдиÑелÑно запÑаÑиваÑÑ паÑолÑ пеÑед подклÑÑением к базе даннÑÑ
. ÐÑо неÑÑÑеÑÑвеннÑй паÑамеÑÑ, Ñак как pg_arman запÑаÑиваеÑ паÑолÑ авÑомаÑиÑеÑки, еÑли ÑеÑвеÑ пÑовеÑÑеÑ подлинноÑÑÑ по паÑолÑ. Ðднако, ÑÑобÑ понÑÑÑ ÑÑо, pg_arman лиÑний Ñаз подклÑÑаеÑÑÑ к ÑеÑвеÑÑ. ÐоÑÑомÑ иногда имееÑ ÑмÑÑл ввеÑÑи -W, ÑÑобÑ иÑклÑÑиÑÑ ÑÑÑ ненÑжнÑÑ попÑÑкÑ подклÑÑениÑ.
F.26.4.14. ÐлобалÑнÑе паÑамеÑÑÑ
--help:
 ÐоказаÑÑ ÑпÑавкÑ, заÑем завеÑÑиÑÑÑÑ.
-VÂ /Â --version:
 ÐоказаÑÑ веÑÑиÑ, заÑем завеÑÑиÑÑÑÑ.
-v / --verbose:
 С ÑÑим клÑÑом pg_arman пÑи ÑабоÑе вÑводиÑ подÑобнÑе ÑообÑениÑ.
F.26.5. ÐаÑамеÑÑÑ
ÐекоÑоÑÑе из ÑÑÐ¸Ñ Ð¿Ð°ÑамеÑÑов можно задаÑÑ ÐºÐ°Ðº аÑгÑменÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð½Ð¾Ð¹ ÑÑÑоки, в пеÑеменнÑÑ Ð¾ÐºÑÑÐ¶ÐµÐ½Ð¸Ñ Ð¸Ð»Ð¸ в Ñайле конÑигÑÑаÑии, ÑледÑÑÑим обÑазом:
Short Long Env File
-h --host PGHOST No
-p --port PGPORT No
-d --dbname PGDATABASE No
-U --username PGUSER No
PGPASSWORD No
-w --password No
-W --no-password No
-D --pgdata PGDATA Yes
-B --backup-path BACKUP_PATH Yes
-A --arclog-path ARCLOG_PATH Yes
-b --backup-mode BACKUP_MODE Yes
-C --smooth-checkpoint SMOOTH_CHECKPOINT Yes
--validate VALIDATE Yes
--keep-data-generations KEEP_DATA_GENERATIONS Yes
--keep-data-days KEEP_DATA_DAYS Yes
--recovery-target-timeline RECOVERY_TARGET_TIMELINE Yes
--recovery-target-xid RECOVERY_TARGET_XID Yes
--recovery-target-time RECOVERY_TARGET_TIME Yes
--recovery-target-inclusive RECOVERY_TARGET_INCLUSIVE YesÐмена пеÑеменнÑÑ Ð² Ñайле конÑигÑÑаÑии ÑовпадаÑÑ Ñ Ð´Ð»Ð¸Ð½Ð½Ñми именами паÑамеÑÑов и именами пеÑеменнÑÑ Ð¾ÐºÑÑжениÑ. Ðднако паÑÐ¾Ð»Ñ Ð½ÐµÐ»ÑÐ·Ñ Ð·Ð°Ð´Ð°ÑÑ Ð² командной ÑÑÑоке и Ñайле конÑигÑÑаÑии из ÑообÑажений безопаÑноÑÑи.
ÐÑа ÑÑилиÑа, как и болÑÑинÑÑво дÑÑÐ³Ð¸Ñ ÑÑÐ¸Ð»Ð¸Ñ Postgres Pro, Ñакже иÑполÑзÑÐµÑ Ð¿ÐµÑеменнÑе ÑÑедÑ, поддеÑживаемÑе libpq (Ñм. опиÑание пеÑеменнÑÑ Ð¾ÐºÑÑжениÑ).
F.26.6. ÐгÑаниÑениÑ
pg_arman Ð¸Ð¼ÐµÐµÑ ÑÑд огÑаниÑений, коÑоÑÑе опиÑÐ°Ð½Ñ Ð½Ð¸Ð¶Ðµ.
ТÑебÑеÑÑÑ Ð¿Ñава ÑÑÐµÐ½Ð¸Ñ ÐºÐ°Ñалога баз даннÑÑ Ð¸ запиÑи в каÑалог ÑезеÑвного копиÑованиÑ. ÐбÑÑно Ð´Ð»Ñ ÑÑого на ÑеÑвеÑе ÐÐ ÑÑебÑеÑÑÑ ÑмонÑиÑоваÑÑ Ð´Ð¸Ñк, где ÑазмеÑÑн каÑалог ÑезеÑвнÑÑ ÐºÐ¾Ð¿Ð¸Ð¹, иÑполÑзÑÑ NFS или дÑÑгÑÑ ÑÐµÑ Ð½Ð¾Ð»Ð¾Ð³Ð¸Ñ.
ÐÑновнÑе веÑÑии pg_arman и ÑеÑвеÑа Ð´Ð¾Ð»Ð¶Ð½Ñ ÑовпадаÑÑ.
РазмеÑÑ Ð±Ð»Ð¾ÐºÐ¾Ð² pg_arman и ÑеÑвеÑа Ð´Ð¾Ð»Ð¶Ð½Ñ ÑовпадаÑÑ.
ÐÑли в каÑалоге Ñ Ð¶ÑÑналами ÑеÑвеÑа или каÑалоге Ñ Ð°ÑÑ Ð¸Ð²Ð¾Ð¼ WAL оказÑваÑÑÑÑ Ð½ÐµÑиÑаемÑе ÑайлÑ/каÑалоги, ÑезеÑвное копиÑование или воÑÑÑановление завеÑÑиÑÑÑ Ñбоем, вне завиÑимоÑÑи Ð¾Ñ Ð²ÑбÑанного Ñежима копиÑованиÑ.
F.26.7. ÐодÑобноÑÑи
F.26.7.1. ÐоÑÑÑановление на Ð¼Ð¾Ð¼ÐµÐ½Ñ Ð²Ñемени
pg_arman Ð¼Ð¾Ð¶ÐµÑ Ð¿ÑоизвеÑÑи воÑÑÑановление на Ð¼Ð¾Ð¼ÐµÐ½Ñ Ð²Ñемени, еÑли в recovery.conf задаÑÑÑÑ Ð»Ð¸Ð½Ð¸Ñ Ð²Ñемени и иденÑиÑикаÑÐ¾Ñ ÑÑанзакÑии или вÑемÑ. ЧÑÐ¾Ð±Ñ Ð¾Ð¿ÑеделиÑÑ Ð¼Ð¾Ð¼ÐµÐ½Ñ Ð´Ð»Ñ Ð²Ð¾ÑÑÑановлениÑ, Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¿Ð¾Ð»ÐµÐ·ÐµÐ½ дополниÑелÑнÑй модÑÐ»Ñ xlogdump, Ð²Ñ Ð¾Ð´ÑÑий в оÑновной Ð½Ð°Ð±Ð¾Ñ Ð¼Ð¾Ð´Ñлей Postgres Pro и позволÑÑÑий пÑоÑмаÑÑиваÑÑ ÑодеÑжимое Ñайлов WAL.
F.26.7.2. Файл конÑигÑÑаÑии
УÑÑановка паÑамеÑÑов в Ñайле конÑигÑÑаÑии вÑполнÑеÑÑÑ Ð² виде "имÑ=знаÑение". ÐавÑÑки ÑÑебÑÑÑÑÑ, еÑли знаÑение ÑодеÑÐ¶Ð¸Ñ Ð¿ÑобелÑ. ÐомменÑаÑии наÑинаÑÑÑÑ Ñ "#" и авÑомаÑиÑеÑки игноÑиÑÑÑÑÑÑ Ð¿Ñи ÑазбоÑе. ÐÑÐ¾Ð±ÐµÐ»Ñ Ð¸ ÑабÑлÑÑии игноÑиÑÑÑÑÑÑ Ð²ÐµÐ·Ð´Ðµ, кÑоме ÑодеÑжимого знаÑений.
F.26.7.3. ÐгÑаниÑениÑ
ЧÑÐ¾Ð±Ñ pg_arman ÑабоÑал, в ÑкземплÑÑе Postgres Pro, в коÑоÑом вÑполнÑÑÑÑÑ ÑезеÑвное копиÑование, Ð´Ð¾Ð»Ð¶Ð½Ñ Ð±ÑÑÑ Ð²ÐºÐ»ÑÑÐµÐ½Ñ ÐºÐ¾Ð½ÑÑолÑнÑе ÑÑÐ¼Ð¼Ñ Ð´Ð°Ð½Ð½ÑÑ Ð¸Ð»Ð¸ паÑамеÑÑ wal_log_hints.
pg_arman ÑаÑÑÑиÑан на ÑабоÑÑ Ñ Postgres Pro 9.5 и более новÑми веÑÑиÑми.
ÐÐ»Ñ Ð¸ÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ ÑÑнкÑии ptrack поÑÑебÑеÑÑÑ Ð¾ÑÐ¾Ð±Ð°Ñ Ð²ÐµÑÑÐ¸Ñ Postgres и ÑÑÐ¾Ð²ÐµÐ½Ñ wal_level, ÑавнÑй archive или hot_standby; Ñакже Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾ вклÑÑиÑÑ Ð¿Ð°ÑамеÑÑ ptrack_enable.
ÐÐ»Ñ ÑÑанÑлÑÑии поÑока Ð²Ñ Ð´Ð¾Ð»Ð¶Ð½Ñ Ð½Ð°ÑÑÑоиÑÑ Ð¿Ð¾ÑоковÑÑ ÑепликаÑÐ¸Ñ Ð½Ð° ваÑем ÑеÑвеÑе Postgres Pro.
F.26.7.4. Ðод оÑибки
pg_arman возвÑаÑÐ°ÐµÑ ÑледÑÑÑие ÐºÐ¾Ð´Ñ Ð²ÑÑ Ð¾Ð´Ð° Ð´Ð»Ñ ÑазлиÑнÑÑ ÑоÑÑоÑний оÑибок.
Ðод ÐÐ¼Ñ ÐпиÑание 0 SUCCESS ÐпеÑаÑÐ¸Ñ ÑÑпеÑна 1 ERROR ÐбÑÐ°Ñ Ð¾Ñибка 2 FATAL ÐÑÑ Ð¾Ð´ из-за повÑоÑÑÑÑÐ¸Ñ ÑÑ Ð¾Ñибок 3 PANIC ÐеобÑабаÑÑваемое кÑиÑиÑеÑкое ÑоÑÑоÑние
F.26.8. ÐвÑоÑ
pg_arman â ÑÑо оÑвеÑвление пÑоекÑа pg_arman, изнаÑалÑно ÑазÑабаÑÑваемого в NTT. ТепеÑÑ ÐµÐ³Ð¾ ÑазÑабаÑÑÐ²Ð°ÐµÑ Ð¸ поддеÑÐ¶Ð¸Ð²Ð°ÐµÑ ÐикаÑÐ»Ñ ÐакÑе. ÐоÑоки, поддеÑжка диÑÑеÑенÑиалÑнÑÑ ÐºÐ¾Ð¿Ð¸Ð¹ Ñ WAL и ptrack, поддеÑжка ÑÑанÑлÑÑии WAL и некоÑоÑÑе дÑÑгие ÑÑнкÑии ÑазÑабоÑал ЮÑий ÐÑÑавлÑв (stalkerg) из компании PostgresPro.
ÐожалÑйÑÑа ÑообÑайÑе об оÑÐ¸Ð±ÐºÐ°Ñ Ð½Ð° ÑÑÑаниÑе https://github.com/postgrespro/pg_arman/issues.