Enterprise Postgresのpg_dumpコマンドで抽出したアーカイブファイルを使用してリストアを実行した際のデータベースオブジェクトの存在/未存在/削除不可のエラーについて
Enterprise Postgresのよくあるご質問を検索できます。
Enterprise Postgres の技術情報はこちら
- Enterprise Postgresのpg_dumpコマンドで抽出したアーカイブファイルを使用して、pg_restoreコマンドでリストアを実行した際、以下のようなエラーになりました。原因と対処方法を教えてください。
- schema "@1@" already exists
- index "@1@" does not exist
- cannot drop @1@ because other objects depend on it
- [原因]
pg_restoreコマンドを実行する際に、-cや-Cオプションを指定していること、または、-cや-Cオプションの指定が漏れていることが原因の可能性があります。
[対処方法]
以下を踏まえて、pg_restoreコマンドを実行する際の-cや-Cオプションの指定有無を検討してください。- リストア先のデータベースオブジェクトの作成状況
- リストア先にデータベースオブジェクトが作成されている場合は、そのデータベースオブジェクトに対する扱い(再作成/そのまま利用)
-c、-Cオプションの仕様は、以下のとおりです。- -cオプション(--cleanオプション)
リストア前に、データベースオブジェクトを削除します。 - -Cオプション(--createオプション)
リストア前に、データベースを作成します。-cオプションと同時に指定した場合は、データベースを削除したあと、再作成します。
※-cオプションを指定、かつ、データベースオブジェクトの未存在や削除不可エラーとなった場合は、リストアが正常に完了していれば、対処は不要です。
詳細は以下のマニュアルを参照してください。
FUJITSU Software Enterprise Postgres 12
PostgreSQL 12.1 Documentation
Part VI. Reference
PostgreSQL Client Applications
pg_dump
pg_restore
なお、上記以外の製品バージョン/レベルについては、該当するマニュアル箇所を参照してください。
製品・サービス区分 | Enterprise Postgres | ||
---|---|---|---|
製品・サービス情報 |
|
||
アンサー種別 | 運用/保守 |