データポンプの実行時に一部のオブジェクトが変更されている場合、そのオブジェクトはどのようにしてデータポンプファイルに入りますか?
Expdpがそのテーブルで作業しているのと同時に、誰かがテーブルに対してINSERT/DELETE/UPDATEを実行している場合、そのオブジェクトには影響しません。 expdpがテーブルに到達した瞬間に、テーブルの一貫したスナップが表示されます。基本的にexpdpはテーブル内で一貫していますが、BETWEEN/AMONGテーブルは...
Expdpはテーブルを逐次処理するため、FLASHBACK_TIME=SYSTIMESTAMP
オプションを使用してexpdpを実行しない限り、テーブルは互いに一貫していません。私がそうしない正当な理由がない限り、私は通常、すべてのexpdpでこれを行います。これには、データベースのフラッシュバックを有効にする必要はありませんが、UNDO(ロールバックセグメント)を利用します。データの変更が速すぎる場合、expdpは「ORA-01555スナップショットが古すぎます」というエラーを表示し、テーブルはスキップされます。これは、expdpジョブ全体で読み取りの一貫性を維持するのに十分なスペースがUNDOになかったことを意味します。この場合、UNDO保持を増やします。
最後に、expdpの実行中に誰かまたは何らかのプロセスがテーブルに対してDDL(TRUNCATE、DROP、または列/パーティションの追加/削除など)を実行すると、このオブジェクトでexpdpが失敗し、ORA-01466:データを読み取れません-テーブル定義が変更されました。幸い、これはそれほど頻繁には発生しませんが、ETLワークロードで見ました。