一隼に翔ける!!

~直観と閃きの赴くままに壊進撃するハヤブサ系ブロガー・ファルコンの翔時間(ショウタイム)~

OracleでIMPDP実施時に特定のテーブルの優先度をあげる

time 2016/09/21

OracleDatabaseでIMPDP実施時に特定のテーブルの優先度を上げるといった

処置をやっていきたいと思います。


関連記事

Oracleで別DBからDBLINK経由でテーブルをインポート

この場合要件が「文字列がKAGA_で始まるテーブルを優先的に同期し

それ以外のは後発で同期させる処理にしてほしい」だとします。

その場合先発のコマンドは以下になります。

アスタリスク(*)のところはLinuxかWindowsで書き方が変わってくるかもしれません。

INCLUDE句の後にTABLE:¥”LIKE ~¥”と記述します。

LIKE文なので特定の文字列を含むものを抽出します。

この場合KAGA_~で始まるテーブル全部を持っていきたいので

INCLUDE=TABLE:¥”LIKE ‘KAGA_*’¥” と書きます。

ワイルドカード指定しないとKAGA_ しか持ってこれません。

$ impdp C/パスワード INCLUDE=TABLE:¥”LIKE ‘KAGA_*’¥” NETWORK_LINK=C’ directory=DATA_PUMP_DIR TABLE_EXISTS_ACTION=REPLACE logfile=DATA_PUMP_DIR:XXXX.log

後発でこの処理を書きます。

KAGA_~以外のテーブル全部という要件に合わせて書きます。

さっきの対象でEXCLUDE句を使えば指定した文字列を除外したものを抽出します。

EXCLUDE=TABLE:¥”LIKE ‘KAGA_*’¥” と書きます。

$ impdp C/パスワード EXCLUDE=TABLE:¥”LIKE ‘KAGA_*’¥” NETWORK_LINK=C’ directory=DATA_PUMP_DIR TABLE_EXISTS_ACTION=REPLACE logfile=DATA_PUMP_DIR:XXXX.log

後はこの二文をバッチで仕込んで終了。

バッチなどが動いている処理を見越した時間帯にするといいでしょう。

sponsored link



sponsored link