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
コマンドを起動しても、変更されません。
他に何を確認できますか?
Edit:expdp
コマンドの直後にecho $?
を実行すると、1
が出力されます。 このページ(10.2ではなくOracle 12cの場合) は、「致命的なエラーで終了する」ことを意味します。しかし、それらをログファイルに書き込むほど重要ではありませんか?
これは、使用可能なスペースがなくなったディスクパーティションに保存された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は再び機能します。