Enterprise Postgresのpg_dumpコマンドで抽出したアーカイブファイルを使用してリストアを実行した際のデータベースオブジェクトの存在/未存在/削除不可のエラーについて

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
製品・サービス情報
プラットフォームWindows,Solaris,Linux
アンサー種別 運用/保守
このページの先頭へ