web-dev-qa-db-ja.com

Oracle expdpがダンプファイルを作成しないのはなぜですか?

Oracle 10.2.0.5.0データベースからスキーマをエクスポートしようとしています。何らかの理由で、expdpコマンドを起動すると、ほぼ即座に終了し、ログファイルのみが作成され、ダンプファイルはまったく作成されません。それは愚かな間違いかもしれませんが、私にはそれを理解することができません。

これは、サーバーで実行しているコマンドです(OracleユーザーとしてSSHでログイン)。

expdp my_user/my_pass@db schemas=my_user directory=my_dir dumpfile=exp.dmp logfile=exp.log

SYSでも同じ結果が得られます。

expdp \"sys/sys_pass@db as sysdba\" schemas=my_user ...

サーバーにはデータベースが1つしかないので、@dbの部分なしで試してみました。同じ結果。

my_dirが適切に定義されており、サーバー上の既存のファイルシステムの場所を指し、利用可能なスペース(空き容量は約3.4 GB)とOracleユーザーが読み書きできる場所を確認しました。 my_userに対するmy_dirの読み取りおよび書き込み権限も付与しました。また、my_userが、エクスポートするテーブルを含む正しいスキーマであることを4回確認しました。

これは、コンソール(;;;を除く)とログファイルの両方で私が取得する唯一の出力です。

;;; 
Export: Release 10.2.0.5.0 - 64bit Production on Monday, 08 April, 2019 13:27:31

Copyright (c) 2003, 2007, Oracle.  All rights reserved.
;;; 
Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

そして何も。ダンプファイルも、エラーも、何もありません。終わりです。

私は this page をいくつかの便利な(?)クエリとともに見つけました。 v$datapump_jobおよびdba_resumableは空です。 dba_datapump_jobsにはいくつかのエクスポートがあり、それらはすべてステータスNOT RUNNINGです。 「日付」フィールドがないため、よくわかりませんが、古いジョブだと思います。expdpコマンドを起動しても、変更されません。

他に何を確認できますか?

Editexpdpコマンドの直後にecho $?を実行すると、1が出力されます。 このページ(10.2ではなくOracle 12cの場合) は、「致命的なエラーで終了する」ことを意味します。しかし、それらをログファイルに書き込むほど重要ではありませんか?

1
AJPerez

これは、使用可能なスペースがなくなったディスクパーティションに保存されたTEMPテーブルスペースの問題でした。

CaMの提案 (ありがとう!)に従って、my_userにEXP_FULL_DATABASEの役割がないことを確認したので、expdpコマンドを再度起動しましたが、schemasパラメータ。なんらかの理由で、Oracleがこのようにしてやっと私のことを同情し、その悪党をあきらめ、エラーを表示することにしました。

ORA-39125: Worker unexpected fatal error in KUPW$WORKER.DISPATCH_WORK_ITEMS while calling
           DBMS_LOB.CREATETEMPORARY []
ORA-01652: unable to extend temp segment by 128 in tablespace TEMP

"一時データファイルの移動" を別のパーティションに移動して nixがディスク領域を解放する とうまく戦った後、expdpは再び機能します。

1
AJPerez