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でカラムのデータをほぼ同じ文字数の文字で置換する方法

    つまりどういうことだってばよ!!!って言われそうですが。 噛み砕いてい…

  2. Oracle

    [TNS-00525: 操作するには権限が不十分です] リスナーが起動できないときの対処方法

    CentOS 6のサーバにOracleを入れたり消したりしていたらリス…

  3. Oracle

    【Oracle】DataPumpの対話式コマンドモードを抜ける方法

    Oracle DataPump(impdp, expdp)では、 at…

  4. Oracle

    OracleでDBの文字コードを確認する方法

    Oracleデータベースで、データベースの文字コードを確認する方法のメ…

  5. 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