Oracle

  (最終更新日:2018.03.23)

expdpが「すでに使用されているオブジェクト名です」と失敗する時の対処方法

expdp実行時に、下記のエラーで処理が失敗してしまう時の対処方法のメモ。

ORA-31626: ジョブが存在しません
ORA-31633: マスター表”DBTEST.EXPORTJOB”を作成できません
ORA-06512: “SYS.DBMS_SYS_ERROR”, 行95
ORA-06512: “SYS.KUPV$FT”, 行1038
ORA-00955: すでに使用されているオブジェクト名です。

原因

原因は、以前に expdp が何らかの利用で失敗した際にジョブテーブルが残ってしまった為。

ジョブテーブルの状態を確認する

というわけでジョブテーブルの状態を確認してみる。
まずはジョブの状態を確認。

下記SQLを実行して確認。ジョブ EXPORTJOB が停止しているのが確認できる。

SQL> select job_name,state from dba_datapump_jobs;

JOB_NAME
--------------------------------------------------------------------------------
STATE
--------------------------------------------------------------------------------
EXPORTJOB
NOT RUNNING

続いてジョブテーブルの存在有無を確認する。
確認するには対象のジョブを動かすユーザーで確認する必要があるので注意。

$ sqlplus DBTEST

下記SQLを流してテーブルが存在していることを確認。

SQL> select table_name from user_tables where TABLE_NAME='EXPORTJOB';

ジョブテーブルを削除

先程のジョブテーブルが残っていることが原因となっているので、テーブルを削除すれば対応完了となる。

SQL> drop table EXPORTJOB purge;
SQL> select table_name from user_tables where TABLE_NAME='EXPORTJOB';

削除後にテーブルが消えていればOK。

スポンサーリンク
スポンサーリンク

関連記事

  1. Oracle

    Oracleで全てのテーブルやインデックスのCreate文を作成する方法

    Oracle で指定したユーザーが所有している全てのテーブルやインデッ…

  2. Oracle

    アーカイブログを削除する方法

    アーカイブログ・モードの時にガンガン作成されるアーカイブログ・…

  3. Oracle

    SSLを無効化して非SSL(http)でOEMにアクセスする方法

    最近のIE(例えばIE10も)でOracleのOEMにアクセスすると、…

  4. Oracle

    【Oracle】一般ユーザーにシステムビューへのアクセス権を付与する方法

    Oracle Databaseで、作成した一般ユーザーからシステムビュ…

コメント

  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

最近の記事

  1. PHP PhantomJSでFatal error: Unc…
  2. 【Oracle】DataPumpの対話式コマンドモードを抜け…
  3. CentOS7のPHP5.6にPhpSpreadsheetを…
  4. Azure仮想マシン(CentOS 7)のStandardデ…
  5. 【CentOS 7】特定ユーザーのクォータ設定を削除(無制限…
PAGE TOP