pg_dump
pg_dump â вÑгÑÑзиÑÑ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ Postgres Pro в виде ÑкÑипÑа или в аÑÑ Ð¸Ð²Ð½Ð¾Ð¼ ÑоÑмаÑе
СинÑакÑиÑ
pg_dump [паÑамеÑÑ-подклÑÑениÑ...] [паÑамеÑÑ...] [имÑ_бд]
ÐпиÑание
pg_dump â ÑÑо пÑогÑамма Ð´Ð»Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ ÑезеÑвнÑÑ ÐºÐ¾Ð¿Ð¸Ð¹ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ Postgres Pro. Ðна ÑоздаÑÑ ÑелоÑÑнÑе копии, даже еÑли база паÑаллелÑно иÑполÑзÑеÑÑÑ. ÐÑогÑамма pg_dump не пÑепÑÑÑÑвÑÐµÑ Ð´Ð¾ÑÑÑÐ¿Ñ Ð´ÑÑÐ³Ð¸Ñ Ð¿Ð¾Ð»ÑзоваÑелей к базе даннÑÑ (ни Ð´Ð»Ñ ÑÑениÑ, ни Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñи).
ÐÑогÑамма pg_dump вÑгÑÑÐ¶Ð°ÐµÑ ÑолÑко Ð¾Ð´Ð½Ñ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ . ЧÑÐ¾Ð±Ñ ÑÐ¾Ñ ÑаниÑÑ Ð³Ð»Ð¾Ð±Ð°Ð»ÑнÑе обÑекÑÑ, оÑноÑÑÑиеÑÑ ÐºÐ¾ вÑем базам в клаÑÑеÑе, напÑимеÑ, Ñоли и ÑаблиÑнÑе пÑоÑÑÑанÑÑва, воÑполÑзÑйÑеÑÑ Ð¿ÑогÑаммой pg_dumpall.
ÐÑгÑÑжаемÑе даннÑе могÑÑ Ð±ÑÑÑ ÑÐ¾Ñ ÑÐ°Ð½ÐµÐ½Ñ Ð² виде ÑкÑипÑа, либо в одном из аÑÑ Ð¸Ð²Ð½ÑÑ ÑоÑмаÑов. СкÑипÑÑ Ð¿ÑедÑÑавлÑÑÑ Ñобой ÑекÑÑовÑе ÑайлÑ, ÑодеÑжаÑие SQL-командÑ, Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ñе Ð´Ð»Ñ Ð²Ð¾ÑÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ Ð´Ð¾ ÑоÑÑоÑÐ½Ð¸Ñ Ð½Ð° Ð¼Ð¾Ð¼ÐµÐ½Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ ÑкÑипÑа. ÐÐ»Ñ Ð²Ð¾ÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð¸Ð· ÑкÑипÑа его ÑодеÑжимое можно пеÑедаÑÑ psql. СкÑипÑÑ Ð¼Ð¾Ð¶Ð½Ð¾ иÑполÑзоваÑÑ Ð´Ð»Ñ Ð²Ð¾ÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð±Ð°Ð·Ñ Ð½Ð° дÑÑÐ³Ð¸Ñ Ð¼Ð°ÑÐ¸Ð½Ð°Ñ , в Ñом ÑиÑле Ñ Ð¸Ð½Ð¾Ð¹ аÑÑ Ð¸ÑекÑÑÑой, а Ñ Ð½ÐµÐºÐ¾ÑоÑÑми коÑÑекÑивами даже в дÑÑÐ³Ð¸Ñ Ð¡Ð£ÐÐ.
ÐÐ»Ñ Ð²Ð¾ÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð¸Ð· аÑÑ Ð¸Ð²Ð½ÑÑ ÑоÑмаÑов Ñайлов иÑполÑзÑеÑÑÑ ÑÑилиÑа pg_restore. ÐÑи ÑоÑмаÑÑ Ð¿Ð¾Ð·Ð²Ð¾Ð»ÑÑÑ ÑказÑваÑÑ pg_restore какие обÑекÑÑ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ Ð²Ð¾ÑÑÑановиÑÑ, а Ñакже позволÑÑÑ Ð¸Ð·Ð¼ÐµÐ½Ð¸ÑÑ Ð¿Ð¾ÑÑдок ÑÐ»ÐµÐ´Ð¾Ð²Ð°Ð½Ð¸Ñ Ð²Ð¾ÑÑÑанавливаемÑÑ Ð¾Ð±ÑекÑов. ÐÑÑ Ð¸Ð²Ð½Ñе ÑоÑмаÑÑ Ñайлов ÑпÑоекÑиÑÐ¾Ð²Ð°Ð½Ñ Ñак, ÑÑÐ¾Ð±Ñ Ð¸Ñ Ð¼Ð¾Ð¶Ð½Ð¾ бÑли пеÑеноÑиÑÑ Ð½Ð° дÑÑгие плаÑÑоÑÐ¼Ñ Ñ Ð´ÑÑгой аÑÑ Ð¸ÑекÑÑÑой.
ÐÑименение аÑÑ
ивнÑÑ
ÑоÑмаÑов в ÑоÑеÑании ÑÑÐ¸Ð»Ð¸Ñ pg_restore и pg_dump позволÑÐµÑ Ð¾ÑганизовÑваÑÑ ÑÑÑекÑивнÑй меÑ
анизм аÑÑ
иваÑии и пеÑеноÑа даннÑÑ
. pg_dump можно иÑполÑзоваÑÑ Ð´Ð»Ñ ÑезеÑвиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð²Ñей Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ
, а заÑем пÑи пÑименении pg_restore вÑбÑаÑÑ Ð½ÑжнÑе обÑекÑÑ Ð´Ð»Ñ Ð²Ð¾ÑÑÑановлениÑ. Ðаиболее гибкие ÑоÑмаÑÑ Ð²ÑÑ
однÑÑ
Ñайлов ÑÑо «custom» (-Fc) и «directory» (-Fd). Ðни позволÑÑÑ Ð²ÑбÑаÑÑ Ð¸ измениÑÑ Ð¿Ð¾ÑÑдок обÑекÑов, поддеÑживаÑÑ Ð²Ð¾ÑÑÑановление в неÑколÑко поÑоков, а Ñакже ÑжимаÑÑÑÑ Ð¿Ð¾ ÑмолÑаниÑ. ÐÑи ÑÑом ÑолÑко ÑоÑÐ¼Ð°Ñ Â«directory» поддеÑÐ¶Ð¸Ð²Ð°ÐµÑ Ð²ÑгÑÑÐ·ÐºÑ Ð´Ð°Ð½Ð½ÑÑ
в неÑколÑко поÑоков.
Ðо вÑÐµÐ¼Ñ ÑабоÑÑ pg_dump ÑледÑÐµÑ Ð¾Ð±ÑаÑаÑÑ Ð²Ð½Ð¸Ð¼Ð°Ð½Ð¸Ðµ на пÑедÑпÑеждениÑ, коÑоÑÑе пеÑаÑаÑÑÑÑ Ð² ÑÑандаÑÑнÑй поÑок оÑибок, оÑобенно Ð²Ð²Ð¸Ð´Ñ ÑаÑÑмоÑÑеннÑÑ Ð´Ð°Ð»ÐµÐµ огÑаниÑений.
ÐаÑамеÑÑÑ
ÐаÑамеÑÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð½Ð¾Ð¹ ÑÑÑоки Ð´Ð»Ñ ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ ÑодеÑжимÑм и ÑоÑмаÑом вÑвода.
имÑ_бдУказÑÐ²Ð°ÐµÑ Ð¸Ð¼Ñ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ , из коÑоÑой бÑдÑÑ Ð²ÑгÑÑжаÑÑÑÑ Ð´Ð°Ð½Ð½Ñе. ÐÑли Ð¸Ð¼Ñ Ð½Ðµ задано, Ñо иÑполÑзÑеÑÑÑ Ð·Ð½Ð°Ñение пеÑеменной окÑÑжениÑ
PGDATABASE. ÐÑли и пеÑÐµÐ¼ÐµÐ½Ð½Ð°Ñ Ð½Ðµ задана, Ñо в каÑеÑÑве имени Ð±Ð°Ð·Ñ Ð±ÑÐ´ÐµÑ Ð²Ð·ÑÑо Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑзоваÑелÑ, под коÑоÑÑм оÑÑÑеÑÑвлÑеÑÑÑ Ð¿Ð¾Ð´ÐºÐ»ÑÑение.-a--data-onlyÐÑводиÑÑ ÑолÑко даннÑе, но не ÑÑ ÐµÐ¼Ñ Ð¾Ð±ÑекÑов (DDL). ÐÑдÑÑ ÐºÐ¾Ð¿Ð¸ÑоваÑÑÑÑ Ð´Ð°Ð½Ð½Ñе ÑаблиÑ, болÑÑие обÑекÑÑ, знаÑÐµÐ½Ð¸Ñ Ð¿Ð¾ÑледоваÑелÑноÑÑей.
Флаг Ð¿Ð¾Ñ Ð¾Ð¶ на
--section=data, но по иÑÑоÑиÑеÑким пÑиÑинам не ÑавнознаÑен емÑ.-b--blobsÐклÑÑиÑÑ Ð±Ð¾Ð»ÑÑие обÑекÑÑ Ð² вÑгÑÑзкÑ. ÐÑо поведение по ÑмолÑÐ°Ð½Ð¸Ñ Ð¿Ñи оÑÑÑÑÑÑвии клÑÑей
--schema,--tableили--schema-only. Таким обÑазом, клÑÑ-bполезен, лиÑÑ ÐºÐ¾Ð³Ð´Ð° нÑжно добавиÑÑ Ð±Ð¾Ð»ÑÑие обÑекÑÑ Ð¿Ñи вÑгÑÑзке ÑолÑко избÑанной ÑÑ ÐµÐ¼Ñ Ð¸Ð»Ð¸ ÑаблиÑÑ. ÐамеÑÑÑе, ÑÑо болÑÑие обÑекÑÑ Ð¾ÑноÑÑÑÑÑ Ðº даннÑм, и поÑÑÐ¾Ð¼Ñ Ð±ÑдÑÑ Ð²ÑгÑÑжаÑÑÑÑ, когда иÑполÑзÑеÑÑÑ ÐºÐ»ÑÑ --data-only, но не клÑÑ --schema-only.-B--no-blobsÐÑклÑÑиÑÑ Ð¸Ð· вÑгÑÑзки болÑÑие обÑекÑÑ.
Ðогда задаÑÑÑÑ Ð¸
-b, и-B, болÑÑие обÑекÑÑ Ð¿Ñи вÑгÑÑзке даннÑÑ Ð±ÑдÑÑ Ð²ÑводиÑÑÑÑ (Ñм. опиÑание клÑÑа-b).-c--cleanÐклÑÑиÑÑ Ð² вÑÑ Ð¾Ð´Ð½Ð¾Ð¹ Ñайл ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ ÑÐ´Ð°Ð»ÐµÐ½Ð¸Ñ (DROP) обÑекÑов Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ Ð¿ÐµÑед командами ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ (CREATE) ÑÑÐ¸Ñ Ð¾Ð±ÑекÑов. ÐÑли дополниÑелÑно не ÑказаÑÑ Ñлаг
--if-exists, Ñо пÑи воÑÑÑановлении в Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ , где некоÑоÑÑе обÑекÑÑ Ð¾ÑÑÑÑÑÑвÑÑÑ, попÑÑка ÑÐ´Ð°Ð»ÐµÐ½Ð¸Ñ Ð½ÐµÑÑÑеÑÑвÑÑÑего обÑекÑа бÑÐ´ÐµÑ Ð¿ÑиводиÑÑ Ðº оÑибке, коÑоÑÑÑ Ð¼Ð¾Ð¶Ð½Ð¾ игноÑиÑоваÑÑ.ÐÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð¸Ð³Ð½Ð¾ÑиÑÑеÑÑÑ, когда даннÑе вÑгÑÑжаÑÑÑÑ Ð² аÑÑ Ð¸Ð²Ð½ÑÑ ÑоÑмаÑÐ°Ñ (не в ÑекÑÑовом). ÐÐ»Ñ ÑÐ°ÐºÐ¸Ñ ÑоÑмаÑов даннÑй паÑамеÑÑ Ð¼Ð¾Ð¶Ð½Ð¾ ÑказаÑÑ Ð¿Ñи вÑзове
pg_restore.-C--createСÑоÑмиÑоваÑÑ Ð² наÑале вÑвода ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ Ð´Ð»Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ Ð¸ заÑем подклÑÑÐµÐ½Ð¸Ñ Ðº ней. Ð ÑÑом ÑлÑÑае не важно, ÐºÐ°ÐºÐ°Ñ Ð±Ð°Ð·Ð° Ñказана в паÑамеÑÑÐ°Ñ Ð¿Ð¾Ð´ÐºÐ»ÑÑÐµÐ½Ð¸Ñ Ð¿ÐµÑед вÑполнением ÑкÑипÑа. Также, еÑли Ñказан клÑÑ
--clean, Ñо ÑкÑÐ¸Ð¿Ñ ÑнаÑала ÑдалиÑ, а заÑем пеÑеÑоздаÑÑ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ Ð¿ÐµÑед подклÑÑением к ней.ÐÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð¸Ð³Ð½Ð¾ÑиÑÑеÑÑÑ, когда даннÑе вÑгÑÑжаÑÑÑÑ Ð² аÑÑ Ð¸Ð²Ð½ÑÑ ÑоÑмаÑÐ°Ñ (не в ÑекÑÑовом). ÐÐ»Ñ ÑÐ°ÐºÐ¸Ñ ÑоÑмаÑов даннÑй паÑамеÑÑ Ð¼Ð¾Ð¶Ð½Ð¾ ÑказаÑÑ Ð¿Ñи вÑзове
pg_restore.-EкодиÑовка--encoding=кодиÑовкаСоздаÑÑ ÐºÐ¾Ð¿Ð¸Ñ Ð² заданной кодиÑовке. Ðо ÑмолÑÐ°Ð½Ð¸Ñ ÐºÐ¾Ð¿Ð¸Ñ ÑоздаÑÑÑÑ Ð² кодиÑовке, иÑполÑзÑемой базой даннÑÑ . ÐÑÑгой ÑпоÑоб доÑÑиÑÑ Ñого же ÑезÑлÑÑаÑа â задаÑÑ Ð¶ÐµÐ»Ð°ÐµÐ¼ÑÑ ÐºÐ¾Ð´Ð¸ÑÐ¾Ð²ÐºÑ Ð² пеÑеменной окÑÑжениÑ
PGCLIENTENCODING.-fÑайл--file=ÑайлÐÑпÑавиÑÑ Ð²Ñвод в ÑказаннÑй Ñайл. ÐаÑамеÑÑ Ð¼Ð¾Ð¶Ð½Ð¾ не ÑказÑваÑÑ, еÑли иÑполÑзÑеÑÑÑ ÑоÑÐ¼Ð°Ñ Ñ Ð²Ñводом в Ñайл. Ð ÑÑом ÑлÑÑае бÑÐ´ÐµÑ Ð¸ÑполÑзован ÑÑандаÑÑнÑй вÑвод. Ðднако Ð´Ð»Ñ ÑоÑмаÑа Ñ Ð²Ñводом в каÑалог паÑамеÑÑ ÑвлÑеÑÑÑ Ð¾Ð±ÑзаÑелÑнÑм и должен задаваÑÑ Ð¿ÑÑÑ Ðº каÑалогÑ. Ð ÑÑом ÑлÑÑае Ñелевой каÑалог бÑÐ´ÐµÑ Ñоздан командой
pg_dumpи не должен ÑÑÑеÑÑвоваÑÑ Ð·Ð°Ñанее.-Fformat--format=formatУказÑÐ²Ð°ÐµÑ ÑоÑÐ¼Ð°Ñ Ð²Ñвода копии.
formatÐ¼Ð¾Ð¶ÐµÑ Ð¿ÑинимаÑÑ ÑледÑÑÑие знаÑениÑ:pplainСÑоÑмиÑоваÑÑ ÑекÑÑовÑй SQL-ÑкÑипÑ. ÐÑо поведение по ÑмолÑаниÑ.
ccustomÐÑгÑÑзиÑÑ Ð´Ð°Ð½Ð½Ñе в ÑпеÑиалÑном аÑÑ Ð¸Ð²Ð½Ð¾Ð¼ ÑоÑмаÑе, пÑигодном Ð´Ð»Ñ Ð´Ð°Ð»ÑнейÑего иÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ ÑÑилиÑой pg_restore. ÐаÑÑÐ´Ñ Ñ ÑоÑмаÑом
directoryÑвлÑеÑÑÑ Ð½Ð°Ð¸Ð±Ð¾Ð»ÐµÐµ гибким ÑоÑмаÑом, позволÑÑÑим вÑÑÑнÑÑ Ð²ÑбиÑаÑÑ Ð¸ ÑоÑÑиÑоваÑÑ Ð²Ð¾ÑÑÑанавливаемÑе обÑекÑÑ. ÐÑвод в ÑÑом ÑоÑмаÑе по ÑмолÑÐ°Ð½Ð¸Ñ ÑжимаеÑÑÑ.ddirectoryÐÑгÑÑзиÑÑ Ð´Ð°Ð½Ð½Ñе в ÑоÑмаÑе каÑалога. ÐÑÐ¾Ñ ÑоÑÐ¼Ð°Ñ Ð¿Ñигоден Ð´Ð»Ñ Ð´Ð°Ð»ÑнейÑего иÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ ÑÑилиÑой pg_restore. ÐÑи ÑÑом бÑÐ´ÐµÑ Ñоздан каÑалог, в коÑоÑом Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð¹ ÑаблиÑÑ Ð¸ болÑÑого обÑекÑа бÑдÑÑ ÑÐ¾Ð·Ð´Ð°Ð½Ñ Ð¾ÑделÑнÑе ÑайлÑ, а Ñакже Ñайл Ð¾Ð³Ð»Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð² маÑинно-ÑиÑаемом ÑоÑмаÑе, понÑÑном Ð´Ð»Ñ pg_restore. С полÑÑенной ÑезеÑвной копией можно ÑабоÑаÑÑ ÑÑаÑнÑми ÑÑедÑÑвами Unix, напÑимеÑ, неÑжаÑÑÑ ÐºÐ¾Ð¿Ð¸Ñ Ð¼Ð¾Ð¶Ð½Ð¾ ÑжаÑÑ Ð¿Ð¾ÑÑедÑÑвом gzip. ÐÑÐ¾Ñ ÑоÑÐ¼Ð°Ñ Ð¿Ð¾ ÑмолÑÐ°Ð½Ð¸Ñ ÑжимаеÑÑÑ, а Ñакже поддеÑÐ¶Ð¸Ð²Ð°ÐµÑ ÑабоÑÑ Ð² неÑколÑко поÑоков.
ttarÐÑгÑÑзиÑÑ Ð´Ð°Ð½Ð½Ñе в ÑоÑмаÑе
tar, Ð´Ð»Ñ Ð´Ð°Ð»ÑнейÑего иÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ñ ÑÑилиÑой pg_restore. ÐÑÐ¾Ñ ÑоÑÐ¼Ð°Ñ ÑовмеÑÑим Ñ ÑоÑмаÑом вÑвода в каÑалог: еÑли аÑÑ Ð¸Ð² ÑаÑпаковаÑÑ, полÑÑиÑÑÑ ÐºÐ¾ÑÑекÑÐ½Ð°Ñ ÐºÐ¾Ð¿Ð¸Ñ Ð² ÑоÑмаÑе каÑалога. Ðднако ÑоÑÐ¼Ð°Ñ tar не поддеÑÐ¶Ð¸Ð²Ð°ÐµÑ ÑжаÑие. Также, пÑименÑÑ ÑоÑÐ¼Ð°Ñ tar, пÑи воÑÑÑановлении нелÑÐ·Ñ Ð¸Ð·Ð¼ÐµÐ½Ð¸ÑÑ Ð¾ÑноÑиÑелÑнÑй поÑÑдок ÑлеменÑов даннÑÑ .
-jÑиÑло_заданий--jobs=ÑиÑло_заданийÐÑÑÑеÑÑвиÑÑ Ð²ÑгÑÑÐ·ÐºÑ Ð² паÑаллелÑном Ñежиме, обÑабаÑÑÐ²Ð°Ñ Ð¾Ð´Ð½Ð¾Ð²Ñеменно неÑколÑко ÑÐ°Ð±Ð»Ð¸Ñ (в колиÑеÑÑве
ÑиÑло_заданий). ÐÑо ÑменÑÑÐ°ÐµÑ Ð²ÑÐµÐ¼Ñ ÑабоÑÑ, но ÑвелиÑÐ¸Ð²Ð°ÐµÑ Ð½Ð°Ð³ÑÑÐ·ÐºÑ Ð½Ð° ÑеÑвеÑ. ÐÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð¼Ð¾Ð¶Ð½Ð¾ иÑполÑзоваÑÑ ÑолÑко Ñ ÑоÑмаÑом вÑвода в каÑалог, Ñак как ÑÑо единÑÑвеннÑй ÑоÑмаÑ, позволÑÑÑий неÑколÑким пÑоÑеÑÑам запиÑÑваÑÑ Ð´Ð°Ð½Ð½Ñе одновÑеменно.pg_dump оÑкÑоеÑ
ÑиÑло_заданий+ 1 Ñоединений Ñ Ð±Ð°Ð·Ð¾Ð¹ даннÑÑ . Таким обÑазом Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾ обеÑпеÑиÑÑ Ð´Ð¾ÑÑаÑоÑное знаÑение паÑамеÑÑа max_connections.ÐÑли во вÑÐµÐ¼Ñ Ð²ÑгÑÑзки в неÑколÑко поÑоков, паÑаллелÑно ÑабоÑаÑÑие ÑеÑÑии бÑдÑÑ Ð·Ð°Ð¿ÑаÑиваÑÑ ÑкÑклÑзивнÑе блокиÑовки на обÑекÑÑ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ , Ñо pg_dump Ð¼Ð¾Ð¶ÐµÑ Ð·Ð°Ð²ÐµÑÑиÑÑÑÑ Ð°Ð²Ð°Ñийно. Ðело в Ñом, ÑÑо головной пÑоÑеÑÑ pg_dump внаÑале запÑаÑÐ¸Ð²Ð°ÐµÑ ÑазделÑемÑе блокиÑовки на обÑекÑÑ, коÑоÑÑе позже бÑдÑÑ Ð²ÑгÑÑжаÑÑ ÑабоÑие пÑоÑеÑÑÑ. ÐÑо делаеÑÑÑ Ð´Ð»Ñ Ñого, ÑÑÐ¾Ð±Ñ Ð½Ð¸ÐºÑо не Ñмог ÑдалиÑÑ Ð¾Ð±ÑекÑÑ Ð½Ð° вÑÐµÐ¼Ñ ÑабоÑÑ pg_dump. ÐÑли же дÑÑÐ³Ð°Ñ ÑеÑÑÐ¸Ñ Ð·Ð°Ð¿ÑоÑÐ¸Ñ ÑкÑклÑзивнÑÑ Ð±Ð»Ð¾ÐºÐ¸ÑÐ¾Ð²ÐºÑ Ð½Ð° обÑекÑ, Ñо запÑÐ¾Ñ Ð½Ð° блокиÑÐ¾Ð²ÐºÑ Ð±ÑÐ´ÐµÑ Ð¿Ð¾ÑÑавлен в оÑеÑедÑ, до ÑÐµÑ Ð¿Ð¾Ñ Ð¿Ð¾ÐºÐ° ÑазделÑÐµÐ¼Ð°Ñ Ð±Ð»Ð¾ÐºÐ¸Ñовка головного пÑоÑеÑÑа pg_dump не бÑÐ´ÐµÑ ÑнÑÑа. РпоÑледÑÑÑем, лÑÐ±Ð°Ñ Ð¿Ð¾Ð¿ÑÑка доÑÑÑпа к ÑÑÐ¾Ð¼Ñ Ð¾Ð±ÑекÑÑ Ð±ÑÐ´ÐµÑ Ð²ÑÑаваÑÑ Ð² оÑеÑедÑ, вÑлед за ÑкÑклÑзивной блокиÑовкой. Ð Ñом ÑиÑле в оÑеÑÐµÐ´Ñ Ð¿Ð¾Ð¿Ð°Ð´ÐµÑ Ð¸ ÑабоÑий пÑоÑеÑÑ pg_dump. ÐÑли не пÑинÑÑÑ Ð¼ÐµÑÑ Ð¿ÑедоÑÑоÑожноÑÑи, Ñо полÑÑим клаÑÑиÑеÑкÑÑ Ð²Ð·Ð°Ð¸Ð¼Ð¾Ð±Ð»Ð¾ÐºÐ¸ÑовкÑ. ÐÐ»Ñ Ð¿ÑедÑпÑÐµÐ¶Ð´ÐµÐ½Ð¸Ñ Ð¿Ð¾Ð´Ð¾Ð±Ð½ÑÑ ÐºÐ¾Ð½ÑликÑов, ÑабоÑий пÑоÑеÑÑ pg_dump еÑÑ Ñаз запÑаÑÐ¸Ð²Ð°ÐµÑ ÑазделÑемÑÑ Ð±Ð»Ð¾ÐºÐ¸ÑÐ¾Ð²ÐºÑ Ð½Ð° обÑÐµÐºÑ Ñ Ñказанием
NOWAIT. РеÑли он не Ñмог полÑÑиÑÑ Ð±Ð»Ð¾ÐºÐ¸ÑовкÑ, знаÑÐ¸Ñ ÐºÑо-Ñо еÑÑ Ð·Ð°Ð¿ÑоÑил ÑкÑклÑзивнÑÑ Ð±Ð»Ð¾ÐºÐ¸ÑÐ¾Ð²ÐºÑ Ð¾Ð±ÑекÑа. Ð ÑÑо знаÑиÑ, ÑÑо Ð½ÐµÑ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾ÑÑи пÑодолжиÑÑ Ð²ÑгÑÑзкÑ, поÑÑÐ¾Ð¼Ñ pg_dump пÑеÑÑÐ²Ð°ÐµÑ Ð´Ð°Ð»ÑнейÑÑÑ ÑабоÑÑ.ÐÐ»Ñ Ð¿Ð¾Ð»ÑÑÐµÐ½Ð¸Ñ ÑелоÑÑной ÑезеÑвной копии ÑеÑÐ²ÐµÑ Ð±Ð°Ð· даннÑÑ Ð´Ð¾Ð»Ð¶ÐµÐ½ поддеÑживаÑÑ ÑÑнкÑионалÑноÑÑÑ ÑÐ¸Ð½Ñ ÑонизиÑованнÑÑ Ñнимков, коÑоÑÐ°Ñ Ð±Ñла введена в веÑÑии PostgreSQL 9.2 Ð´Ð»Ñ Ð²ÐµÐ´ÑÑÐ¸Ñ ÑеÑвеÑов и в 10 Ð´Ð»Ñ Ð²ÐµÐ´Ð¾Ð¼ÑÑ . ÐÑо позволÑÐµÑ ÑазнÑм клиенÑам ÑабоÑаÑÑ Ñ Ð¾Ð´Ð½Ð¾Ð¹ и Ñой же веÑÑией даннÑÑ , неÑмоÑÑÑ Ð½Ð° иÑполÑзование ÑазнÑÑ Ð¿Ð¾Ð´ÐºÐ»ÑÑений.
pg_dump -jиÑполÑзÑÐµÑ Ð¼Ð½Ð¾Ð¶ÐµÑÑвеннÑе подклÑÑениÑ. ÐеÑвое подклÑÑение оÑÑÑеÑÑвлÑеÑÑÑ Ð³Ð¾Ð»Ð¾Ð²Ð½Ñм пÑоÑеÑÑом, а поÑледÑÑÑие â ÑабоÑими пÑоÑеÑÑами. Ðез ÑÑнкÑионалÑноÑÑи ÑÐ¸Ð½Ñ ÑонизиÑÑемÑÑ Ñнимков Ð½ÐµÑ Ð³Ð°ÑанÑии Ñого, ÑÑо каждое подклÑÑение ÑÐ²Ð¸Ð´Ð¸Ñ Ð¾Ð´Ð½Ð¸ и Ñе же даннÑе, ÑÑо Ð¼Ð¾Ð¶ÐµÑ Ð¿ÑивеÑÑи к неÑоглаÑованноÑÑи даннÑÑ ÑезеÑвной копии.ÐÑли Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾ вÑполниÑÑ Ð²ÑгÑÑÐ·ÐºÑ Ð² неÑколÑко поÑоков на ÑеÑвеÑе веÑÑии до 9.2, Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾ бÑÑÑ ÑвеÑеннÑм, ÑÑо база даннÑÑ Ð½Ðµ бÑÐ´ÐµÑ Ð¸Ð·Ð¼ÐµÐ½ÑÑÑÑÑ Ñ Ð¼Ð¾Ð¼ÐµÐ½Ñа подклÑÑÐµÐ½Ð¸Ñ Ð³Ð¾Ð»Ð¾Ð²Ð½Ð¾Ð³Ð¾ пÑоÑеÑÑа и до моменÑа, когда поÑледний ÑабоÑий пÑоÑеÑÑ Ð¿Ð¾Ð´ÐºÐ»ÑÑиÑÑÑ Ðº базе даннÑÑ . ÐÐ»Ñ ÑÑого, пÑоÑе вÑего пеÑед запÑÑком pg_dump оÑÑановиÑÑ Ð²Ñе пÑоÑеÑÑÑ, модиÑиÑиÑÑÑÑие даннÑе (DML и DDL). Также, пÑи запÑÑке
pg_dump -jна ÑеÑвеÑе PostgreSQL до веÑÑии 9.2 нÑжно ÑказÑваÑÑ Ð¿Ð°ÑамеÑÑ--no-synchronized-snapshots.-nÑÑ ÐµÐ¼Ð°--schema=ÑÑ ÐµÐ¼Ð°ÐÑгÑÑзиÑÑ ÑолÑко ÑÑ ÐµÐ¼Ñ, ÑооÑвеÑÑÑвÑÑÑие ÑаблонÑ
ÑÑ ÐµÐ¼Ð°; вмеÑÑе Ñ ÑÑими ÑÑ ÐµÐ¼Ð°Ð¼Ð¸ бÑдÑÑ Ð²ÑгÑÑÐ¶ÐµÐ½Ñ Ð¸ вÑе ÑодеÑжаÑиеÑÑ Ð² Ð½Ð¸Ñ Ð¾Ð±ÑекÑÑ. Ðогда ÑÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð¾ÑÑÑÑÑÑвÑеÑ, вÑгÑÑжаÑÑÑÑ Ð²Ñе неÑиÑÑемнÑе ÑÑ ÐµÐ¼Ñ Ð² Ñелевой базе даннÑÑ . ЧÑÐ¾Ð±Ñ Ð²ÑгÑÑзиÑÑ Ð½ÐµÑколÑко ÑÑ ÐµÐ¼, клÑÑ-nможно ÑказаÑÑ Ð½ÐµÑколÑко Ñаз. ÐÑоме Ñого, паÑамеÑÑÑÑ ÐµÐ¼Ð°Ð¸Ð½ÑеÑпÑеÑиÑÑеÑÑÑ Ð¿Ð¾ Ñем же пÑавилам, ÑÑо и Ñаблон в ÐºÐ¾Ð¼Ð°Ð½Ð´Ð°Ñ psql\d(Ñм. Ð¨Ð°Ð±Ð»Ð¾Ð½Ñ Ð¿Ð¾Ð¸Ñка), Ñак ÑÑо неÑколÑко ÑÑ ÐµÐ¼ можно вÑбÑаÑÑ Ð¸ Ñаблоном Ñо знаками подÑÑановки. ÐÑполÑзÑÑ Ð·Ð½Ð°ÐºÐ¸ подÑÑановки, пÑи Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾ÑÑи заклÑÑайÑе Ñаблон в кавÑÑки, ÑÑÐ¾Ð±Ñ ÑÑи знаки не ÑазвоÑаÑивала оболоÑка ÑиÑÑемÑ; Ñм. ÐÑимеÑÑ.ÐÑимеÑание
ÐÑи иÑполÑзовании
-n, pg_dump не вÑгÑÑÐ¶Ð°ÐµÑ Ð¾Ð±ÑекÑÑ Ð´ÑÑÐ³Ð¸Ñ ÑÑ ÐµÐ¼, Ð¾Ñ ÐºÐ¾ÑоÑÑÑ Ð²ÑгÑÑÐ¶Ð°ÐµÐ¼Ð°Ñ ÑÑ ÐµÐ¼Ð° Ð¼Ð¾Ð¶ÐµÑ Ð·Ð°Ð²Ð¸ÑеÑÑ. Таким обÑазом не гаÑанÑиÑÑеÑÑÑ, ÑÑо вÑгÑÑÐ¶ÐµÐ½Ð½Ð°Ñ ÑÑ ÐµÐ¼Ð° бÑÐ´ÐµÑ ÑÑпеÑно воÑÑÑановлена в ÑиÑÑой базе даннÑÑ .ÐÑимеÑание
Ðе пÑинадлежаÑие ÑÑ ÐµÐ¼Ð°Ð¼ обÑекÑÑ (напÑимеÑ, болÑÑие бинаÑнÑе обÑекÑÑ), не вÑгÑÑжаÑÑÑÑ Ñ Ð¿Ð°ÑамеÑÑом
-n. Ðднако можно ÑказаÑÑ--blobs, ÑÑÐ¾Ð±Ñ Ð¾Ð½Ð¸ попали в вÑгÑÑзкÑ.-NÑÑ ÐµÐ¼Ð°--exclude-schema=ÑÑ ÐµÐ¼Ð°Ðе вÑгÑÑжаÑÑ ÑÑ ÐµÐ¼Ñ, ÑооÑвеÑÑÑвÑÑÑие ÑаблонÑ
ÑÑ ÐµÐ¼Ð°. Шаблон инÑеÑпÑеÑиÑÑеÑÑÑ Ð¿Ð¾ Ñем же пÑавилам, ÑÑо и Ð´Ð»Ñ Ð¿Ð°ÑамеÑÑа-n. ÐаÑамеÑÑ-Nможно иÑполÑзоваÑÑ Ð² команде неÑколÑко Ñаз Ð´Ð»Ñ Ð¸ÑклÑÑÐµÐ½Ð¸Ñ ÑÑ ÐµÐ¼, ÑооÑвеÑÑÑвÑÑÑÐ¸Ñ Ð½ÐµÑколÑким Ñаблонам.ÐÑи одновÑеменном иÑполÑзовании паÑамеÑÑов
-nи-NбÑдÑÑ Ð²ÑгÑÑжаÑÑÑÑ ÑÑ ÐµÐ¼Ñ, ÑооÑвеÑÑÑвÑÑÑие ÑÐ°Ð±Ð»Ð¾Ð½Ñ Ð¿Ð°ÑамеÑÑа-nи не пÑоÑивоÑеÑаÑие ÑÐ°Ð±Ð»Ð¾Ð½Ñ Ð¿Ð°ÑамеÑÑа-N.-o--oidsÐÑгÑÑжаÑÑ Ð¸Ð´ÐµÐ½ÑиÑикаÑоÑÑ Ð¾Ð±ÑекÑов (OIDs) вмеÑÑе Ñ Ð´Ð°Ð½Ð½Ñми ÑаблиÑ. ÐÑполÑзÑйÑе ÑÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ, еÑли в пÑиложении еÑÑÑ ÑÑÑлки на OID, напÑÐ¸Ð¼ÐµÑ Ð²Ð¾ внеÑÐ½Ð¸Ñ ÐºÐ»ÑÑÐ°Ñ . РпÑоÑивном ÑлÑÑае ÑÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð»ÑÑÑе не иÑполÑзоваÑÑ.
-O--no-ownerÐе ÑоÑмиÑоваÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ, ÑÑÑанавливаÑÑие владелÑÑа обÑекÑов Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ . Ðо ÑмолÑÐ°Ð½Ð¸Ñ pg_dump генеÑиÑÑÐµÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ
ALTER OWNERилиSET SESSION AUTHORIZATIONÐ´Ð»Ñ Ð½Ð°Ð·Ð½Ð°ÑÐµÐ½Ð¸Ñ Ð²Ð»Ð°Ð´ÐµÐ»ÑÑев обÑекÑов базÑ. ÐÑи ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ Ð·Ð°Ð²ÐµÑÑаÑÑÑ Ð½ÐµÑдаÑно, еÑли ÑкÑÐ¸Ð¿Ñ Ð±ÑÐ´ÐµÑ Ð·Ð°Ð¿ÑÑен не ÑÑпеÑполÑзоваÑелем или не владелÑÑем обÑекÑов. ЧÑÐ¾Ð±Ñ ÑоздаÑÑ ÑкÑипÑ, коÑоÑÑй можно вÑполниÑÑ Ð¿Ñи воÑÑÑановлении Ð¾Ñ Ð»Ð¸Ñа пÑоизволÑного полÑзоваÑÐµÐ»Ñ Ð¸ назнаÑиÑÑ ÐµÐ³Ð¾ в каÑеÑÑве владелÑÑа обÑекÑов воÑÑÑанавливаемой базÑ, Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾ ÑказаÑÑ Ñлаг-O.ÐÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð¸Ð³Ð½Ð¾ÑиÑÑеÑÑÑ, когда даннÑе вÑгÑÑжаÑÑÑÑ Ð² аÑÑ Ð¸Ð²Ð½ÑÑ ÑоÑмаÑÐ°Ñ (не в ÑекÑÑовом). ÐÐ»Ñ ÑÐ°ÐºÐ¸Ñ ÑоÑмаÑов даннÑй паÑамеÑÑ Ð¼Ð¾Ð¶Ð½Ð¾ ÑказаÑÑ Ð¿Ñи вÑзове
pg_restore.-R--no-reconnectÐаÑамеÑÑ ÑвлÑеÑÑÑ ÑÑÑаÑевÑим, но в ÑелÑÑ ÑовмеÑÑимоÑÑи еÑÑ ÑабоÑаеÑ.
-s--schema-onlyÐÑгÑÑжаÑÑ ÑолÑко опÑÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ð¾Ð±ÑекÑов (ÑÑ ÐµÐ¼Ñ), без даннÑÑ .
ÐейÑÑвие паÑамеÑÑа пÑоÑивоположно дейÑÑвиÑ
--data-only. ÐÑо Ð¿Ð¾Ñ Ð¾Ð¶Ðµ на Ñказание--section=pre-data --section=post-data, но по иÑÑоÑиÑеÑким пÑиÑинам не ÑавнознаÑно емÑ.(Ðе пÑÑайÑе ÑÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ñ
--schema, где Ñлово «ÑÑ ÐµÐ¼Ð°Â» иÑполÑзÑеÑÑÑ Ð² дÑÑгом знаÑении.)ЧÑÐ¾Ð±Ñ Ð½Ðµ вÑгÑÑжаÑÑ Ð´Ð°Ð½Ð½Ñе оÑделÑнÑÑ ÑаблиÑ, иÑполÑзÑйÑе паÑамеÑÑ
--exclude-table-data.-SимÑ_полÑзоваÑелÑ--superuser=имÑ_полÑзоваÑелÑУказаÑÑ ÑÑпеÑполÑзоваÑелÑ, коÑоÑÑй бÑÐ´ÐµÑ Ð¸ÑполÑзоваÑÑÑÑ Ð´Ð»Ñ Ð¾ÑклÑÑÐµÐ½Ð¸Ñ ÑÑиггеÑов. ÐаÑамеÑÑ Ð¸Ð¼ÐµÐµÑ Ð·Ð½Ð°Ñение ÑолÑко вмеÑÑе Ñ
--disable-triggers. ÐбÑÑно его лÑÑÑе не иÑполÑзоваÑÑ, а запÑÑкаÑÑ Ð¿Ð¾Ð»ÑÑеннÑй ÑкÑÐ¸Ð¿Ñ Ð¾Ñ Ð¸Ð¼ÐµÐ½Ð¸ ÑÑпеÑполÑзоваÑелÑ.-tÑаблиÑа--table=ÑаблиÑаÐÑгÑÑзиÑÑ ÑолÑко ÑаблиÑÑ, ÑооÑвеÑÑÑвÑÑÑие ÑаблонÑ
ÑаблиÑа. Ð ÑÑом конÑекÑÑе под «ÑаблиÑей» подÑазÑмеваÑÑÑÑ Ñакже пÑедÑÑавлениÑ, маÑеÑиализованнÑе пÑедÑÑавлениÑ, поÑледоваÑелÑноÑÑи и ÑÑоÑонние ÑаблиÑÑ. ЧÑÐ¾Ð±Ñ Ð²ÑбÑаÑÑ Ð½ÐµÑколÑко ÑаблиÑ, клÑÑ-tможно ÑказаÑÑ Ð½ÐµÑколÑко Ñаз. ÐÑоме Ñого, паÑамеÑÑÑаблиÑаинÑеÑпÑеÑиÑÑеÑÑÑ Ð¿Ð¾ Ñем же пÑавилам, ÑÑо и Ñаблон в ÐºÐ¾Ð¼Ð°Ð½Ð´Ð°Ñ psql\d(Ñм. Ð¨Ð°Ð±Ð»Ð¾Ð½Ñ Ð¿Ð¾Ð¸Ñка), Ñак ÑÑо неÑколÑко ÑÐ°Ð±Ð»Ð¸Ñ Ð¼Ð¾Ð¶Ð½Ð¾ вÑбÑаÑÑ Ð¸ Ñ Ñаблоном Ñо знаками подÑÑановки. ÐÑполÑзÑÑ Ð·Ð½Ð°ÐºÐ¸ подÑÑановки, пÑи Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾ÑÑи заклÑÑайÑе Ñаблон в кавÑÑки, ÑÑÐ¾Ð±Ñ ÑÑи знаки не ÑазвоÑаÑивала оболоÑка ÑиÑÑемÑ; Ñм. ÐÑимеÑÑ.ÐаÑамеÑÑÑ
-nи-Nне дейÑÑвÑÑÑ Ð² пÑиÑÑÑÑÑвии паÑамеÑÑа-t, Ñак как оÑобÑаннÑе им ÑаблиÑÑ Ð²ÑÑ Ñавно бÑдÑÑ Ð²ÑгÑÑженÑ, а не ÑаблиÑнÑе обÑекÑÑ Ð²ÑгÑÑжаÑÑÑÑ Ð½Ðµ бÑдÑÑ.ÐÑимеÑание
ÐÑи иÑполÑзовании
-t, pg_dump не вÑгÑÑÐ¶Ð°ÐµÑ Ð¿ÑоÑие обÑекÑÑ, Ð¾Ñ ÐºÐ¾ÑоÑÑÑ Ð²ÑгÑÑжаемÑе ÑаблиÑÑ Ð¼Ð¾Ð³ÑÑ Ð·Ð°Ð²Ð¸ÑеÑÑ. Таким обÑазом не гаÑанÑиÑÑеÑÑÑ, ÑÑо вÑгÑÑженнÑе ÑаблиÑÑ Ð±ÑдÑÑ ÑÑпеÑно воÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ñ Ð² ÑиÑÑой базе даннÑÑ .ÐÑимеÑание
Ðоведение паÑамеÑÑа
-tÐ´Ð»Ñ Ð²ÐµÑÑий ниже Ñем PostgreSQL 8.2 оÑлиÑаеÑÑÑ Ð¾Ñ Ð±Ð¾Ð»ÐµÐµ Ð¿Ð¾Ð·Ð´Ð½Ð¸Ñ . ÐÑежде, Ñказание-t ÑаблиÑавклÑÑало вÑе ÑаблиÑÑ, ÑооÑвеÑÑÑвÑÑÑие ÑаблонÑÑаблиÑа, а ÑейÑÐ°Ñ ÑÑо пÑиведÑÑ Ðº вÑгÑÑзке ÑолÑко ÑÐµÑ ÑаблиÑ, коÑоÑÑе бÑдÑÑ Ð¾Ð±Ð½Ð°ÑÑÐ¶ÐµÐ½Ñ Ð² ÑекÑÑем пÑÑи поиÑка. ÐÐ»Ñ Ð¿Ð¾Ð»ÑÑÐµÐ½Ð¸Ñ ÑÑаÑого Ð¿Ð¾Ð²ÐµÐ´ÐµÐ½Ð¸Ñ Ð¼Ð¾Ð¶Ð½Ð¾ иÑполÑзоваÑÑ ÐºÐ¾Ð½ÑÑÑÑкÑÐ¸Ñ Ð²Ð¸Ð´Ð°-t '*.ÑаблиÑа'. Также, ÑÑÐ¾Ð±Ñ ÑказаÑÑ ÑаблиÑÑ Ð¸Ð· конкÑеÑной ÑÑ ÐµÐ¼Ñ, ÑейÑÐ°Ñ Ð»ÑÑÑе иÑполÑзоваÑÑ-t ÑÑ ÐµÐ¼Ð°.ÑаблиÑа, вмеÑÑо ÑÑаÑой конÑÑÑÑкÑии-n ÑÑ ÐµÐ¼Ð° -t ÑаблиÑа.-TÑаблиÑа--exclude-table=ÑаблиÑаÐе вÑгÑÑжаÑÑ ÑаблиÑÑ, ÑооÑвеÑÑÑвÑÑÑие ÑаблонÑ
ÑаблиÑа. Шаблон инÑеÑпÑеÑиÑÑеÑÑÑ Ð¿Ð¾ Ñем же пÑавилам, ÑÑо и Ð´Ð»Ñ Ð¿Ð°ÑамеÑÑа-t. ÐаÑамеÑÑ-Tможно иÑполÑзоваÑÑ Ð² команде неÑколÑко Ñаз Ð´Ð»Ñ Ð¸ÑклÑÑÐµÐ½Ð¸Ñ ÑаблиÑ, ÑооÑвеÑÑÑвÑÑÑÐ¸Ñ Ð½ÐµÑколÑким Ñаблонам.ÐÑи одновÑеменном иÑполÑзовании паÑамеÑÑов
-tи-TбÑдÑÑ Ð²ÑгÑÑжаÑÑÑÑ ÑаблиÑÑ, ÑооÑвеÑÑÑвÑÑÑие ÑÐ°Ð±Ð»Ð¾Ð½Ñ Ð¿Ð°ÑамеÑÑа-tи не пÑоÑивоÑеÑаÑие ÑÐ°Ð±Ð»Ð¾Ð½Ñ Ð¿Ð°ÑамеÑÑа-T.-v--verboseÐклÑÑиÑÑ Ð¿Ð¾Ð´ÑобнÑй Ñежим. pg_dump бÑÐ´ÐµÑ Ð²ÑводиÑÑ Ð² ÑÑандаÑÑнÑй поÑок оÑибок подÑобнÑе комменÑаÑии к обÑекÑам, вклÑÑÐ°Ñ Ð²ÑÐµÐ¼Ñ Ð½Ð°Ñала и оконÑÐ°Ð½Ð¸Ñ Ð²ÑгÑÑзки, а Ñакже ÑообÑÐµÐ½Ð¸Ñ Ð¾ пÑогÑеÑÑе вÑполнениÑ.
-V--versionÐÑвеÑÑи веÑÑÐ¸Ñ pg_dump.
-x--no-privileges--no-aclÐе вÑгÑÑжаÑÑ Ð¿Ñава доÑÑÑпа (ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ GRANT/REVOKE).
-Z0..9--compress=0..9УÑÑановиÑÑ ÑÑÐ¾Ð²ÐµÐ½Ñ ÑжаÑÐ¸Ñ Ð´Ð°Ð½Ð½ÑÑ . ÐÐ¾Ð»Ñ Ð¾Ð·Ð½Ð°ÑаеÑ, ÑÑо ÑжаÑие вÑклÑÑено. ÐÐ»Ñ ÑпеÑиалÑного ÑоÑмаÑа и ÑоÑмаÑа каÑалога бÑдÑÑ ÑжимаÑÑÑÑ ÑÐ°Ð¹Ð»Ñ Ð¾ÑделÑнÑÑ ÑаблиÑ. Ðо ÑмолÑÐ°Ð½Ð¸Ñ Ð¿ÑименÑеÑÑÑ ÑмеÑеннÑй ÑÑÐ¾Ð²ÐµÐ½Ñ ÑжаÑиÑ. ÐÑли ÑказаÑÑ Ð¾ÑлиÑнÑй Ð¾Ñ Ð½Ñлевого ÑÑÐ¾Ð²ÐµÐ½Ñ ÑжаÑÐ¸Ñ Ð´Ð»Ñ Ð¿ÑоÑÑого ÑоÑмаÑа, Ñо ÑжимаÑÑÑÑ Ð±ÑÐ´ÐµÑ Ð²ÐµÑÑ Ð²ÑÑ Ð¾Ð´Ð½Ð¾Ð¹ Ñайл, как ÑÑо бÑло Ð±Ñ Ð¿Ñи пеÑедаÑе Ñайла команде gzip. Ðднако по ÑмолÑÐ°Ð½Ð¸Ñ Ð´Ð»Ñ Ð¿ÑоÑÑого ÑоÑмаÑа ÑжаÑие не пÑоизводиÑÑÑ. ФоÑмаÑ
tarв наÑÑоÑÑий Ð¼Ð¾Ð¼ÐµÐ½Ñ Ð½Ðµ поддеÑÐ¶Ð¸Ð²Ð°ÐµÑ ÑжаÑие.--add-collproviderÐÑли пÑÐ¾Ð²Ð°Ð¹Ð´ÐµÑ Ð¿Ñавил ÑоÑÑиÑовки Ð´Ð»Ñ Ð²ÑгÑÑжаемой Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ Ð·Ð°Ð´Ð°ÑÑÑÑ Ð½ÐµÑвно, ÑÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð´Ð¾Ð±Ð°Ð²Ð»ÑÐµÑ Ñвное Ñказание пÑовайдеÑа в вÑгÑÑзкÑ. ÐÑÐ¾Ñ Ð²Ð°ÑÐ¸Ð°Ð½Ñ ÑекомендÑеÑÑÑ, еÑли Ð²Ñ Ð¸ÑполÑзÑеÑе pg_dump и pg_restore Ð´Ð»Ñ Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ñ Ð¿ÑедÑдÑÑÐ¸Ñ Ð²ÐµÑÑий Postgres Pro или лÑбой веÑÑии PostgreSQL. ÐÑо позволÑÐµÑ ÑÐ¾Ñ ÑаниÑÑ Ð¸Ð·Ð½Ð°ÑалÑнÑй пÑÐ¾Ð²Ð°Ð¹Ð´ÐµÑ Ð¾Ñновного пÑавила ÑоÑÑиÑовки Ð´Ð»Ñ Ð¿ÐµÑеноÑимой Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ , еÑли в базе
template0в новом клаÑÑеÑе иÑполÑзÑÑÑÑÑ Ð´ÑÑгие паÑамеÑÑÑ Ð¿Ñавил ÑоÑÑиÑовки. РпÑоÑивном ÑлÑÑае огÑаниÑениÑ-пÑовеÑки, коÑоÑÑе иÑполÑзÑÑÑ Ð¾Ñновное пÑавило ÑоÑÑиÑовки в базе даннÑÑ , могÑÑ Ð¿Ð¾Ð¼ÐµÐ½ÑÑÑ Ð¿Ð¾Ð²ÐµÐ´ÐµÐ½Ð¸Ðµ, и командаCOPYзавеÑÑиÑÑÑ Ð¾Ñибкой. ÐÑи обновлении в двоиÑном ÑоÑмаÑе пÑÐ¾Ð²Ð°Ð¹Ð´ÐµÑ ÑÐ¾Ñ ÑанÑеÑÑÑ Ð°Ð²ÑомаÑиÑеÑки.--binary-upgradeÐÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð¿ÑедназнаÑен Ð´Ð»Ñ ÑÑÐ¸Ð»Ð¸Ñ Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ ÑеÑвеÑа. ÐÑполÑзование Ð´Ð»Ñ Ð¸Ð½ÑÑ Ñелей не ÑекомендÑеÑÑÑ Ð¸ не поддеÑживаеÑÑÑ. Ðоведение паÑамеÑÑа Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¾ в поÑледÑÑÑÐ¸Ñ Ð²ÐµÑÑиÑÑ Ð±ÐµÐ· пÑедваÑиÑелÑного ÑведомлениÑ.
--column-inserts--attribute-insertsÐÑгÑÑжаÑÑ Ð´Ð°Ð½Ð½Ñе ÑÐ°Ð±Ð»Ð¸Ñ Ð² виде команд
INSERTÑ ÑвнÑм Ñказанием ÑÑолбÑов (INSERT INTO). СкоÑоÑÑÑ Ð²Ð¾ÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð¿Ñи ÑÑом знаÑиÑелÑно ÑнизиÑÑÑ, но даннÑй ваÑÐ¸Ð°Ð½Ñ Ð¾Ð¿Ñавдан, когда загÑÑжаÑÑ Ð´Ð°Ð½Ð½Ñе нÑжно не в Postgres Pro. Также, поÑколÑÐºÑ Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð¹ ÑÑÑоки генеÑиÑÑеÑÑÑ Ð¾ÑделÑÐ½Ð°Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð°, Ñбой пÑи поÑледÑÑÑей загÑÑзке пÑиведÑÑ Ðº поÑеÑе конкÑеÑной ÑÑÑоки, а не вÑей ÑаблиÑÑ.ÑаблиÑа(ÑÑолбеÑ, ...) VALUES ...--disable-dollar-quotingÐÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð·Ð°Ð¿ÑеÑÐ°ÐµÑ Ð·Ð°ÐºÐ»ÑÑаÑÑ Ð² доллаÑÑ Ñело ÑÑнкÑий, ÑÑо оÑÑавлÑÐµÑ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾ÑÑÑ ÑолÑко заклÑÑаÑÑ Ð¸Ñ Ð² кавÑÑки, пÑименÑÑ ÑÑандаÑÑнÑй ÑинÑакÑÐ¸Ñ SQL.
--disable-triggersÐÑполÑзÑеÑÑÑ Ð¿Ñи вÑгÑÑзке Ð¾Ð´Ð½Ð¸Ñ Ð´Ð°Ð½Ð½ÑÑ . УказÑÐ²Ð°ÐµÑ pg_dump вклÑÑаÑÑ Ð² вÑвод ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ Ð´Ð»Ñ Ð²Ñеменного вÑклÑÑÐµÐ½Ð¸Ñ ÑÑиггеÑов пÑи воÑÑÑановлении в Ñелевой базе даннÑÑ . ÐÑименÑеÑÑÑ Ð² ÑиÑÑаÑиÑÑ , когда ÑÑÑеÑÑвÑÑÑ Ð¿ÑовеÑки ÑÑÑлоÑной ÑелоÑÑноÑÑи или дÑÑгие ÑÑиггеÑÑ, коÑоÑÑе Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾ вÑклÑÑиÑÑ Ð½Ð° вÑÐµÐ¼Ñ Ð²Ð¾ÑÑÑановлениÑ.
РнаÑÑоÑÑее вÑÐµÐ¼Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ, генеÑиÑÑемÑе Ñ Ð¿Ð°ÑамеÑÑом
--disable-triggers, Ð´Ð¾Ð»Ð¶Ð½Ñ Ð¸ÑполнÑÑÑÑÑ Ð¾Ñ Ð¸Ð¼ÐµÐ½Ð¸ ÑÑпеÑполÑзоваÑелÑ. Таким обÑазом, Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾ Ñакже пеÑедаваÑÑ Ñлаг-S, либо пÑи воÑÑÑановлении вÑполнÑÑÑ ÑкÑÐ¸Ð¿Ñ Ð¾Ñ Ð¸Ð¼ÐµÐ½Ð¸ ÑÑпеÑполÑзоваÑелÑ.ÐÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð¸Ð³Ð½Ð¾ÑиÑÑеÑÑÑ, когда даннÑе вÑгÑÑжаÑÑÑÑ Ð² аÑÑ Ð¸Ð²Ð½ÑÑ ÑоÑмаÑÐ°Ñ (не в ÑекÑÑовом). ÐÐ»Ñ ÑÐ°ÐºÐ¸Ñ ÑоÑмаÑов даннÑй паÑамеÑÑ Ð¼Ð¾Ð¶Ð½Ð¾ ÑказаÑÑ Ð¿Ñи вÑзове
pg_restore.--enable-row-securityÐÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð¸Ð¼ÐµÐµÑ ÑмÑÑл ÑолÑко пÑи вÑгÑÑзке ÑодеÑжимого ÑаблиÑÑ, Ð´Ð»Ñ ÐºÐ¾ÑоÑой вклÑÑена заÑиÑа ÑÑÑок. Ðо ÑмолÑÐ°Ð½Ð¸Ñ pg_dump ÑÑÑÐ°Ð½Ð°Ð²Ð»Ð¸Ð²Ð°ÐµÑ Ð´Ð»Ñ row_security знаÑение off, ÑÑÐ¾Ð±Ñ ÑбедиÑÑÑÑ, ÑÑо вÑгÑÑжаÑÑÑÑ Ð²Ñе даннÑе из ÑаблиÑÑ. ÐÑли полÑзоваÑÐµÐ»Ñ Ð½Ðµ Ð¸Ð¼ÐµÐµÑ Ð´Ð¾ÑÑаÑоÑнÑÑ Ð¿Ñав Ð´Ð»Ñ Ð¾Ð±Ñ Ð¾Ð´Ð° заÑиÑÑ ÑÑÑок, вÑдаÑÑÑÑ Ð¾Ñибка. ÐÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ ÑказÑÐ²Ð°ÐµÑ pg_dump вклÑÑиÑÑ row_security, ÑÑо Ð¿Ð¾Ð·Ð²Ð¾Ð»Ð¸Ñ Ð¿Ð¾Ð»ÑзоваÑÐµÐ»Ñ Ð²ÑгÑÑзиÑÑ ÑаÑÑÑ ÑодеÑжимого ÑаблиÑÑ, к коÑоÑой он Ð¸Ð¼ÐµÐµÑ Ð´Ð¾ÑÑÑп.
ÐамеÑÑÑе, ÑÑо в наÑÑоÑÑее вÑÐµÐ¼Ñ Ð´Ð»Ñ Ð¸ÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ ÑÑого паÑамеÑÑа обÑÑно желаÑелÑно, ÑÑÐ¾Ð±Ñ Ð´Ð°Ð½Ð½Ñе бÑли вÑгÑÑÐ¶ÐµÐ½Ñ Ð² ÑоÑмаÑе
INSERT, Ñак как командаCOPY FROMв пÑоÑеÑÑе воÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð½Ðµ поддеÑÐ¶Ð¸Ð²Ð°ÐµÑ Ð·Ð°ÑиÑÑ ÑÑÑок.--exclude-table-data=ÑаблиÑаÐе вÑгÑÑжаÑÑ ÑодеÑжимое ÑаблиÑ, ÑооÑвеÑÑÑвÑÑÑÐ¸Ñ ÑаблонÑ
ÑаблиÑа. Шаблон ÑаблиÑÑ Ð¸Ð½ÑеÑпÑеÑиÑÑеÑÑÑ Ð¿Ð¾ Ñем же пÑавилам, ÑÑо и Ð´Ð»Ñ Ð¿Ð°ÑамеÑÑа-t. ÐаÑамеÑÑ--exclude-table-dataможно иÑполÑзоваÑÑ Ð² команде неÑколÑко Ñаз Ð´Ð»Ñ Ð¸ÑклÑÑÐµÐ½Ð¸Ñ ÑаблиÑ, ÑооÑвеÑÑÑвÑÑÑÐ¸Ñ Ð½ÐµÑколÑким Ñаблонам. Ðолезно, когда нÑжно полÑÑиÑÑ Ð¾Ð¿Ñеделение ÑаблиÑÑ, без ÑодеÑжимого.ЧÑÐ¾Ð±Ñ Ð½Ðµ вÑгÑÑжаÑÑ ÑодеÑжимое вÑÐµÑ ÑÐ°Ð±Ð»Ð¸Ñ Ð±Ð°Ð·Ñ, иÑполÑзÑйÑе паÑамеÑÑ
--schema-only.--if-existsÐÑи оÑиÑÑке Ñелевой Ð±Ð°Ð·Ñ Ð¸ÑполÑзоваÑÑ ÑÑловнÑе ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ (добавлÑÑÑ Ð¿Ñедложение
IF EXISTS). ÐÑименÑеÑÑÑ ÑолÑко Ñ Ð¿Ð°ÑамеÑÑом--clean.--insertsÐÑгÑÑжаÑÑ Ð´Ð°Ð½Ð½Ñе ÑÐ°Ð±Ð»Ð¸Ñ Ð² виде команд
INSERTвмеÑÑоCOPY. СкоÑоÑÑÑ Ð²Ð¾ÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð¿Ñи ÑÑом знаÑиÑелÑно ÑнизиÑÑÑ, но даннÑй ваÑÐ¸Ð°Ð½Ñ Ð¾Ð¿Ñавдан, когда загÑÑжаÑÑ Ð´Ð°Ð½Ð½Ñе нÑжно не в Postgres Pro. Также, поÑколÑÐºÑ Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð¹ ÑÑÑоки генеÑиÑÑеÑÑÑ Ð¾ÑделÑÐ½Ð°Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð°, Ñбой пÑи поÑледÑÑÑей загÑÑзке пÑиведÑÑ Ðº поÑеÑе конкÑеÑной ÑÑÑоки, а не вÑей ÑаблиÑÑ. ÐамеÑÑÑе, ÑÑо воÑÑÑановление Ð¼Ð¾Ð¶ÐµÑ Ð¿ÑовалиÑÑÑÑ Ð¿Ð¾Ð»Ð½Ð¾ÑÑÑÑ, еÑли Ñ ÑаблиÑÑ Ð¸Ð·Ð¼ÐµÐ½Ñн поÑÑдок ÑÑолбÑов. Ð Ñакой ÑиÑÑаÑии можно иÑполÑзоваÑÑ Ð¿Ð°ÑамеÑÑ--column-inserts, Ð´Ð»Ñ ÐºÐ¾ÑоÑого поÑÑдок ÑÑолбÑов не важен, но он ÑабоÑÐ°ÐµÑ ÐµÑÑ Ð¼ÐµÐ´Ð»ÐµÐ½Ð½ÐµÐµ.--lock-wait-timeout=вÑемÑ_ожиданиÑÐе ждаÑÑ Ð±ÐµÑконеÑно полÑÑÐµÐ½Ð¸Ñ ÑазделÑемÑÑ Ð±Ð»Ð¾ÐºÐ¸Ñовок ÑÐ°Ð±Ð»Ð¸Ñ Ð² наÑале пÑоÑедÑÑÑ Ð²ÑгÑÑзки. ÐмеÑÑо ÑÑого вÑдаÑÑ Ð¾ÑибкÑ, еÑли не ÑдаÑÑÑÑ Ð·Ð°Ð±Ð»Ð¾ÐºÐ¸ÑоваÑÑ ÑаблиÑÑ Ð·Ð° Ñказанное
вÑемÑ_ожиданиÑ. ÐÑо вÑÐµÐ¼Ñ Ð¼Ð¾Ð¶Ð½Ð¾ задаÑÑ Ð² лÑбом из ÑоÑмаÑов, пÑинимаемÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¾Ð¹SET statement_timeout. (ÐопÑÑÑимÑе ÑоÑмаÑÑ Ð·Ð°Ð²Ð¸ÑÑÑ Ð¾Ñ Ð²ÐµÑÑии ÑеÑвеÑа, вÑгÑÑжаÑÑего даннÑе, но колиÑеÑÑво миллиÑекÑнд в виде Ñелого ÑиÑла пÑинимаÑÑ Ð²Ñе веÑÑии.)--no-publicationsÐе вÑгÑÑжаÑÑ Ð¿ÑбликаÑии.
--no-security-labelsÐе вÑгÑÑжаÑÑ Ð¼ÐµÑки безопаÑноÑÑи.
--no-subscriptionsÐе вÑгÑÑжаÑÑ Ð¿Ð¾Ð´Ð¿Ð¸Ñки.
--no-syncÐо ÑмолÑаниÑ
pg_dumpждÑÑ, пока вÑе ÑÐ°Ð¹Ð»Ñ Ð½Ðµ бÑдÑÑ Ð½Ð°Ð´Ñжно запиÑÐ°Ð½Ñ Ð½Ð° диÑк. С даннÑм паÑамеÑÑомpg_dumpзавеÑÑаеÑÑÑ Ð½ÐµÐ¼ÐµÐ´Ð»ÐµÐ½Ð½Ð¾, Ñо еÑÑÑ Ð²ÑполнÑеÑÑÑ Ð±ÑÑÑÑее, но в ÑлÑÑае неожиданного ÑÐ±Ð¾Ñ Ð¾Ð¿ÐµÑаÑионной ÑиÑÑÐµÐ¼Ñ Ð²ÑгÑÑженнÑе даннÑе могÑÑ Ð¾ÐºÐ°Ð·Ð°ÑÑÑÑ Ð¸ÑпоÑÑеннÑми. ÐообÑе ÑÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð¿ÑедназнаÑен пÑежде вÑего Ð´Ð»Ñ ÑеÑÑиÑованиÑ, Ð´Ð»Ñ Ð¿ÑоизводÑÑвенной ÑÑÐµÐ´Ñ Ð¾Ð½ не Ð¿Ð¾Ð´Ñ Ð¾Ð´Ð¸Ñ.--no-synchronized-snapshotsÐозволÑÐµÑ Ð·Ð°Ð¿ÑÑкаÑÑ
pg_dump -jна ÑеÑвеÑÐ°Ñ Ñ Ð²ÐµÑÑией ниже Ñем 9.2. ÐодÑобнее в опиÑании паÑамеÑÑа-j.--no-tablespacesÐе ÑоÑмиÑоваÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ Ð´Ð»Ñ ÑÐºÐ°Ð·Ð°Ð½Ð¸Ñ ÑаблиÑнÑÑ Ð¿ÑоÑÑÑанÑÑв. ÐÑи воÑÑÑановлении вÑе обÑекÑÑ Ð±ÑдÑÑ ÑоздаваÑÑÑÑ Ð² ÑаблиÑном пÑоÑÑÑанÑÑве по ÑмолÑаниÑ.
ÐÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð¸Ð³Ð½Ð¾ÑиÑÑеÑÑÑ, когда даннÑе вÑгÑÑжаÑÑÑÑ Ð² аÑÑ Ð¸Ð²Ð½ÑÑ ÑоÑмаÑÐ°Ñ (не в ÑекÑÑовом). ÐÐ»Ñ ÑÐ°ÐºÐ¸Ñ ÑоÑмаÑов даннÑй паÑамеÑÑ Ð¼Ð¾Ð¶Ð½Ð¾ ÑказаÑÑ Ð¿Ñи вÑзове
pg_restore.--no-unlogged-table-dataÐе вÑгÑÑжаÑÑ Ð´Ð°Ð½Ð½Ñе нежÑÑналиÑÑемÑÑ ÑаблиÑ. ÐаÑамеÑÑ Ð½Ðµ влиÑÐµÑ Ð½Ð° вÑгÑÑÐ·ÐºÑ Ð¾Ð¿Ñеделений ÑаблиÑ, он ÑолÑко подавлÑÐµÑ Ð²Ñвод ÑодеÑжимого ÑаблиÑ. С ÑезеÑвного ÑеÑвеÑа ÑодеÑжимое нежÑÑналиÑÑемÑÑ ÑÐ°Ð±Ð»Ð¸Ñ Ð½Ðµ вÑгÑÑжаеÑÑÑ Ð½Ð¸ÐºÐ¾Ð³Ð´Ð°.
--quote-all-identifiersÐÑинÑдиÑелÑно ÑкÑаниÑоваÑÑ Ð²Ñе иденÑиÑикаÑоÑÑ. ÐÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ ÑекомендÑеÑÑÑ Ð¿Ñи вÑгÑÑзке базÑ, когда оÑÐ½Ð¾Ð²Ð½Ð°Ñ Ð²ÐµÑÑÐ¸Ñ ÑеÑвеÑа PostgreSQL, Ñ ÐºÐ¾ÑоÑого вÑгÑÑжаеÑÑÑ Ð±Ð°Ð·Ð°, оÑлиÑаеÑÑÑ Ð¾Ñ Ð²ÐµÑÑии pg_dump, или когда вÑгÑÑÐ¶ÐµÐ½Ð½Ð°Ñ ÐºÐ¾Ð¿Ð¸Ñ Ð¿ÑедназнаÑена Ð´Ð»Ñ Ð·Ð°Ð³ÑÑзки на ÑеÑвеÑе Ñ Ð´ÑÑгой оÑновной веÑÑией. Ðо ÑмолÑÐ°Ð½Ð¸Ñ pg_dump ÑкÑаниÑÑÐµÑ ÑолÑко Ñе иденÑиÑикаÑоÑÑ, коÑоÑÑе ÑвлÑÑÑÑÑ Ð·Ð°ÑезеÑвиÑованнÑми Ñловами в ÑобÑÑвенной оÑновной веÑÑии. Ðногда ÑÑо пÑÐ¸Ð²Ð¾Ð´Ð¸Ñ Ðº пÑоблемам ÑовмеÑÑимоÑÑи Ñ ÑеÑвеÑами дÑÑÐ³Ð¸Ñ Ð²ÐµÑÑий, в коÑоÑÑÑ Ð¼Ð½Ð¾Ð¶ÐµÑÑво заÑезеÑвиÑованнÑÑ Ñлов Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð½ÐµÑколÑко дÑÑгим. ÐÑименение паÑамеÑÑа
--quote-all-identifiersпÑедоÑвÑаÑÐ°ÐµÑ Ð¿Ð¾Ð´Ð¾Ð±Ð½Ñе пÑоблемÑ, Ñеной ÑÑ ÑдÑÐµÐ½Ð¸Ñ ÑиÑаемоÑÑи ÑкÑипÑа Ñ Ð²ÑгÑÑженнÑми даннÑми.--section=имÑ_ÑекÑииÐÑгÑÑжаÑÑ Ð»Ð¸ÑÑ ÑказаннÑÑ ÑекÑиÑ. ÐÐ¼Ñ ÑекÑии Ð¼Ð¾Ð¶ÐµÑ Ð¿ÑинимаÑÑ Ð·Ð½Ð°ÑениÑ
pre-data,dataилиpost-data. ÐÐ»Ñ Ð²ÑгÑÑзки неÑколÑÐºÐ¸Ñ ÑекÑий, паÑамеÑÑ Ð¼Ð¾Ð¶Ð½Ð¾ иÑполÑзоваÑÑ Ð½ÐµÑколÑко Ñаз в одной команде. Ðо ÑмолÑÐ°Ð½Ð¸Ñ ÑезеÑвиÑÑÑÑÑÑ Ð²Ñе ÑекÑии.СекÑиÑ
dataÑодеÑÐ¶Ð¸Ñ Ð½ÐµÐ¿Ð¾ÑÑедÑÑвенно даннÑе ÑаблиÑ, болÑÑÐ¸Ñ Ð¾Ð±ÑекÑов и знаÑÐµÐ½Ð¸Ñ Ð¿Ð¾ÑледоваÑелÑноÑÑей. СекÑиÑpost-dataÑодеÑÐ¶Ð¸Ñ Ð¾Ð¿ÑÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ð¸Ð½Ð´ÐµÐºÑов, ÑÑиггеÑов, пÑавил и огÑаниÑений (кÑоме огÑаниÑений пÑовеÑки, ÑозданнÑÑ Ð±ÐµÐ·NOT VALID). СекÑиÑpre-dataвклÑÑÐ°ÐµÑ Ð¾Ð¿ÑÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ð¾ÑÑалÑнÑÑ ÑлеменÑов.--serializable-deferrableÐÑполÑзоваÑÑ Ð¿Ñи вÑгÑÑзке ÑÑанзакÑÐ¸Ñ Ñ ÑÑовнем изолÑÑии
serializableÐ´Ð»Ñ Ð¿Ð¾Ð»ÑÑÐµÐ½Ð¸Ñ Ñнимка, ÑоглаÑованного Ñ Ð¿Ð¾ÑледÑÑÑими ÑоÑÑоÑниÑми базÑ. ÐÑавда Ð´Ð»Ñ ÑÑого нÑжно вÑждаÑÑ Ð¼Ð¾Ð¼ÐµÐ½Ñ, когда в поÑоке ÑÑанзакÑий Ð½ÐµÑ Ð°Ð½Ð¾Ð¼Ð°Ð»Ð¸Ð¹, и поÑÑÐ¾Ð¼Ñ Ð½ÐµÑ ÑиÑка, ÑÑо вÑгÑÑзка завеÑÑиÑÑÑ Ð½ÐµÑдаÑно, и ÑиÑка оÑкаÑа дÑÑÐ³Ð¸Ñ ÑÑанзакÑий Ñ Ð¾Ñибкойserialization_failure. Ðолее подÑобно изолÑÑÐ¸Ñ ÑÑанзакÑий и ÑпÑавление одновÑеменнÑм доÑÑÑпом опиÑÑваеÑÑÑ Ð² Ðлаве 13.ÐаÑамеÑÑ Ð½Ðµ оÑобо полезен в ÑлÑÑаÑÑ , когда ÑÑебÑеÑÑÑ Ð²Ð¾ÑÑÑановление поÑле ÑбоÑ. Ðн полезен Ð´Ð»Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ ÐºÐ¾Ð¿Ð¸Ð¸ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ , в коÑоÑой ÑоÑмиÑÑÑÑÑÑ Ð¾ÑÑÑÑÑ Ð¸ вÑполнÑÑÑÑÑ Ð´ÑÑгие опеÑаÑии ÑÑениÑ, в Ñо вÑÐµÐ¼Ñ ÐºÐ°Ðº в оÑновной базе пÑодолжаеÑÑÑ Ð¾Ð±ÑÑÐ½Ð°Ñ ÑабоÑа. Ðез ÑÑого паÑамеÑÑа вÑгÑÑзка Ð¼Ð¾Ð¶ÐµÑ ÑодеÑжаÑÑ Ð½Ðµ ÑелоÑÑное ÑоÑÑоÑние Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ . ÐапÑимеÑ, еÑли иÑполÑзÑеÑÑÑ Ð¿Ð°ÐºÐµÑÐ½Ð°Ñ Ð¾Ð±ÑабоÑка, ÑÑаÑÑÑ Ð¿Ð°ÐºÐµÑа Ð¼Ð¾Ð¶ÐµÑ Ð¾ÑÑажаÑÑÑÑ ÐºÐ°Ðº завеÑÑÑннÑй, в Ñо вÑÐµÐ¼Ñ ÐºÐ°Ðº в вÑгÑÑзке бÑдÑÑ Ð½Ðµ вÑе ÑлеменÑÑ Ð¿Ð°ÐºÐµÑа.
ÐаÑамеÑÑ Ð½Ðµ бÑÐ´ÐµÑ Ð²Ð»Ð¸ÑÑÑ Ð½Ð° ÑезÑлÑÑаÑ, еÑли во вÑÐµÐ¼Ñ Ð·Ð°Ð¿ÑÑка pg_dump Ð½ÐµÑ Ð°ÐºÑивнÑÑ ÑÑанзакÑий на ÑÑение-запиÑÑ. ÐÑли же акÑивнÑе ÑÑанзакÑии ÑÑениÑ-запиÑи еÑÑÑ, Ñо наÑало вÑгÑÑзки Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¾Ñложено на неопÑеделÑннÑй пеÑиод вÑемени. ÐоÑле Ñого как вÑгÑÑзка наÑалаÑÑ, пÑоизводиÑелÑноÑÑÑ Ñ ÑÑим клÑÑом или без него бÑÐ´ÐµÑ Ð¾Ð´Ð¸Ð½Ð°ÐºÐ¾Ð²Ð¾Ð¹.
--snapshot=имÑ_ÑнимкаÐÑполÑзоваÑÑ Ð·Ð°Ð´Ð°Ð½Ð½Ñй ÑÐ¸Ð½Ñ ÑоннÑй Ñнимок пÑи вÑгÑÑзке даннÑÑ Ð¸Ð· Ð±Ð°Ð·Ñ (за подÑобноÑÑÑми обÑаÑиÑеÑÑ Ðº ТаблиÑе 9.82).
ÐÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð¿Ð¾Ð»ÐµÐ·ÐµÐ½, когда ÑÑебÑеÑÑÑ ÑÐ¸Ð½Ñ ÑонизиÑоваÑÑ Ð²ÑгÑÑжаемÑе даннÑе Ñо ÑлоÑом логиÑеÑкой ÑепликаÑии (Ñм. ÐлавÑ 46) или Ñ Ð´ÑÑгим одновÑеменнÑм ÑеанÑом.
Ð ÑлÑÑае Ñ Ð¿Ð°ÑаллелÑной вÑгÑÑзкой бÑÐ´ÐµÑ Ð¸ÑполÑзоваÑÑÑÑ Ð¸Ð¼Ñ Ñнимка, опÑеделÑнное ÑÑим паÑамеÑÑом; новÑй Ñнимок не бÑÐ´ÐµÑ Ñделан.
--strict-namesТÑебÑеÑ, ÑÑÐ¾Ð±Ñ ÐºÐ°Ð¶Ð´Ð¾Ð¼Ñ ÑÐºÐ°Ð·Ð°Ð½Ð¸Ñ ÑÑ ÐµÐ¼Ñ (
-n/--schema) и ÑаблиÑÑ (-t/--table) ÑооÑвеÑÑÑвовала минимÑм одна ÑÑ ÐµÐ¼Ð°/ÑаблиÑа в вÑгÑÑжаемой базе даннÑÑ . ÐамеÑÑÑе, ÑÑо еÑли не Ð½Ð°Ñ Ð¾Ð´Ð¸ÑÑÑ Ð²Ð¾Ð¾Ð±Ñе ни одной ÑÑ ÐµÐ¼Ñ/ÑаблиÑÑ Ð´Ð»Ñ Ð·Ð°Ð´Ð°Ð½Ð½ÑÑ Ñаблонов, pg_dump вÑдаÑÑ Ð¾ÑÐ¸Ð±ÐºÑ Ð¸ без клÑÑа--strict-names.ÐÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð½Ðµ дейÑÑвÑÐµÑ Ð½Ð° клÑÑи
-N/--exclude-schema,-T/--exclude-tableили--exclude-table-data. ÐÑли не Ð½Ð°Ñ Ð¾Ð´ÑÑÑÑ Ð¾Ð±ÑекÑÑ, ÑооÑвеÑÑÑвÑÑÑие Ñаблонам иÑклÑÑениÑ, ÑÑо не ÑÑиÑаеÑÑÑ Ð¾Ñибкой.--use-set-session-authorizationÐÑводиÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ
SET SESSION AUTHORIZATION, ÑооÑвеÑÑÑвÑÑÑие ÑÑандаÑÑÑ, вмеÑÑоALTER OWNER, Ð´Ð»Ñ Ð½Ð°Ð·Ð½Ð°ÑÐµÐ½Ð¸Ñ Ð²Ð»Ð°Ð´ÐµÐ»ÑÑев обÑекÑов. Ð ÑезÑлÑÑаÑе вÑгÑÑженнÑй ÑкÑÐ¸Ð¿Ñ Ð±ÑÐ´ÐµÑ Ð±Ð¾Ð»ÐµÐµ ÑÑандаÑÑизиÑованнÑм, но Ð¼Ð¾Ð¶ÐµÑ Ð½Ðµ воÑÑÑановиÑÑÑÑ ÐºÐ¾ÑÑекÑно, в завиÑимоÑÑи Ð¾Ñ Ð¸ÑÑоÑии обÑекÑов. ÐÑоме Ñого, Ð´Ð»Ñ Ð¸ÑполÑзованиÑSET SESSION AUTHORIZATIONпÑи воÑÑÑановлении нÑÐ¶Ð½Ñ Ð¿Ñава ÑÑпеÑполÑзоваÑелÑ, в Ñо вÑÐµÐ¼Ñ ÐºÐ°ÐºALTER OWNERÑÑебÑÐµÑ Ð¼ÐµÐ½ÑÑÐ¸Ñ Ð¿Ñивилегий.-?--helpÐоказаÑÑ ÑпÑÐ°Ð²ÐºÑ Ð¿Ð¾ аÑгÑменÑам командной ÑÑÑоки pg_dump и завеÑÑиÑÑÑÑ.
Ðалее опиÑÐ°Ð½Ñ Ð¿Ð°ÑамеÑÑÑ ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¿Ð¾Ð´ÐºÐ»ÑÑением.
-dимÑ_бд--dbname=имÑ_бдУказÑÐ²Ð°ÐµÑ Ð¸Ð¼Ñ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ Ð´Ð»Ñ Ð¿Ð¾Ð´ÐºÐ»ÑÑениÑ. РавнознаÑно ÑказаниÑ
имÑ_бдв пеÑвом аÑгÑменÑе, не ÑвлÑÑÑемÑÑ ÐºÐ»ÑÑом, в командной ÑÑÑоке. ÐмеÑÑо имени Ð¼Ð¾Ð¶ÐµÑ Ð·Ð°Ð´Ð°Ð²Ð°ÑÑÑÑ ÑÑÑока подклÑÑениÑ. Ð ÑÑом ÑлÑÑае паÑамеÑÑÑ Ð² ÑÑÑоке подклÑÑÐµÐ½Ð¸Ñ Ð¿ÐµÑеопÑеделÑÑÑ Ð¾Ð´Ð½Ð¾Ð¸Ð¼ÑннÑе паÑамеÑÑÑ, заданнÑе в командной ÑÑÑоке.-hÑеÑвеÑ--host=ÑеÑвеÑУказÑÐ²Ð°ÐµÑ Ð¸Ð¼Ñ ÐºÐ¾Ð¼Ð¿ÑÑÑеÑа, на коÑоÑом ÑабоÑÐ°ÐµÑ ÑеÑвеÑ. ÐÑли знаÑение наÑинаеÑÑÑ Ñ ÐºÐ¾Ñой ÑеÑÑÑ, оно опÑеделÑÐµÑ ÐºÐ°Ñалог Unix-ÑокеÑа. ÐнаÑение по ÑмолÑÐ°Ð½Ð¸Ñ Ð±ÐµÑÑÑÑÑ Ð¸Ð· пеÑеменной окÑÑжениÑ
PGHOST, еÑли она ÑÑÑановлена. РпÑоÑивном ÑлÑÑае вÑполнÑеÑÑÑ Ð¿Ð¾Ð´ÐºÐ»ÑÑение к Unix-ÑокеÑÑ.-pпоÑÑ--port=поÑÑУказÑÐ²Ð°ÐµÑ TCP-поÑÑ Ð¸Ð»Ð¸ ÑаÑÑиÑение Ñайла локалÑного Unix-ÑокеÑа, ÑеÑез коÑоÑÑй ÑеÑÐ²ÐµÑ Ð¿ÑÐ¸Ð½Ð¸Ð¼Ð°ÐµÑ Ð¿Ð¾Ð´ÐºÐ»ÑÑениÑ. ÐнаÑение по ÑмолÑÐ°Ð½Ð¸Ñ Ð¾Ð¿ÑеделÑеÑÑÑ Ð¿ÐµÑеменной окÑÑжениÑ
PGPORT, еÑли она ÑÑÑановлена, либо ÑиÑлом, заданнÑм пÑи компилÑÑии.-UимÑ_полÑзоваÑелÑ--username=имÑ_полÑзоваÑелÑÐÐ¼Ñ Ð¿Ð¾Ð»ÑзоваÑелÑ, под коÑоÑÑм пÑоизводиÑÑÑ Ð¿Ð¾Ð´ÐºÐ»ÑÑение.
-w--no-passwordÐе вÑдаваÑÑ Ð·Ð°Ð¿ÑÐ¾Ñ Ð½Ð° ввод паÑолÑ. ÐÑли ÑеÑÐ²ÐµÑ ÑÑебÑÐµÑ Ð°ÑÑенÑиÑикаÑÐ¸Ñ Ð¿Ð¾ паÑÐ¾Ð»Ñ Ð¸ паÑÐ¾Ð»Ñ Ð½Ðµ доÑÑÑпен Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ Ð´ÑÑÐ³Ð¸Ñ ÑÑедÑÑв, ÑÐ°ÐºÐ¸Ñ ÐºÐ°Ðº Ñайл
.pgpass, попÑÑка ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ð½Ðµ ÑдаÑÑÑÑ. ÐÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¿Ð¾Ð»ÐµÐ·ÐµÐ½ в пакеÑнÑÑ Ð·Ð°Ð´Ð°Ð½Ð¸ÑÑ Ð¸ ÑкÑипÑÐ°Ñ , где Ð½ÐµÑ Ð¿Ð¾Ð»ÑзоваÑелÑ, коÑоÑÑй Ð²Ð²Ð¾Ð´Ð¸Ñ Ð¿Ð°ÑолÑ.-W--passwordÐÑинÑдиÑелÑно запÑаÑиваÑÑ Ð¿Ð°ÑÐ¾Ð»Ñ Ð¿ÐµÑед подклÑÑением к базе даннÑÑ .
ÐÑо неÑÑÑеÑÑвеннÑй паÑамеÑÑ, Ñак как pg_dump запÑаÑÐ¸Ð²Ð°ÐµÑ Ð¿Ð°ÑÐ¾Ð»Ñ Ð°Ð²ÑомаÑиÑеÑки, еÑли ÑеÑÐ²ÐµÑ Ð¿ÑовеÑÑÐµÑ Ð¿Ð¾Ð´Ð»Ð¸Ð½Ð½Ð¾ÑÑÑ Ð¿Ð¾ паÑолÑ. Ðднако ÑÑÐ¾Ð±Ñ Ð¿Ð¾Ð½ÑÑÑ ÑÑо, pg_dump лиÑний Ñаз подклÑÑаеÑÑÑ Ðº ÑеÑвеÑÑ. ÐоÑÑÐ¾Ð¼Ñ Ð¸Ð½Ð¾Ð³Ð´Ð° Ð¸Ð¼ÐµÐµÑ ÑмÑÑл ввеÑÑи
-W, ÑÑÐ¾Ð±Ñ Ð¸ÑклÑÑиÑÑ ÑÑÑ Ð½ÐµÐ½ÑжнÑÑ Ð¿Ð¾Ð¿ÑÑÐºÑ Ð¿Ð¾Ð´ÐºÐ»ÑÑениÑ.--role=Ð¸Ð¼Ñ ÑолиÐадаÑÑ Ð¸Ð¼Ñ Ñоли, коÑоÑÐ°Ñ Ð±ÑÐ´ÐµÑ Ð¾ÑÑÑеÑÑвлÑÑÑ Ð²ÑгÑÑзкÑ. ÐолÑÑив ÑÑо имÑ, pg_dump вÑполниÑ
SET ROLEимÑ_ÑолипоÑле подклÑÑÐµÐ½Ð¸Ñ Ðº базе даннÑÑ . ÐÑо полезно, когда пÑÐ¾Ñ Ð¾Ð´ÑÑий пÑовеÑÐºÑ Ð¿Ð¾Ð»ÑзоваÑÐµÐ»Ñ (ÑказаннÑй в-U) не Ð¸Ð¼ÐµÐµÑ Ð¿Ñав, Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼ÑÑ Ð´Ð»Ñ pg_dump, но Ð¼Ð¾Ð¶ÐµÑ Ð¿ÐµÑеклÑÑиÑÑÑÑ Ð½Ð° ÑолÑ, наделÑннÑÑ ÑÑими пÑавами. РнекоÑоÑÑÑ Ð¾ÐºÑÑжениÑÑ Ð¿Ñавила запÑеÑаÑÑ Ð¿Ð¾Ð´ÐºÐ»ÑÑаÑÑÑÑ Ðº ÑеÑвеÑÑ Ð½ÐµÐ¿Ð¾ÑÑедÑÑвенно ÑÑпеÑполÑзоваÑелÑ, и ÑÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð¿Ð¾Ð·Ð²Ð¾Ð»ÑÐµÑ Ð²ÑполниÑÑ Ð²ÑгÑÑзкÑ, не наÑÑÑÐ°Ñ Ð¸Ñ .
ÐеÑеменнÑе окÑÑжениÑ
PGDATABASEPGHOSTPGOPTIONSPGPORTPGUSERÐаÑамеÑÑÑ Ð¿Ð¾Ð´ÐºÐ»ÑÑÐµÐ½Ð¸Ñ Ð¿Ð¾ ÑмолÑаниÑ.
ÐÑа ÑÑилиÑа, как и болÑÑинÑÑво дÑÑÐ³Ð¸Ñ ÑÑÐ¸Ð»Ð¸Ñ Postgres Pro, Ñакже иÑполÑзÑÐµÑ Ð¿ÐµÑеменнÑе ÑÑедÑ, поддеÑживаемÑе libpq (Ñм. Раздел 31.14).
ÐиагноÑÑика
pg_dump на низком ÑÑовне вÑполнÑÐµÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ SELECT. ÐÑли еÑÑÑ Ð¿ÑÐ¾Ð±Ð»ÐµÐ¼Ñ Ñ ÑабоÑой pg_dump, ÑбедиÑеÑÑ, ÑÑо в базе даннÑÑ
можно вÑполниÑÑ SELECT, напÑÐ¸Ð¼ÐµÑ Ð¸Ð· psql. Также ÑледÑÐµÑ ÑÑиÑÑваÑÑ, ÑÑо пÑи ÑÑом пÑименÑÑÑÑÑ Ð²Ñе ÑвойÑÑва подклÑÑÐµÐ½Ð¸Ñ Ð¿Ð¾ ÑмолÑÐ°Ð½Ð¸Ñ Ð¸ пеÑеменнÑе окÑÑжениÑ, коÑоÑÑе иÑполÑзÑÐµÑ ÐºÐ»Ð¸ÐµÐ½ÑÑÐºÐ°Ñ Ð±Ð¸Ð±Ð»Ð¸Ð¾Ñека libpq.
ÐбÑÑно дейÑÑÐ²Ð¸Ñ pg_dump в базе даннÑÑ
оÑÑлеживаÑÑÑÑ ÑбоÑÑиком ÑÑаÑиÑÑики. ÐÑли ÑÑо нежелаÑелÑно, Ñо можно ÑÑÑановиÑÑ Ð¿Ð°ÑамеÑÑ track_counts в false в пеÑеменной окÑÑÐ¶ÐµÐ½Ð¸Ñ PGOPTIONS или в команде ALTER USER.
ÐамеÑаниÑ
ÐÑли в Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ
клаÑÑеÑа template1 ÑÑÑанавливалиÑÑ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸ÑелÑнÑе обÑекÑÑ, Ñо ÑледÑÐµÑ ÑбедиÑÑÑÑ, ÑÑо вÑгÑÑзка pg_dump загÑÑжаеÑÑÑ Ð² пÑÑÑÑÑ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ
. ÐнаÑе ÑÑÑеÑÑвÑÐµÑ Ð²ÐµÑоÑÑноÑÑÑ Ð²Ð¾Ð·Ð½Ð¸ÐºÐ½Ð¾Ð²ÐµÐ½Ð¸Ñ Ð¾Ñибок дÑблиÑÐ¾Ð²Ð°Ð½Ð¸Ñ ÑоздаваемÑÑ
обÑекÑов. ЧÑÐ¾Ð±Ñ ÑоздаÑÑ Ð¿ÑÑÑÑÑ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ
, копиÑÑйÑе ÐµÑ Ð¸Ð· Ñаблона template0, вмеÑÑо template1, напÑимеÑ:
CREATE DATABASE foo WITH TEMPLATE template0;
ÐÑли вÑгÑÑжаÑÑÑÑ ÑолÑко даннÑе Ñ Ð¾Ð´Ð½Ð¾Ð²ÑеменнÑм иÑполÑзованием --disable-triggers, pg_dump ÑÑоÑмиÑÑÐµÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ Ð´Ð»Ñ Ð²ÑклÑÑÐµÐ½Ð¸Ñ ÑаблиÑнÑÑ
ÑÑиггеÑов пеÑед вÑÑавкой даннÑÑ
, а поÑле ниÑ
â командÑ, вклÑÑаÑÑие ÑÑиггеÑÑ Ð¾Ð±ÑаÑно. ÐÑли воÑÑÑановление бÑÐ´ÐµÑ Ð¿ÑеÑвано в ÑеÑедине пÑоÑеÑÑа, ÑиÑÑемнÑй каÑалог Ð¼Ð¾Ð¶ÐµÑ Ð¾ÑÑаÑÑÑÑ Ð² невеÑном ÑоÑÑоÑнии.
СÑоÑмиÑованнÑй pg_dump Ñайл не ÑодеÑÐ¶Ð¸Ñ Ð´Ð°Ð½Ð½ÑÑ
ÑÑаÑиÑÑики, иÑполÑзÑемÑÑ
планиÑовÑиком. ÐоÑÑÐ¾Ð¼Ñ Ð¿Ð¾Ñле воÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ ÑледÑÐµÑ Ð²ÑполниÑÑ ANALYZE Ð´Ð»Ñ Ð´Ð¾ÑÑÐ¸Ð¶ÐµÐ½Ð¸Ñ Ð¾Ð¿ÑималÑной пÑоизводиÑелÑноÑÑи; за дополниÑелÑной инÑоÑмаÑией обÑаÑиÑеÑÑ Ðº ÐодÑазделÑ 23.1.3 и ÐодÑазделÑ 23.1.6. Также не вÑгÑÑжаÑÑÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ ALTER DATABASE ... SET. ÐÑи ÑвойÑÑва, вмеÑÑе Ñ Ð´Ð°Ð½Ð½Ñми о ÑолÑÑ
и пÑоÑими глобалÑнÑми обÑекÑами, вÑгÑÑжаÑÑÑÑ Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ pg_dumpall.
Так как pg_dump пÑименÑеÑÑÑ Ð´Ð»Ñ Ð¿ÐµÑеноÑа даннÑÑ
в новÑе веÑÑии Postgres Pro, пÑедполагаеÑÑÑ, ÑÑо вÑвод pg_dump можно загÑÑзиÑÑ Ð½Ð° ÑеÑÐ²ÐµÑ Postgres Pro более новой веÑÑии, Ñем веÑÑÐ¸Ñ pg_dump. pg_dump Ð¼Ð¾Ð¶ÐµÑ Ñакже вÑгÑÑжаÑÑ Ð´Ð°Ð½Ð½Ñе ÑеÑвеÑов Postgres Pro более ÑÑаÑÑÑ
веÑÑий, Ñем его ÑобÑÑвеннаÑ. (РнаÑÑоÑÑее вÑÐµÐ¼Ñ Ð¿Ð¾Ð´Ð´ÐµÑживаÑÑÑÑ Ð²ÐµÑÑии, наÑÐ¸Ð½Ð°Ñ Ñ PostgreSQL 8.0.) Ðднако ÑÑилиÑа pg_dump не Ð¼Ð¾Ð¶ÐµÑ Ð²ÑгÑÑжаÑÑ Ð´Ð°Ð½Ð½Ñе Ñ ÑеÑвеÑов Postgres Pro более новÑÑ
оÑновнÑÑ
веÑÑий; она не бÑÐ´ÐµÑ Ð´Ð°Ð¶Ðµ пÑÑаÑÑÑÑ Ð´ÐµÐ»Ð°ÑÑ ÑÑо, во избежание некоÑÑекÑной вÑгÑÑзки. Также не гаÑанÑиÑÑеÑÑÑ, ÑÑо вÑвод pg_dump Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð·Ð°Ð³ÑÑжен на ÑеÑвеÑе более ÑÑаÑой оÑновной веÑÑии â даже еÑли даннÑе бÑли вÑгÑÑÐ¶ÐµÐ½Ñ Ñ ÑеÑвеÑа Ñой же веÑÑии. ÐÐ»Ñ Ð·Ð°Ð³ÑÑзки Ñакого Ñайла на ÑÑаÑом ÑеÑвеÑе Ð¼Ð¾Ð¶ÐµÑ Ð¿Ð¾ÑÑебоваÑÑÑÑ Ð²ÑÑÑнÑÑ Ð¸ÑпÑавиÑÑ Ð² нÑм ÑинÑакÑиÑ, не воÑпÑинимаемÑй ÑÑаÑой веÑÑией. ÐÐ¼ÐµÑ Ð´ÐµÐ»Ð¾ Ñ ÑазнÑми веÑÑиÑми, ÑекомендÑеÑÑÑ Ð¿ÑименÑÑÑ Ð¿Ð°ÑамеÑÑ --quote-all-identifiers, Ñак как он Ð¼Ð¾Ð¶ÐµÑ Ð¿ÑедоÑвÑаÑиÑÑ Ð¿ÑоблемÑ, возникаÑÑие пÑи изменении множеÑÑва заÑезеÑвиÑованнÑÑ
Ñлов в ÑазнÑÑ
веÑÑиÑÑ
PostgreSQL.
ÐÑгÑÑÐ¶Ð°Ñ Ð¿Ð¾Ð´Ð¿Ð¸Ñки на логиÑеÑкÑÑ ÑепликаÑиÑ, pg_dump бÑÐ´ÐµÑ Ð²ÑдаваÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ CREATE SUBSCRIPTION Ñ Ñказанием connect = false, Ñак ÑÑо пÑи воÑÑÑановлении подпиÑки не бÑдÑÑ ÑÑÑанавливаÑÑÑÑ ÑдалÑннÑе подклÑÑÐµÐ½Ð¸Ñ Ð´Ð»Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ ÑлоÑа ÑепликаÑии или Ð´Ð»Ñ Ð½Ð°ÑалÑного копиÑÐ¾Ð²Ð°Ð½Ð¸Ñ ÑаблиÑ. Таким обÑазом, вÑгÑÑженнÑе даннÑе могÑÑ Ð±ÑÑÑ Ð²Ð¾ÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ñ Ð±ÐµÐ· ÑеÑевого доÑÑÑпа к ÑдалÑннÑм ÑеÑвеÑам. ÐÐ½Ð¾Ð²Ñ Ð°ÐºÑивиÑоваÑÑ Ð¿Ð¾Ð´Ð¿Ð¸Ñки должнÑм обÑазом â задаÑа полÑзоваÑелÑ. ÐÑли задейÑÑвованнÑе ÑеÑвеÑÑ Ð¿Ð¾Ð¼ÐµÐ½ÑлиÑÑ, возможно, пÑидÑÑÑÑ ÑкоÑÑекÑиÑоваÑÑ ÑÑÑоки подклÑÑениÑ. Также Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ ÑмеÑÑно опÑÑÑоÑиÑÑ ÑелевÑе ÑаблиÑÑ Ð¿ÐµÑед наÑалом полного копиÑÐ¾Ð²Ð°Ð½Ð¸Ñ ÑаблиÑ.
ÐÑимеÑÑ
ÐÑгÑÑзка Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ
mydb в Ñайл SQL-ÑкÑипÑа:
$pg_dump mydb > db.sql
ÐоÑÑÑановление из Ñанее полÑÑенного ÑкÑипÑа в ÑиÑÑÑÑ Ð±Ð°Ð·Ñ newdb:
$psql -d newdb -f db.sql
ÐÑгÑÑзка Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ Ð² ÑпеÑиалÑном ÑоÑмаÑе:
$pg_dump -Fc mydb > db.dump
ÐÑгÑÑзка Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ Ð² ÑоÑмаÑе каÑалога:
$pg_dump -Fd mydb -f dumpdir
ÐÑгÑÑзка Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ Ð² ÑоÑмаÑе каÑалога в 5 паÑаллелÑнÑÑ Ð¿Ð¾Ñоков:
$pg_dump -Fd mydb -j 5 -f dumpdir
ÐоÑÑÑановление из аÑÑ
ива в ÑиÑÑÑÑ Ð½Ð¾Ð²ÑÑ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ
newdb:
$pg_restore -d newdb db.dump
ÐÑгÑÑзка оÑделÑной ÑаблиÑÑ mytab:
$pg_dump -t mytab mydb > db.sql
ÐÑгÑÑзка вÑеÑ
ÑаблиÑ, имена коÑоÑÑÑ
наÑинаÑÑÑÑ Ñ emp и коÑоÑÑе пÑÐ¸Ð½Ð°Ð´Ð»ÐµÐ¶Ð°Ñ ÑÑ
еме detroit, кÑоме ÑаблиÑÑ employee_log:
$pg_dump -t 'detroit.emp*' -T detroit.employee_log mydb > db.sql
ÐÑгÑÑзка вÑеÑ
ÑÑ
ем, имена коÑоÑÑÑ
наÑинаÑÑÑÑ Ñ east или west, заканÑиваÑÑÑÑ Ð½Ð° gsm и не ÑодеÑÐ¶Ð°Ñ test:
$pg_dump -n 'east*gsm' -n 'west*gsm' -N '*test*' mydb > db.sql
То же Ñамое, но Ñ Ð¸ÑполÑзованием ÑегÑлÑÑного вÑÑажениÑ:
$pg_dump -n '(east|west)*gsm' -N '*test*' mydb > db.sql
ÐÑгÑÑзка вÑеÑ
обÑекÑов Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ
, кÑоме ÑаблиÑ, имена коÑоÑÑÑ
наÑинаÑÑÑÑ Ñ ts_:
$pg_dump -T 'ts_*' mydb > db.sql
ЧÑÐ¾Ð±Ñ ÑказаÑÑ Ð¸Ð¼Ñ Ð² веÑÑ
нем или ÑмеÑанном ÑегиÑÑÑе в клÑÑе -t и ÑвÑзаннÑÑ
Ñ Ð½Ð¸Ð¼, ÑÑо Ð¸Ð¼Ñ Ð½Ñжно заклÑÑиÑÑ Ð² кавÑÑки; инаÑе оно бÑÐ´ÐµÑ Ð¿Ñиведено к Ð½Ð¸Ð¶Ð½ÐµÐ¼Ñ ÑегиÑÑÑÑ (Ñм. Ð¨Ð°Ð±Ð»Ð¾Ð½Ñ Ð¿Ð¾Ð¸Ñка). Ðо кавÑÑки ÑвлÑÑÑÑÑ ÑпеÑÑимволом Ð´Ð»Ñ Ð¾Ð±Ð¾Ð»Ð¾Ñки, поÑÑÐ¾Ð¼Ñ Ð¸ они, в ÑÐ²Ð¾Ñ Ð¾ÑеÑедÑ, Ð´Ð¾Ð»Ð¶Ð½Ñ Ð·Ð°ÐºÐ»ÑÑаÑÑÑÑ Ð² кавÑÑки. Так, ÑÑÐ¾Ð±Ñ Ð²ÑгÑÑзиÑÑ Ð¾Ð´Ð½Ñ ÑаблиÑÑ Ñ Ð¸Ð¼ÐµÐ½ÐµÐ¼ в ÑмеÑанном ÑегиÑÑÑе, нÑжно напиÑаÑÑ Ð¿ÑимеÑно ÑледÑÑÑее:
$pg_dump -t "\"MixedCaseName\"" mydb > mytab.sql