現在地

DATAPUMP パラメータオプションによるアーカイブログの作成抑止について

*以下は、サポート契約締結中のお客様に毎月配信しているサポートレターより一部抜粋して掲載しています。

「DATAPUMP IMPORT 実行時にアーカイブログの作成を抑止する方法はないか」というお問合せをいただくことがあります。
対策の1つとしてオブジェクトを NOLOGGING モードに手動で変更する方法がありますが、12.1 以上のバージョンでは DATAPUMP TRANSFORM パラメータの DISABLE_ARCHIVE_LOGGINGオプションにより、インポート時のロギング属性を変更することができるようになりました。
DISABLE_ARCHIVE_LOGGING オプションについてご紹介します。

DISABLE_ARCHIVE_LOGGING とは

DATAPUMP インポート時に設定できる TRANSFORM パラメータのオプションで、インポート時に FORCE LOGGING モードではない表と索引のロギング属性を無効にするオプションです。インポート終了後はインポート元と同じロギング属性になります。

[構文]
TRANSFORM = DISABLE_ARCHIVE_LOGGING:value[:object_type]
[設定値]
 - Y : インポート中のロギング属性を無効化
 - N : 無効化しない(デフォルト)
object_type
 - TABLE: 表のロギング属性を無効化
 - INDEX: 索引のロギング属性を無効化
 - 設定なし:設定しない場合、表と索引のロギング属性を無効化

以下のように実行した場合、インポート時に表のロギング属性が無効化されます。

IMPDP SCOTT/TIGER ... TRANSFORM=DISABLE_ARCIVE_LOGGING:Y:TABLE

DISABLE_ARCHIVE_LOGGING 設定時の比較

実際に TESTIMPORT 表をインポートしてオプション未設定時と設定時で比較をし、アーカイブログが減っているか確認します。

[1回目] オプションなし

IMPDP SCOTT/TIGER DIRECTORY=my_dir DUMPFILE=testimport.dmp TABLES=TESTIMPORT
 CONTENT=DATA_ONLY LOGFILE=impdp.log LOGTIME=STATUS
:
:
18-OCT-16 15:31:59.807: . . imported "SCOTT"."TESTIMPORT"  212.6 MB 1600001 rows
 18-OCT-16 15:31:59.863: Job "SCOTT"."SYS_IMPORT_TABLE_01" successfully completed
 ※1~~~~~~~~~~~~~~~~~~~  at Tue Oct 18 15:31:59 2016 elapsed 0 00:01:05 <<★1分5秒

アーカイブログファイル数

SQL> select count(*)  from v$archived_log where FIRST_CHANGE# >= 3510003;
                                                                  ※2~~~~
 COUNT(*)
 ----------
          5 <<★

[2回目] オプションあり

IMPDP SCOTT/TIGER DIRECTORY=my_dir DUMPFILE=testimport.dmp TABLES=TESTIMPORT
 CONTENT=DATA_ONLY TRANSFORM=DISABLE_ARCIVE_LOGGING:Y:TABLE LOGFILE=impdp_op.log
 LOGTIME=STATUS
 :
 :
 18-OCT-16 16:44:57.319: . . imported "SCOTT"."TESTIMPORT" 212.6 MB 1600001 rows
 18-OCT-16 16:44:57.495: Job "SCOTT"."SYS_IMPORT_TABLE_01" successfully completed
                         at Tue Oct 18 16:44:57 2016 elapsed 0 00:00:07 <<★7秒

アーカイブログファイル数

SQL> select count(*) from v$archived_log where FIRST_CHANGE# >= 3515208;
                                                                 ※3~~~~
 COUNT(*)
 ----------
          0 <<★

DISABLE_ARCIVE_LOGGING の設定によりアーカイブログファイルの出力が抑えられ、実行時間も短縮したことが確認できます。

  • ※1 LOGTIME パラメータの設定による出力になります。こちらも 12.1 以上で追加されたパラメータで、設定によりタイムスタンプの出力先などを制御できます。
  • ※2,3 IMPDP コマンドの実行直前に確認した V$DATABASE.CURRENT_SCN の値で、SCNを元に IMPDP 以降の SCN を含むアーカイブログの個数を確認しています。

まとめ

今回は1つの表でのみの確認となりましたが、スキーマ単位でのインポートなど含まれる表や索引が増えますと、従来の手動でロギング属性をインポート実行前後で変更する方法では手間が多くかかります。本オプションでは対象の個数に関係なく、IMPDP コマンドに設定するだけで済むため、有効だと思います。
インポート時に出力するアーカイブログを少なくしたい場合に使用してみてはいかがでしょうか。

(オラクル事業部 グローバル・アライアンス&サポート・サービス担当 加藤)