นี่คือคำสั่ง pg_restore ที่สามารถเรียกใช้ในผู้ให้บริการโฮสติ้งฟรีของ OnWorks โดยใช้หนึ่งในเวิร์กสเตชันออนไลน์ฟรีของเรา เช่น Ubuntu Online, Fedora Online, โปรแกรมจำลองออนไลน์ของ Windows หรือโปรแกรมจำลองออนไลน์ของ MAC OS
โครงการ:
ชื่อ
pg_restore - กู้คืนฐานข้อมูล PostgreSQL จากไฟล์เก็บถาวรที่สร้างโดย pg_dump
เรื่องย่อ
pg_restore [ตัวเลือกการเชื่อมต่อ... ] [ตัวเลือก... ] [ชื่อไฟล์]
DESCRIPTION
pg_restore เป็นยูทิลิตี้สำหรับกู้คืนฐานข้อมูล PostgreSQL จากไฟล์เก็บถาวรที่สร้างโดย
pg_dump(1) ในรูปแบบข้อความธรรมดารูปแบบใดรูปแบบหนึ่ง มันจะออกคำสั่งที่จำเป็นในการ
สร้างฐานข้อมูลใหม่ให้อยู่ในสถานะเดียวกับเวลาที่บันทึก ไฟล์เก็บถาวร
ไฟล์ยังอนุญาตให้ pg_restore เลือกเกี่ยวกับสิ่งที่ถูกกู้คืน หรือแม้แต่จัดลำดับใหม่
รายการก่อนการบูรณะ ไฟล์เก็บถาวรได้รับการออกแบบให้พกพาสะดวก
สถาปัตยกรรม
pg_restore สามารถทำงานได้ในสองโหมด หากระบุชื่อฐานข้อมูล pg_restore จะเชื่อมต่อ
ไปยังฐานข้อมูลนั้นและกู้คืนเนื้อหาที่เก็บถาวรลงในฐานข้อมูลโดยตรง มิฉะนั้น a
สคริปต์ที่มีคำสั่ง SQL ที่จำเป็นในการสร้างฐานข้อมูลถูกสร้างขึ้นและ
เขียนลงในไฟล์หรือเอาต์พุตมาตรฐาน เอาต์พุตสคริปต์นี้เทียบเท่ากับข้อความธรรมดา
รูปแบบเอาต์พุตของ pg_dump ดังนั้นตัวเลือกบางตัวที่ควบคุมเอาต์พุตจึงเป็น
คล้ายกับตัวเลือก pg_dump
เห็นได้ชัดว่า pg_restore ไม่สามารถกู้คืนข้อมูลที่ไม่มีอยู่ในไฟล์เก็บถาวรได้
ตัวอย่างเช่น หากไฟล์เก็บถาวรถูกสร้างขึ้นโดยใช้ “dump data as INSERT คำสั่ง” ตัวเลือก
pg_restore จะไม่สามารถโหลดข้อมูลโดยใช้ คัดลอก งบ
OPTIONS
pg_restore ยอมรับอาร์กิวเมนต์บรรทัดคำสั่งต่อไปนี้
ชื่อไฟล์
ระบุตำแหน่งของไฟล์เก็บถาวร (หรือไดเร็กทอรี สำหรับไดเร็กทอรี-format
ไฟล์เก็บถาวร) ที่จะกู้คืน หากไม่ได้ระบุไว้ จะใช้อินพุตมาตรฐาน
-a
--ข้อมูลเท่านั้น
กู้คืนเฉพาะข้อมูล ไม่ใช่สคีมา (คำจำกัดความของข้อมูล) ข้อมูลตาราง วัตถุขนาดใหญ่
และค่าลำดับจะถูกกู้คืน หากมีอยู่ในไฟล์เก็บถาวร
ตัวเลือกนี้คล้ายกับ แต่ด้วยเหตุผลทางประวัติศาสตร์ไม่เหมือนกับการระบุ
--section=ข้อมูล.
-c
--ทำความสะอาด
ล้าง (ดรอป) อ็อบเจ็กต์ฐานข้อมูลก่อนที่จะสร้างใหม่ (เว้นแต่ --if-มีอยู่ ถูกนำมาใช้,
สิ่งนี้อาจสร้างข้อความแสดงข้อผิดพลาดที่ไม่เป็นอันตราย หากไม่มีวัตถุใดๆ อยู่ใน
ฐานข้อมูลปลายทาง)
-C
--สร้าง
สร้างฐานข้อมูลก่อนกู้คืน ถ้า --ทำความสะอาด ถูกระบุด้วย, ดรอปและ
สร้างฐานข้อมูลเป้าหมายใหม่ก่อนที่จะเชื่อมต่อ
เมื่อใช้ตัวเลือกนี้ ฐานข้อมูลชื่อ with -d ใช้เฉพาะในการออกอักษรตัวแรก
DROP ฐานข้อมูล และ สร้าง ฐานข้อมูล คำสั่ง ข้อมูลทั้งหมดจะถูกกู้คืนไปยังฐานข้อมูล
ชื่อที่ปรากฏในไฟล์เก็บถาวร
-d ชื่อฐานข้อมูล
--dbname=ชื่อฐานข้อมูล
เชื่อมต่อกับฐานข้อมูล ชื่อฐานข้อมูล และเรียกคืนเข้าสู่ฐานข้อมูลโดยตรง
-e
--exit-on-ข้อผิดพลาด
ออกหากพบข้อผิดพลาดขณะส่งคำสั่ง SQL ไปยังฐานข้อมูล NS
ค่าเริ่มต้นคือเพื่อดำเนินการต่อและแสดงจำนวนข้อผิดพลาดเมื่อสิ้นสุดการคืนค่า
-f ชื่อไฟล์
--ไฟล์=ชื่อไฟล์
ระบุไฟล์เอาต์พุตสำหรับสคริปต์ที่สร้างขึ้น หรือสำหรับรายการเมื่อใช้กับ -l.
ค่าเริ่มต้นคือเอาต์พุตมาตรฐาน
-F รูป
--รูปแบบ=รูป
ระบุรูปแบบของไฟล์เก็บถาวร ไม่จำเป็นต้องระบุรูปแบบ เนื่องจาก
pg_restore จะกำหนดรูปแบบโดยอัตโนมัติ หากระบุไว้ก็สามารถเป็นหนึ่งใน
ต่อไปนี้:
c
ประเพณี
ไฟล์เก็บถาวรอยู่ในรูปแบบที่กำหนดเองของ pg_dump
d
ไดเรกทอรี
ไฟล์เก็บถาวรเป็นไฟล์เก็บถาวรของไดเร็กทอรี
t
น้ำมันดิน
ไฟล์เก็บถาวรคือ a น้ำมันดิน เก็บ
-I ดัชนี
--ดัชนี=ดัชนี
เรียกคืนคำจำกัดความของดัชนีที่มีชื่อเท่านั้น อาจระบุดัชนีหลายรายการด้วย
หลาย -I สวิทช์
-j จำนวนงาน
--งาน=จำนวนงาน
เรียกใช้ pg_restore ส่วนที่ใช้เวลานานที่สุด — ส่วนที่โหลดข้อมูล, create
จัดทำดัชนี หรือสร้างข้อจำกัด — โดยใช้งานหลายงานพร้อมกัน ตัวเลือกนี้สามารถ
ลดเวลาในการกู้คืนฐานข้อมูลขนาดใหญ่ไปยังเซิร์ฟเวอร์ที่ทำงานบน a . ได้อย่างมาก
เครื่องมัลติโปรเซสเซอร์
งานแต่ละงานเป็นหนึ่งกระบวนการหรือหนึ่งเธรด ขึ้นอยู่กับระบบปฏิบัติการ และใช้ a
แยกการเชื่อมต่อไปยังเซิร์ฟเวอร์
ค่าที่เหมาะสมที่สุดสำหรับตัวเลือกนี้ขึ้นอยู่กับการตั้งค่าฮาร์ดแวร์ของเซิร์ฟเวอร์ของ
ลูกค้าและเครือข่าย ปัจจัยรวมถึงจำนวนคอร์ของ CPU และดิสก์
ติดตั้ง. จุดเริ่มต้นที่ดีคือจำนวนคอร์ของ CPU บนเซิร์ฟเวอร์ แต่ค่า
ที่ใหญ่กว่านั้นยังสามารถนำไปสู่เวลาการกู้คืนเร็วขึ้นในหลายกรณี แน่นอน,
ค่าที่สูงเกินไปจะทำให้ประสิทธิภาพลดลงเนื่องจากการฟาด
ตัวเลือกนี้รองรับเฉพาะรูปแบบไฟล์เก็บถาวรแบบกำหนดเองและไดเร็กทอรี NS
อินพุตต้องเป็นไฟล์หรือไดเร็กทอรีปกติ (ไม่ใช่เช่น ไพพ์) ตัวเลือกนี้คือ
ละเว้นเมื่อปล่อยสคริปต์แทนที่จะเชื่อมต่อโดยตรงกับเซิร์ฟเวอร์ฐานข้อมูล
นอกจากนี้ หลายงานไม่สามารถใช้ร่วมกับตัวเลือกได้ --รายการเดียว.
-l
--รายการ
แสดงรายการเนื้อหาของไฟล์เก็บถาวร เอาต์พุตของการดำเนินการนี้สามารถใช้เป็นอินพุตไปยัง
-L ตัวเลือก. โปรดทราบว่าหากสวิตช์กรองเช่น -n or -t ใช้กับ -l, พวกเขา
จะจำกัดรายการที่ระบุไว้
-L รายการไฟล์
--ใช้รายการ=รายการไฟล์
กู้คืนเฉพาะองค์ประกอบที่เก็บถาวรที่ระบุไว้ใน รายการไฟล์และเรียกคืนได้ใน
ลำดับที่ปรากฏในไฟล์ โปรดทราบว่าหากสวิตช์กรองเช่น -n or -t
ใช้กับ -Lพวกเขาจะ จำกัด รายการที่กู้คืนเพิ่มเติม
รายการไฟล์ ถูกสร้างขึ้นโดยปกติโดยการแก้ไขผลลัพธ์ของก่อนหน้า -l การดำเนินการ. เส้น
สามารถย้ายหรือลบออกได้ และยังสามารถแสดงความคิดเห็นโดยใส่เครื่องหมายอัฒภาค (;) ที่
จุดเริ่มต้นของบรรทัด ดูตัวอย่างด้านล่าง
-n namespace
--สคีมา=คี
กู้คืนเฉพาะอ็อบเจ็กต์ที่อยู่ในสกีมาที่มีชื่อ อาจมีการระบุสคีมาหลายรายการ
กับหลาย ๆ -n สวิตช์ สามารถใช้ร่วมกับ -t ตัวเลือกในการกู้คืนเพียง a
ตารางเฉพาะ
-O
--ไม่มีเจ้าของ
ห้ามส่งออกคำสั่งเพื่อกำหนดความเป็นเจ้าของของวัตถุให้ตรงกับฐานข้อมูลเดิม โดย
ค่าเริ่มต้น pg_restore ปัญหา แก้ไข OWNER or ตลาดหลักทรัพย์ เซสชั่น การอนุมัติ คำสั่งที่จะตั้งค่า
ความเป็นเจ้าขององค์ประกอบสคีมาที่สร้างขึ้น คำสั่งเหล่านี้จะล้มเหลวเว้นแต่เริ่มต้น
การเชื่อมต่อกับฐานข้อมูลนั้นทำโดย superuser (หรือผู้ใช้คนเดียวกับที่เป็นเจ้าของ
วัตถุในสคริปต์) กับ -Oชื่อผู้ใช้ใด ๆ สามารถใช้เป็นชื่อย่อได้
การเชื่อมต่อ และผู้ใช้รายนี้จะเป็นเจ้าของวัตถุที่สร้างขึ้นทั้งหมด
-P ชื่อฟังก์ชัน(argtype [, -
--ฟังก์ชั่น=ชื่อฟังก์ชัน(argtype [, -
คืนค่าฟังก์ชันที่มีชื่อเท่านั้น โปรดใช้ความระมัดระวังในการสะกดชื่อฟังก์ชันและอาร์กิวเมนต์
ตรงตามที่ปรากฏในสารบัญของไฟล์ดัมพ์ หลายฟังก์ชันอาจจะ
ระบุด้วยหลาย -P สวิทช์
-R
--ไม่เชื่อมต่อใหม่
ตัวเลือกนี้ล้าสมัยแต่ยังคงยอมรับความเข้ากันได้แบบย้อนหลัง
-s
--schema-เท่านั้น
กู้คืนเฉพาะสคีมา (คำจำกัดความของข้อมูล) ไม่ใช่ข้อมูล เท่าที่สคีมา
มีรายการอยู่ในไฟล์เก็บถาวร
ตัวเลือกนี้เป็นค่าผกผันของ --ข้อมูลเท่านั้น. คล้ายแต่สำหรับประวัติศาสตร์
เหตุผลไม่เหมือนกันโดยระบุ --section=ข้อมูลล่วงหน้า --section=โพสต์ข้อมูล.
(อย่าสับสนกับ --สคีมา ตัวเลือกซึ่งใช้คำว่า “สคีมา” ใน a
ความหมายต่างกัน)
-S ชื่อผู้ใช้
--superuser=ชื่อผู้ใช้
ระบุชื่อผู้ใช้ superuser ที่จะใช้เมื่อปิดใช้งานทริกเกอร์ สิ่งนี้เกี่ยวข้องเท่านั้น
if --disable-ทริกเกอร์ ถูกนำมาใช้.
-t ตาราง
--ตาราง=ตาราง
คืนค่าคำจำกัดความและ/หรือข้อมูลของตารางที่มีชื่อเท่านั้น สามารถระบุตารางได้หลายตาราง
กับหลาย ๆ -t สวิตช์ สามารถใช้ร่วมกับ -n ตัวเลือกเพื่อระบุ a
สคีมา
-T เรียก
--ทริกเกอร์=เรียก
คืนค่าทริกเกอร์ที่มีชื่อเท่านั้น ทริกเกอร์หลายตัวอาจระบุด้วยหลายตัว -T
สวิทช์
-v
--รายละเอียด
ระบุโหมดรายละเอียด
-V
--รุ่น
พิมพ์เวอร์ชัน pg_restore แล้วออก
-x
--ไม่มีสิทธิ์
--ไม่มี-acl
ป้องกันการกู้คืนสิทธิ์การเข้าถึง (ให้/เพิกถอนคำสั่ง)
-1
--รายการเดียว
ดำเนินการกู้คืนเป็นธุรกรรมเดียว (นั่นคือ ห่อคำสั่งที่ปล่อยออกมาใน
เริ่ม/COMMIT). เพื่อให้แน่ใจว่าคำสั่งทั้งหมดเสร็จสมบูรณ์หรือไม่
การเปลี่ยนแปลงจะถูกนำไปใช้ ตัวเลือกนี้หมายถึง --exit-on-ข้อผิดพลาด.
--disable-ทริกเกอร์
ตัวเลือกนี้เกี่ยวข้องเฉพาะเมื่อทำการกู้คืนข้อมูลเท่านั้น มันสั่ง
pg_restore เพื่อรันคำสั่งเพื่อปิดการใช้งานทริกเกอร์บนตารางเป้าหมายชั่วคราว
ในขณะที่ข้อมูลถูกโหลดซ้ำ ใช้สิ่งนี้หากคุณมีการตรวจสอบความสมบูรณ์ของการอ้างอิงหรืออื่นๆ
ทริกเกอร์บนตารางที่คุณไม่ต้องการเรียกใช้ระหว่างการโหลดข้อมูลซ้ำ
ปัจจุบันคำสั่งที่ปล่อยออกมาสำหรับ --disable-ทริกเกอร์ ต้องทำเป็น superuser ดังนั้น
คุณควรระบุชื่อผู้ใช้ superuser ด้วย -S หรือควรเรียกใช้ pg_restore เป็น a
ผู้ใช้ขั้นสูง PostgreSQL
--enable-แถวความปลอดภัย
ตัวเลือกนี้เกี่ยวข้องเฉพาะเมื่อกู้คืนเนื้อหาของตารางที่มี row
ความปลอดภัย. โดยค่าเริ่มต้น pg_restore จะตั้งค่า row_security เป็นปิด เพื่อให้แน่ใจว่าข้อมูลทั้งหมด
ถูกเรียกคืนในตาราง หากผู้ใช้ไม่มีสิทธิ์เพียงพอในการเลี่ยงผ่าน
การรักษาความปลอดภัยแถว แล้วเกิดข้อผิดพลาด พารามิเตอร์นี้สั่งให้ pg_restore ตั้งค่า
row_security เป็น on แทน อนุญาตให้ผู้ใช้พยายามกู้คืนเนื้อหาของ
ตารางที่เปิดใช้งานการรักษาความปลอดภัยแถว การดำเนินการนี้อาจยังคงล้มเหลวหากผู้ใช้ไม่มี
สิทธิ์ในการแทรกแถวจากการถ่ายโอนข้อมูลลงในตาราง
โปรดทราบว่าตัวเลือกนี้ในปัจจุบันยังต้องมีการดัมพ์อยู่ใน INSERT รูปแบบ as คัดลอก TO
ไม่รองรับการรักษาความปลอดภัยแถว
--if-มีอยู่
ใช้คำสั่งแบบมีเงื่อนไข (เช่น เพิ่มส่วนคำสั่ง IF EXISTS) เมื่อล้างฐานข้อมูล
วัตถุ ตัวเลือกนี้ใช้ไม่ได้เว้นแต่ --ทำความสะอาด ระบุไว้ด้วย
--ไม่มีข้อมูลสำหรับตารางที่ล้มเหลว
โดยค่าเริ่มต้น ข้อมูลตารางจะถูกกู้คืนแม้ว่าคำสั่งสร้างสำหรับตารางจะล้มเหลว
(เช่น เพราะมีอยู่แล้ว) ด้วยตัวเลือกนี้ ข้อมูลสำหรับตารางดังกล่าวจะถูกข้ามไป
ลักษณะการทำงานนี้มีประโยชน์หากฐานข้อมูลเป้าหมายมีตารางที่ต้องการอยู่แล้ว
เนื้อหา ตัวอย่างเช่น ตารางเสริมสำหรับส่วนขยาย PostgreSQL เช่น PostGIS
อาจถูกโหลดแล้วในฐานข้อมูลเป้าหมาย ระบุตัวเลือกนี้ป้องกัน
ข้อมูลที่ซ้ำกันหรือล้าสมัยจากการถูกโหลดเข้าไป
ตัวเลือกนี้จะมีผลเฉพาะเมื่อกู้คืนไปยังฐานข้อมูลโดยตรง ไม่ใช่เมื่อ
สร้างเอาต์พุตสคริปต์ SQL
--no-ป้ายความปลอดภัย
ห้ามส่งออกคำสั่งเพื่อกู้คืนป้ายกำกับความปลอดภัย แม้ว่าไฟล์เก็บถาวรจะมีป้ายกำกับก็ตาม
--ไม่มีพื้นที่ตาราง
ห้ามส่งออกคำสั่งเพื่อเลือกพื้นที่ตาราง ด้วยตัวเลือกนี้ วัตถุทั้งหมดจะเป็น
สร้างขึ้นในพื้นที่ตารางใดก็ตามที่เป็นค่าเริ่มต้นระหว่างการคืนค่า
--ส่วน=ชื่อส่วน
กู้คืนเฉพาะส่วนที่มีชื่อเท่านั้น ชื่อส่วนสามารถเป็น ข้อมูลล่วงหน้า, ข้อมูล,หรือ โพสต์ข้อมูล.
ตัวเลือกนี้สามารถระบุได้มากกว่าหนึ่งครั้งเพื่อเลือกหลายส่วน ค่าเริ่มต้น
คือการเรียกคืนทุกส่วน
ส่วนข้อมูลประกอบด้วยข้อมูลตารางจริงรวมถึงคำจำกัดความของวัตถุขนาดใหญ่
รายการหลังข้อมูลประกอบด้วยคำจำกัดความของดัชนี ทริกเกอร์ กฎและข้อจำกัด
นอกเหนือจากข้อจำกัดการตรวจสอบที่ผ่านการตรวจสอบแล้ว รายการข้อมูลล่วงหน้าประกอบด้วยข้อมูลอื่นทั้งหมด
รายการคำจำกัดความ
--use-set-session-authorization
เอาต์พุตมาตรฐาน SQL ตลาดหลักทรัพย์ เซสชั่น การอนุมัติ คำสั่งแทน แก้ไข OWNER คำสั่ง
เพื่อกำหนดความเป็นเจ้าของวัตถุ ทำให้ดัมพ์เข้ากันได้มาตรฐานมากขึ้น แต่
ขึ้นอยู่กับประวัติของอ็อบเจ็กต์ในดัมพ์ อาจไม่กู้คืนอย่างถูกต้อง
-?
--ช่วยด้วย
แสดงความช่วยเหลือเกี่ยวกับอาร์กิวเมนต์บรรทัดรับคำสั่ง pg_restore และออก
pg_restore ยังยอมรับอาร์กิวเมนต์บรรทัดคำสั่งต่อไปนี้สำหรับพารามิเตอร์การเชื่อมต่อ:
-h เจ้าภาพ
--โฮสต์=เจ้าภาพ
ระบุชื่อโฮสต์ของเครื่องที่เซิร์ฟเวอร์กำลังทำงาน ถ้าค่า
เริ่มต้นด้วยเครื่องหมายสแลช มันถูกใช้เป็นไดเร็กทอรีสำหรับซ็อกเก็ตโดเมน Unix NS
ค่าเริ่มต้นจะถูกนำมาจาก ผี ตัวแปรสภาพแวดล้อม หากตั้งค่า อย่างอื่นโดเมน Unix
กำลังพยายามเชื่อมต่อซ็อกเก็ต
-p พอร์ต
--พอร์ต=พอร์ต
ระบุพอร์ต TCP หรือส่วนขยายไฟล์ซ็อกเก็ตโดเมน Unix ภายในที่เซิร์ฟเวอร์
กำลังฟังสำหรับการเชื่อมต่อ ค่าเริ่มต้นเป็น พีจีพอร์ต ตัวแปรสภาพแวดล้อม ถ้าตั้งค่าไว้ หรือ
คอมไพล์ในค่าเริ่มต้น
-U ชื่อผู้ใช้
--ชื่อผู้ใช้=ชื่อผู้ใช้
ชื่อผู้ใช้เพื่อเชื่อมต่อเป็น
-w
--ไม่มีรหัสผ่าน
ไม่เคยออกพรอมต์รหัสผ่าน หากเซิร์ฟเวอร์ต้องการการตรวจสอบรหัสผ่านและ a
รหัสผ่านไม่สามารถใช้ได้ด้วยวิธีอื่น เช่น ไฟล์ .pgpass การเชื่อมต่อ
ความพยายามจะล้มเหลว ตัวเลือกนี้จะมีประโยชน์ในงานแบตช์และสคริปต์ที่ไม่มีผู้ใช้
มีอยู่เพื่อป้อนรหัสผ่าน
-W
--รหัสผ่าน
บังคับ pg_restore ให้ถามรหัสผ่านก่อนเชื่อมต่อกับฐานข้อมูล
ตัวเลือกนี้ไม่จำเป็นเลย เนื่องจาก pg_restore จะถาม a . โดยอัตโนมัติ
รหัสผ่านหากเซิร์ฟเวอร์ต้องการการตรวจสอบรหัสผ่าน อย่างไรก็ตาม pg_restore จะทำให้เสีย
ความพยายามในการเชื่อมต่อพบว่าเซิร์ฟเวอร์ต้องการรหัสผ่าน ในบางกรณีมันคือ
น่าพิมพ์ -W เพื่อหลีกเลี่ยงความพยายามในการเชื่อมต่อเพิ่มเติม
--บทบาท=ชื่อบทบาท
ระบุชื่อบทบาทที่จะใช้ในการดำเนินการกู้คืน ตัวเลือกนี้ทำให้ pg_restore
ที่จะออก ตลาดหลักทรัพย์ บทบาท ชื่อบทบาท คำสั่งหลังจากเชื่อมต่อกับฐานข้อมูล มีประโยชน์
เมื่อผู้ใช้ตรวจสอบสิทธิ์ (ระบุโดย -U) ไม่มีสิทธิ์ที่จำเป็นโดย pg_restore
แต่สามารถเปลี่ยนบทบาทที่มีสิทธิที่จำเป็นได้ การติดตั้งบางส่วนมีนโยบาย
ป้องกันการเข้าสู่ระบบโดยตรงในฐานะ superuser และการใช้ตัวเลือกนี้ช่วยให้สามารถกู้คืนได้
ดำเนินการได้โดยไม่ละเมิดนโยบาย
และพวกเรา
ผี
PGOPTIONS
พีจีพอร์ต
พีกูเซอร์
พารามิเตอร์การเชื่อมต่อเริ่มต้น
ยูทิลิตีนี้ เช่นเดียวกับยูทิลิตี PostgreSQL อื่นๆ ส่วนใหญ่ ก็ใช้ตัวแปรสภาพแวดล้อมเช่นกัน
รองรับโดย libpq (ดูหัวข้อ 31.14 “ตัวแปรสภาพแวดล้อม” ในเอกสารประกอบ)
อย่างไรก็ตามมันไม่ได้อ่าน PGDATABASE เมื่อไม่ได้ระบุชื่อฐานข้อมูล
วินิจฉัย
เมื่อระบุการเชื่อมต่อฐานข้อมูลโดยตรงโดยใช้คำสั่ง -d ตัวเลือก pg_restore ภายใน
ดำเนินการคำสั่ง SQL หากคุณมีปัญหาในการรัน pg_restore ตรวจสอบให้แน่ใจว่าคุณสามารถ
เพื่อเลือกข้อมูลจากฐานข้อมูล เช่น psql(1). นอกจากนี้ ค่าเริ่มต้นใดๆ
การตั้งค่าการเชื่อมต่อและตัวแปรสภาพแวดล้อมที่ใช้โดยไลบรารีส่วนหน้าของ libpq จะ
ใช้
หมายเหตุ
หากการติดตั้งของคุณมีส่วนเพิ่มเติมในฐานข้อมูล template1 โปรดใช้ความระมัดระวังในการโหลด
ผลลัพธ์ของ pg_restore เข้าสู่ฐานข้อมูลที่ว่างเปล่าอย่างแท้จริง มิฉะนั้นคุณมักจะได้รับ
ข้อผิดพลาดเนื่องจากคำจำกัดความที่ซ้ำกันของวัตถุที่เพิ่มเข้ามา การทำฐานข้อมูลเปล่า
โดยไม่ต้องเพิ่มเติมในเครื่อง ให้คัดลอกจาก template0 ไม่ใช่ template1 เช่น
สร้างฐานข้อมูล foo ด้วยเทมเพลต template0;
ข้อจำกัดของ pg_restore มีรายละเอียดด้านล่าง
· เมื่อกู้คืนข้อมูลไปยังตารางที่มีอยู่แล้วและตัวเลือก --disable-ทริกเกอร์ ถูกนำมาใช้,
pg_restore ปล่อยคำสั่งเพื่อปิดการใช้งานทริกเกอร์บนตารางผู้ใช้ก่อนที่จะแทรก
data แล้วส่งคำสั่งเพื่อเปิดใช้งานอีกครั้งหลังจากแทรกข้อมูลแล้ว ถ้า
การคืนค่าหยุดตรงกลาง แคตตาล็อกระบบอาจเหลือผิด
รัฐ
· pg_restore ไม่สามารถกู้คืนอ็อบเจ็กต์ขนาดใหญ่แบบเลือกได้ ตัวอย่างเช่น เฉพาะสำหรับ a
ตารางเฉพาะ หากไฟล์เก็บถาวรมีอ็อบเจ็กต์ขนาดใหญ่ ออบเจ็กต์ขนาดใหญ่ทั้งหมดจะเป็น
กู้คืนหรือไม่มีเลยหากได้รับการยกเว้นผ่าน -L, -tหรือทางเลือกอื่นๆ
ดูเพิ่มเติมที่ pg_dump(1) เอกสารประกอบสำหรับรายละเอียดเกี่ยวกับข้อจำกัดของ pg_dump
เมื่อกลับคืนมาก็ควรที่จะเรียกใช้ วิเคราะห์ ในแต่ละตารางที่คืนค่าเพื่อให้เครื่องมือเพิ่มประสิทธิภาพมี
สถิติที่เป็นประโยชน์ ดูหัวข้อ 23.1.3 “การอัปเดตสถิติผู้วางแผน” ในเอกสารประกอบ
และส่วนที่ 23.1.6 “The Autovacuum Daemon” ในเอกสารประกอบสำหรับข้อมูลเพิ่มเติม
ตัวอย่าง
สมมติว่าเราได้ดัมพ์ฐานข้อมูลที่เรียกว่า mydb ลงในไฟล์ดัมพ์รูปแบบที่กำหนดเอง:
$ pg_dump -FC มายดีบี > db.การถ่ายโอนข้อมูล
ในการดรอปฐานข้อมูลและสร้างใหม่จากดัมพ์:
$ ดร็อปดีบี มายดีบี
$ pg_restore -C -d postgres db.การถ่ายโอนข้อมูล
ฐานข้อมูลที่มีชื่ออยู่ใน -d สวิตช์สามารถเป็นฐานข้อมูลใด ๆ ที่มีอยู่ในคลัสเตอร์
pg_restore ใช้เฉพาะในการออก สร้าง ฐานข้อมูล คำสั่งสำหรับ mydb กับ -C, ข้อมูลคือ
เรียกคืนเป็นชื่อฐานข้อมูลที่ปรากฏในไฟล์ดัมพ์เสมอ
ในการโหลดดัมพ์ซ้ำในฐานข้อมูลใหม่ชื่อ newdb:
$ สร้างขึ้นb -T เทมเพลต 0 ใหม่
$ pg_restore -d ใหม่ db.การถ่ายโอนข้อมูล
สังเกตว่าเราไม่ได้ใช้ -Cและเชื่อมต่อโดยตรงกับฐานข้อมูลที่จะกู้คืนเข้าไปแทน
โปรดทราบว่าเราโคลนฐานข้อมูลใหม่จาก template0 ไม่ใช่ template1 เพื่อให้แน่ใจว่าเป็น
ตอนแรกว่าง
ในการจัดลำดับรายการฐานข้อมูลใหม่ ก่อนอื่นจำเป็นต้องดัมพ์สารบัญของ
คลังเก็บเอกสารสำคัญ:
$ pg_restore -l db.การถ่ายโอนข้อมูล > ฐานข้อมูลรายการ
ไฟล์รายการประกอบด้วยส่วนหัวและหนึ่งบรรทัดสำหรับแต่ละรายการ เช่น:
;
; เอกสารเก่าสร้างขึ้นเมื่อวันจันทร์ที่ 14 ก.ย. 13:55:39 น. 2009
; ชื่อฐานข้อมูล: DBDEMOS
; รายการ TOC: 81
; แรงอัด: 9
; เวอร์ชันการถ่ายโอนข้อมูล: 1.10-0
; รูปแบบ: CUSTOM
; จำนวนเต็ม: 4 ไบต์
; ออฟเซ็ต: 8 ไบต์
; ดัมพ์จากเวอร์ชันฐานข้อมูล: 8.3.5
; ทิ้งโดย pg_dump เวอร์ชัน: 8.3.8
;
;
; รายการ TOC ที่เลือก:
;
3; 2615 2200 SCHEMA - มหาอำมาตย์สาธารณะ
1861; 0 0 ความคิดเห็น - SCHEMA มหาอำมาตย์สาธารณะ
1862; 0 0 ACL - มหาอำมาตย์สาธารณะ
317; 1247 17715 ประเภท มหาอำมาตย์คอมโพสิตสาธารณะ
319; 1247 25899 DOMAIN สาธารณสมบัติ0 มหาอำมาตย์
อัฒภาคเริ่มต้นความคิดเห็น และตัวเลขที่จุดเริ่มต้นของบรรทัดหมายถึงภายใน
รหัสเก็บถาวรที่กำหนดให้กับแต่ละรายการ
บรรทัดในไฟล์สามารถใส่ความคิดเห็น ลบ และเรียงลำดับใหม่ได้ ตัวอย่างเช่น:
10; 145433 ตาราง map_ resolutions postgres
;2; 145344 ตาราง สายพันธุ์ postgres
;4; 145359 ตาราง nt_header postgres
6; 145402 ตาราง species_records postgres
;8; 145416 ตาราง ss_old postgres
สามารถใช้เป็นอินพุตของ pg_restore และจะกู้คืนเฉพาะรายการ 10 และ 6 ตามลำดับ:
$ pg_restore -L ฐานข้อมูลรายการ db.การถ่ายโอนข้อมูล
ใช้ pg_restore ออนไลน์โดยใช้บริการ onworks.net