RAC環境でimpdpをパラレルで実行するときの注意事項
RAC環境でimpdpをパラレルで実行するときの注意事項
DataPump をパラレルで実行してたところ、「ファイルが見つからない」というエラーが発生しました。
ORA-31640: ダンプ・ファイル”/work/dmp_data/DUMP_A02.dmp”を読取りのためにオープンできません
ORA-19505: ファイル”/work/dmp_data/DUMP_A02.dmp”の識別に失敗しました。
ORA-27037: ファイル・ステータスを取得できません。
IBM AIX RISC System/6000 Error: 2: No such file or directory
Additional information: 3
ファイルは存在しているのに見つからないのは、なぜ? と調べてみると、RAC環境でのパラレル実行はRACを構成する全てのノードでインポートを実行しようとするため、全ノードでインポート用のダンプファイルが見えている必要があることがわかりました。
1ノードだけで実行していたつもりが、じつはimpdpパラレルはRACの全ノードを使ってインポートしようとしていたんです。
ということは、全ノードがダンプファイルにアクセスできるようにしていなかったことが原因ということになります。
でも、impdpパラレルは1ノードだけで実行させることも可能になっているんです。
impdpのオプションに CLUSTER というのがありまして、これを「CLUSTER=N」とすることで1ノードだけで実行してくれます。
パラメータファイルはこのように書けばOKです。
SCHEMAS=USER_A,USER_B,USER_C DUMPFILE=dmp_data:DUMP_A%U.dmp, dmp_data:DUMP_B%U.dmp, dmp_data:DUMP_C%U.dmp RARALLEL=3 LOGFILE=dmp_log:impdp.log CLUSTER=N
スピード重視の場合は全ノードを使ったほうが高速に処理してくれます。