คำถามติดแท็ก pg-dump

1
วิธีการทำให้การสำรองและทดสอบ PostgreSQL DB ทำงานและเสร็จสมบูรณ์
ฉันหวังว่าฉันจะได้รับคำตอบที่ชัดเจนเกี่ยวกับวิธีการสำรองข้อมูลแบบเต็มของ Postgres เหมือนกับที่คุณใช้กับ MS SQL Server จากนั้นดูแลผู้ใช้ที่ไม่ได้ใช้งาน จากสิ่งที่ฉันได้อ่านและอาจผิดการค้นหาบล็อก PostgreSQL ที่ดีนั้นท้าทายมากดังนั้นโปรดแนะนำฉันให้ฉันฉันต้องหาวิธีที่แอพนี้ทำงานได้ดังนั้นฉันจึงสามารถไว้วางใจในการสำรองและ Slony ของฉัน การทำซ้ำ ฉันมีนักพัฒนากู้คืนการสำรองข้อมูลที่ฉันใช้จาก PgadminIII ผ่านcustom,, directoryและการจัดtarรูปแบบขณะที่เลือกOIDs แต่เขาบอกว่าสองคนไม่โหลด, tarทำ แต่มันเป็นเพียงไดเรกทอรีเท่านั้นไม่ใช่ข้อมูล ตอนนี้ฉันสับสนจริงๆ ฉันกำลังใช้ PGAdminIII มีตัวเลือกpg_dumpและ pg_dumpallฉันต้องการสำรองข้อมูลทุกอย่างที่ฉันต้องการเพื่อทดสอบคืนค่าฐานข้อมูลนี้ที่ใดที่หนึ่งและตรวจสอบว่าใช่ข้อมูลทั้งหมดที่เราต้องการและการสำรองข้อมูลของเรานั้นดี ในที่สุดฉันต้องการเขียนสคริปต์คืนค่าอัตโนมัติ แต่วันละครั้ง pg_dumpallเห็นได้ชัดว่ามี-globalsตัวเลือกที่ควรสำรองข้อมูลทุกอย่าง แต่ความช่วยเหลือในการpg_dumpallแสดง-g, --globals-only dump only global objects, no databasesไม่ใช่--globalsตัวเลือก ฉันคิดว่าpg_dumpallอย่างน้อยก็จะต้องทำการสำรองกุญแจต่างประเทศ แต่ถึงอย่างนั้นก็ดูเหมือนจะเป็น 'ตัวเลือก' ตามเอกสารประกอบแม้ว่าpg_dumpallฉันจะต้องใช้-oตัวเลือกในการสำรองคีย์ต่างประเทศฉันไม่สามารถจินตนาการได้เลยว่าเมื่อใดที่ฉันไม่ต้องการสำรองคีย์ต่างประเทศ ฉันจะดูแลผู้ใช้ที่กำพร้าและตรวจสอบว่าฉันมีทุกอย่างได้อย่างไร ฉันต้องการกู้คืนไฟล์สำรองของฉันจริงบนเซิร์ฟเวอร์อื่นและตรวจสอบทุกอย่างทำงาน หากใครมีข้อเสนอแนะเกี่ยวกับวิธีการสำรองข้อมูลจริงใน PostgreSQL และคืนค่าฉันจะขอบคุณมาก ฉันมีเซิร์ฟเวอร์ PostgreSQL แต่ฉันก็ยังไม่เข้าใจว่าทำไมแอปจะไม่ทำการสำรองข้อมูลOIDโดยค่าเริ่มต้น! ดูเหมือนว่า 99.9% …

2
ปิดใช้งานข้อ จำกัด และการตรวจสอบตารางทั้งหมดขณะที่กู้คืนดัมพ์
ฉันได้รับดัมพ์ของฐานข้อมูล PostgreSQL ของฉันด้วย: pg_dump -U user-name -d db-name -f dumpfile ซึ่งฉันแล้วดำเนินการคืนค่าในฐานข้อมูลอื่นด้วย: psql X -U postgres -d db-name-b -f dumpfile ปัญหาของฉันคือฐานข้อมูลมีข้อ จำกัด การอ้างอิงการตรวจสอบและทริกเกอร์และข้อผิดพลาดบางอย่าง (การตรวจสอบโดยเฉพาะอย่างยิ่งดูเหมือนจะเกิดขึ้น) ในระหว่างการกู้คืนเนื่องจากข้อมูลไม่ถูกโหลดตามลำดับที่จะทำให้การตรวจสอบเหล่านั้นได้รับเกียรติ ยกตัวอย่างเช่นการแทรกแถวในตารางอาจจะเกี่ยวข้องกับการCHECKที่เรียกplpgsqlฟังก์ชั่นที่ตรวจสอบไม่ว่าจะเป็นสภาพที่ถือในตารางที่ไม่เกี่ยวข้องอื่น ๆ หากตารางหลังนั้นไม่โหลดpsqlก่อนก่อนจะเกิดข้อผิดพลาด ต่อไปนี้เป็น SSCCE ที่สร้างฐานข้อมูลดังกล่าวซึ่งเมื่อทิ้งด้วยpg_dumpไม่สามารถกู้คืนได้: CREATE OR REPLACE FUNCTION fail_if_b_empty () RETURNS BOOLEAN AS $$ SELECT EXISTS (SELECT 1 FROM b) $$ LANGUAGE SQL; CREATE …

4
วิธีทำ pg_dump ข้ามส่วนขยาย
นี่คือ 9.3 แต่ฉันสามารถจำสิ่งที่ simillar เกิดขึ้นตั้งแต่ 7.x ดังนั้นฉันสร้างฐานข้อมูลและติดตั้งส่วนขยาย plpgsql ลงไป ต่อมาฉันสร้าง pg_dump และก่อนที่จะกู้คืนเป็น databse ฉันแน่ใจว่ามันมีส่วนขยาย plpgsql ด้วย จากนั้นเมื่อการกู้คืนข้อมูลนี้เกิดขึ้น: pg_restore: creating EXTENSION plpgsql pg_restore: creating COMMENT EXTENSION plpgsql pg_restore: [archiver (db)] Error while PROCESSING TOC: pg_restore: [archiver (db)] Error from TOC entry 2053; 0 0 COMMENT EXTENSION plpgsql pg_restore: [archiver (db)] could …

2
วิธีติดตามความคืบหน้าของการถ่ายโอนข้อมูล postrgresql ขนาดใหญ่
มีวิธีดูความคืบหน้าของการpg_dumpดำเนินการกับฐานข้อมูลขนาดใหญ่ (เช่น> 1GB) หรือไม่ การเพิ่ม-vตัวเลือกเพียงแค่ทิ้งข้อความบนหน้าจอ แต่ไม่ได้ให้ข้อมูลการติดตามที่มีความหมายกับฉันมากนัก

3
pg_restore: [archiver] ไม่พบสตริงมายากลในส่วนหัวของไฟล์
ฉันใช้ PostgreSQL 9.1 และต้องการกู้คืนไฟล์สำรองที่สร้างด้วยpg_dump: sudo pg_dump -h 127.0.0.1 -U postgres --clean --inserts -E UTF8 -f out.sql database_name คำสั่งนี้สร้างไฟล์ sql ที่ถูกต้องที่เริ่มต้นด้วยการปล่อยวัตถุฐานข้อมูลใด ๆ ที่มีอยู่จากนั้นสร้างตารางทั้งหมดบ่งบอกลำดับและอื่น ๆ และในที่สุดก็แทรกข้อมูล เมื่อฉันพยายามกู้คืนไฟล์สำรองที่สร้างด้วย: (เพิ่มตัวแบ่งบรรทัดเพื่อวัตถุประสงค์ในการแสดงผลเท่านั้น) sudo pg_restore -d database_name -h 127.0.0.1 -U postgres --format=c --clean --create out.sql มันล้มเหลวและพิมพ์: pg_restore: [archiver] did not find magic string in file header อะไรคือเหตุผลสำหรับสิ่งนั้น?

1
postgres - pg_dump และ pg_restore ที่ไม่มีบทบาท
ฉันพยายามกู้คืนดัมพ์โดยไม่มีบทบาทที่เหมาะสมในฐานข้อมูลการรับ ดังที่กล่าวไว้ที่นี่แต่ที่นี่คุณต้องมี--no-ownerตัวเลือกไม่ว่าจะในpg_dumpหรือpg_restoreหรือทั้งสองอย่าง ฉันใช้บรรทัดคำสั่งต่อไปนี้เพื่อสร้างการถ่ายโอนข้อมูลของฉัน "C:\Program Files\PostgreSQL\9.3\bin\pg_dump.exe" --no-owner -Ft --dbname=postgresql://avo******:AV0******?@127.0.0.1:5432/BI_DB > K:\BI\backup\sort\bck_%timestamp%.tar บรรทัดการกู้คืนมีดังนี้ "C:\Program Files\PostgreSQL\9.3\bin\pg_restore.exe" --host localhost --port 5432 --username "postgres" --dbname "BI_TEST2" --no-password --no-owner --role=postgres --exit-on-error --verbose "D:\D\avo\backup\bck_04042017_1410.tar" อย่างที่คุณเห็นทั้งสองมี--no-ownerตัวเลือก แต่ในที่สุดฉันมีข้อผิดพลาดด้านล่าง สิ่งที่เลวร้ายมากที่ทำให้ฉันเป็นบันทึกด้านล่าง pg_restore: [programme d'archivage (db)] Erreur pendant le traitement de la TOC (« PROCESSING TOC ») : pg_restore: [programme d'archivage (db)] …

1
เป็นไปได้หรือไม่ที่จะสำรองและเรียกคืนมุมมองที่เป็นรูปธรรมด้วยข้อมูล
ฉันมีมุมมองที่เป็นรูปธรรมซึ่งยากต่อการคำนวณซึ่งฉันต้องการสำรองและเรียกคืนโดยใช้ข้อมูลที่จัดเก็บจริงไม่ใช่โดยการคำนวณใหม่ เป็นไปได้ใน PostgreSQL 9.4? (ทางเลือกคือการสร้างตารางจริง แต่ยากที่จะ "รีเฟรช")

1
ทำไม postgresql pg_dump ส่งออกมุมมองเป็นตาราง
ฉันใช้pg_dumpเครื่องมือPostgreSQL 9.3 สำหรับการแยกนิยามสคีมาสาธารณะโดยใช้: pg_dump -s -n public -h host -U postgres --dbname=db > ./schema.sql แต่เมื่อฉันตรวจสอบschema.sqlหนึ่งในมุมมองของเราปรากฏในCREATE TABLEคำสั่งแทนCREATE VIEWคำสั่ง แต่ถ้าฉันpg_dumpใช้มุมมองเฉพาะ: pg_dump -s -t myview -h host -U postgres --dbname=db > ./schema.sql จากนั้นschema.sqlมีคำจำกัดความมุมมองที่แท้จริง แล้วทำไมสิ่งนี้ถึงเกิดขึ้น ขอบคุณทุกคน!
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.