postgres-ロールなしのpg_dumpおよびpg_restore


11

受信データベースで適切な役割を持たずにダンプを復元しようとしています。

ここだけでなくここでも述べた--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で実行しています

乾杯

回答:


13

pg_restoreACLを設定するとエラーが発生します。コマンド--no-aclを防止するために使用できGRANTます。

-Ftオプションを使用するとpg_dump、でのみロールとACLをスキップできますpg_restore--list詳細が必要な場合は、カタログを編集することもできます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.