postgres - pg_dump และ pg_restore ที่ไม่มีบทบาท


12

ฉันพยายามกู้คืนดัมพ์โดยไม่มีบทบาทที่เหมาะสมในฐานข้อมูลการรับ

ดังที่กล่าวไว้ที่นี่แต่ที่นี่คุณต้องมี--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)] Erreur à partir de l'entrée TOC 2633 ; 0 0 ACL adm avo******
pg_restore: [programme d'archivage (db)] could not execute query: ERREUR:  role « avo****** » does not exist

ทำไมถึงพูดว่ามันต้องการบทบาทแม้ว่าจะมีการ--no-ownerระบุไว้หรือไม่

ฉันพลาดอะไรไปหรือเปล่า?

ภาคผนวก: ฉันกำลังใช้งาน Postgres 9.3

ไชโย

คำตอบ:


14

ข้อผิดพลาดเกิดขึ้นเมื่อpg_restoreตั้งค่า ACL: คุณสามารถใช้--no-aclเพื่อป้องกันGRANTคำสั่ง

ด้วย-Ftตัวเลือกในpg_dumpคุณสามารถข้ามบทบาทและ ACL pg_restoreเฉพาะใน คุณสามารถแก้ไขแคตตาล็อกได้--listหากต้องการรายละเอียดเพิ่มเติม

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.