pg_dump
pg_dump â вÑгÑÑзиÑÑ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ Postgres Pro в виде ÑкÑипÑа или в аÑÑ Ð¸Ð²Ð½Ð¾Ð¼ ÑоÑмаÑе
СинÑакÑиÑ
pg_dump [паÑамеÑÑ-подклÑÑениÑ...] [паÑамеÑÑ...] [имÑ_бд]
ÐпиÑание #
pg_dump â ÑÑо ÑÑилиÑа Ð´Ð»Ñ ÑкÑпоÑÑа Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ Postgres Pro. Ðна вÑполнÑÐµÑ ÑелоÑÑнÑй ÑкÑпоÑÑ, даже еÑли база даннÑÑ Ð¿Ð°ÑаллелÑно иÑполÑзÑеÑÑÑ. pg_dump не пÑепÑÑÑÑвÑÐµÑ Ð´Ð¾ÑÑÑÐ¿Ñ Ð´ÑÑÐ³Ð¸Ñ Ð¿Ð¾Ð»ÑзоваÑелей к базе даннÑÑ (ни Ð´Ð»Ñ ÑÑениÑ, ни Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñи). Ðднако обÑаÑиÑе внимание, ÑÑо за иÑклÑÑением пÑоÑÑÑÑ ÑлÑÑаев, не ÑледÑÐµÑ Ð²ÑбиÑаÑÑ pg_dump Ð´Ð»Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ ÑегÑлÑÑнÑÑ ÑезеÑвнÑÑ ÐºÐ¾Ð¿Ð¸Ð¹ пÑоизводÑÑвеннÑÑ Ð±Ð°Ð· даннÑÑ . Ðа подÑобноÑÑÑми обÑаÑиÑеÑÑ Ðº Ðлаве 24.
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 ÑледÑÐµÑ Ð¾Ð±ÑаÑаÑÑ Ð²Ð½Ð¸Ð¼Ð°Ð½Ð¸Ðµ на пÑедÑпÑеждениÑ, коÑоÑÑе пеÑаÑаÑÑÑÑ Ð² ÑÑандаÑÑнÑй поÑок оÑибок, оÑобенно Ð²Ð²Ð¸Ð´Ñ ÑаÑÑмоÑÑеннÑÑ Ð´Ð°Ð»ÐµÐµ огÑаниÑений.
ÐÑедÑпÑеждение
ÐÑи воÑÑÑановлении вÑгÑÑзки в Ñелевой ÑоÑке вÑполнÑеÑÑÑ Ð¿ÑоизволÑнÑй код по вÑбоÑÑ ÑÑпеÑполÑзоваÑелей иÑÑ
одной ÑоÑки. ÐÐ»Ñ ÑаÑÑиÑнÑÑ
вÑгÑÑзок и ÑаÑÑиÑнÑÑ
воÑÑÑановлений Ñакого огÑаниÑÐµÐ½Ð¸Ñ Ð½ÐµÑ. ÐÑли ÑÑпеÑполÑзоваÑели иÑÑ
одной ÑоÑки не ÑвлÑÑÑÑÑ Ð´Ð¾Ð²ÐµÑеннÑми, вÑгÑÑжаемÑе ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ SQL нÑжно пÑовеÑÑÑÑ Ð¿ÐµÑед воÑÑÑановлением. ÐÑгÑÑзки в неÑекÑÑовом ÑоÑмаÑе можно пÑовеÑиÑÑ ÑеÑез паÑамеÑÑ --file pg_restore. ÐбÑаÑиÑе внимание, ÑÑо клиенÑÑ, вÑполнÑÑÑÐµÐ¼Ñ Ð²ÑгÑÑÐ·ÐºÑ Ð¸ воÑÑÑановление, не нÑжно довеÑÑÑÑ ÑÑпеÑполÑзоваÑелÑм иÑÑ
одной или Ñелевой ÑоÑки.
ÐаÑамеÑÑÑ #
ÐаÑамеÑÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð½Ð¾Ð¹ ÑÑÑоки Ð´Ð»Ñ ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ ÑодеÑжимÑм и ÑоÑмаÑом вÑвода.
имÑ_бдУказÑÐ²Ð°ÐµÑ Ð¸Ð¼Ñ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ , из коÑоÑой бÑдÑÑ Ð²ÑгÑÑжаÑÑÑÑ Ð´Ð°Ð½Ð½Ñе. ÐÑли Ð¸Ð¼Ñ Ð½Ðµ задано, Ñо иÑполÑзÑеÑÑÑ Ð·Ð½Ð°Ñение пеÑеменной окÑÑжениÑ
PGDATABASE. ÐÑли и пеÑÐµÐ¼ÐµÐ½Ð½Ð°Ñ Ð½Ðµ задана, Ñо в каÑеÑÑве имени Ð±Ð°Ð·Ñ Ð±ÑÐ´ÐµÑ Ð²Ð·ÑÑо Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑзоваÑелÑ, под коÑоÑÑм оÑÑÑеÑÑвлÑеÑÑÑ Ð¿Ð¾Ð´ÐºÐ»ÑÑение.-a--data-onlyÐÑводиÑÑ ÑолÑко даннÑе, но не ÑÑ ÐµÐ¼Ñ Ð¾Ð±ÑекÑов (DDL). ÐÑдÑÑ ÐºÐ¾Ð¿Ð¸ÑоваÑÑÑÑ Ð´Ð°Ð½Ð½Ñе ÑаблиÑ, болÑÑие обÑекÑÑ, знаÑÐµÐ½Ð¸Ñ Ð¿Ð¾ÑледоваÑелÑноÑÑей.
Флаг Ð¿Ð¾Ñ Ð¾Ð¶ на
--section=data, но по иÑÑоÑиÑеÑким пÑиÑинам не ÑавнознаÑен емÑ.-b--large-objects--blobs(ÑÑÑаÑевÑий паÑамеÑÑ)ÐклÑÑиÑÑ Ð±Ð¾Ð»ÑÑие обÑекÑÑ Ð² вÑгÑÑзкÑ. ÐÑо поведение по ÑмолÑÐ°Ð½Ð¸Ñ Ð¿Ñи оÑÑÑÑÑÑвии клÑÑей
--schema,--tableили--schema-only. Таким обÑазом, клÑÑ-bполезен, лиÑÑ ÐºÐ¾Ð³Ð´Ð° нÑжно добавиÑÑ Ð±Ð¾Ð»ÑÑие обÑекÑÑ Ð¿Ñи вÑгÑÑзке ÑолÑко избÑанной ÑÑ ÐµÐ¼Ñ Ð¸Ð»Ð¸ ÑаблиÑÑ. ÐамеÑÑÑе, ÑÑо болÑÑие обÑекÑÑ Ð¾ÑноÑÑÑÑÑ Ðº даннÑм, и поÑÑÐ¾Ð¼Ñ Ð±ÑдÑÑ Ð²ÑгÑÑжаÑÑÑÑ, когда иÑполÑзÑеÑÑÑ ÐºÐ»ÑÑ--data-only, но не клÑÑ--schema-only.-B--no-large-objects--no-blobs(ÑÑÑаÑевÑий паÑамеÑÑ)ÐÑклÑÑиÑÑ Ð¸Ð· вÑгÑÑзки болÑÑие обÑекÑÑ.
Ðогда задаÑÑÑÑ Ð¸
-b, и-B, болÑÑие обÑекÑÑ Ð¿Ñи вÑгÑÑзке даннÑÑ Ð±ÑдÑÑ Ð²ÑводиÑÑÑÑ (Ñм. опиÑание клÑÑа-b).-c--cleanÐклÑÑиÑÑ Ð² вÑÑ Ð¾Ð´Ð½Ð¾Ð¹ Ñайл ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ ÑдалениÑ
DROPвÑÐµÑ Ð²ÑгÑÑжаемÑÑ Ð¾Ð±ÑекÑов Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ Ð¿ÐµÑед командами ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ ÑÑÐ¸Ñ Ð¾Ð±ÑекÑов. ÐÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð¿Ð¾Ð»ÐµÐ·ÐµÐ½, еÑли пÑи воÑÑÑановлении Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾ пеÑезапиÑаÑÑ ÑÑÑеÑÑвÑÑÑÑÑ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ . ÐÑли дополниÑелÑно не ÑказаÑÑ Ñлаг--if-exists, Ñо пÑи воÑÑÑановлении в Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ , где некоÑоÑÑе обÑекÑÑ Ð¾ÑÑÑÑÑÑвÑÑÑ, попÑÑка ÑÐ´Ð°Ð»ÐµÐ½Ð¸Ñ Ð½ÐµÑÑÑеÑÑвÑÑÑего обÑекÑа бÑÐ´ÐµÑ Ð¿ÑиводиÑÑ Ðº оÑибке, коÑоÑÑÑ Ð¼Ð¾Ð¶Ð½Ð¾ игноÑиÑоваÑÑ.ÐÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð¸Ð³Ð½Ð¾ÑиÑÑеÑÑÑ, когда даннÑе вÑгÑÑжаÑÑÑÑ Ð² аÑÑ Ð¸Ð²Ð½ÑÑ ÑоÑмаÑÐ°Ñ (не в ÑекÑÑовом). ÐÐ»Ñ ÑÐ°ÐºÐ¸Ñ ÑоÑмаÑов даннÑй паÑамеÑÑ Ð¼Ð¾Ð¶Ð½Ð¾ ÑказаÑÑ Ð¿Ñи вÑзове
pg_restore.-C--createСÑоÑмиÑоваÑÑ Ð² наÑале вÑвода ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ Ð´Ð»Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ Ð¸ заÑем подклÑÑÐµÐ½Ð¸Ñ Ðº ней. Ð ÑÑом ÑлÑÑае не важно, ÐºÐ°ÐºÐ°Ñ Ð±Ð°Ð·Ð° Ñказана в паÑамеÑÑÐ°Ñ Ð¿Ð¾Ð´ÐºÐ»ÑÑÐµÐ½Ð¸Ñ Ð¿ÐµÑед вÑполнением ÑкÑипÑа. Также, еÑли Ñказан клÑÑ
--clean, Ñо ÑкÑÐ¸Ð¿Ñ ÑнаÑала ÑдалиÑ, а заÑем пеÑеÑоздаÑÑ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ Ð¿ÐµÑед подклÑÑением к ней.С клÑÑом
--createв вÑÑ Ð¾Ð´Ð½Ð¾Ð¹ Ñайл Ñакже вклÑÑаеÑÑÑ ÐºÐ¾Ð¼Ð¼ÐµÐ½ÑаÑий к базе даннÑÑ (еÑли он задан) и вÑе назнаÑÐµÐ½Ð¸Ñ Ð¿ÐµÑеменнÑÑ ÐºÐ¾Ð½ÑигÑÑаÑии, ÑвÑзаннÑе Ñ Ð±Ð°Ð·Ð¾Ð¹ даннÑÑ , Ñо еÑÑÑ Ð²Ñе командÑALTER DATABASE ... SET ...иALTER ROLE ... IN DATABASE ... SET ..., ÑÑÑлаÑÑиеÑÑ Ð½Ð° ÑÑÑ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ . Также вÑгÑÑжаÑÑÑÑ Ð¿Ñава доÑÑÑпа к Ñамой базе даннÑÑ , еÑли не добавлен клÑÑ--no-acl.ÐÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð¸Ð³Ð½Ð¾ÑиÑÑеÑÑÑ, когда даннÑе вÑгÑÑжаÑÑÑÑ Ð² аÑÑ Ð¸Ð²Ð½ÑÑ ÑоÑмаÑÐ°Ñ (не в ÑекÑÑовом). ÐÐ»Ñ ÑÐ°ÐºÐ¸Ñ ÑоÑмаÑов даннÑй паÑамеÑÑ Ð¼Ð¾Ð¶Ð½Ð¾ ÑказаÑÑ Ð¿Ñи вÑзове
pg_restore.-eÑаблон--extension=ÑаблонÐÑгÑÑзиÑÑ ÑолÑко ÑаÑÑиÑениÑ, ÑооÑвеÑÑÑвÑÑÑие
ÑаблонÑ. Ðогда ÑÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð¾ÑÑÑÑÑÑвÑеÑ, вÑгÑÑжаÑÑÑÑ Ð²Ñе неÑиÑÑемнÑе ÑаÑÑиÑÐµÐ½Ð¸Ñ Ð² Ñелевой базе даннÑÑ . ЧÑÐ¾Ð±Ñ Ð²ÑгÑÑзиÑÑ Ð½ÐµÑколÑко ÑаÑÑиÑений, клÑÑ-eможно задаÑÑ Ð½ÐµÑколÑко Ñаз. ÐаÑамеÑÑÑаблонинÑеÑпÑеÑиÑÑеÑÑÑ Ð¿Ð¾ Ñем же пÑавилам, ÑÑо и Ñаблон в ÐºÐ¾Ð¼Ð°Ð½Ð´Ð°Ñ psql\d(Ñм. Ð¨Ð°Ð±Ð»Ð¾Ð½Ñ Ð¿Ð¾Ð¸Ñка ниже), Ñак ÑÑо неÑколÑко ÑаÑÑиÑений можно вÑбÑаÑÑ Ð¸ Ñаблоном Ñо знаками подÑÑановки. ÐÑполÑзÑÑ Ð·Ð½Ð°ÐºÐ¸ подÑÑановки, пÑи Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾ÑÑи заклÑÑайÑе Ñаблон в кавÑÑки, ÑÑÐ¾Ð±Ñ ÑÑи знаки не ÑазвоÑаÑивала оболоÑка ÑиÑÑемÑ.ÐÐ»Ñ ÑаÑÑиÑениÑ, Ñказанного в
--extension, в вÑгÑÑÐ·ÐºÑ Ð²ÐºÐ»ÑÑаÑÑÑÑ Ð²Ñе его конÑигÑÑаÑионнÑе даннÑе, заÑегиÑÑÑиÑованнÑе ÑÑнкÑиейpg_extension_config_dump.ÐÑимеÑание
ÐÑи иÑполÑзовании
-e, pg_dump не вÑгÑÑÐ¶Ð°ÐµÑ Ð¿ÑоÑие обÑекÑÑ, Ð¾Ñ ÐºÐ¾ÑоÑÑÑ Ð²ÑгÑÑжаемÑе ÑаÑÑиÑÐµÐ½Ð¸Ñ Ð¼Ð¾Ð³ÑÑ Ð·Ð°Ð²Ð¸ÑеÑÑ. Таким обÑазом не гаÑанÑиÑÑеÑÑÑ, ÑÑо вÑгÑÑженнÑе ÑаÑÑиÑÐµÐ½Ð¸Ñ Ð±ÑдÑÑ ÑÑпеÑно воÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ñ Ð² ÑиÑÑой базе даннÑÑ .-EкодиÑовка--encoding=кодиÑовкаСоздаÑÑ ÐºÐ¾Ð¿Ð¸Ñ Ð² заданной кодиÑовке. Ðо ÑмолÑÐ°Ð½Ð¸Ñ ÐºÐ¾Ð¿Ð¸Ñ ÑоздаÑÑÑÑ Ð² кодиÑовке, иÑполÑзÑемой базой даннÑÑ . ÐÑÑгой ÑпоÑоб доÑÑиÑÑ Ñого же ÑезÑлÑÑаÑа â задаÑÑ Ð¶ÐµÐ»Ð°ÐµÐ¼ÑÑ ÐºÐ¾Ð´Ð¸ÑÐ¾Ð²ÐºÑ Ð² пеÑеменной окÑÑжениÑ
PGCLIENTENCODING. ÐоддеÑживаемÑе кодиÑовки опиÑÐ°Ð½Ñ Ð² ÐодÑазделе 22.3.1.-fÑайл--file=ÑайлÐÑпÑавиÑÑ Ð²Ñвод в ÑказаннÑй Ñайл. ÐаÑамеÑÑ Ð¼Ð¾Ð¶Ð½Ð¾ не ÑказÑваÑÑ, еÑли иÑполÑзÑеÑÑÑ ÑоÑÐ¼Ð°Ñ Ñ Ð²Ñводом в Ñайл. Ð ÑÑом ÑлÑÑае бÑÐ´ÐµÑ Ð¸ÑполÑзован ÑÑандаÑÑнÑй вÑвод. Ðднако Ð´Ð»Ñ ÑоÑмаÑа Ñ Ð²Ñводом в каÑалог паÑамеÑÑ ÑвлÑеÑÑÑ Ð¾Ð±ÑзаÑелÑнÑм и должен задаваÑÑ Ð¿ÑÑÑ Ðº каÑалогÑ. Ð ÑÑом ÑлÑÑае Ñелевой каÑалог бÑÐ´ÐµÑ Ñоздан командой
pg_dumpи не должен ÑÑÑеÑÑвоваÑÑ Ð·Ð°Ñанее.-Fformat--format=formatУказÑÐ²Ð°ÐµÑ ÑоÑÐ¼Ð°Ñ Ð²Ñвода копии.
formatÐ¼Ð¾Ð¶ÐµÑ Ð¿ÑинимаÑÑ ÑледÑÑÑие знаÑениÑ:pplainСÑоÑмиÑоваÑÑ ÑекÑÑовÑй SQL-ÑкÑипÑ. ÐÑо поведение по ÑмолÑаниÑ.
ccustomÐÑгÑÑзиÑÑ Ð´Ð°Ð½Ð½Ñе в ÑпеÑиалÑном аÑÑ Ð¸Ð²Ð½Ð¾Ð¼ ÑоÑмаÑе, пÑигодном Ð´Ð»Ñ Ð´Ð°Ð»ÑнейÑего иÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ ÑÑилиÑой pg_restore. ÐаÑÑÐ´Ñ Ñ ÑоÑмаÑом
directoryÑвлÑеÑÑÑ Ð½Ð°Ð¸Ð±Ð¾Ð»ÐµÐµ гибким ÑоÑмаÑом, позволÑÑÑим вÑÑÑнÑÑ Ð²ÑбиÑаÑÑ Ð¸ ÑоÑÑиÑоваÑÑ Ð²Ð¾ÑÑÑанавливаемÑе обÑекÑÑ. ÐÑвод в ÑÑом ÑоÑмаÑе по ÑмолÑÐ°Ð½Ð¸Ñ ÑжимаеÑÑÑ.ddirectoryÐÑгÑÑзиÑÑ Ð´Ð°Ð½Ð½Ñе в ÑоÑмаÑе каÑалога. ÐÑÐ¾Ñ ÑоÑÐ¼Ð°Ñ Ð¿Ñигоден Ð´Ð»Ñ Ð´Ð°Ð»ÑнейÑего иÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ ÑÑилиÑой pg_restore. ÐÑи ÑÑом бÑÐ´ÐµÑ Ñоздан каÑалог, в коÑоÑом Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð¹ ÑаблиÑÑ Ð¸ болÑÑого обÑекÑа бÑдÑÑ ÑÐ¾Ð·Ð´Ð°Ð½Ñ Ð¾ÑделÑнÑе ÑайлÑ, а Ñакже Ñайл Ð¾Ð³Ð»Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð² маÑинно-ÑиÑаемом ÑоÑмаÑе, понÑÑном Ð´Ð»Ñ pg_restore. С полÑÑенной ÑезеÑвной копией можно ÑабоÑаÑÑ ÑÑаÑнÑми ÑÑедÑÑвами Unix, напÑимеÑ, неÑжаÑÑÑ ÐºÐ¾Ð¿Ð¸Ñ Ð¼Ð¾Ð¶Ð½Ð¾ ÑжаÑÑ Ð¿Ð¾ÑÑедÑÑвом gzip, lz4 или zstd. ÐÑÐ¾Ñ ÑоÑÐ¼Ð°Ñ Ð¿Ð¾ ÑмолÑÐ°Ð½Ð¸Ñ ÑжимаеÑÑÑ Ñ Ð¸ÑполÑзованием
gzip, а Ñакже поддеÑÐ¶Ð¸Ð²Ð°ÐµÑ ÑабоÑÑ Ð² неÑколÑко поÑоков.ttarÐÑгÑÑзиÑÑ Ð´Ð°Ð½Ð½Ñе в ÑоÑмаÑе
tar, Ð´Ð»Ñ Ð´Ð°Ð»ÑнейÑего иÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ñ ÑÑилиÑой pg_restore. ÐÑÐ¾Ñ ÑоÑÐ¼Ð°Ñ ÑовмеÑÑим Ñ ÑоÑмаÑом вÑвода в каÑалог: еÑли аÑÑ Ð¸Ð² ÑаÑпаковаÑÑ, полÑÑиÑÑÑ ÐºÐ¾ÑÑекÑÐ½Ð°Ñ ÐºÐ¾Ð¿Ð¸Ñ Ð² ÑоÑмаÑе каÑалога. Ðднако ÑоÑÐ¼Ð°Ñ tar не поддеÑÐ¶Ð¸Ð²Ð°ÐµÑ ÑжаÑие. Также, пÑименÑÑ ÑоÑÐ¼Ð°Ñ tar, пÑи воÑÑÑановлении нелÑÐ·Ñ Ð¸Ð·Ð¼ÐµÐ½Ð¸ÑÑ Ð¾ÑноÑиÑелÑнÑй поÑÑдок ÑлеменÑов даннÑÑ .
-jÑиÑло_заданий--jobs=ÑиÑло_заданийÐÑÑÑеÑÑвиÑÑ Ð²ÑгÑÑÐ·ÐºÑ Ð² паÑаллелÑном Ñежиме, обÑабаÑÑÐ²Ð°Ñ Ð¾Ð´Ð½Ð¾Ð²Ñеменно неÑколÑко ÑÐ°Ð±Ð»Ð¸Ñ (в колиÑеÑÑве
ÑиÑло_заданий). ÐÑо Ð¼Ð¾Ð¶ÐµÑ ÑокÑаÑиÑÑ Ð²ÑемÑ, Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾Ðµ Ð´Ð»Ñ Ð²ÑгÑÑзки, но ÑвелиÑÐ¸Ð²Ð°ÐµÑ Ð½Ð°Ð³ÑÑÐ·ÐºÑ Ð½Ð° ÑеÑвеÑ. ÐÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð¼Ð¾Ð¶Ð½Ð¾ иÑполÑзоваÑÑ ÑолÑко Ñ ÑоÑмаÑом вÑвода в каÑалог, Ñак как ÑÑо единÑÑвеннÑй ÑоÑмаÑ, позволÑÑÑий неÑколÑким пÑоÑеÑÑам запиÑÑваÑÑ Ð´Ð°Ð½Ð½Ñе одновÑеменно.pg_dump оÑкÑоеÑ
ÑиÑло_заданий+ 1 Ñоединений Ñ Ð±Ð°Ð·Ð¾Ð¹ даннÑÑ . Таким обÑазом Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾ обеÑпеÑиÑÑ Ð´Ð¾ÑÑаÑоÑное знаÑение паÑамеÑÑа max_connections.ÐÑли во вÑÐµÐ¼Ñ Ð²ÑгÑÑзки в неÑколÑко поÑоков паÑаллелÑно ÑабоÑаÑÑие ÑеанÑÑ Ð±ÑдÑÑ Ð·Ð°Ð¿ÑаÑиваÑÑ ÑкÑклÑзивнÑе блокиÑовки на обÑекÑÑ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ , Ñо pg_dump Ð¼Ð¾Ð¶ÐµÑ Ð·Ð°Ð²ÐµÑÑиÑÑÑÑ Ð°Ð²Ð°Ñийно. Ðело в Ñом, ÑÑо головной пÑоÑеÑÑ pg_dump внаÑале запÑаÑÐ¸Ð²Ð°ÐµÑ ÑазделÑемÑе блокиÑовки (ACCESS SHARE) на обÑекÑÑ, коÑоÑÑе позже бÑдÑÑ Ð²ÑгÑÑжаÑÑ ÑабоÑие пÑоÑеÑÑÑ. ÐÑо делаеÑÑÑ Ð´Ð»Ñ Ñого, ÑÑÐ¾Ð±Ñ Ð½Ð¸ÐºÑо не Ñмог ÑдалиÑÑ Ð¾Ð±ÑекÑÑ Ð½Ð° вÑÐµÐ¼Ñ ÑабоÑÑ pg_dump. ÐÑли же дÑÑгой ÑÐµÐ°Ð½Ñ Ð·Ð°Ð¿ÑоÑÐ¸Ñ ÑкÑклÑзивнÑÑ Ð±Ð»Ð¾ÐºÐ¸ÑÐ¾Ð²ÐºÑ Ð½Ð° обÑекÑ, Ñо запÑÐ¾Ñ Ð½Ð° блокиÑÐ¾Ð²ÐºÑ Ð±ÑÐ´ÐµÑ Ð¿Ð¾ÑÑавлен в оÑеÑедÑ, до ÑÐµÑ Ð¿Ð¾Ñ Ð¿Ð¾ÐºÐ° ÑазделÑÐµÐ¼Ð°Ñ Ð±Ð»Ð¾ÐºÐ¸Ñовка головного пÑоÑеÑÑа pg_dump не бÑÐ´ÐµÑ ÑнÑÑа. РпоÑледÑÑÑем, лÑÐ±Ð°Ñ Ð¿Ð¾Ð¿ÑÑка доÑÑÑпа к ÑÑÐ¾Ð¼Ñ Ð¾Ð±ÑекÑÑ Ð±ÑÐ´ÐµÑ Ð²ÑÑаваÑÑ Ð² оÑеÑедÑ, вÑлед за ÑкÑклÑзивной блокиÑовкой. Ð Ñом ÑиÑле в оÑеÑÐµÐ´Ñ Ð¿Ð¾Ð¿Ð°Ð´ÐµÑ Ð¸ ÑабоÑий пÑоÑеÑÑ pg_dump. ÐÑли не пÑинÑÑÑ Ð¼ÐµÑÑ Ð¿ÑедоÑÑоÑожноÑÑи, Ñо полÑÑим клаÑÑиÑеÑкÑÑ Ð²Ð·Ð°Ð¸Ð¼Ð¾Ð±Ð»Ð¾ÐºÐ¸ÑовкÑ. ÐÐ»Ñ Ð¿ÑедÑпÑÐµÐ¶Ð´ÐµÐ½Ð¸Ñ Ð¿Ð¾Ð´Ð¾Ð±Ð½ÑÑ ÐºÐ¾Ð½ÑликÑов, ÑабоÑий пÑоÑеÑÑ pg_dump еÑÑ Ñаз запÑаÑÐ¸Ð²Ð°ÐµÑ ÑазделÑемÑÑ Ð±Ð»Ð¾ÐºÐ¸ÑÐ¾Ð²ÐºÑ Ð½Ð° обÑÐµÐºÑ Ñ Ñказанием
NOWAIT. РеÑли он не Ñмог полÑÑиÑÑ Ð±Ð»Ð¾ÐºÐ¸ÑовкÑ, знаÑÐ¸Ñ ÐºÑо-Ñо еÑÑ Ð·Ð°Ð¿ÑоÑил ÑкÑклÑзивнÑÑ Ð±Ð»Ð¾ÐºÐ¸ÑÐ¾Ð²ÐºÑ Ð¾Ð±ÑекÑа. Ð ÑÑо знаÑиÑ, ÑÑо Ð½ÐµÑ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾ÑÑи пÑодолжиÑÑ Ð²ÑгÑÑзкÑ, поÑÑÐ¾Ð¼Ñ pg_dump пÑеÑÑÐ²Ð°ÐµÑ Ð´Ð°Ð»ÑнейÑÑÑ ÑабоÑÑ.ÐÐ»Ñ Ð²ÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð¿Ð°ÑаллелÑной вÑгÑÑзки ÑеÑÐ²ÐµÑ Ð±Ð°Ð· даннÑÑ Ð´Ð¾Ð»Ð¶ÐµÐ½ поддеÑживаÑÑ ÑÑнкÑионалÑноÑÑÑ ÑÐ¸Ð½Ñ ÑонизиÑованнÑÑ Ñнимков, коÑоÑÐ°Ñ Ð±Ñла введена в веÑÑии PostgreSQL 9.2 Ð´Ð»Ñ Ð²ÐµÐ´ÑÑÐ¸Ñ ÑеÑвеÑов и в 10 Ð´Ð»Ñ Ð²ÐµÐ´Ð¾Ð¼ÑÑ . ÐÑо позволÑÐµÑ ÑазнÑм клиенÑам ÑабоÑаÑÑ Ñ Ð¾Ð´Ð½Ð¾Ð¹ и Ñой же веÑÑией даннÑÑ , неÑмоÑÑÑ Ð½Ð° иÑполÑзование ÑазнÑÑ Ð¿Ð¾Ð´ÐºÐ»ÑÑений.
pg_dump -jиÑполÑзÑÐµÑ Ð¼Ð½Ð¾Ð¶ÐµÑÑвеннÑе подклÑÑениÑ. ÐеÑвое подклÑÑение оÑÑÑеÑÑвлÑеÑÑÑ Ð³Ð¾Ð»Ð¾Ð²Ð½Ñм пÑоÑеÑÑом, а поÑледÑÑÑие â ÑабоÑими пÑоÑеÑÑами. Ðез ÑÑнкÑионалÑноÑÑи ÑÐ¸Ð½Ñ ÑонизиÑÑемÑÑ Ñнимков Ð½ÐµÑ Ð³Ð°ÑанÑии Ñого, ÑÑо каждое подклÑÑение ÑÐ²Ð¸Ð´Ð¸Ñ Ð¾Ð´Ð½Ð¸ и Ñе же даннÑе, ÑÑо Ð¼Ð¾Ð¶ÐµÑ Ð¿ÑивеÑÑи к неÑоглаÑованноÑÑи даннÑÑ ÑезеÑвной копии.-nÑаблон--schema=ÑаблонÐÑгÑÑзиÑÑ ÑолÑко ÑÑ ÐµÐ¼Ñ, ÑооÑвеÑÑÑвÑÑÑие
ÑаблонÑ; вмеÑÑе Ñ ÑÑими ÑÑ ÐµÐ¼Ð°Ð¼Ð¸ бÑдÑÑ Ð²ÑгÑÑÐ¶ÐµÐ½Ñ Ð¸ вÑе ÑодеÑжаÑиеÑÑ Ð² Ð½Ð¸Ñ Ð¾Ð±ÑекÑÑ. Ðогда ÑÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð¾ÑÑÑÑÑÑвÑеÑ, вÑгÑÑжаÑÑÑÑ Ð²Ñе неÑиÑÑемнÑе ÑÑ ÐµÐ¼Ñ Ð² Ñелевой базе даннÑÑ . ЧÑÐ¾Ð±Ñ Ð²ÑгÑÑзиÑÑ Ð½ÐµÑколÑко ÑÑ ÐµÐ¼, клÑÑ-nможно ÑказаÑÑ Ð½ÐµÑколÑко Ñаз. ÐаÑамеÑÑÑаблонинÑеÑпÑеÑиÑÑеÑÑÑ Ð¿Ð¾ Ñем же пÑавилам, ÑÑо и Ñаблон в ÐºÐ¾Ð¼Ð°Ð½Ð´Ð°Ñ psql\d(Ñм. Ð¨Ð°Ð±Ð»Ð¾Ð½Ñ Ð¿Ð¾Ð¸Ñка), Ñак ÑÑо неÑколÑко ÑÑ ÐµÐ¼ можно вÑбÑаÑÑ Ð¸ Ñаблоном Ñо знаками подÑÑановки. ÐÑполÑзÑÑ Ð·Ð½Ð°ÐºÐ¸ подÑÑановки, пÑи Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾ÑÑи заклÑÑайÑе Ñаблон в кавÑÑки, ÑÑÐ¾Ð±Ñ ÑÑи знаки не ÑазвоÑаÑивала оболоÑка ÑиÑÑÐµÐ¼Ñ (Ñм. ÐÑимеÑÑ Ð½Ð¸Ð¶Ðµ).ÐÑимеÑание
ÐÑи иÑполÑзовании
-n, pg_dump не вÑгÑÑÐ¶Ð°ÐµÑ Ð¾Ð±ÑекÑÑ Ð´ÑÑÐ³Ð¸Ñ ÑÑ ÐµÐ¼, Ð¾Ñ ÐºÐ¾ÑоÑÑÑ Ð²ÑгÑÑÐ¶Ð°ÐµÐ¼Ð°Ñ ÑÑ ÐµÐ¼Ð° Ð¼Ð¾Ð¶ÐµÑ Ð·Ð°Ð²Ð¸ÑеÑÑ. Таким обÑазом не гаÑанÑиÑÑеÑÑÑ, ÑÑо вÑгÑÑÐ¶ÐµÐ½Ð½Ð°Ñ ÑÑ ÐµÐ¼Ð° бÑÐ´ÐµÑ ÑÑпеÑно воÑÑÑановлена в ÑиÑÑой базе даннÑÑ .ÐÑимеÑание
Ðе пÑинадлежаÑие ÑÑ ÐµÐ¼Ð°Ð¼ обÑекÑÑ (напÑимеÑ, болÑÑие обÑекÑÑ), не вÑгÑÑжаÑÑÑÑ Ñ Ð¿Ð°ÑамеÑÑом
-n. Ðднако можно ÑказаÑÑ--large-objects, ÑÑÐ¾Ð±Ñ Ð¾Ð½Ð¸ попали в вÑгÑÑзкÑ.-NÑаблон--exclude-schema=ÑаблонÐе вÑгÑÑжаÑÑ ÑÑ ÐµÐ¼Ñ, ÑооÑвеÑÑÑвÑÑÑие
ÑаблонÑ. Шаблон инÑеÑпÑеÑиÑÑеÑÑÑ Ð¿Ð¾ Ñем же пÑавилам, ÑÑо и Ð´Ð»Ñ Ð¿Ð°ÑамеÑÑа-n. ÐаÑамеÑÑ-Nможно иÑполÑзоваÑÑ Ð² команде неÑколÑко Ñаз Ð´Ð»Ñ Ð¸ÑклÑÑÐµÐ½Ð¸Ñ ÑÑ ÐµÐ¼, ÑооÑвеÑÑÑвÑÑÑÐ¸Ñ Ð½ÐµÑколÑким Ñаблонам.ÐÑи одновÑеменном иÑполÑзовании паÑамеÑÑов
-nи-NбÑдÑÑ Ð²ÑгÑÑжаÑÑÑÑ ÑÑ ÐµÐ¼Ñ, ÑооÑвеÑÑÑвÑÑÑие ÑÐ°Ð±Ð»Ð¾Ð½Ñ Ð¿Ð°ÑамеÑÑа-nи не пÑоÑивоÑеÑаÑие ÑÐ°Ð±Ð»Ð¾Ð½Ñ Ð¿Ð°ÑамеÑÑа-N.-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(Ñм. Ð¨Ð°Ð±Ð»Ð¾Ð½Ñ Ð¿Ð¾Ð¸Ñка), Ñак ÑÑо неÑколÑко ÑÐ°Ð±Ð»Ð¸Ñ Ð¼Ð¾Ð¶Ð½Ð¾ вÑбÑаÑÑ Ð¸ Ñаблоном Ñо знаками подÑÑановки. ÐÑполÑзÑÑ Ð·Ð½Ð°ÐºÐ¸ подÑÑановки, пÑи Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾ÑÑи заклÑÑайÑе Ñаблон в кавÑÑки, ÑÑÐ¾Ð±Ñ ÑÑи знаки не ÑазвоÑаÑивала оболоÑка ÑиÑÑÐµÐ¼Ñ (Ñм. ÐÑимеÑÑ Ð½Ð¸Ð¶Ðµ).Ðомимо обÑÑнÑÑ ÑаблиÑ, Ñ ÑÑим Ñказанием можно вÑгÑÑзиÑÑ Ð¾Ð¿ÑÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ ÑооÑвеÑÑÑвÑÑÑÐ¸Ñ ÑÐ°Ð±Ð»Ð¾Ð½Ñ Ð¿Ð¾ÑледоваÑелÑноÑÑей, пÑедÑÑавлений, маÑеÑиализованнÑÑ Ð¿ÑедÑÑавлений и ÑÑоÑÐ¾Ð½Ð½Ð¸Ñ ÑаблиÑ. ÐÑи ÑÑом ÑодеÑжимое пÑедÑÑавлений и маÑпÑедÑÑавлений вÑгÑÑжаÑÑÑÑ Ð½Ðµ бÑдеÑ, а ÑодеÑжимое ÑÑоÑÐ¾Ð½Ð½Ð¸Ñ ÑÐ°Ð±Ð»Ð¸Ñ Ð±ÑÐ´ÐµÑ Ð²ÑгÑÑжено, ÑолÑко еÑли в аÑгÑменÑе
--include-foreign-dataÑказан ÑооÑвеÑÑÑвÑÑÑий ÑÑоÑонний ÑеÑвеÑ.ÐаÑамеÑÑÑ
-nи-Nне дейÑÑвÑÑÑ Ð² пÑиÑÑÑÑÑвии паÑамеÑÑа-t, Ñак как оÑобÑаннÑе им ÑаблиÑÑ Ð²ÑÑ Ñавно бÑдÑÑ Ð²ÑгÑÑженÑ, а не ÑаблиÑнÑе обÑекÑÑ Ð²ÑгÑÑжаÑÑÑÑ Ð½Ðµ бÑдÑÑ.ÐÑимеÑание
ÐÑи иÑполÑзовании
-t, pg_dump не вÑгÑÑÐ¶Ð°ÐµÑ Ð¿ÑоÑие обÑекÑÑ, Ð¾Ñ ÐºÐ¾ÑоÑÑÑ Ð²ÑгÑÑжаемÑе ÑаблиÑÑ Ð¼Ð¾Ð³ÑÑ Ð·Ð°Ð²Ð¸ÑеÑÑ. Таким обÑазом не гаÑанÑиÑÑеÑÑÑ, ÑÑо вÑгÑÑженнÑе ÑаблиÑÑ Ð±ÑдÑÑ ÑÑпеÑно воÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ñ Ð² ÑиÑÑой базе даннÑÑ .-TÑаблон--exclude-table=ÑаблонÐе вÑгÑÑжаÑÑ ÑаблиÑÑ, ÑооÑвеÑÑÑвÑÑÑие
ÑаблонÑ. Шаблон инÑеÑпÑеÑиÑÑеÑÑÑ Ð¿Ð¾ Ñем же пÑавилам, ÑÑо и Ð´Ð»Ñ Ð¿Ð°ÑамеÑÑа-t. ÐаÑамеÑÑ-Tможно иÑполÑзоваÑÑ Ð² команде неÑколÑко Ñаз Ð´Ð»Ñ Ð¸ÑклÑÑÐµÐ½Ð¸Ñ ÑаблиÑ, ÑооÑвеÑÑÑвÑÑÑÐ¸Ñ Ð½ÐµÑколÑким Ñаблонам.ÐÑи одновÑеменном иÑполÑзовании паÑамеÑÑов
-tи-TбÑдÑÑ Ð²ÑгÑÑжаÑÑÑÑ ÑаблиÑÑ, ÑооÑвеÑÑÑвÑÑÑие ÑÐ°Ð±Ð»Ð¾Ð½Ñ Ð¿Ð°ÑамеÑÑа-tи не пÑоÑивоÑеÑаÑие ÑÐ°Ð±Ð»Ð¾Ð½Ñ Ð¿Ð°ÑамеÑÑа-T.-v--verboseÐклÑÑиÑÑ Ð¿Ð¾Ð´ÑобнÑй Ñежим. pg_dump бÑÐ´ÐµÑ Ð²ÑводиÑÑ Ð² ÑÑандаÑÑнÑй поÑок оÑибок подÑобнÑе комменÑаÑии к обÑекÑам, вклÑÑÐ°Ñ Ð²ÑÐµÐ¼Ñ Ð½Ð°Ñала и оконÑÐ°Ð½Ð¸Ñ Ð²ÑгÑÑзки, а Ñакже ÑообÑÐµÐ½Ð¸Ñ Ð¾ пÑогÑеÑÑе вÑполнениÑ. ÐÑли повÑоÑиÑÑ ÑÑÐ¾Ñ ÐºÐ»ÑÑ, в ÑÑандаÑÑнÑй поÑок оÑибок бÑдÑÑ Ð²ÑдаваÑÑÑÑ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸ÑелÑнÑе оÑладоÑнÑе ÑообÑениÑ.
-V--versionÐÑвеÑÑи веÑÑÐ¸Ñ pg_dump.
-x--no-privileges--no-aclÐе вÑгÑÑжаÑÑ Ð¿Ñава доÑÑÑпа (ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ GRANT/REVOKE).
-ZÑÑовенÑ-Z[:меÑодÑÑÑока_инÑоÑмаÑии]--compress=ÑÑовенÑ--compress=[:меÑодÑÑÑока_инÑоÑмаÑии]УказÑÐ²Ð°ÐµÑ Ð¼ÐµÑод и/или ÑÑÐ¾Ð²ÐµÐ½Ñ ÑжаÑиÑ. РкаÑеÑÑве меÑода ÑжаÑÐ¸Ñ Ð¼Ð¾Ð¶Ð½Ð¾ вÑбÑаÑÑ
gzip,lz4,zstdилиnone(без ÑжаÑиÑ). РкаÑеÑÑве дополниÑелÑной инÑоÑмаÑии можно пеÑедаÑÑ Ð¿Ð°ÑамеÑÑÑ ÑжаÑиÑ. ÐÑли в ÑÑÑоке инÑоÑмаÑии пеÑедаÑÑÑÑ Ñелое ÑиÑло, оно задаÑÑ ÑÑÐ¾Ð²ÐµÐ½Ñ ÑжаÑиÑ. РпÑоÑивном ÑлÑÑае она должна ÑодеÑжаÑÑ ÑпиÑок ÑлеменÑов, ÑазделÑннÑÑ Ð·Ð°Ð¿ÑÑÑми, в ÑоÑмеклÑÑевое_ÑловоиликлÑÑевое_Ñлово=знаÑение. Ðа даннÑй Ð¼Ð¾Ð¼ÐµÐ½Ñ Ð¿Ð¾Ð´Ð´ÐµÑживаÑÑÑÑ ÐºÐ»ÑÑевÑе Ñловаlevelиlong.ÐÑли ÑÑÐ¾Ð²ÐµÐ½Ñ ÑжаÑÐ¸Ñ Ð½Ðµ Ñказан, бÑÐ´ÐµÑ Ð²ÑбÑан ÑÑÐ¾Ð²ÐµÐ½Ñ ÑжаÑÐ¸Ñ Ð¿Ð¾ ÑмолÑаниÑ. ÐÑли Ñказан ÑолÑко ÑÑÐ¾Ð²ÐµÐ½Ñ ÑжаÑиÑ, но не Ñказан меÑод, бÑÐ´ÐµÑ Ð¿ÑименÑÑÑÑÑ Ð¼ÐµÑод ÑжаÑиÑ
gzip, когда ÑÑÐ¾Ð²ÐµÐ½Ñ Ð±Ð¾Ð»ÑÑе0, а когда ÑÑÐ¾Ð²ÐµÐ½Ñ Ñавен0, ÑжаÑие не бÑÐ´ÐµÑ Ð²ÑполнÑÑÑÑÑ.ÐÐ»Ñ ÑпеÑиалÑного ÑоÑмаÑа и ÑоÑмаÑа каÑалога бÑдÑÑ ÑжимаÑÑÑÑ ÑÐ°Ð¹Ð»Ñ Ð¾ÑделÑнÑÑ ÑаблиÑ. Ðо ÑмолÑÐ°Ð½Ð¸Ñ Ð¿ÑименÑеÑÑÑ ÑмеÑеннÑй ÑÑÐ¾Ð²ÐµÐ½Ñ ÑжаÑÐ¸Ñ Ñ Ð¸ÑполÑзованием
gzip. ÐÑли ÑказаÑÑ Ð¾ÑлиÑнÑй Ð¾Ñ Ð½Ñлевого ÑÑÐ¾Ð²ÐµÐ½Ñ ÑжаÑÐ¸Ñ Ð´Ð»Ñ Ð¿ÑоÑÑого ÑоÑмаÑа, Ñо ÑжимаÑÑÑÑ Ð±ÑÐ´ÐµÑ Ð²ÐµÑÑ Ð²ÑÑ Ð¾Ð´Ð½Ð¾Ð¹ Ñайл, как ÑÑо бÑло Ð±Ñ Ð¿Ñи пеÑедаÑе Ñайла команде gzip, lz4 или zstd. Ðднако по ÑмолÑÐ°Ð½Ð¸Ñ Ð´Ð»Ñ Ð¿ÑоÑÑого ÑоÑмаÑа ÑжаÑие не пÑоизводиÑÑÑ. СжаÑие Ñ Ð¸ÑполÑзованием zstd можно пÑоводиÑÑ Ñ Ñказаниемlong, ÑÑо Ð¼Ð¾Ð¶ÐµÑ ÑлÑÑÑиÑÑ ÐºÐ¾ÑÑÑиÑÐ¸ÐµÐ½Ñ ÑжаÑÐ¸Ñ Ð·Ð° ÑÑÑÑ Ð¿Ð¾Ð²ÑÑÐµÐ½Ð¸Ñ Ð½Ð°Ð³ÑÑзки на памÑÑÑ.ФоÑмаÑ
tarв наÑÑоÑÑий Ð¼Ð¾Ð¼ÐµÐ½Ñ Ð½Ðµ поддеÑÐ¶Ð¸Ð²Ð°ÐµÑ ÑжаÑие.--binary-upgradeÐÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð¿ÑедназнаÑен Ð´Ð»Ñ ÑÑÐ¸Ð»Ð¸Ñ Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ ÑеÑвеÑа. ÐÑполÑзование Ð´Ð»Ñ Ð¸Ð½ÑÑ Ñелей не ÑекомендÑеÑÑÑ Ð¸ не поддеÑживаеÑÑÑ. Ðоведение паÑамеÑÑа Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¾ в поÑледÑÑÑÐ¸Ñ Ð²ÐµÑÑиÑÑ Ð±ÐµÐ· пÑедваÑиÑелÑного ÑведомлениÑ.
--column-inserts--attribute-insertsÐÑгÑÑжаÑÑ Ð´Ð°Ð½Ð½Ñе ÑÐ°Ð±Ð»Ð¸Ñ Ð² виде команд
INSERTÑ ÑвнÑм Ñказанием ÑÑолбÑов (INSERT INTO). СкоÑоÑÑÑ Ð²Ð¾ÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð¿Ñи ÑÑом знаÑиÑелÑно ÑнизиÑÑÑ, но даннÑй ваÑÐ¸Ð°Ð½Ñ Ð¾Ð¿Ñавдан, когда загÑÑжаÑÑ Ð´Ð°Ð½Ð½Ñе нÑжно не в Postgres Pro. ÐÑи ÑÑом в ÑлÑÑае ÐºÐ°ÐºÐ¸Ñ -либо оÑибок пÑи загÑÑзке даннÑÑ Ð±ÑдÑÑ Ð¿Ð¾ÑеÑÑÐ½Ñ ÑолÑко ÑÑÑокиÑаблиÑа(ÑÑолбеÑ, ...) VALUES ...INSERT, где возникли оÑибки, но не вÑÑ ÑодеÑжимое ÑаблиÑÑ.--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-extension=ÑаблонÐе вÑгÑÑжаÑÑ ÑаÑÑиÑениÑ, ÑооÑвеÑÑÑвÑÑÑие
ÑаблонÑ. Шаблон инÑеÑпÑеÑиÑÑеÑÑÑ Ð¿Ð¾ Ñем же пÑавилам, ÑÑо и Ð´Ð»Ñ Ð¿Ð°ÑамеÑÑа-e. ÐаÑамеÑÑ--exclude-extensionможно иÑполÑзоваÑÑ Ð² команде неÑколÑко Ñаз Ð´Ð»Ñ Ð¸ÑклÑÑÐµÐ½Ð¸Ñ ÑаÑÑиÑений, ÑооÑвеÑÑÑвÑÑÑÐ¸Ñ Ð½ÐµÑколÑким Ñаблонам.ÐÑи одновÑеменном иÑполÑзовании паÑамеÑÑов
-eи-exclude-extensionбÑдÑÑ Ð²ÑгÑÑжаÑÑÑÑ ÑаÑÑиÑениÑ, ÑооÑвеÑÑÑвÑÑÑие ÑÐ°Ð±Ð»Ð¾Ð½Ñ Ð¿Ð°ÑамеÑÑа-e, но не ÑÐ°Ð±Ð»Ð¾Ð½Ñ Ð¿Ð°ÑамеÑÑа--exclude-extension. ÐÑполÑзование--exclude-extensionбез-eиÑклÑÑÐ¸Ñ Ð¸Ð· вÑгÑÑзки ÑаÑÑиÑениÑ, ÑооÑвеÑÑÑвÑÑÑие--exclude-extension.--exclude-table-and-children=ÑаблонÐÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð´ÐµÐ»Ð°ÐµÑ Ñо же, ÑÑо
-T/--exclude-table, кÑоме Ñого, ÑÑо Ñ Ð½Ð¸Ð¼ Ñакже иÑклÑÑаÑÑÑÑ Ð»ÑбÑе наÑледÑемÑе доÑеÑние ÑаблиÑÑ Ð¸Ð»Ð¸ ÑекÑии ÑаблиÑ, ÑооÑвеÑÑÑвÑÑÑиÑÑаблонÑ.--exclude-table-data=ÑаблонÐе вÑгÑÑжаÑÑ ÑодеÑжимое ÑаблиÑ, ÑооÑвеÑÑÑвÑÑÑиÑ
ÑаблонÑ. Шаблон ÑаблиÑÑ Ð¸Ð½ÑеÑпÑеÑиÑÑеÑÑÑ Ð¿Ð¾ Ñем же пÑавилам, ÑÑо и Ð´Ð»Ñ Ð¿Ð°ÑамеÑÑа-t. ÐаÑамеÑÑ--exclude-table-dataможно иÑполÑзоваÑÑ Ð² команде неÑколÑко Ñаз Ð´Ð»Ñ Ð¸ÑклÑÑÐµÐ½Ð¸Ñ ÑаблиÑ, ÑооÑвеÑÑÑвÑÑÑÐ¸Ñ Ð½ÐµÑколÑким Ñаблонам. Ðолезно, когда нÑжно полÑÑиÑÑ Ð¾Ð¿Ñеделение ÑаблиÑÑ, без ÑодеÑжимого.ЧÑÐ¾Ð±Ñ Ð½Ðµ вÑгÑÑжаÑÑ ÑодеÑжимое вÑÐµÑ ÑÐ°Ð±Ð»Ð¸Ñ Ð±Ð°Ð·Ñ, иÑполÑзÑйÑе паÑамеÑÑ
--schema-only.--exclude-table-data-and-children=ÑаблонÐÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð´ÐµÐ»Ð°ÐµÑ Ñо же, ÑÑо
--exclude-table-data, кÑоме Ñого, ÑÑо Ñ Ð½Ð¸Ð¼ Ñакже иÑклÑÑаÑÑÑÑ Ð´Ð°Ð½Ð½Ñе лÑбÑÑ Ð½Ð°ÑледÑемÑÑ Ð´Ð¾ÑеÑÐ½Ð¸Ñ ÑÐ°Ð±Ð»Ð¸Ñ Ð¸Ð»Ð¸ ÑекÑий ÑаблиÑ, ÑооÑвеÑÑÑвÑÑÑиÑÑаблонÑ.--extra-float-digits=ÑиÑло_ÑиÑÑÐÑводиÑÑ ÑиÑла Ñ Ð¿Ð»Ð°Ð²Ð°ÑÑей ÑоÑкой не Ñ Ð¼Ð°ÐºÑималÑной ÑоÑноÑÑÑÑ, а Ñ Ð·Ð°Ð´Ð°Ð½Ð½Ñм знаÑением
extra_float_digits. ÐÑи вÑгÑÑзке даннÑÑ Ð² ÑелÑÑ ÑезеÑвного копиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð´Ð°Ð½Ð½Ñй паÑамеÑÑ Ð¸ÑполÑзоваÑÑ Ð½Ðµ ÑледÑеÑ.--filter=имÑ_ÑайлаÐадаÑÑ Ð¸Ð¼Ñ Ñайла, из коÑоÑого бÑдÑÑ ÑÑиÑÑваÑÑÑÑ ÑÐ°Ð±Ð»Ð¾Ð½Ñ Ð²ÐºÐ»ÑÑениÑ/иÑклÑÑÐµÐ½Ð¸Ñ Ð¾Ð±ÑекÑов из вÑгÑÑзки. Ð¨Ð°Ð±Ð»Ð¾Ð½Ñ Ð¸Ð½ÑеÑпÑеÑиÑÑÑÑÑÑ Ð¿Ð¾ Ñем же пÑавилам, ÑÑо и ÑооÑвеÑÑÑвÑÑÑие паÑамеÑÑÑ:
-t/--table,--table-and-children,-T/--exclude-tableи--exclude-table-and-childrenÐ´Ð»Ñ ÑаблиÑ;-n/--schemaи-N/--exclude-schemaÐ´Ð»Ñ ÑÑ ÐµÐ¼;--include-foreign-dataÐ´Ð»Ñ Ð´Ð°Ð½Ð½ÑÑ ÑÑоÑÐ¾Ð½Ð½Ð¸Ñ ÑеÑвеÑов;--exclude-table-dataи--exclude-table-data-and-childrenÐ´Ð»Ñ ÑаблиÑнÑÑ Ð´Ð°Ð½Ð½ÑÑ ;-e/--extensionи--exclude-extensionÐ´Ð»Ñ ÑаÑÑиÑений. ÐÐ»Ñ ÑÑÐµÐ½Ð¸Ñ Ð¸Ð·STDINв каÑеÑÑве имени Ñайла иÑполÑзÑйÑе-. ÐаÑамеÑÑ--filterможно ÑказÑваÑÑ Ð²Ð¼ÐµÑÑе Ñ Ð²ÑÑеÑпомÑнÑÑÑми паÑамеÑÑами Ð´Ð»Ñ Ð²ÐºÐ»ÑÑениÑ/иÑклÑÑÐµÐ½Ð¸Ñ Ð¾Ð±ÑекÑов, а Ñакже иÑполÑзоваÑÑ Ð½ÐµÑколÑко Ñаз, еÑли нÑжно задаÑÑ Ð½ÐµÑколÑко Ñайлов Ñ ÑилÑÑÑами.Файл ÑодеÑÐ¶Ð¸Ñ Ð¿Ð¾ одной ÑÑÑоке на каждÑй Ñаблон обÑекÑа в ÑледÑÑÑем ÑоÑмаÑе:
{ include | exclude } { extension | foreign_data | table | table_and_children | table_data | table_data_and_children | schema }ШÐÐÐÐÐÐеÑвое клÑÑевое Ñлово ÑказÑваеÑ, бÑдÑÑ Ð»Ð¸ обÑекÑÑ, ÑооÑвеÑÑÑвÑÑÑие ÑаблонÑ, вклÑÑÐµÐ½Ñ Ð¸Ð»Ð¸ иÑклÑÑенÑ. ÐÑоÑое клÑÑевое Ñлово ÑказÑÐ²Ð°ÐµÑ Ñип обÑекÑов, ÑилÑÑÑÑемÑÑ Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ Ñаблона:
extension: ÑаÑÑиÑениÑ; ÑабоÑÐ°ÐµÑ ÐºÐ°Ðº паÑамеÑÑ-e/--extensionили--exclude-extension.foreign_data: даннÑе на ÑÑоÑÐ¾Ð½Ð½Ð¸Ñ ÑеÑвеÑÐ°Ñ ; ÑабоÑÐ°ÐµÑ ÐºÐ°Ðº паÑамеÑÑ--include-foreign-data. ÐÑо клÑÑевое Ñлово Ð¼Ð¾Ð¶ÐµÑ Ð¸ÑполÑзоваÑÑÑÑ ÑолÑко Ñ ÐºÐ»ÑÑевÑм Ñловомinclude.table: ÑаблиÑÑ; ÑабоÑÐ°ÐµÑ ÐºÐ°Ðº паÑамеÑÑ-t/--tableили-T/--exclude-table.table_and_children: ÑаблиÑÑ, вклÑÑаÑÑие лÑбÑе ÑекÑии или доÑеÑние ÑаблиÑÑ Ð² иеÑаÑÑ Ð¸Ð¸ наÑледованиÑ; ÑабоÑÐ°ÐµÑ ÐºÐ°Ðº паÑамеÑÑ--table-and-childrenили--exclude-table-and-children.table_data: ÑаблиÑнÑе даннÑе лÑбÑÑ ÑаблиÑ, ÑооÑвеÑÑÑвÑÑÑиÑÑаблонÑ; ÑабоÑÐ°ÐµÑ ÐºÐ°Ðº паÑамеÑÑ--exclude-table-data. ÐÑо клÑÑевое Ñлово Ð¼Ð¾Ð¶ÐµÑ Ð¸ÑполÑзоваÑÑÑÑ ÑолÑко Ñ ÐºÐ»ÑÑевÑм Ñловомexclude.table_data_and_children: ÑаблиÑнÑе даннÑе лÑбÑÑ ÑаблиÑ, ÑооÑвеÑÑÑвÑÑÑиÑÑаблонÑ, а Ñакже лÑбÑе ÑекÑии или доÑеÑние ÑаблиÑÑ Ð² иеÑаÑÑ Ð¸Ð¸ наÑледованиÑ; ÑабоÑÐ°ÐµÑ ÐºÐ°Ðº паÑамеÑÑ--exclude-table-data-and-children. ÐÑо клÑÑевое Ñлово Ð¼Ð¾Ð¶ÐµÑ Ð¸ÑполÑзоваÑÑÑÑ ÑолÑко Ñ ÐºÐ»ÑÑевÑм Ñловомexclude.schema: ÑÑ ÐµÐ¼Ñ; ÑабоÑÐ°ÐµÑ ÐºÐ°Ðº паÑамеÑÑ-n/--schemaили-N/--exclude-schema.
СÑÑоки, наÑинаÑÑиеÑÑ Ñ
#, ÑÑиÑаÑÑÑÑ ÐºÐ¾Ð¼Ð¼ÐµÐ½ÑаÑиÑми и игноÑиÑÑÑÑÑÑ. ÐомменÑаÑии Ñакже могÑÑ ÑазмеÑаÑÑÑÑ Ð¿Ð¾Ñле ÑÑÑоки Ñ Ñаблоном обÑекÑа. ÐÑÑÑÑе ÑÑÑоки Ñакже игноÑиÑÑÑÑÑÑ. См. Ñаздел Ð¨Ð°Ð±Ð»Ð¾Ð½Ñ Ð¿Ð¾Ð¸Ñка Ð´Ð»Ñ Ð¸Ð½ÑоÑмаÑии о Ñом, как пÑименÑÑÑ ÑкÑаниÑование в ÑÐ°Ð±Ð»Ð¾Ð½Ð°Ñ .ÐÑимеÑÑ Ñайлов пÑÐ¸Ð²ÐµÐ´ÐµÐ½Ñ Ð½Ð¸Ð¶Ðµ в ÐÑимеÑÑ.
--if-existsÐÑполÑзоваÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ
DROP ... IF EXISTSÐ´Ð»Ñ ÑÐ´Ð°Ð»ÐµÐ½Ð¸Ñ Ð¾Ð±ÑекÑов в Ñежиме--clean. ÐÑи ÑÑом возможнÑе оÑибки «does not exist» (не ÑÑÑеÑÑвÑеÑ) не вÑводÑÑÑÑ. ÐÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð½ÐµÐ´ÐµÐ¹ÑÑвиÑелен без ÑказаниÑ--clean.--include-foreign-data=ÑÑоÑонний_ÑеÑвеÑÐÑгÑÑзиÑÑ Ð´Ð°Ð½Ð½Ñе вÑÐµÑ ÑÑоÑÐ¾Ð½Ð½Ð¸Ñ ÑÐ°Ð±Ð»Ð¸Ñ Ñо ÑÑоÑоннего ÑеÑвеÑа, Ð¸Ð¼Ñ ÐºÐ¾ÑоÑого ÑооÑвеÑÑÑвÑÐµÑ ÑаблонÑ
ÑÑоÑонний_ÑеÑвеÑ. ÐÐ»Ñ Ð²ÑгÑÑзки даннÑÑ Ñ Ð½ÐµÑколÑÐºÐ¸Ñ ÑÑоÑÐ¾Ð½Ð½Ð¸Ñ ÑеÑвеÑов паÑамеÑÑ--include-foreign-dataможно иÑполÑзоваÑÑ Ð½ÐµÑколÑко Ñаз. Ð ÑÐ¾Ð¼Ñ Ð¶Ðµ, знаÑениеÑÑоÑонний_ÑеÑвеÑинÑеÑпÑеÑиÑÑеÑÑÑ ÐºÐ°Ðº Ñаблон, ÑоглаÑно пÑавилам, иÑполÑзÑемÑм командами\dÑÑилиÑÑ psql (Ñм. Ð¨Ð°Ð±Ð»Ð¾Ð½Ñ Ð¿Ð¾Ð¸Ñка). ÐоÑÑÐ¾Ð¼Ñ Ð½ÐµÑколÑко ÑÑоÑÐ¾Ð½Ð½Ð¸Ñ ÑеÑвеÑов можно Ñакже вÑбÑаÑÑ, иÑполÑзÑÑ Ð² Ñаблоне ÑÐ¸Ð¼Ð²Ð¾Ð»Ñ Ð¿Ð¾Ð´ÑÑановки. Ðогда иÑполÑзÑÑÑÑÑ ÑÐ¸Ð¼Ð²Ð¾Ð»Ñ Ð¿Ð¾Ð´ÑÑановки, Ñаблон лÑÑÑе ÑкÑаниÑоваÑÑ ÐºÐ°Ð²ÑÑками, ÑÑÐ¾Ð±Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð½Ð°Ñ Ð¾Ð±Ð¾Ð»Ð¾Ñка ÐС не инÑеÑпÑеÑиÑовала Ð¸Ñ Ð¿Ð¾-ÑÐ²Ð¾ÐµÐ¼Ñ (Ñм. ÐÑимеÑÑ Ð½Ð¸Ð¶Ðµ). ÐдинÑÑвенное оÑлиÑие Ð¾Ñ Ð²ÑÑеÑпомÑнÑÑÑÑ Ð¿Ñавил â Ñаблон не Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¿ÑÑÑÑм.ÐÑимеÑание
ÐÑполÑзование знаков подÑÑановки в
--include-foreign-dataÐ¼Ð¾Ð¶ÐµÑ Ð¿ÑивеÑÑи к доÑÑÑÐ¿Ñ Ðº Ð½ÐµÐ¿Ð¾Ð´Ñ Ð¾Ð´ÑÑим ÑÑоÑонним ÑеÑвеÑам. ÐÑоме Ñого, Ð´Ð»Ñ Ð±ÐµÐ·Ð¾Ð¿Ð°Ñного иÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ ÑÑого паÑамеÑÑа Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾ ÑбедиÑÑÑÑ, ÑÑо Ñ Ñказанного ÑеÑвеÑа еÑÑÑ Ð´Ð¾Ð²ÐµÑеннÑй владелеÑ.ÐÑимеÑание
Ðогда иÑполÑзÑеÑÑÑ Ð¿Ð°ÑамеÑÑ
--include-foreign-data, pg_dump не пÑовеÑÑÐµÑ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾ÑÑÑ Ð·Ð°Ð¿Ð¸Ñи в ÑÑоÑоннÑÑ ÑаблиÑÑ. Таким обÑазом, не гаÑанÑиÑÑеÑÑÑ, ÑÑо вÑгÑÑÐ¶ÐµÐ½Ð½Ð°Ñ ÑÑоÑоннÑÑ ÑаблиÑа Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ ÑÑпеÑно воÑÑÑановлена.--insertsÐÑгÑÑжаÑÑ Ð´Ð°Ð½Ð½Ñе ÑÐ°Ð±Ð»Ð¸Ñ Ð² виде команд
INSERTвмеÑÑоCOPY. СкоÑоÑÑÑ Ð²Ð¾ÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð¿Ñи ÑÑом знаÑиÑелÑно ÑнизиÑÑÑ, но даннÑй ваÑÐ¸Ð°Ð½Ñ Ð¾Ð¿Ñавдан, когда загÑÑжаÑÑ Ð´Ð°Ð½Ð½Ñе нÑжно не в Postgres Pro. ÐÑи ÑÑом в ÑлÑÑае ÐºÐ°ÐºÐ¸Ñ -либо оÑибок пÑи загÑÑзке даннÑÑ Ð±ÑдÑÑ Ð¿Ð¾ÑеÑÑÐ½Ñ ÑолÑко ÑÑÑокиINSERT, где возникли оÑибки, но не вÑÑ ÑодеÑжимое ÑаблиÑÑ. ÐамеÑÑÑе, ÑÑо воÑÑÑановление Ð¼Ð¾Ð¶ÐµÑ Ð¿ÑовалиÑÑÑÑ Ð¿Ð¾Ð»Ð½Ð¾ÑÑÑÑ, еÑли Ñ ÑаблиÑÑ Ð¸Ð·Ð¼ÐµÐ½Ñн поÑÑдок ÑÑолбÑов. Ð Ñакой ÑиÑÑаÑии можно иÑполÑзоваÑÑ Ð¿Ð°ÑамеÑÑ--column-inserts, Ð´Ð»Ñ ÐºÐ¾ÑоÑого поÑÑдок ÑÑолбÑов не важен, но он ÑабоÑÐ°ÐµÑ ÐµÑÑ Ð¼ÐµÐ´Ð»ÐµÐ½Ð½ÐµÐµ.--load-via-partition-rootÐÑи вÑгÑÑзке даннÑÑ Ð´Ð»Ñ ÑекÑии ÑаблиÑÑ Ð²ÑводиÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ
COPYилиINSERT, ÑÑÑлаÑÑиеÑÑ Ð½Ð° коÑневÑÑ ÑаблиÑÑ Ð² иеÑаÑÑ Ð¸Ð¸ ÑекÑиониÑованиÑ, а не на ÑÑÑ ÑекÑиÑ. Ð ÑезÑлÑÑаÑе пÑи загÑÑзке даннÑÑ Ð¿Ð¾Ð´Ñ Ð¾Ð´ÑÑÐ°Ñ ÑекÑÐ¸Ñ Ð±ÑÐ´ÐµÑ Ð²ÑбиÑаÑÑÑÑ Ð·Ð°Ð½Ð¾Ð²Ð¾ Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð¹ ÑÑÑоки. ÐÑо Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¿Ð¾Ð»ÐµÐ·Ð½Ð¾ пÑи воÑÑÑановлении даннÑÑ , когда на Ñелевом ÑеÑвеÑе ÑÑÑоки не вÑегда попадаÑÑ Ð² Ñе же ÑекÑии, в коÑоÑÑÑ Ð¾Ð½Ð¸ Ð½Ð°Ñ Ð¾Ð´Ð¸Ð»Ð¸ÑÑ Ð½Ð° иÑÑ Ð¾Ð´Ð½Ð¾Ð¼. ÐÑо возможно, напÑимеÑ, когда ÑÑÐ¾Ð»Ð±ÐµÑ ÑекÑиониÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð¸Ð¼ÐµÐµÑ ÑекÑÑовÑй Ñип и в двÑÑ ÑиÑÑÐµÐ¼Ð°Ñ Ð¿Ð¾-ÑÐ°Ð·Ð½Ð¾Ð¼Ñ Ð¾Ð¿Ñеделено пÑавило ÑоÑÑиÑовки, по коÑоÑÐ¾Ð¼Ñ ÑпоÑÑдоÑиваеÑÑÑ ÑÑÐ¾Ñ ÑÑолбеÑ.--lock-wait-timeout=вÑемÑ_ожиданиÑÐе ждаÑÑ Ð±ÐµÑконеÑно полÑÑÐµÐ½Ð¸Ñ ÑазделÑемÑÑ Ð±Ð»Ð¾ÐºÐ¸Ñовок ÑÐ°Ð±Ð»Ð¸Ñ Ð² наÑале пÑоÑедÑÑÑ Ð²ÑгÑÑзки. ÐмеÑÑо ÑÑого вÑдаÑÑ Ð¾ÑибкÑ, еÑли не ÑдаÑÑÑÑ Ð·Ð°Ð±Ð»Ð¾ÐºÐ¸ÑоваÑÑ ÑаблиÑÑ Ð·Ð° Ñказанное
вÑемÑ_ожиданиÑ. ÐÑо вÑÐµÐ¼Ñ Ð¼Ð¾Ð¶Ð½Ð¾ задаÑÑ Ð² лÑбом из ÑоÑмаÑов, пÑинимаемÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¾Ð¹SET statement_timeout. (ÐопÑÑÑимÑе ÑоÑмаÑÑ Ð·Ð°Ð²Ð¸ÑÑÑ Ð¾Ñ Ð²ÐµÑÑии ÑеÑвеÑа, вÑгÑÑжаÑÑего даннÑе, но колиÑеÑÑво миллиÑекÑнд в виде Ñелого ÑиÑла пÑинимаÑÑ Ð²Ñе веÑÑии.)--no-commentsÐе вÑгÑÑжаÑÑ ÐºÐ¾Ð¼Ð¼ÐµÐ½ÑаÑии.
--no-publicationsÐе вÑгÑÑжаÑÑ Ð¿ÑбликаÑии.
--no-security-labelsÐе вÑгÑÑжаÑÑ Ð¼ÐµÑки безопаÑноÑÑи.
--no-subscriptionsÐе вÑгÑÑжаÑÑ Ð¿Ð¾Ð´Ð¿Ð¸Ñки.
--no-syncÐо ÑмолÑаниÑ
pg_dumpждÑÑ, пока вÑе ÑÐ°Ð¹Ð»Ñ Ð½Ðµ бÑдÑÑ Ð½Ð°Ð´Ñжно запиÑÐ°Ð½Ñ Ð½Ð° диÑк. С даннÑм паÑамеÑÑомpg_dumpзавеÑÑаеÑÑÑ Ð½ÐµÐ¼ÐµÐ´Ð»ÐµÐ½Ð½Ð¾, Ñо еÑÑÑ Ð²ÑполнÑеÑÑÑ Ð±ÑÑÑÑее, но в ÑлÑÑае неожиданного ÑÐ±Ð¾Ñ Ð¾Ð¿ÐµÑаÑионной ÑиÑÑÐµÐ¼Ñ Ð²ÑгÑÑженнÑе даннÑе могÑÑ Ð¾ÐºÐ°Ð·Ð°ÑÑÑÑ Ð¸ÑпоÑÑеннÑми. ÐообÑе ÑÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð¿ÑедназнаÑен пÑежде вÑего Ð´Ð»Ñ ÑеÑÑиÑованиÑ, Ð´Ð»Ñ Ð¿ÑоизводÑÑвенной ÑÑÐµÐ´Ñ Ð¾Ð½ не Ð¿Ð¾Ð´Ñ Ð¾Ð´Ð¸Ñ.--no-table-access-methodÐе вÑводиÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ Ð´Ð»Ñ Ð²ÑбоÑа ÑаблиÑнÑÑ Ð¼ÐµÑодов доÑÑÑпа. ÐÑи воÑÑÑановлении вÑе обÑекÑÑ Ð±ÑдÑÑ ÑоздаваÑÑÑÑ Ñ ÑаблиÑнÑм меÑодом доÑÑÑпа, вÑбиÑаемÑм по ÑмолÑаниÑ.
ÐÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð¸Ð³Ð½Ð¾ÑиÑÑеÑÑÑ, когда даннÑе вÑгÑÑжаÑÑÑÑ Ð² аÑÑ Ð¸Ð²Ð½ÑÑ ÑоÑмаÑÐ°Ñ (не в ÑекÑÑовом). ÐÐ»Ñ ÑÐ°ÐºÐ¸Ñ ÑоÑмаÑов даннÑй паÑамеÑÑ Ð¼Ð¾Ð¶Ð½Ð¾ ÑказаÑÑ Ð¿Ñи вÑзове
pg_restore.--no-tablespacesÐе ÑоÑмиÑоваÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ Ð´Ð»Ñ ÑÐºÐ°Ð·Ð°Ð½Ð¸Ñ ÑаблиÑнÑÑ Ð¿ÑоÑÑÑанÑÑв. ÐÑи воÑÑÑановлении вÑе обÑекÑÑ Ð±ÑдÑÑ ÑоздаваÑÑÑÑ Ð² ÑаблиÑном пÑоÑÑÑанÑÑве по ÑмолÑаниÑ.
ÐÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð¸Ð³Ð½Ð¾ÑиÑÑеÑÑÑ, когда даннÑе вÑгÑÑжаÑÑÑÑ Ð² аÑÑ Ð¸Ð²Ð½ÑÑ ÑоÑмаÑÐ°Ñ (не в ÑекÑÑовом). ÐÐ»Ñ ÑÐ°ÐºÐ¸Ñ ÑоÑмаÑов даннÑй паÑамеÑÑ Ð¼Ð¾Ð¶Ð½Ð¾ ÑказаÑÑ Ð¿Ñи вÑзове
pg_restore.--no-toast-compressionÐе вÑдаваÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ, задаÑÑие меÑÐ¾Ð´Ñ ÑжаÑÐ¸Ñ TOAST. С ÑÑим Ñказанием вÑе ÑÑолбÑÑ Ð±ÑдÑÑ Ð²Ð¾ÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ñ Ñ Ð¼ÐµÑодом ÑжаÑиÑ, вÑбÑаннÑм по ÑмолÑаниÑ.
--no-unlogged-table-dataÐе вÑгÑÑжаÑÑ Ð´Ð°Ð½Ð½Ñе нежÑÑналиÑÑемÑÑ ÑÐ°Ð±Ð»Ð¸Ñ Ð¸ поÑледоваÑелÑноÑÑей. ÐаÑамеÑÑ Ð½Ðµ влиÑÐµÑ Ð½Ð° вÑгÑÑÐ·ÐºÑ Ð¾Ð¿Ñеделений ÑÐ°Ð±Ð»Ð¸Ñ Ð¸ поÑледоваÑелÑноÑÑей, он ÑолÑко подавлÑÐµÑ Ð²Ñвод Ð¸Ñ ÑодеÑжимого. С ÑезеÑвного ÑеÑвеÑа ÑодеÑжимое нежÑÑналиÑÑемÑÑ ÑÐ°Ð±Ð»Ð¸Ñ Ð¸ поÑледоваÑелÑноÑÑей не вÑгÑÑжаеÑÑÑ Ð½Ð¸ÐºÐ¾Ð³Ð´Ð°.
--on-conflict-do-nothingÐобавиÑÑ Ð¿ÑедложениÑ
ON CONFLICT DO NOTHINGв командÑINSERT. ÐÑо Ñказание допÑÑкаеÑÑÑ ÑолÑко пÑи вÑбоÑе Ñежима--inserts,--column-insertsили--rows-per-insert.--quote-all-identifiersÐÑинÑдиÑелÑно ÑкÑаниÑоваÑÑ Ð²Ñе иденÑиÑикаÑоÑÑ. ÐÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ ÑекомендÑеÑÑÑ Ð¿Ñи вÑгÑÑзке базÑ, когда оÑÐ½Ð¾Ð²Ð½Ð°Ñ Ð²ÐµÑÑÐ¸Ñ ÑеÑвеÑа PostgreSQL, Ñ ÐºÐ¾ÑоÑого вÑгÑÑжаеÑÑÑ Ð±Ð°Ð·Ð°, оÑлиÑаеÑÑÑ Ð¾Ñ Ð²ÐµÑÑии pg_dump, или когда вÑгÑÑÐ¶ÐµÐ½Ð½Ð°Ñ ÐºÐ¾Ð¿Ð¸Ñ Ð¿ÑедназнаÑена Ð´Ð»Ñ Ð·Ð°Ð³ÑÑзки на ÑеÑвеÑе Ñ Ð´ÑÑгой оÑновной веÑÑией. Ðо ÑмолÑÐ°Ð½Ð¸Ñ pg_dump ÑкÑаниÑÑÐµÑ ÑолÑко Ñе иденÑиÑикаÑоÑÑ, коÑоÑÑе ÑвлÑÑÑÑÑ Ð·Ð°ÑезеÑвиÑованнÑми Ñловами в ÑобÑÑвенной оÑновной веÑÑии. Ðногда ÑÑо пÑÐ¸Ð²Ð¾Ð´Ð¸Ñ Ðº пÑоблемам ÑовмеÑÑимоÑÑи Ñ ÑеÑвеÑами дÑÑÐ³Ð¸Ñ Ð²ÐµÑÑий, в коÑоÑÑÑ Ð¼Ð½Ð¾Ð¶ÐµÑÑво заÑезеÑвиÑованнÑÑ Ñлов Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð½ÐµÑколÑко дÑÑгим. ÐÑименение паÑамеÑÑа
--quote-all-identifiersпÑедоÑвÑаÑÐ°ÐµÑ Ð¿Ð¾Ð´Ð¾Ð±Ð½Ñе пÑоблемÑ, Ñеной ÑÑ ÑдÑÐµÐ½Ð¸Ñ ÑиÑаемоÑÑи ÑкÑипÑа Ñ Ð²ÑгÑÑженнÑми даннÑми.--restrict-key=restrict_keyÐÑполÑзоваÑÑ Ð¿ÑедоÑÑавленнÑÑ ÑÑÑÐ¾ÐºÑ Ð² каÑеÑÑве клÑÑа
\restrictpsql в вÑводе вÑгÑÑзки. ÐадаÑÑ ÑÑо можно ÑолÑко Ð´Ð»Ñ Ð²ÑгÑÑзок в неÑекÑÑовом ÑоÑмаÑе, напÑимеÑ, еÑли Ð´Ð»Ñ Ð¿Ð°ÑамеÑÑа--formatзадано знаÑениеplainили паÑамеÑÑа Ð½ÐµÑ Ð²Ð¾Ð²Ñе. ÐÑли клÑÑ Ð¾Ð³ÑаниÑÐµÐ½Ð¸Ñ Ð½Ðµ Ñказан, pg_dumpall ÑгенеÑиÑÑÐµÑ ÑлÑÑайнÑй клÑÑ. ÐлÑÑи могÑÑ ÑодеÑжаÑÑ ÑолÑко бÑквеннÑе и ÑиÑÑовÑе ÑимволÑ.ÐÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð² оÑновном пÑедназнаÑен Ð´Ð»Ñ Ñелей ÑеÑÑиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð¸ дÑÑÐ³Ð¸Ñ ÑÑенаÑиев, ÑÑебÑÑÑÐ¸Ñ Ð¿Ð¾Ð²ÑоÑÑÑÑегоÑÑ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð²Ñвода (напÑимеÑ, Ð´Ð»Ñ ÑÑÐ°Ð²Ð½ÐµÐ½Ð¸Ñ Ñайлов вÑгÑÑзки). ÐаÑамеÑÑ Ð½Ðµ ÑекомендÑеÑÑÑ Ð¸ÑполÑзоваÑÑ Ð² повÑедневной ÑабоÑе, поÑколÑкÑ, Ð·Ð½Ð°Ñ Ð¿ÑинÑÐ¸Ð¿Ñ ÑÑнкÑиониÑÐ¾Ð²Ð°Ð½Ð¸Ñ ÐºÐ»ÑÑа, злоÑмÑÑленник Ð¼Ð¾Ð¶ÐµÑ Ð²Ð½ÐµÐ´ÑиÑÑ Ð¿ÑоизволÑнÑй код, коÑоÑÑй бÑÐ´ÐµÑ Ð²Ñполнен на маÑине пÑи помоÑи psql и вÑвода вÑгÑÑзки.
--rows-per-insert=ÑиÑло_ÑÑÑокÐÑгÑÑжаÑÑ Ð´Ð°Ð½Ð½Ñе ÑÐ°Ð±Ð»Ð¸Ñ Ð² виде команд
INSERTвмеÑÑоCOPY. Рданном паÑамеÑÑе задаÑÑÑÑ Ð¼Ð°ÐºÑималÑное ÑиÑло ÑÑÑок Ð´Ð»Ñ Ð¾Ð´Ð½Ð¾Ð¹ командÑINSERT. Указанное в нÑм знаÑение должно бÑÑÑ Ð±Ð¾Ð»ÑÑе 0. ÐÑи ÑÑом в ÑлÑÑае ÐºÐ°ÐºÐ¸Ñ -либо оÑибок пÑи загÑÑзке даннÑÑ Ð±ÑдÑÑ Ð¿Ð¾ÑеÑÑÐ½Ñ ÑолÑко ÑÑÑокиINSERT, где возникли оÑибки, но не вÑÑ ÑодеÑжимое ÑаблиÑÑ.--section=имÑ_ÑекÑииÐÑгÑÑжаÑÑ Ð»Ð¸ÑÑ ÑказаннÑÑ ÑекÑиÑ. ÐÐ¼Ñ ÑекÑии Ð¼Ð¾Ð¶ÐµÑ Ð¿ÑинимаÑÑ Ð·Ð½Ð°ÑениÑ
pre-data,dataилиpost-data. ÐÐ»Ñ Ð²ÑгÑÑзки неÑколÑÐºÐ¸Ñ ÑекÑий, паÑамеÑÑ Ð¼Ð¾Ð¶Ð½Ð¾ иÑполÑзоваÑÑ Ð½ÐµÑколÑко Ñаз в одной команде. Ðо ÑмолÑÐ°Ð½Ð¸Ñ ÑезеÑвиÑÑÑÑÑÑ Ð²Ñе ÑекÑии.СекÑиÑ
dataÑодеÑÐ¶Ð¸Ñ Ð½ÐµÐ¿Ð¾ÑÑедÑÑвенно даннÑе ÑаблиÑ, болÑÑÐ¸Ñ Ð¾Ð±ÑекÑов и знаÑÐµÐ½Ð¸Ñ Ð¿Ð¾ÑледоваÑелÑноÑÑей. СекÑиÑpost-dataÑодеÑÐ¶Ð¸Ñ Ð¾Ð¿ÑÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ð¸Ð½Ð´ÐµÐºÑов, ÑÑиггеÑов, пÑавил и огÑаниÑений (кÑоме огÑаниÑений пÑовеÑки, ÑозданнÑÑ Ð±ÐµÐ·NOT VALID). СекÑиÑpre-dataвклÑÑÐ°ÐµÑ Ð¾Ð¿ÑÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ð¾ÑÑалÑнÑÑ ÑлеменÑов.--serializable-deferrableÐÑполÑзоваÑÑ Ð¿Ñи вÑгÑÑзке ÑÑанзакÑÐ¸Ñ Ñ ÑÑовнем изолÑÑии
serializableÐ´Ð»Ñ Ð¿Ð¾Ð»ÑÑÐµÐ½Ð¸Ñ Ñнимка, ÑоглаÑованного Ñ Ð¿Ð¾ÑледÑÑÑими ÑоÑÑоÑниÑми базÑ. ÐÑавда Ð´Ð»Ñ ÑÑого нÑжно вÑждаÑÑ Ð¼Ð¾Ð¼ÐµÐ½Ñ, когда в поÑоке ÑÑанзакÑий Ð½ÐµÑ Ð°Ð½Ð¾Ð¼Ð°Ð»Ð¸Ð¹, и поÑÑÐ¾Ð¼Ñ Ð½ÐµÑ ÑиÑка, ÑÑо вÑгÑÑзка завеÑÑиÑÑÑ Ð½ÐµÑдаÑно, и ÑиÑка оÑкаÑа дÑÑÐ³Ð¸Ñ ÑÑанзакÑий Ñ Ð¾Ñибкойserialization_failure. Ðолее подÑобно изолÑÑÐ¸Ñ ÑÑанзакÑий и ÑпÑавление одновÑеменнÑм доÑÑÑпом опиÑÑваеÑÑÑ Ð² Ðлаве 13.ÐаÑамеÑÑ Ð½Ðµ оÑобо полезен в ÑлÑÑаÑÑ , когда ÑÑебÑеÑÑÑ Ð²Ð¾ÑÑÑановление поÑле ÑбоÑ. Ðн полезен Ð´Ð»Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ ÐºÐ¾Ð¿Ð¸Ð¸ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ , в коÑоÑой ÑоÑмиÑÑÑÑÑÑ Ð¾ÑÑÑÑÑ Ð¸ вÑполнÑÑÑÑÑ Ð´ÑÑгие опеÑаÑии ÑÑениÑ, в Ñо вÑÐµÐ¼Ñ ÐºÐ°Ðº в оÑновной базе пÑодолжаеÑÑÑ Ð¾Ð±ÑÑÐ½Ð°Ñ ÑабоÑа. Ðез ÑÑого паÑамеÑÑа вÑгÑÑзка Ð¼Ð¾Ð¶ÐµÑ ÑодеÑжаÑÑ Ð½Ðµ ÑелоÑÑное ÑоÑÑоÑние Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ . ÐапÑимеÑ, еÑли иÑполÑзÑеÑÑÑ Ð¿Ð°ÐºÐµÑÐ½Ð°Ñ Ð¾Ð±ÑабоÑка, ÑÑаÑÑÑ Ð¿Ð°ÐºÐµÑа Ð¼Ð¾Ð¶ÐµÑ Ð¾ÑÑажаÑÑÑÑ ÐºÐ°Ðº завеÑÑÑннÑй, в Ñо вÑÐµÐ¼Ñ ÐºÐ°Ðº в вÑгÑÑзке бÑдÑÑ Ð½Ðµ вÑе ÑлеменÑÑ Ð¿Ð°ÐºÐµÑа.
ÐаÑамеÑÑ Ð½Ðµ бÑÐ´ÐµÑ Ð²Ð»Ð¸ÑÑÑ Ð½Ð° ÑезÑлÑÑаÑ, еÑли во вÑÐµÐ¼Ñ Ð·Ð°Ð¿ÑÑка pg_dump Ð½ÐµÑ Ð°ÐºÑивнÑÑ ÑÑанзакÑий на ÑÑение-запиÑÑ. ÐÑли же акÑивнÑе ÑÑанзакÑии ÑÑениÑ-запиÑи еÑÑÑ, Ñо наÑало вÑгÑÑзки Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¾Ñложено на неопÑеделÑннÑй пеÑиод вÑемени. ÐоÑле Ñого как вÑгÑÑзка наÑалаÑÑ, пÑоизводиÑелÑноÑÑÑ Ñ ÑÑим клÑÑом или без него бÑÐ´ÐµÑ Ð¾Ð´Ð¸Ð½Ð°ÐºÐ¾Ð²Ð¾Ð¹.
--snapshot=имÑ_ÑнимкаÐÑполÑзоваÑÑ Ð·Ð°Ð´Ð°Ð½Ð½Ñй ÑÐ¸Ð½Ñ ÑоннÑй Ñнимок пÑи вÑгÑÑзке даннÑÑ Ð¸Ð· Ð±Ð°Ð·Ñ (за подÑобноÑÑÑми обÑаÑиÑеÑÑ Ðº ТаблиÑе 9.98).
ÐÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð¿Ð¾Ð»ÐµÐ·ÐµÐ½, когда ÑÑебÑеÑÑÑ ÑÐ¸Ð½Ñ ÑонизиÑоваÑÑ Ð²ÑгÑÑжаемÑе даннÑе Ñо ÑлоÑом логиÑеÑкой ÑепликаÑии (Ñм. ÐлавÑ 47) или Ñ Ð´ÑÑгим одновÑеменнÑм ÑеанÑом.
Ð ÑлÑÑае Ñ Ð¿Ð°ÑаллелÑной вÑгÑÑзкой бÑÐ´ÐµÑ Ð¸ÑполÑзоваÑÑÑÑ Ð¸Ð¼Ñ Ñнимка, опÑеделÑнное ÑÑим паÑамеÑÑом; новÑй Ñнимок не бÑÐ´ÐµÑ Ñделан.
--strict-namesТÑебÑеÑ, ÑÑÐ¾Ð±Ñ ÐºÐ°Ð¶Ð´Ð¾Ð¼Ñ ÑÐ°Ð±Ð»Ð¾Ð½Ñ ÑаÑÑиÑÐµÐ½Ð¸Ñ (
-e/--extension), ÑÑ ÐµÐ¼Ñ (-n/--schema) и ÑаблиÑÑ (-t/--table) ÑооÑвеÑÑÑвовал минимÑм один обÑÐµÐºÑ (ÑаÑÑиÑение/ÑÑ ÐµÐ¼Ð°/ÑаблиÑа) в вÑгÑÑжаемой базе даннÑÑ . ÐÑо Ñакже оÑноÑиÑÑÑ Ð¸ к ÑилÑÑÑам, иÑполÑзÑемÑм в паÑамеÑÑе--filter. ÐамеÑÑÑе, ÑÑо еÑли не Ð½Ð°Ñ Ð¾Ð´Ð¸ÑÑÑ Ð²Ð¾Ð¾Ð±Ñе ни одного Ñакого обÑекÑа Ð´Ð»Ñ Ð·Ð°Ð´Ð°Ð½Ð½ÑÑ Ñаблонов, pg_dump вÑдаÑÑ Ð¾ÑÐ¸Ð±ÐºÑ Ð¸ без клÑÑа--strict-names.ÐÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð½Ðµ дейÑÑвÑÐµÑ Ð½Ð° клÑÑи
--exclude-extension,-N/--exclude-schema,-T/--exclude-tableили--exclude-table-data. ÐÑли не Ð½Ð°Ñ Ð¾Ð´ÑÑÑÑ Ð¾Ð±ÑекÑÑ, ÑооÑвеÑÑÑвÑÑÑие Ñаблонам иÑклÑÑениÑ, ÑÑо не ÑÑиÑаеÑÑÑ Ð¾Ñибкой.--sync-method=меÑодСо знаÑением
fsync(по ÑмолÑаниÑ)pg_dump --format=directoryбÑÐ´ÐµÑ ÑекÑÑÑивно оÑкÑÑваÑÑ Ð¸ ÑÐ¸Ð½Ñ ÑонизиÑоваÑÑ Ð²Ñе ÑÐ°Ð¹Ð»Ñ Ð² каÑалоге аÑÑ Ð¸Ð²Ð°.Ð Linux возможен ваÑианÑ
syncfs, когда Ð¾Ñ ÐС ÑÑебÑеÑÑÑ ÑÐ¸Ð½Ñ ÑонизиÑоваÑÑ Ñеликом каждÑÑ Ð¸Ð· ÑайловÑÑ ÑиÑÑем, ÑодеÑжаÑÐ¸Ñ ÐºÐ°Ñалог аÑÑ Ð¸Ð²Ð°. Ðолее подÑобно оÑобенноÑÑи иÑполÑзованиÑsyncfsопиÑÐ°Ð½Ñ Ð² recovery_init_sync_method.ÐÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð½Ðµ дейÑÑвÑÐµÑ Ð² Ñежиме
--no-syncили еÑли знаÑение паÑамеÑÑа--formatнеdirectory.--table-and-children=ÑаблонÐÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð´ÐµÐ»Ð°ÐµÑ Ñо же, ÑÑо
-t/--table, кÑоме Ñого, ÑÑо Ñ Ð½Ð¸Ð¼ Ñакже вклÑÑаÑÑÑÑ Ð»ÑбÑе наÑледÑемÑе доÑеÑние ÑаблиÑÑ Ð¸Ð»Ð¸ ÑекÑии ÑаблиÑ, ÑооÑвеÑÑÑвÑÑÑиÑÑаблонÑ.--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ÐаÑамеÑÑÑ Ð¿Ð¾Ð´ÐºÐ»ÑÑÐµÐ½Ð¸Ñ Ð¿Ð¾ ÑмолÑаниÑ.
PG_COLORÐÑбиÑÐ°ÐµÑ Ð²Ð°ÑÐ¸Ð°Ð½Ñ Ð¸ÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ ÑвеÑа в диагноÑÑиÑеÑÐºÐ¸Ñ ÑообÑениÑÑ . ÐозможнÑе знаÑениÑ:
always(вÑегда),auto(авÑомаÑиÑеÑки) иnever(никогда).
ÐÑа ÑÑилиÑа, как и болÑÑинÑÑво дÑÑÐ³Ð¸Ñ ÑÑÐ¸Ð»Ð¸Ñ Postgres Pro, Ñакже иÑполÑзÑÐµÑ Ð¿ÐµÑеменнÑе ÑÑедÑ, поддеÑживаемÑе libpq (Ñм. Раздел 32.15).
ÐиагноÑÑика #
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.
Так как pg_dump пÑименÑеÑÑÑ Ð´Ð»Ñ Ð¿ÐµÑеноÑа даннÑÑ
в новÑе веÑÑии Postgres Pro, пÑедполагаеÑÑÑ, ÑÑо вÑвод pg_dump можно загÑÑзиÑÑ Ð½Ð° ÑеÑÐ²ÐµÑ Postgres Pro более новой веÑÑии, Ñем веÑÑÐ¸Ñ pg_dump. pg_dump Ð¼Ð¾Ð¶ÐµÑ Ñакже вÑгÑÑжаÑÑ Ð´Ð°Ð½Ð½Ñе ÑеÑвеÑов Postgres Pro более ÑÑаÑÑÑ
веÑÑий, Ñем его ÑобÑÑвеннаÑ. (РнаÑÑоÑÑее вÑÐµÐ¼Ñ Ð¿Ð¾Ð´Ð´ÐµÑживаÑÑÑÑ Ð²ÐµÑÑии, наÑÐ¸Ð½Ð°Ñ Ñ PostgreSQL 9.2.) Ðднако ÑÑилиÑа pg_dump не Ð¼Ð¾Ð¶ÐµÑ Ð²ÑгÑÑжаÑÑ Ð´Ð°Ð½Ð½Ñе Ñ ÑеÑвеÑов Postgres Pro более новÑÑ
оÑновнÑÑ
веÑÑий; она не бÑÐ´ÐµÑ Ð´Ð°Ð¶Ðµ пÑÑаÑÑÑÑ Ð´ÐµÐ»Ð°ÑÑ ÑÑо, во избежание некоÑÑекÑной вÑгÑÑзки. Также не гаÑанÑиÑÑеÑÑÑ, ÑÑо вÑвод pg_dump Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð·Ð°Ð³ÑÑжен на ÑеÑвеÑе более ÑÑаÑой оÑновной веÑÑии â даже еÑли даннÑе бÑли вÑгÑÑÐ¶ÐµÐ½Ñ Ñ ÑеÑвеÑа Ñой же веÑÑии. ÐÐ»Ñ Ð·Ð°Ð³ÑÑзки Ñакого Ñайла на ÑÑаÑом ÑеÑвеÑе Ð¼Ð¾Ð¶ÐµÑ Ð¿Ð¾ÑÑебоваÑÑÑÑ Ð²ÑÑÑнÑÑ Ð¸ÑпÑавиÑÑ Ð² нÑм ÑинÑакÑиÑ, не воÑпÑинимаемÑй ÑÑаÑой веÑÑией. ÐÐ¼ÐµÑ Ð´ÐµÐ»Ð¾ Ñ ÑазнÑми веÑÑиÑми, ÑекомендÑеÑÑÑ Ð¿ÑименÑÑÑ Ð¿Ð°ÑамеÑÑ --quote-all-identifiers, Ñак как он Ð¼Ð¾Ð¶ÐµÑ Ð¿ÑедоÑвÑаÑиÑÑ Ð¿ÑоблемÑ, возникаÑÑие пÑи изменении множеÑÑва заÑезеÑвиÑованнÑÑ
Ñлов в ÑазнÑÑ
веÑÑиÑÑ
PostgreSQL.
ÐÑгÑÑÐ¶Ð°Ñ Ð¿Ð¾Ð´Ð¿Ð¸Ñки на логиÑеÑкÑÑ ÑепликаÑиÑ, pg_dump бÑÐ´ÐµÑ Ð²ÑдаваÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ CREATE SUBSCRIPTION Ñ Ñказанием connect = false, Ñак ÑÑо пÑи воÑÑÑановлении подпиÑки не бÑдÑÑ ÑÑÑанавливаÑÑÑÑ ÑдалÑннÑе подклÑÑÐµÐ½Ð¸Ñ Ð´Ð»Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ ÑлоÑа ÑепликаÑии или Ð´Ð»Ñ Ð½Ð°ÑалÑного копиÑÐ¾Ð²Ð°Ð½Ð¸Ñ ÑаблиÑ. Таким обÑазом, вÑгÑÑженнÑе даннÑе могÑÑ Ð±ÑÑÑ Ð²Ð¾ÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ñ Ð±ÐµÐ· ÑеÑевого доÑÑÑпа к ÑдалÑннÑм ÑеÑвеÑам. ÐÐ½Ð¾Ð²Ñ Ð°ÐºÑивиÑоваÑÑ Ð¿Ð¾Ð´Ð¿Ð¸Ñки должнÑм обÑазом â задаÑа полÑзоваÑелÑ. ÐÑли задейÑÑвованнÑе ÑеÑвеÑÑ Ð¿Ð¾Ð¼ÐµÐ½ÑлиÑÑ, возможно, пÑидÑÑÑÑ ÑкоÑÑекÑиÑоваÑÑ Ð¸Ð½ÑоÑмаÑÐ¸Ñ Ð¾ подклÑÑении. Также Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ ÑмеÑÑно опÑÑÑоÑиÑÑ ÑелевÑе ÑаблиÑÑ Ð¿ÐµÑед наÑалом полного копиÑÐ¾Ð²Ð°Ð½Ð¸Ñ ÑаблиÑ. ÐÑли полÑзоваÑÐµÐ»Ñ Ð½Ð°Ð¼ÐµÑен копиÑоваÑÑ Ð¸ÑÑ
однÑе даннÑе во вÑÐµÐ¼Ñ Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ, он должен ÑоздаÑÑ ÑÐ»Ð¾Ñ Ñ Ð¿Ð°ÑамеÑÑом two_phase = false. ÐоÑле наÑалÑной ÑинÑ
ÑонизаÑии паÑамеÑÑ two_phase бÑÐ´ÐµÑ Ð°Ð²ÑомаÑиÑеÑки вклÑÑÑн подпиÑÑиком, еÑли подпиÑка изнаÑалÑно бÑла Ñоздана Ñ Ð¿Ð°ÑамеÑÑом two_phase = true.
ÐбÑÑно ÑекомендÑеÑÑÑ Ð¸ÑполÑзоваÑÑ Ð¿Ð°ÑамеÑÑ -X (--no-psqlrc) пÑи воÑÑÑановлении Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ
из ÑекÑÑового ÑкÑипÑа pg_dump, ÑÑÐ¾Ð±Ñ Ð¾Ð±ÐµÑпеÑиÑÑ ÑиÑÑÑй пÑоÑеÑÑ Ð²Ð¾ÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð¸ избежаÑÑ Ð¿Ð¾ÑенÑиалÑнÑÑ
конÑликÑов Ñ Ð½ÐµÑÑандаÑÑнÑми конÑигÑÑаÑиÑми psql.
ÐÑимеÑÑ #
ÐÑгÑÑзка Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ
mydb в Ñайл SQL-ÑкÑипÑа:
$pg_dump mydb > db.sql
ÐоÑÑÑановление из Ñанее полÑÑенного ÑкÑипÑа в ÑиÑÑÑÑ Ð±Ð°Ð·Ñ newdb:
$psql -X -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
ÐоÑÑÑановление аÑÑ Ð¸Ð²Ð° в ÑÑ Ð¶Ðµ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ , из коÑоÑой он бÑл вÑгÑÑжен, Ñ Ð¿ÑедваÑиÑелÑнÑм Ñдалением ÑекÑÑего ÑодеÑжимого ÑÑой Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ :
$pg_restore -d postgres --clean --create 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
ЧÑÐ¾Ð±Ñ Ð²ÑгÑÑзиÑÑ Ð²Ñе ÑаблиÑÑ, имена коÑоÑÑÑ
наÑинаÑÑÑÑ Ñ mytable, кÑоме ÑаблиÑÑ mytable2, ÑкажиÑе Ñайл ÑилÑÑÑа filter.txt, напÑимеÑ:
include table mytable* exclude table mytable2
$pg_dump --filter=filter.txt mydb > db.sql