pg_restore
pg_restore â воÑÑÑановиÑÑ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ Postgres Pro из Ñайла аÑÑ Ð¸Ð²Ð°, Ñозданного командой pg_dump
СинÑакÑиÑ
pg_restore [паÑамеÑÑ-подклÑÑениÑ...] [паÑамеÑÑ...] [имÑ_Ñайла]
ÐпиÑание #
УÑилиÑа pg_restore пÑедназнаÑена Ð´Ð»Ñ Ð²Ð¾ÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ Postgres Pro из аÑÑ Ð¸Ð²Ð°, Ñозданного командой pg_dump в лÑбом из не ÑекÑÑовÑÑ ÑоÑмаÑов. Ðна вÑполнÑÐµÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ, Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ñе Ð´Ð»Ñ Ð²Ð¾ÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ñого ÑоÑÑоÑÐ½Ð¸Ñ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ , в коÑоÑом база бÑла ÑÐ¾Ñ Ñанена. ÐÑи налиÑии Ñайлов аÑÑ Ð¸Ð²Ð¾Ð², pg_restore Ð¼Ð¾Ð¶ÐµÑ Ð²Ð¾ÑÑÑанавливаÑÑ Ð´Ð°Ð½Ð½Ñе избиÑаÑелÑно или даже пеÑеÑпоÑÑдоÑиÑÑ Ð¾Ð±ÑекÑÑ Ð¿ÐµÑед воÑÑÑановлением. ÐамеÑÑÑе, ÑÑо ÑазÑабоÑаннÑй Ð´Ð»Ñ Ñайлов аÑÑ Ð¸Ð²Ð° ÑоÑÐ¼Ð°Ñ Ð½Ðµ пÑивÑзан к аÑÑ Ð¸ÑекÑÑÑе.
УÑилиÑа pg_restore Ð¼Ð¾Ð¶ÐµÑ ÑабоÑаÑÑ Ð² двÑÑ ÑÐµÐ¶Ð¸Ð¼Ð°Ñ . ÐÑли ÑказÑваеÑÑÑ Ð¸Ð¼Ñ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ , pg_restore подклÑÑаеÑÑÑ Ðº ÑÑой базе даннÑÑ Ð¸ воÑÑÑÐ°Ð½Ð°Ð²Ð»Ð¸Ð²Ð°ÐµÑ ÑодеÑжимое аÑÑ Ð¸Ð²Ð° непоÑÑедÑÑвенно в неÑ. РпÑоÑивном ÑлÑÑае ÑоздаÑÑÑÑ SQL-ÑкÑÐ¸Ð¿Ñ Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð°Ð¼Ð¸, Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ñми Ð´Ð»Ñ Ð¿ÐµÑеÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ , коÑоÑÑй заÑем вÑводиÑÑÑ Ð² Ñайл или в ÑÑандаÑÑное ÑÑÑÑойÑÑво вÑвода. СÑоÑмиÑованнÑй ÑкÑÐ¸Ð¿Ñ Ð±ÑÐ´ÐµÑ Ð² ÑоÑноÑÑи ÑооÑвеÑÑÑвоваÑÑ Ð²ÑÐ²Ð¾Ð´Ñ pg_dump в пÑоÑÑом ÑекÑÑовом ÑоÑмаÑе. ÐоÑÑÐ¾Ð¼Ñ Ð½ÐµÐºÐ¾ÑоÑÑе из паÑамеÑÑов, ÑпÑавлÑÑÑÐ¸Ñ Ð²Ñводом, аналогиÑÐ½Ñ Ð¿Ð°ÑамеÑÑам pg_dump.
РазÑмееÑÑÑ, pg_restore Ð¼Ð¾Ð¶ÐµÑ Ð²Ð¾ÑÑÑановиÑÑ Ð¸Ð½ÑоÑмаÑиÑ, ÑолÑко еÑли она пÑиÑÑÑÑÑвÑÐµÑ Ð² Ñайле аÑÑ
ива, и ÑолÑко в ÑÑÑеÑÑвÑÑÑем виде. ÐапÑимеÑ, еÑли аÑÑ
ив бÑл Ñоздан Ñ Ñказанием «вÑгÑÑзиÑÑ Ð´Ð°Ð½Ð½Ñе в виде команд INSERT», pg_restore не ÑÐ¼Ð¾Ð¶ÐµÑ Ð·Ð°Ð³ÑÑзиÑÑ ÑÑи даннÑе, иÑполÑзÑÑ Ð¾Ð¿ÐµÑаÑоÑÑ COPY.
ÐÑедÑпÑеждение
ÐÑи воÑÑÑановлении вÑгÑÑзки в Ñелевой ÑоÑке вÑполнÑеÑÑÑ Ð¿ÑоизволÑнÑй код по вÑбоÑÑ ÑÑпеÑполÑзоваÑелей иÑÑ
одной ÑоÑки. ÐÐ»Ñ ÑаÑÑиÑнÑÑ
вÑгÑÑзок и ÑаÑÑиÑнÑÑ
воÑÑÑановлений Ñакого огÑаниÑÐµÐ½Ð¸Ñ Ð½ÐµÑ. ÐÑли ÑÑпеÑполÑзоваÑели иÑÑ
одной ÑоÑки не ÑвлÑÑÑÑÑ Ð´Ð¾Ð²ÐµÑеннÑми, вÑгÑÑжаемÑе ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ SQL нÑжно пÑовеÑÑÑÑ Ð¿ÐµÑед воÑÑÑановлением. ÐÑгÑÑзки в неÑекÑÑовом ÑоÑмаÑе можно пÑовеÑиÑÑ ÑеÑез паÑамеÑÑ --file pg_restore. ÐбÑаÑиÑе внимание, ÑÑо клиенÑÑ, вÑполнÑÑÑÐµÐ¼Ñ Ð²ÑгÑÑÐ·ÐºÑ Ð¸ воÑÑÑановление, не нÑжно довеÑÑÑÑ ÑÑпеÑполÑзоваÑелÑм иÑÑ
одной или Ñелевой ÑоÑки.
ÐаÑамеÑÑÑ #
УÑилиÑа pg_restore пÑÐ¸Ð½Ð¸Ð¼Ð°ÐµÑ ÑледÑÑÑие аÑгÑменÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð½Ð¾Ð¹ ÑÑÑоки.
имÑ_ÑайлаУказÑÐ²Ð°ÐµÑ ÑаÑположение воÑÑÑанавливаемого Ñайла аÑÑ Ð¸Ð²Ð° (или каÑалога, Ð´Ð»Ñ Ð°ÑÑ Ð¸Ð²Ð° в ÑоÑмаÑе каÑалога). Ðо ÑмолÑÐ°Ð½Ð¸Ñ Ð¸ÑполÑзÑеÑÑÑ ÑÑÑÑойÑÑво ÑÑандаÑÑного ввода.
-a--data-onlyÐоÑÑÑанавливаÑÑ ÑолÑко даннÑе, без ÑÑ ÐµÐ¼Ñ (опÑеделений даннÑÑ ). ÐÑи ÑÑом воÑÑÑанавливаÑÑÑÑ Ð´Ð°Ð½Ð½Ñе ÑаблиÑ, болÑÑие обÑекÑÑ Ð¸ знаÑÐµÐ½Ð¸Ñ Ð¿Ð¾ÑледоваÑелÑноÑÑей, имеÑÑиеÑÑ Ð² аÑÑ Ð¸Ð²Ðµ.
Флаг Ð¿Ð¾Ñ Ð¾Ð¶ на
--section=data, но по иÑÑоÑиÑеÑким пÑиÑинам не ÑавнознаÑен емÑ.-c--cleanÐÑежде Ñем воÑÑÑанавливаÑÑ Ð¾Ð±ÑекÑÑ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ , вÑполниÑе командÑ
DROPÐ´Ð»Ñ Ð²ÑÐµÑ Ð²Ð¾ÑÑÑанавливаемÑÑ Ð¾Ð±ÑекÑов. ÐÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð¿Ð¾Ð»ÐµÐ·ÐµÐ½ Ð´Ð»Ñ Ð¿ÐµÑезапиÑи ÑÑÑеÑÑвÑÑÑей Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ . Ðез дополниÑелÑного ÑказаниÑ--if-existsпÑи ÑÑом могÑÑ Ð²ÑдаваÑÑÑÑ Ð±ÐµÐ·Ð²ÑеднÑе ÑообÑÐµÐ½Ð¸Ñ Ð¾Ð± оÑÐ¸Ð±ÐºÐ°Ñ , еÑли ÑÐ°ÐºÐ¸Ñ Ð¾Ð±ÑекÑов не окажеÑÑÑ Ð² Ñелевой базе даннÑÑ .-C--createСоздаÑÑ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ , пÑежде Ñем воÑÑÑанавливаÑÑ Ð´Ð°Ð½Ð½Ñе. ÐÑли Ñакже Ñказан паÑамеÑÑ
--clean, ÑдалиÑÑ Ð¸ пеÑеÑоздаÑÑ ÑелевÑÑ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ Ð¿ÐµÑед подклÑÑением к ней.С клÑÑом
--createпÑогÑамма pg_restore Ñакже воÑÑÑÐ°Ð½Ð°Ð²Ð»Ð¸Ð²Ð°ÐµÑ ÐºÐ¾Ð¼Ð¼ÐµÐ½ÑаÑий к базе даннÑÑ (еÑли он задан) и вÑе назнаÑÐµÐ½Ð¸Ñ Ð¿ÐµÑеменнÑÑ ÐºÐ¾Ð½ÑигÑÑаÑии, ÑвÑзаннÑе Ñ Ð±Ð°Ð·Ð¾Ð¹ даннÑÑ , Ñо еÑÑÑ Ð²Ñе командÑALTER DATABASE ... SET ...иALTER ROLE ... IN DATABASE ... SET ..., ÑÑÑлаÑÑиеÑÑ Ð½Ð° ÑÑÑ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ . Также воÑÑÑанавливаÑÑÑÑ Ð¿Ñава доÑÑÑпа к Ñамой базе даннÑÑ , еÑли не добавлен клÑÑ--no-acl.С ÑÑим паÑамеÑÑом база, Ð·Ð°Ð´Ð°Ð½Ð½Ð°Ñ Ð¿Ð°ÑамеÑÑом
-d, пÑименÑеÑÑÑ ÑолÑко Ð´Ð»Ñ Ð¿Ð¾Ð´ÐºÐ»ÑÑÐµÐ½Ð¸Ñ Ð¸ вÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð½Ð°ÑалÑнÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´DROP DATABASEиCREATE DATABASE. ÐÑе даннÑе воÑÑÑанавливаÑÑÑÑ Ð² Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ , Ð¸Ð¼Ñ ÐºÐ¾ÑоÑой запиÑано в аÑÑ Ð¸Ð²Ðµ.-dимÑ_бд--dbname=имÑ_бдÐодклÑÑиÑÑÑÑ Ðº базе даннÑÑ
имÑ_базÑи воÑÑÑановиÑÑ Ð´Ð°Ð½Ð½Ñе непоÑÑедÑÑвенно в неÑ. Рданном аÑгÑменÑе Ð¼Ð¾Ð¶ÐµÑ Ð·Ð°Ð´Ð°Ð²Ð°ÑÑÑÑ ÑÑÑока подклÑÑениÑ. Ð ÑÑом ÑлÑÑае паÑамеÑÑÑ Ð² ÑÑÑоке подклÑÑÐµÐ½Ð¸Ñ Ð¿ÐµÑеопÑеделÑÑÑ Ð¾Ð´Ð½Ð¾Ð¸Ð¼ÑннÑе паÑамеÑÑÑ, заданнÑе в командной ÑÑÑоке.-e--exit-on-errorÐавеÑÑаÑÑ ÑабоÑÑ Ð² ÑлÑÑае Ð²Ð¾Ð·Ð½Ð¸ÐºÐ½Ð¾Ð²ÐµÐ½Ð¸Ñ Ð¾Ñибки пÑи вÑполнении команд SQL в базе даннÑÑ . Ðо ÑмолÑÐ°Ð½Ð¸Ñ Ð¿ÑоÑеÑÑ Ð²Ð¾ÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð¿ÑодолжаеÑÑÑ, а по его оконÑании вÑдаÑÑÑÑ ÑиÑло оÑибок.
-fимÑ_Ñайла--file=имÑ_ÑайлаÐадаÑÑ Ñайл Ð´Ð»Ñ Ð²Ñвода ÑгенеÑиÑованного ÑкÑипÑа или ÑпиÑка обÑекÑов, полÑÑаемого Ñ Ð¿Ð°ÑамеÑÑом
-l. ЧÑÐ¾Ð±Ñ Ð²ÑбÑаÑÑ stdout, иÑполÑзÑйÑе-.-FÑоÑмаÑ--format=ÑоÑмаÑÐадаÑÑ ÑоÑÐ¼Ð°Ñ Ð°ÑÑ Ð¸Ð²Ð°. УказÑваÑÑ ÑоÑÐ¼Ð°Ñ Ð½ÐµÐ¾Ð±ÑзаÑелÑно, Ñак как pg_restore опÑеделÑÐµÑ ÑоÑÐ¼Ð°Ñ Ð°Ð²ÑомаÑиÑеÑки. Ðо еÑли ÑоÑÐ¼Ð°Ñ Ð·Ð°Ð´Ð°ÑÑÑÑ, допÑÑкаеÑÑÑ Ð¾Ð´Ð¸Ð½ из ÑÑÐ¸Ñ Ð²Ð°ÑианÑов:
ccustomÐÑÑ Ð¸Ð² ÑÐ¾Ñ ÑанÑн в ÑпеÑиалÑном ÑоÑмаÑе pg_dump.
ddirectoryÐÑÑ Ð¸Ð² ÑÐ¾Ñ ÑанÑн в каÑалоге.
ttarÐÑÑ Ð¸Ð² ÑÐ¾Ñ ÑанÑн в ÑоÑмаÑе
tar.
-IиндекÑ--index=индекÑÐоÑÑÑановиÑÑ Ð¾Ð¿Ñеделение ÑолÑко заданного индекÑа. Ðобавив дополниÑелÑнÑе клÑÑи
-I, можно ÑказаÑÑ Ð½ÐµÑколÑко индекÑов.-jÑиÑло-заданий--jobs=ÑиÑло-заданийÐÑполнÑÑÑ Ð½Ð°Ð¸Ð±Ð¾Ð»ÐµÐµ длиÑелÑнÑе ÑÑÐ°Ð¿Ñ pg_restore (в ÑаÑÑноÑÑи, загÑÑÐ·ÐºÑ Ð´Ð°Ð½Ð½ÑÑ , Ñоздание индекÑов или огÑаниÑений) паÑаллелÑно, иÑполÑзÑÑ Ð½ÐµÑколÑко заданий (в колиÑеÑÑве, не пÑевÑÑаÑÑем
ÑиÑло-заданий). ÐÑо позволÑÐµÑ ÐºÐ°ÑдиналÑно ÑокÑаÑиÑÑ Ð²ÑÐµÐ¼Ñ Ð²Ð¾ÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð±Ð¾Ð»ÑÑой Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ , когда ÑеÑÐ²ÐµÑ ÑабоÑÐ°ÐµÑ Ð½Ð° многопÑоÑеÑÑоÑном компÑÑÑеÑе. ÐаннÑй паÑамеÑÑ Ð¸Ð³Ð½Ð¾ÑиÑÑеÑÑÑ, когда генеÑиÑÑеÑÑÑ ÑкÑÐ¸Ð¿Ñ (Ð½ÐµÑ Ð¿ÑÑмого подклÑÑÐµÐ½Ð¸Ñ Ðº базе даннÑÑ ).Ðаждое задание вÑполнÑеÑÑÑ Ð² оÑделÑном задании или поÑоке, в завиÑимоÑÑи Ð¾Ñ Ð¾Ð¿ÐµÑаÑионной ÑиÑÑемÑ, и иÑполÑзÑÐµÑ Ð¾ÑделÑное подклÑÑение к ÑеÑвеÑÑ.
ÐпÑималÑное знаÑение ÑÑого паÑамеÑÑа завиÑÐ¸Ñ Ð¾Ñ Ð°Ð¿Ð¿Ð°ÑаÑной конÑигÑÑаÑии ÑеÑвеÑа, клиенÑа и ÑеÑи. Ð ÑаÑÑноÑÑи, Ð¸Ð¼ÐµÐµÑ Ð·Ð½Ð°Ñение колиÑеÑÑво пÑоÑеÑÑоÑнÑÑ ÑÐ´ÐµÑ Ð¸ ÑÑÑÑойÑÑво диÑкового Ñ ÑанилиÑа. РкаÑеÑÑве наÑалÑного знаÑÐµÐ½Ð¸Ñ Ð¼Ð¾Ð¶Ð½Ð¾ вÑбÑаÑÑ ÑиÑло ÑÐ´ÐµÑ Ð½Ð° ÑеÑвеÑе, но и пÑи ÑвелиÑении ÑÑого знаÑÐµÐ½Ð¸Ñ Ð²Ð¾ Ð¼Ð½Ð¾Ð³Ð¸Ñ ÑлÑÑаÑÑ Ð²Ð¾ÑÑÑановление бÑÐ´ÐµÑ Ð±ÑÑÑÑее. ÐонеÑно, пÑи ÑлиÑком болÑÑÐ¸Ñ Ð·Ð½Ð°ÑениÑÑ Ð¿ÑоизводиÑелÑноÑÑÑ ÑпадÑÑ Ð¸Ð·-за пеÑегÑÑзки.
ÐÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð¿Ð¾Ð´Ð´ÐµÑживаеÑÑÑ ÑолÑко Ñ Ð°ÑÑ Ð¸Ð²Ð¾Ð¼ в ÑпеÑиалÑном ÑоÑмаÑе или в каÑалоге. ÐÑ Ð¾Ð´Ð½Ñе даннÑе Ð´Ð¾Ð»Ð¶Ð½Ñ Ð¿Ð¾ÑÑÑпаÑÑ Ð¸Ð· обÑÑного Ñайла или каÑалога, а не из канала или ÑÑандаÑÑного ÑÑÑÑойÑÑва ввода. ÐÑоме Ñого, неÑколÑко заданий не могÑÑ Ð²ÑполнÑÑÑÑÑ Ð² ÑоÑеÑании Ñ Ð¿Ð°ÑамеÑÑом
--single-transaction.-l--listÐÑвеÑÑи оглавление аÑÑ Ð¸Ð²Ð°. ÐÑвод ÑÑой опеÑаÑии можно подаÑÑ Ð½Ð° Ð²Ñ Ð¾Ð´ ÑÑой же команде Ñ Ð¿Ð°ÑамеÑÑом
-L. УÑÑиÑе, ÑÑо когда вмеÑÑе Ñ-lпÑименÑÑÑÑÑ Ð¿Ð°ÑамеÑÑÑ ÑилÑÑÑаÑии (напÑимеÑ,-nили-t), они ÑокÑаÑаÑÑ ÑпиÑок вÑводимÑÑ Ð¾Ð±ÑекÑов.-LÑайл-ÑпиÑок--use-list=Ñайл-ÑпиÑокÐоÑÑÑановиÑÑ Ð¸Ð· аÑÑ Ð¸Ð²Ð° ÑолÑко ÑлеменÑÑ, пеÑеÑиÑленнÑе в
Ñайле-ÑпиÑке, и в Ñом поÑÑдке, в каком они идÑÑ Ð² ÑÑом Ñайле. ÐамеÑÑÑе, ÑÑо когда вмеÑÑе Ñ-LпÑименÑÑÑÑÑ Ð¿Ð°ÑамеÑÑÑ ÑилÑÑÑаÑии (напÑимеÑ,-nили-t), они дополниÑелÑно огÑаниÑиваÑÑ Ð²Ð¾ÑÑÑанавливаемÑе обÑекÑÑ.ÐаннÑй
Ñайл-ÑпиÑокобÑÑно пÑедÑÑавлÑÐµÑ Ñобой оÑÑедакÑиÑованнÑй ÑезÑлÑÑÐ°Ñ Ð¿ÑедÑдÑÑей опеÑаÑии-l. СÑÑоки в нÑм могÑÑ Ð±ÑÑÑ Ð¿ÐµÑеÑÑÐ°Ð²Ð»ÐµÐ½Ñ Ð¸Ð»Ð¸ ÑдаленÑ, а Ñакже могÑÑ Ð±ÑÑÑ Ð·Ð°ÐºÐ¾Ð¼Ð¼ÐµÐ½ÑиÑÐ¾Ð²Ð°Ð½Ñ ÑоÑкой Ñ Ð·Ð°Ð¿ÑÑой (;), добавленной в наÑале ÑÑÑоки. См. пÑимеÑÑ Ð½Ð¸Ð¶Ðµ.-nÑÑ ÐµÐ¼Ð°--schema=ÑÑ ÐµÐ¼Ð°ÐоÑÑÑановиÑÑ ÑолÑко обÑекÑÑ Ð² Ñказанной ÑÑ ÐµÐ¼Ðµ. Ðобавив дополниÑелÑнÑе клÑÑи
-n, можно ÑказаÑÑ Ð½ÐµÑколÑко ÑÑ ÐµÐ¼. ÐÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð¼Ð¾Ð¶Ð½Ð¾ ÑоÑеÑаÑÑ Ñ-t, ÑÑÐ¾Ð±Ñ Ð²Ð¾ÑÑÑановиÑÑ ÑолÑко опÑеделÑннÑÑ ÑаблиÑÑ.-NÑÑ ÐµÐ¼Ð°--exclude-schema=ÑÑ ÐµÐ¼Ð°Ðе воÑÑÑанавливаÑÑ Ð¾Ð±ÑекÑÑ Ð² Ñказанной ÑÑ ÐµÐ¼Ðµ. Ðобавив дополниÑелÑнÑе клÑÑи
-N, можно иÑклÑÑиÑÑ Ð½ÐµÑколÑко ÑÑ ÐµÐ¼.Ðогда и Ñ ÐºÐ»ÑÑом
-n, и Ñ ÐºÐ»ÑÑом-NпеÑедаÑÑÑÑ Ð¸Ð¼Ñ Ð¾Ð´Ð½Ð¾Ð¹ ÑÑ ÐµÐ¼Ñ, клÑÑ-NвÑигÑÑÐ²Ð°ÐµÑ Ð¸ ÑÑ ÐµÐ¼Ð° иÑклÑÑаеÑÑÑ.-O--no-ownerÐе генеÑиÑоваÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ, ÑÑÑанавливаÑÑие владение обÑекÑами, как в иÑÑ Ð¾Ð´Ð½Ð¾Ð¹ базе даннÑÑ . Ðо ÑмолÑаниÑ, pg_restore генеÑиÑÑÐµÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ
ALTER OWNERилиSET SESSION AUTHORIZATION, воÑÑÑанавливаÑÑие иÑÑ Ð¾Ð´Ð½ÑÑ Ð²Ð»Ð°Ð´ÐµÐ»ÑÑев ÑоздаваемÑÑ ÑлеменÑов ÑÑ ÐµÐ¼Ñ. Ðднако ÑÑи ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ Ð¼Ð¾Ð¶Ð½Ð¾ бÑÐ´ÐµÑ Ð²ÑполниÑÑ, ÑолÑко еÑли к базе даннÑÑ Ð¿ÐµÑвонаÑалÑно подклÑÑаеÑÑÑ ÑÑпеÑполÑзоваÑÐµÐ»Ñ (или полÑзоваÑелÑ, владеÑÑими вÑеми обÑекÑами в ÑкÑипÑе). ЧÑÐ¾Ð±Ñ Ð¿Ð¾Ð»ÑÑиÑÑ ÑкÑипÑ, коÑоÑÑй ÑÐ¼Ð¾Ð¶ÐµÑ Ð²Ð¾ÑÑÑановиÑÑ Ð»Ñбой подклÑÑаÑÑийÑÑ Ð¿Ð¾Ð»ÑзоваÑÐµÐ»Ñ (но пÑи ÑÑом он ÑÑÐ°Ð½ÐµÑ Ð²Ð»Ð°Ð´ÐµÐ»ÑÑем вÑÐµÑ ÑозданнÑÑ Ð¾Ð±ÑекÑов), иÑполÑзÑеÑÑÑ-O.-PимÑ-ÑÑнкÑии(Ñип-аÑгÑменÑа[, ...])--function=имÑ-ÑÑнкÑии(Ñип-аÑгÑменÑа[, ...])ÐоÑÑÑановиÑÑ ÑолÑко ÑказаннÑÑ ÑÑнкÑиÑ. ÐÑи ÑÑом важно запиÑаÑÑ Ð¸Ð¼Ñ ÑÑнкÑии и аÑгÑменÑÑ Ð² ÑоÑноÑÑи Ñак, как они ÑигÑÑиÑÑÑÑ Ð² оглавлении Ñайла аÑÑ Ð¸Ð²Ð°. Ðобавив дополниÑелÑнÑе клÑÑи
-P, можно ÑказаÑÑ Ð½ÐµÑколÑко ÑÑнкÑий.-R--no-reconnectÐаÑамеÑÑ ÑвлÑеÑÑÑ ÑÑÑаÑевÑим, но в ÑелÑÑ ÑовмеÑÑимоÑÑи еÑÑ ÑабоÑаеÑ.
-s--schema-onlyÐоÑÑÑановиÑÑ ÑолÑко ÑÑ ÐµÐ¼Ñ (опÑÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ð´Ð°Ð½Ð½ÑÑ ), без даннÑÑ , в обÑÑме, в коÑоÑом ÑлеменÑÑ ÑÑ ÐµÐ¼Ñ Ð¿ÑедÑÑÐ°Ð²Ð»ÐµÐ½Ñ Ð² аÑÑ Ð¸Ð²Ðµ.
ÐейÑÑвие паÑамеÑÑа пÑоÑивоположно дейÑÑвиÑ
--data-only. ÐÑо Ð¿Ð¾Ñ Ð¾Ð¶Ðµ на Ñказание--section=pre-data --section=post-data, но по иÑÑоÑиÑеÑким пÑиÑинам не ÑавнознаÑно емÑ.(Ðе пÑÑайÑе ÑÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ñ
--schema, где Ñлово «ÑÑ ÐµÐ¼Ð°Â» иÑполÑзÑеÑÑÑ Ð² дÑÑгом знаÑении.)-SимÑ_полÑзоваÑелÑ--superuser=имÑ_полÑзоваÑелÑÐадаÑÑ Ð¸Ð¼Ñ ÑÑпеÑполÑзоваÑелÑ, полномоÑÐ¸Ñ ÐºÐ¾ÑоÑого бÑдÑÑ Ð¸ÑполÑзоваÑÑÑÑ Ð´Ð»Ñ Ð¾ÑклÑÑÐµÐ½Ð¸Ñ ÑÑиггеÑов. ÐÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð¿ÑименÑеÑÑÑ ÑолÑко Ñ Ð¿Ð°ÑамеÑÑом
--disable-triggers.-tÑаблиÑа--table=ÑаблиÑаÐоÑÑÑановиÑÑ Ð¾Ð¿Ñеделение и/или даннÑе ÑолÑко Ñказанной ÑаблиÑÑ. Ð ÑÑом конÑекÑÑе под «ÑаблиÑей» подÑазÑмеваÑÑÑÑ Ñакже пÑедÑÑавлениÑ, маÑеÑиализованнÑе пÑедÑÑавлениÑ, поÑледоваÑелÑноÑÑи и ÑÑоÑонние ÑаблиÑÑ. ЧÑÐ¾Ð±Ñ Ð²ÑбÑаÑÑ Ð½ÐµÑколÑко ÑаблиÑ, клÑÑ
-tможно ÑказаÑÑ Ð½ÐµÑколÑко Ñаз. ÐÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð¼Ð¾Ð¶Ð½Ð¾ ÑкомбиниÑоваÑÑ Ñ-n, ÑÑÐ¾Ð±Ñ Ð²ÑбÑаÑÑ ÑаблиÑÑ(Ñ) в опÑеделÑнной ÑÑ ÐµÐ¼Ðµ.ÐÑимеÑание
Ðогда ÑказÑваеÑÑÑ
-t, pg_restore не пÑÑаеÑÑÑ Ð²Ð¾ÑÑÑанавливаÑÑ Ð¾Ð±ÑекÑÑ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ , Ð¾Ñ ÐºÐ¾ÑоÑÑÑ Ð¼Ð¾Ð³ÑÑ Ð·Ð°Ð²Ð¸ÑеÑÑ Ð²ÑбÑаннÑе ÑаблиÑÑ. Таким обÑазом, в ÑÑом ÑлÑÑае не гаÑанÑиÑÑеÑÑÑ, ÑÑо вÑгÑÑженнÑе ÑаблиÑÑ Ð±ÑдÑÑ ÑÑпеÑно воÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ñ Ð² ÑиÑÑой базе даннÑÑ .ÐÑимеÑание
ÐÑÐ¾Ñ Ñлаг дейÑÑвÑÐµÑ Ð½Ðµ ÑовÑем Ñак, как Ñлаг
-tÑÑилиÑÑ pg_dump. РнаÑÑоÑÑее вÑÐµÐ¼Ñ pg_restore не поддеÑÐ¶Ð¸Ð²Ð°ÐµÑ Ð²ÑÐ±Ð¾Ñ Ð¾Ð±ÑекÑов по маÑке, а Ñакже не позволÑÐµÑ ÑказаÑÑ Ð¸Ð¼Ñ ÑÑ ÐµÐ¼Ñ Ñ-t. Ð Ñ Ð¾ÑÑ pg_dump Ñ Ñлагом-tÑакже вÑгÑÑÐ¶Ð°ÐµÑ Ð¿Ð¾Ð´ÑинÑннÑе обÑекÑÑ (напÑимеÑ, индекÑÑ) вÑбÑаннÑÑ ÑаблиÑ, pg_restore Ñ Ñлагом-tÑакие подÑинÑннÑе обÑекÑÑ Ð½Ðµ обÑабаÑÑваеÑ.ÐÑимеÑание
РвеÑÑиÑÑ Postgres Pro до 9.6 ÑÑÐ¾Ñ Ñлаг вÑбиÑал ÑолÑко ÑаблиÑÑ, но не дÑÑгие ÑÐ¸Ð¿Ñ Ð¾ÑноÑений.
-TÑÑиггеÑ--trigger=ÑÑиггеÑÐоÑÑÑановиÑÑ ÑолÑко ÑказаннÑй ÑÑиггеÑ. Ðобавив дополниÑелÑнÑе клÑÑи
-T, можно ÑказаÑÑ Ð½ÐµÑколÑко ÑÑиггеÑов.-v--verboseÐклÑÑиÑÑ Ð¿Ð¾Ð´ÑобнÑй Ñежим. pg_restore бÑÐ´ÐµÑ Ð²ÑводиÑÑ Ð² ÑÑандаÑÑнÑй поÑок оÑибок подÑобнÑе комменÑаÑии к обÑекÑам, вклÑÑÐ°Ñ Ð²ÑÐµÐ¼Ñ Ð½Ð°Ñала и оконÑÐ°Ð½Ð¸Ñ Ð¾Ð¿ÐµÑаÑии, а Ñакже ÑообÑÐµÐ½Ð¸Ñ Ð¾ пÑогÑеÑÑе вÑполнениÑ. ÐÑли повÑоÑиÑÑ ÑÑÐ¾Ñ ÐºÐ»ÑÑ, в ÑÑандаÑÑнÑй поÑок оÑибок бÑдÑÑ Ð²ÑдаваÑÑÑÑ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸ÑелÑнÑе оÑладоÑнÑе ÑообÑениÑ.
-V--versionСообÑиÑÑ Ð²ÐµÑÑÐ¸Ñ pg_restore и завеÑÑиÑÑÑÑ.
-x--no-privileges--no-aclÐе воÑÑÑанавливаÑÑ Ð¿Ñава доÑÑÑпа (не вÑполнÑÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ GRANT/REVOKE).
-1--single-transactionÐÑоизвеÑÑи воÑÑÑановление в одной ÑÑанзакÑии (Ñо еÑÑÑ, завеÑнÑÑÑ Ð²ÑполнÑемÑе ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ Ð²
BEGIN/COMMIT). ÐÑи ÑÑом гаÑанÑиÑÑеÑÑÑ, ÑÑо либо вÑе ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ Ð±ÑдÑÑ Ð²ÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ñ ÑÑпеÑно, либо не бÑÐ´ÐµÑ Ð½Ð¸ÐºÐ°ÐºÐ¸Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ð¹. ÐÑÐ¾Ñ Ñежим подÑазÑмеваеÑ--exit-on-error.--disable-triggersÐÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð´ÐµÐ¹ÑÑвÑÐµÑ ÑолÑко пÑи вÑгÑÑзке Ð¾Ð´Ð½Ð¸Ñ Ð´Ð°Ð½Ð½ÑÑ . С ним pg_restore вÑполнÑÐµÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ, оÑклÑÑаÑÑие ÑÑиггеÑÑ Ð² ÑелевÑÑ ÑаблиÑÐ°Ñ Ð½Ð° вÑÐµÐ¼Ñ Ð²Ð¾ÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð´Ð°Ð½Ð½ÑÑ . ÐÑполÑзÑйÑе его, еÑли в ваÑÐ¸Ñ ÑаблиÑÐ°Ñ Ð¾Ð¿ÑÐµÐ´ÐµÐ»ÐµÐ½Ñ Ð¿ÑовеÑки ÑÑÑлоÑной ÑелоÑÑноÑÑи или дÑÑгие ÑÑиггеÑÑ, коÑоÑÑе Ð²Ñ Ð½Ðµ Ñ Ð¾Ñели Ð±Ñ Ð²ÑполнÑÑÑ Ð² пÑоÑеÑÑе воÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð´Ð°Ð½Ð½ÑÑ .
РнаÑÑоÑÑее вÑÐµÐ¼Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ, генеÑиÑÑемÑе Ñ
--disable-triggers, Ð´Ð¾Ð»Ð¶Ð½Ñ Ð²ÑполнÑÑÑÑ ÑÑпеÑполÑзоваÑелем. ÐоÑÑÐ¾Ð¼Ñ Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾ Ñакже задаÑÑ Ð¸Ð¼Ñ ÑÑпеÑполÑзоваÑÐµÐ»Ñ Ð² паÑамеÑÑе-Sили, ÑÑо пÑедпоÑÑиÑелÑнее, запÑÑкаÑÑ pg_restore Ð¾Ñ Ð¸Ð¼ÐµÐ½Ð¸ ÑÑпеÑполÑзоваÑÐµÐ»Ñ Postgres Pro.--enable-row-securityÐÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð¸Ð¼ÐµÐµÑ ÑмÑÑл ÑолÑко пÑи воÑÑÑановлении ÑодеÑжимого ÑаблиÑÑ, Ð´Ð»Ñ ÐºÐ¾ÑоÑой вклÑÑена заÑиÑа ÑÑÑок. Ðо ÑмолÑÐ°Ð½Ð¸Ñ pg_restore ÑÑÑÐ°Ð½Ð°Ð²Ð»Ð¸Ð²Ð°ÐµÑ Ð´Ð»Ñ row_security знаÑение off Ð´Ð»Ñ ÑвеÑенноÑÑи, ÑÑо в ÑаблиÑе воÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ñ Ð²Ñе даннÑе. ÐÑли Ñ Ð¿Ð¾Ð»ÑзоваÑÐµÐ»Ñ Ð½ÐµÐ´Ð¾ÑÑаÑоÑно пÑав Ð´Ð»Ñ Ð¾Ð±Ñ Ð¾Ð´Ð° заÑиÑÑ ÑÑÑок, вÑдаÑÑÑÑ Ð¾Ñибка. ÐÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ ÑказÑÐ²Ð°ÐµÑ pg_restore ÑÑÑановиÑÑ Ð² row_security знаÑение on, ÑÑÐ¾Ð±Ñ Ð¿Ð¾Ð»ÑзоваÑÐµÐ»Ñ Ð¼Ð¾Ð³ попÑÑаÑÑÑÑ Ð²Ð¾ÑÑÑановиÑÑ ÑодеÑжимое ÑаблиÑÑ Ñ Ð²ÐºÐ»ÑÑÑнной заÑиÑой ÑÑÑок. Ðднако и пÑи ÑÑом возможна оÑибка, еÑли полÑзоваÑÐµÐ»Ñ Ð½Ðµ бÑÐ´ÐµÑ Ð¸Ð¼ÐµÑÑ Ð¿Ñава добавлÑÑÑ Ð² ÑÑÑ ÑаблиÑÑ Ð²ÑгÑÑженнÑе ÑÑÑоки даннÑÑ .
ÐамеÑÑÑе, ÑÑо в наÑÑоÑÑее вÑÐµÐ¼Ñ Ð´Ð»Ñ ÑÑого ÑÑебÑеÑÑÑ, ÑÑÐ¾Ð±Ñ Ð²ÑгÑÑзка вÑполнÑлаÑÑ Ð² Ñежиме
INSERT, Ñак какCOPY FROMне поддеÑÐ¶Ð¸Ð²Ð°ÐµÑ Ð·Ð°ÑиÑÑ ÑÑÑок.--if-existsÐÑполÑзоваÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ
DROP ... IF EXISTSÐ´Ð»Ñ ÑÐ´Ð°Ð»ÐµÐ½Ð¸Ñ Ð¾Ð±ÑекÑов в Ñежиме--clean. ÐÑи ÑÑом возможнÑе оÑибки «does not exist» (не ÑÑÑеÑÑвÑеÑ) не вÑводÑÑÑÑ. ÐÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð½ÐµÐ´ÐµÐ¹ÑÑвиÑелен без ÑказаниÑ--clean.--no-commentsÐе вÑводиÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ, воÑÑÑанавливаÑÑие комменÑаÑии, даже еÑли они ÑодеÑжаÑÑÑ Ð² аÑÑ Ð¸Ð²Ðµ.
--no-data-for-failed-tablesÐо ÑмолÑÐ°Ð½Ð¸Ñ Ð´Ð°Ð½Ð½Ñе воÑÑÑанавливаÑÑÑÑ Ð´Ð°Ð¶Ðµ пÑи оÑибке ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ ÑаблиÑÑ (напÑимеÑ, когда она Ñже ÑÑÑеÑÑвÑеÑ). С ÑÑим паÑамеÑÑом даннÑе в Ñаком ÑлÑÑае не воÑÑÑанавливаÑÑÑÑ. ÐÑо поведение полезно, еÑли в Ñелевой ÑаблиÑе Ñже ÑодеÑжаÑÑÑ Ð½ÑжнÑе даннÑе. ÐапÑимеÑ, вÑпомогаÑелÑнÑе ÑаблиÑÑ Ð´Ð»Ñ ÑаÑÑиÑений Postgres Pro (в ÑаÑÑноÑÑи, PostGIS) могÑÑ Ð±ÑÑÑ Ñже заполненÑ; ÑÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð¿Ð¾Ð·Ð²Ð¾Ð»ÑÐµÑ Ð¿ÑедоÑвÑаÑиÑÑ Ð´ÑблиÑование или загÑÑÐ·ÐºÑ ÑÑÑаÑевÑÐ¸Ñ Ð´Ð°Ð½Ð½ÑÑ Ð² ÑÑи ÑаблиÑÑ.
ÐÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð´ÐµÐ¹ÑÑвÑÐµÑ ÑолÑко пÑи воÑÑÑановлении непоÑÑедÑÑвенно в Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ (не пÑи генеÑаÑии SQL-ÑкÑипÑа).
--no-publicationsÐе вÑводиÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ, воÑÑÑанавливаÑÑие пÑбликаÑии, даже еÑли они ÑодеÑжаÑÑÑ Ð² аÑÑ Ð¸Ð²Ðµ.
--no-security-labelsÐе вÑводиÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ, воÑÑÑанавливаÑÑие меÑки безопаÑноÑÑи, даже еÑли они ÑодеÑжаÑÑÑ Ð² аÑÑ Ð¸Ð²Ðµ.
--no-subscriptionsÐе вÑводиÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ, воÑÑÑанавливаÑÑие подпиÑки, даже еÑли они ÑодеÑжаÑÑÑ Ð² аÑÑ Ð¸Ð²Ðµ.
--no-table-access-methodÐе вÑводиÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ Ð´Ð»Ñ ÑÐºÐ°Ð·Ð°Ð½Ð¸Ñ ÑаблиÑнÑÑ Ð¼ÐµÑодов доÑÑÑпа. ÐÑи воÑÑÑановлении вÑе обÑекÑÑ Ð±ÑдÑÑ ÑоздаваÑÑÑÑ Ñ ÑаблиÑнÑм меÑодом доÑÑÑпа, вÑбиÑаемÑм по ÑмолÑаниÑ.
--no-tablespacesÐе ÑоÑмиÑоваÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ Ð´Ð»Ñ ÑÐºÐ°Ð·Ð°Ð½Ð¸Ñ ÑаблиÑнÑÑ Ð¿ÑоÑÑÑанÑÑв. ÐÑи воÑÑÑановлении вÑе обÑекÑÑ Ð±ÑдÑÑ ÑоздаваÑÑÑÑ Ð² ÑаблиÑном пÑоÑÑÑанÑÑве по ÑмолÑаниÑ.
--restrict-key=restrict_keyÐÑполÑзоваÑÑ Ð¿ÑедоÑÑавленнÑÑ ÑÑÑÐ¾ÐºÑ Ð² каÑеÑÑве клÑÑа
\restrictpsql в вÑводе вÑгÑÑзки. ÐадаÑÑ ÑÑо можно ÑолÑко Ð´Ð»Ñ Ð²Ñвода ÑкÑипÑа SQL, напÑимеÑ, Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ Ð¿Ð°ÑамеÑÑа--file. ÐÑли клÑÑ Ð¾Ð³ÑаниÑÐµÐ½Ð¸Ñ Ð½Ðµ Ñказан, pg_dumpall ÑгенеÑиÑÑÐµÑ ÑлÑÑайнÑй клÑÑ. ÐлÑÑи могÑÑ ÑодеÑжаÑÑ ÑолÑко бÑквеннÑе и ÑиÑÑовÑе ÑимволÑ.ÐÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð² оÑновном пÑедназнаÑен Ð´Ð»Ñ Ñелей ÑеÑÑиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð¸ дÑÑÐ³Ð¸Ñ ÑÑенаÑиев, ÑÑебÑÑÑÐ¸Ñ Ð¿Ð¾Ð²ÑоÑÑÑÑегоÑÑ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð²Ñвода (напÑимеÑ, Ð´Ð»Ñ ÑÑÐ°Ð²Ð½ÐµÐ½Ð¸Ñ Ñайлов вÑгÑÑзки). ÐаÑамеÑÑ Ð½Ðµ ÑекомендÑеÑÑÑ Ð¸ÑполÑзоваÑÑ Ð² повÑедневной ÑабоÑе, поÑколÑкÑ, Ð·Ð½Ð°Ñ Ð¿ÑинÑÐ¸Ð¿Ñ ÐµÐ³Ð¾ ÑÑнкÑиониÑованиÑ, злоÑмÑÑленник Ð¼Ð¾Ð¶ÐµÑ Ð²Ð½ÐµÐ´ÑиÑÑ Ð¿ÑоизволÑнÑй код, коÑоÑÑй бÑÐ´ÐµÑ Ð²Ñполнен на маÑине пÑи помоÑи psql и вÑвода вÑгÑÑзки.
--section=Ð¸Ð¼Ñ ÑекÑииÐоÑÑÑановиÑÑ ÑолÑко ÑказаннÑй Ñаздел. РкаÑеÑÑве имени Ñаздела можно задаÑÑ
pre-data,dataилиpost-data. Указав ÑÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð½ÐµÐ¾Ð´Ð½Ð¾ÐºÑаÑно, можно вÑбÑаÑÑ Ð½ÐµÑколÑко Ñазделов. Ðо ÑмолÑÐ°Ð½Ð¸Ñ Ð²Ð¾ÑÑÑанавливаÑÑÑÑ Ð²Ñе ÑазделÑ.Раздел «data» ÑодеÑÐ¶Ð¸Ñ ÑобÑÑвенно даннÑе ÑÐ°Ð±Ð»Ð¸Ñ Ð¸ опÑÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ð±Ð¾Ð»ÑÑÐ¸Ñ Ð¾Ð±ÑекÑов. Ð Ñазделе «post-data» ÑодеÑжаÑÑÑ Ð¾Ð¿ÑÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ð¸Ð½Ð´ÐµÐºÑов, ÑÑиггеÑов, пÑавил и огÑаниÑений (кÑоме оÑделÑно пÑовеÑÑемÑÑ ). Раздел «pre-data» ÑодеÑÐ¶Ð¸Ñ Ð²Ñе оÑÑалÑнÑе опÑеделениÑ.
--strict-namesТÑебÑеÑ, ÑÑÐ¾Ð±Ñ ÐºÐ°Ð¶Ð´Ð¾Ð¼Ñ ÑÐºÐ°Ð·Ð°Ð½Ð¸Ñ ÑÑ ÐµÐ¼Ñ (
-n/--schema) и ÑаблиÑÑ (-t/--table) ÑооÑвеÑÑÑвовала минимÑм одна ÑÑ ÐµÐ¼Ð°/ÑаблиÑа в Ñайле, коÑоÑÑй бÑÐ´ÐµÑ Ð²Ð¾ÑÑÑановлен.--use-set-session-authorizationÐÑводиÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ
SET SESSION AUTHORIZATION, ÑооÑвеÑÑÑвÑÑÑие ÑÑандаÑÑÑ, вмеÑÑоALTER OWNER, Ð´Ð»Ñ Ð½Ð°Ð·Ð½Ð°ÑÐµÐ½Ð¸Ñ Ð²Ð»Ð°Ð´ÐµÐ»ÑÑев обÑекÑов. Ð ÑезÑлÑÑаÑе вÑгÑÑженнÑй ÑкÑÐ¸Ð¿Ñ Ð±ÑÐ´ÐµÑ Ð±Ð¾Ð»ÐµÐµ ÑÑандаÑÑизиÑованнÑм, но Ð¼Ð¾Ð¶ÐµÑ Ð½Ðµ воÑÑÑановиÑÑÑÑ ÐºÐ¾ÑÑекÑно, в завиÑимоÑÑи Ð¾Ñ Ð¸ÑÑоÑии обÑекÑов.-?--helpÐоказаÑÑ ÑпÑÐ°Ð²ÐºÑ Ð¿Ð¾ аÑгÑменÑам командной ÑÑÑоки pg_restore и завеÑÑиÑÑÑÑ.
pg_restore Ñакже пÑÐ¸Ð½Ð¸Ð¼Ð°ÐµÑ Ð² каÑеÑÑве паÑамеÑÑов ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ ÑледÑÑÑие аÑгÑменÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð½Ð¾Ð¹ ÑÑÑоки:
-hÑеÑвеÑ--host=ÑеÑвеÑУказÑÐ²Ð°ÐµÑ Ð¸Ð¼Ñ ÐºÐ¾Ð¼Ð¿ÑÑÑеÑа, на коÑоÑом ÑабоÑÐ°ÐµÑ ÑеÑвеÑ. ÐÑли знаÑение наÑинаеÑÑÑ Ñ ÐºÐ¾Ñой ÑеÑÑÑ, оно опÑеделÑÐµÑ ÐºÐ°Ñалог Unix-ÑокеÑа. ÐнаÑение по ÑмолÑÐ°Ð½Ð¸Ñ Ð±ÐµÑÑÑÑÑ Ð¸Ð· пеÑеменной окÑÑжениÑ
PGHOST, еÑли она ÑÑÑановлена. РпÑоÑивном ÑлÑÑае вÑполнÑеÑÑÑ Ð¿Ð¾Ð´ÐºÐ»ÑÑение к Unix-ÑокеÑÑ.-pпоÑÑ--port=поÑÑУказÑÐ²Ð°ÐµÑ TCP-поÑÑ Ð¸Ð»Ð¸ ÑаÑÑиÑение Ñайла локалÑного Unix-ÑокеÑа, ÑеÑез коÑоÑÑй ÑеÑÐ²ÐµÑ Ð¿ÑÐ¸Ð½Ð¸Ð¼Ð°ÐµÑ Ð¿Ð¾Ð´ÐºÐ»ÑÑениÑ. ÐнаÑение по ÑмолÑÐ°Ð½Ð¸Ñ Ð¾Ð¿ÑеделÑеÑÑÑ Ð¿ÐµÑеменной окÑÑжениÑ
PGPORT, еÑли она ÑÑÑановлена, либо ÑиÑлом, заданнÑм пÑи компилÑÑии.-UимÑ_полÑзоваÑелÑ--username=имÑ_полÑзоваÑелÑÐÐ¼Ñ Ð¿Ð¾Ð»ÑзоваÑелÑ, под коÑоÑÑм пÑоизводиÑÑÑ Ð¿Ð¾Ð´ÐºÐ»ÑÑение.
-w--no-passwordÐе вÑдаваÑÑ Ð·Ð°Ð¿ÑÐ¾Ñ Ð½Ð° ввод паÑолÑ. ÐÑли ÑеÑÐ²ÐµÑ ÑÑебÑÐµÑ Ð°ÑÑенÑиÑикаÑÐ¸Ñ Ð¿Ð¾ паÑÐ¾Ð»Ñ Ð¸ паÑÐ¾Ð»Ñ Ð½Ðµ доÑÑÑпен Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ Ð´ÑÑÐ³Ð¸Ñ ÑÑедÑÑв, ÑÐ°ÐºÐ¸Ñ ÐºÐ°Ðº Ñайл
.pgpass, попÑÑка ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ð½Ðµ ÑдаÑÑÑÑ. ÐÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¿Ð¾Ð»ÐµÐ·ÐµÐ½ в пакеÑнÑÑ Ð·Ð°Ð´Ð°Ð½Ð¸ÑÑ Ð¸ ÑкÑипÑÐ°Ñ , где Ð½ÐµÑ Ð¿Ð¾Ð»ÑзоваÑелÑ, коÑоÑÑй Ð²Ð²Ð¾Ð´Ð¸Ñ Ð¿Ð°ÑолÑ.-W--passwordÐÑинÑдиÑелÑно запÑаÑиваÑÑ Ð¿Ð°ÑÐ¾Ð»Ñ Ð¿ÐµÑед подклÑÑением к базе даннÑÑ .
ÐÑо неÑÑÑеÑÑвеннÑй паÑамеÑÑ, Ñак как pg_restore запÑаÑÐ¸Ð²Ð°ÐµÑ Ð¿Ð°ÑÐ¾Ð»Ñ Ð°Ð²ÑомаÑиÑеÑки, еÑли ÑеÑÐ²ÐµÑ Ð¿ÑовеÑÑÐµÑ Ð¿Ð¾Ð´Ð»Ð¸Ð½Ð½Ð¾ÑÑÑ Ð¿Ð¾ паÑолÑ. Ðднако ÑÑÐ¾Ð±Ñ Ð¿Ð¾Ð½ÑÑÑ ÑÑо, pg_restore лиÑний Ñаз подклÑÑаеÑÑÑ Ðº ÑеÑвеÑÑ. ÐоÑÑÐ¾Ð¼Ñ Ð¸Ð½Ð¾Ð³Ð´Ð° Ð¸Ð¼ÐµÐµÑ ÑмÑÑл ввеÑÑи
-W, ÑÑÐ¾Ð±Ñ Ð¸ÑклÑÑиÑÑ ÑÑÑ Ð½ÐµÐ½ÑжнÑÑ Ð¿Ð¾Ð¿ÑÑÐºÑ Ð¿Ð¾Ð´ÐºÐ»ÑÑениÑ.--role=Ð¸Ð¼Ñ ÑолиÐадаÑÑ Ð¸Ð¼Ñ Ñоли, коÑоÑÐ°Ñ Ð±ÑÐ´ÐµÑ Ð¾ÑÑÑеÑÑвлÑÑÑ Ð²Ð¾ÑÑÑановление. ÐолÑÑив ÑÑо имÑ, pg_restore вÑполниÑ
SET ROLEимÑ_ÑолипоÑле подклÑÑÐµÐ½Ð¸Ñ Ðº базе даннÑÑ . ÐÑо полезно, когда пÑÐ¾Ñ Ð¾Ð´ÑÑий пÑовеÑÐºÑ Ð¿Ð¾Ð»ÑзоваÑÐµÐ»Ñ (ÑказаннÑй в-U) не Ð¸Ð¼ÐµÐµÑ Ð¿Ñав, Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼ÑÑ Ð´Ð»Ñ pg_restore, но Ð¼Ð¾Ð¶ÐµÑ Ð¿ÐµÑеклÑÑиÑÑÑÑ Ð½Ð° ÑолÑ, наделÑннÑÑ ÑÑими пÑавами. РнекоÑоÑÑÑ Ð¾ÐºÑÑжениÑÑ Ð¿Ñавила запÑеÑаÑÑ Ð¿Ð¾Ð´ÐºÐ»ÑÑаÑÑÑÑ Ðº ÑеÑвеÑÑ Ð½ÐµÐ¿Ð¾ÑÑедÑÑвенно ÑÑпеÑполÑзоваÑелÑ, и ÑÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð¿Ð¾Ð·Ð²Ð¾Ð»ÑÐµÑ Ð²ÑполниÑÑ Ð²Ð¾ÑÑÑановление, не наÑÑÑÐ°Ñ Ð¸Ñ .
ÐеÑеменнÑе окÑÑжениÑ
PGHOSTPGOPTIONSPGPORTPGUSERÐаÑамеÑÑÑ Ð¿Ð¾Ð´ÐºÐ»ÑÑÐµÐ½Ð¸Ñ Ð¿Ð¾ ÑмолÑаниÑ
PG_COLORÐÑбиÑÐ°ÐµÑ Ð²Ð°ÑÐ¸Ð°Ð½Ñ Ð¸ÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ ÑвеÑа в диагноÑÑиÑеÑÐºÐ¸Ñ ÑообÑениÑÑ . ÐозможнÑе знаÑениÑ:
always(вÑегда),auto(авÑомаÑиÑеÑки) иnever(никогда).
Ðак и болÑÑинÑÑво дÑÑгиÑ
ÑÑÐ¸Ð»Ð¸Ñ Postgres Pro, ÑÑа ÑÑилиÑа Ñакже иÑполÑзÑÐµÑ Ð¿ÐµÑеменнÑе ÑÑедÑ, поддеÑживаемÑе libpq (Ñм. Раздел 33.15). Ðднако она не ÑÑиÑÑÐ²Ð°ÐµÑ PGDATABASE, когда Ð¸Ð¼Ñ Ð±Ð°Ð·Ñ Ð½Ðµ Ñказано.
ÐиагноÑÑика #
Ðогда Ñ Ð¿Ð°ÑамеÑÑом -d ÑÑÑанавливаеÑÑÑ Ð¿ÑÑмое подклÑÑение к базе даннÑÑ
, pg_restore вÑполнÑÐµÑ Ð¾Ð±ÑÑнÑе опеÑаÑоÑÑ SQL. ÐÑи ÑÑом пÑименÑÑÑÑÑ Ð²Ñе ÑвойÑÑва подклÑÑÐµÐ½Ð¸Ñ Ð¿Ð¾ ÑмолÑÐ°Ð½Ð¸Ñ Ð¸ пеÑеменнÑе окÑÑжениÑ, коÑоÑÑе иÑполÑзÑÐµÑ ÐºÐ»Ð¸ÐµÐ½ÑÑÐºÐ°Ñ Ð±Ð¸Ð±Ð»Ð¸Ð¾Ñека libpq. ÐÑли Ð²Ñ ÑÑалкиваеÑеÑÑ Ñ Ð¿Ñоблемами пÑи запÑÑке pg_restore, ÑбедиÑеÑÑ Ð² Ñом, ÑÑо Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе полÑÑиÑÑ Ð¸Ð½ÑоÑмаÑÐ¸Ñ Ð¸Ð· Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ
, иÑполÑзÑÑ, напÑÐ¸Ð¼ÐµÑ psql.
ÐÑимеÑÐ°Ð½Ð¸Ñ #
ÐÑли в ваÑей инÑÑаллÑÑии база даннÑÑ
template1 ÑодеÑÐ¶Ð¸Ñ ÐºÐ°ÐºÐ¸Ðµ-либо дополнениÑ, важно ÑбедиÑÑÑÑ Ð² Ñом, ÑÑо вÑвод pg_restore загÑÑжаеÑÑÑ Ð² дейÑÑвиÑелÑно пÑÑÑÑÑ Ð±Ð°Ð·Ñ; инаÑе вÑ, ÑкоÑее вÑего, полÑÑиÑе оÑибки из-за дÑблиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð¾Ð¿Ñеделений ÑоздаваемÑÑ
обÑекÑов. ЧÑÐ¾Ð±Ñ Ð¿Ð¾Ð»ÑÑиÑÑ Ð¿ÑÑÑÑÑ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ
без дополниÑелÑнÑÑ
обÑекÑов, вÑбеÑиÑе в каÑеÑÑве Ñаблона template0, а не template1, напÑÐ¸Ð¼ÐµÑ Ñак:
CREATE DATABASE foo WITH TEMPLATE template0;
ÐгÑаниÑÐµÐ½Ð¸Ñ pg_restore опиÑÐ°Ð½Ñ Ð½Ð¸Ð¶Ðµ.
ÐÑи воÑÑÑановлении даннÑÑ Ð² Ñже ÑÑÑеÑÑвÑÑÑие ÑаблиÑÑ Ñ Ð¿Ð°ÑамеÑÑом
--disable-triggers, pg_restore вÑполнÑÐµÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ, оÑклÑÑаÑÑие ÑÑиггеÑÑ Ð² полÑзоваÑелÑÑÐºÐ¸Ñ ÑаблиÑÐ°Ñ Ð´Ð¾ Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð´Ð°Ð½Ð½ÑÑ , а заÑем, поÑле Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð´Ð°Ð½Ð½ÑÑ , вÑполнÑÐµÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ, Ñнова вклÑÑаÑÑие ÑÑи ÑÑиггеÑÑ. ÐÑли воÑÑÑановление пÑеÑвÑÑÑÑ Ð² ÑеÑедине, ÑиÑÑемнÑе каÑалоги могÑÑ Ð¾ÐºÐ°Ð·Ð°ÑÑÑÑ Ð² некоÑÑекÑном ÑоÑÑоÑнии.УÑилиÑа pg_restore не ÑпоÑобна воÑÑÑанавливаÑÑ Ð±Ð¾Ð»ÑÑие обÑекÑÑ Ð¸Ð·Ð±Ð¸ÑаÑелÑно; напÑимеÑ, ÑолÑко Ð´Ð»Ñ Ð¾Ð¿ÑеделÑнной ÑаблиÑÑ. ÐÑли аÑÑ Ð¸Ð² ÑодеÑÐ¶Ð¸Ñ Ð±Ð¾Ð»ÑÑие обÑекÑÑ, они бÑдÑÑ Ð²Ð¾ÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ñ Ð²Ñе, либо не бÑдÑÑ Ð²Ð¾ÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ñ Ð½Ð¸ÐºÐ°ÐºÐ¸Ðµ (еÑли они бÑли иÑклÑÑÐµÐ½Ñ Ð¿Ð°ÑамеÑÑами
-L,-tи Ñ. п.).
Также обÑаÑиÑеÑÑ Ðº докÑменÑаÑии pg_dump, ÑÑÐ¾Ð±Ñ ÑзнаÑÑ Ð¾ ÑвÑзаннÑÑ Ð¾Ð³ÑаниÑениÑÑ pg_dump.
ÐоÑле воÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð¸Ð¼ÐµÐµÑ ÑмÑÑл запÑÑÑиÑÑ ANALYZE Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð¹ воÑÑÑановленной ÑаблиÑÑ, ÑÑÐ¾Ð±Ñ Ð¾Ð¿ÑимизаÑÐ¾Ñ Ð¿Ð¾Ð»ÑÑил акÑÑалÑнÑÑ ÑÑаÑиÑÑикÑ; за дополниÑелÑнÑми ÑведениÑми обÑаÑиÑеÑÑ Ðº ÐодÑазделÑ 23.1.3 и ÐодÑазделÑ 23.1.6.
ÐÑимеÑÑ #
ÐÑедположим, ÑÑо Ð¼Ñ Ð²ÑгÑÑзили Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ
mydb в Ñайл ÑпеÑиалÑного ÑоÑмаÑа:
$pg_dump -Fc mydb > db.dump
ÐÑ Ð¼Ð¾Ð¶ÐµÐ¼ ÑдалиÑÑ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ Ð¸ воÑÑÑановиÑÑ ÐµÑ Ð¸Ð· копии:
$dropdb mydb$pg_restore -C -d postgres db.dump
РаÑгÑменÑе -d можно ÑказаÑÑ Ð»ÑбÑÑ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ
, ÑÑÑеÑÑвÑÑÑÑÑ Ð² клаÑÑеÑе; pg_restore иÑполÑзÑÐµÑ ÐµÑ, ÑолÑко ÑÑÐ¾Ð±Ñ Ð²ÑполниÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ CREATE DATABASE Ð´Ð»Ñ Ð±Ð°Ð·Ñ mydb. С паÑамеÑÑом -C даннÑе вÑегда воÑÑÑанавливаÑÑÑÑ Ð² базÑ, Ð¸Ð¼Ñ ÐºÐ¾ÑоÑой запиÑано в Ñайле аÑÑ
ива.
ÐоÑÑÑановиÑÑ Ð´Ð°Ð½Ð½Ñе в новÑÑ Ð±Ð°Ð·Ñ newdb можно Ñак:
$createdb -T template0 newdb$pg_restore -d newdb db.dump
ÐбÑаÑиÑе внимание, Ð¼Ñ Ð½Ðµ иÑполÑзÑем паÑамеÑÑ -C, а вмеÑÑо ÑÑого подклÑÑаемÑÑ Ð½ÐµÐ¿Ð¾ÑÑедÑÑвенно к базе, в коÑоÑÑÑ Ñ
оÑим воÑÑÑановиÑÑ Ð´Ð°Ð½Ð½Ñе. Также замеÑÑÑе, ÑÑо Ð¼Ñ ÑоздаÑм Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ
из Ñаблона template0, а не template1, ÑÑÐ¾Ð±Ñ Ð¸Ð·Ð½Ð°ÑалÑно она бÑла гаÑанÑиÑованно пÑÑÑой.
ЧÑÐ¾Ð±Ñ Ð¿ÐµÑеÑпоÑÑдоÑиÑÑ ÑлеменÑÑ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ , ÑнаÑала Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾ полÑÑиÑÑ Ð¾Ð³Ð»Ð°Ð²Ð»ÐµÐ½Ð¸Ðµ аÑÑ Ð¸Ð²Ð°:
$pg_restore -l db.dump > db.list
Файл Ð¾Ð³Ð»Ð°Ð²Ð»ÐµÐ½Ð¸Ñ ÑодеÑÐ¶Ð¸Ñ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²Ð¾Ðº и по одной ÑÑÑоке Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ ÑлеменÑа, напÑимеÑ:
; ; Archive created at Mon Sep 14 13:55:39 2009 ; dbname: DBDEMOS ; TOC Entries: 81 ; Compression: 9 ; Dump Version: 1.10-0 ; Format: CUSTOM ; Integer: 4 bytes ; Offset: 8 bytes ; Dumped from database version: 8.3.5 ; Dumped by pg_dump version: 8.3.8 ; ; ; Selected TOC Entries: ; 3; 2615 2200 SCHEMA - public pasha 1861; 0 0 COMMENT - SCHEMA public pasha 1862; 0 0 ACL - public pasha 317; 1247 17715 TYPE public composite pasha 319; 1247 25899 DOMAIN public domain0 pasha
С ÑоÑки Ñ Ð·Ð°Ð¿ÑÑой наÑинаÑÑÑÑ ÐºÐ¾Ð¼Ð¼ÐµÐ½ÑаÑии, а ÑиÑло в наÑале ÑÑÑоки обознаÑÐ°ÐµÑ Ð²Ð½ÑÑÑенний иденÑиÑикаÑоÑ, назнаÑаемÑй ÐºÐ°Ð¶Ð´Ð¾Ð¼Ñ ÑлеменÑÑ Ð² аÑÑ Ð¸Ð²Ðµ.
СÑÑоки в ÑÑом Ñайле можно закомменÑиÑоваÑÑ, ÑдалиÑÑ Ð¸Ð»Ð¸ пеÑемеÑÑиÑÑ. ÐапÑимеÑ, ÑпиÑок:
10; 145433 TABLE map_resolutions postgres ;2; 145344 TABLE species postgres ;4; 145359 TABLE nt_header postgres 6; 145402 TABLE species_records postgres ;8; 145416 TABLE ss_old postgres
можно пеÑедаÑÑ ÑÑилиÑе pg_restore, ÑÑÐ¾Ð±Ñ Ð²Ð¾ÑÑÑановиÑÑ ÑолÑко ÑлеменÑÑ 10 и 6 в Ñказанном поÑÑдке:
$pg_restore -L db.list db.dump