Oracle の Data Pump(expdp)では、compression パラメータを使ってエクスポート時にダンプファイルを圧縮できます。大規模なデータベースのバックアップや移行では、ファイルサイズを大幅に削減でき、ストレージコストの節約・転送時間の短縮に直結します。
本記事では、compression=all をはじめとした各圧縮オプションの違い、ライセンスの注意点、圧縮効果の確認方法まで、実務で使える知識を体系的に解説します。
この記事でわかること
compressionパラメータの4つの値(none/metadata_only/data_only/all)の違い- Advanced Compression オプションライセンスが必要な場合とそうでない場合
- 圧縮効果の確認方法(ファイルサイズ比較・圧縮率の目安)
- parfile(パラメータファイル)での指定方法
- impdp でのインポート手順(特別な指定は不要)
- 圧縮と並列処理(parallel)の組み合わせ
compression パラメータの4つの値
compression パラメータで圧縮対象と必要なライセンスが変わります。
| 値 | 圧縮対象 | 必要なライセンス | Oracle バージョン |
|---|---|---|---|
| none | 圧縮しない(デフォルト) | 不要 | — |
| metadata_only | メタデータ(DDL等)のみ圧縮 | 不要(Standard/Enterprise) | 10g以降 |
| data_only | データ(行)のみ圧縮 | Advanced Compression必須 | 11g以降 |
| all | メタデータ + データの両方を圧縮 | Advanced Compression必須 | 11g以降 |
ライセンスに注意:data_only と all は Advanced Compression が必要
compression=data_only または compression=all を使用するには、Oracle Database Enterprise Edition + Advanced Compression Option ライセンスが必要です。Standard Edition では compression=metadata_only までしか使用できません。ライセンスを持っていない状態で使用すると、Oracle の利用規約違反になる場合があります。ライセンスの確認方法
-- インストール済みオプションを確認 SELECT comp_name, status FROM dba_registry WHERE comp_name LIKE '%Compress%'; -- Advanced Compression が有効かどうか SELECT value FROM v$option WHERE parameter = 'Advanced Compression';
結果の見方
v$option の Advanced Compression の value が TRUE であれば、compression=all が使用できます。FALSE の場合は metadata_only のみ使用可能です。基本構文:compression=all
expdp system/password \ directory=DATA_PUMP_DIR \ dumpfile=export_compressed.dmp \ logfile=export_compressed.log \ schemas=scott \ compression=all
compression=all の効果
メタデータとデータの両方を圧縮します。一般的なデータベースで 60〜80% のファイルサイズ削減効果があります(データの内容や重複率によって異なります)。
メタデータとデータの両方を圧縮します。一般的なデータベースで 60〜80% のファイルサイズ削減効果があります(データの内容や重複率によって異なります)。
各圧縮オプションの使い方
compression=metadata_only(ライセンス不要)
テーブル定義・インデックス定義などのメタデータ部分だけを圧縮します。Standard Edition でも使えるため、最も安全なオプションです。
expdp scott/tiger \ directory=DATA_PUMP_DIR \ dumpfile=meta_compressed.dmp \ schemas=scott \ compression=metadata_only
metadata_only の圧縮効果
メタデータはデータ量が少ないため、全体のファイルサイズへの影響は小さい(数%程度)です。しかし特別なライセンスなしで使え、インポート時の互換性も良いため、Standard Edition では有効な選択肢です。
メタデータはデータ量が少ないため、全体のファイルサイズへの影響は小さい(数%程度)です。しかし特別なライセンスなしで使え、インポート時の互換性も良いため、Standard Edition では有効な選択肢です。
compression=data_only
データ(行)のみを圧縮します。メタデータ(DDL)は圧縮しません。
expdp system/password \ directory=DATA_PUMP_DIR \ dumpfile=data_compressed.dmp \ schemas=scott \ compression=data_only
compression=all(最大圧縮)
メタデータとデータの両方を圧縮します。ファイルサイズを最大限に削減できます。
expdp scott/tiger \ directory=DATA_PUMP_DIR \ dumpfile=scott_comp.dmp \ logfile=scott_comp.log \ schemas=scott \ compression=all
parfile(パラメータファイル)での指定
長いコマンドは parfile に記述することで管理しやすくなります。
-- exp_compress.par の内容 directory=DATA_PUMP_DIR dumpfile=scott_comp.dmp logfile=scott_comp.log schemas=scott compression=all parallel=4
-- parfile を使った実行 expdp scott/tiger parfile=exp_compress.par
圧縮と parallel の組み合わせ
compression=all と parallel を組み合わせると、圧縮しながら並列エクスポートができます。
expdp system/password \ directory=DATA_PUMP_DIR \ dumpfile=export_%U.dmp \ logfile=export_par.log \ schemas=scott \ compression=all \ parallel=4
parallel 使用時の注意点
parallel を指定する場合は dumpfile に %U を使って複数ファイルに分割出力する形式にしてください。例:dumpfile=export_%U.dmp → export_01.dmp, export_02.dmp … として出力されます。圧縮効果の確認方法
ファイルサイズで比較する
-- OS コマンドでファイルサイズを確認(Linux/Unix) -- ls -lh $ORACLE_BASE/admin/XE/dpdump/ -- Oracleのディレクトリパス確認 SELECT directory_name, directory_path FROM dba_directories WHERE directory_name = 'DATA_PUMP_DIR';
ログファイルで圧縮率を確認
expdp のログファイルに圧縮前後のサイズが出力されます。
-- ログファイルの例(圧縮前と圧縮後のサイズが記録される) -- Dump file set for SCOTT.SYS_EXPORT_SCHEMA_01 is: -- /u01/oradata/dpdump/scott_comp.dmp -- Job "SCOTT"."SYS_EXPORT_SCHEMA_01" successfully completed at ... -- Bytes processed: 1,024,000,000 -- Compressed to: 256,000,000 (圧縮率: 75%)
圧縮率の目安
テキストデータが多い場合:70〜85%削減
数値データが多い場合:50〜70%削減
すでに圧縮済みのBLOBデータ:ほぼ圧縮効果なし
一般的なOLTPデータ:60〜80%削減
テキストデータが多い場合:70〜85%削減
数値データが多い場合:50〜70%削減
すでに圧縮済みのBLOBデータ:ほぼ圧縮効果なし
一般的なOLTPデータ:60〜80%削減
impdp でのインポート(特別な設定は不要)
圧縮されたダンプファイルのインポートには特別なオプションは不要です。impdp が自動的に圧縮を解凍します。
-- 通常のインポートコマンドでOK impdp system/password \ directory=DATA_PUMP_DIR \ dumpfile=scott_comp.dmp \ logfile=import_scott.log \ schemas=scott \ table_exists_action=replace
インポート先にAdvanced Compressionは不要
圧縮されたダンプファイルをインポートする場合、インポート先のDBに Advanced Compression ライセンスは必要ありません。エクスポート時にのみライセンスが必要です。
圧縮されたダンプファイルをインポートする場合、インポート先のDBに Advanced Compression ライセンスは必要ありません。エクスポート時にのみライセンスが必要です。
よくあるエラーと対処法
ORA-39173:圧縮に必要なライセンスがない
ORA-39173: Encrypted or compressed dump file formats require the
Advanced Encryption or Compression option.
Advanced Compression ライセンスなしで compression=data_only または compression=all を使用した場合に発生します。
-- 対処: metadata_only に変更するか、Advanced Compression ライセンスを取得 expdp scott/tiger \ directory=DATA_PUMP_DIR \ dumpfile=export.dmp \ schemas=scott \ compression=metadata_only -- Standard Edition でも使える
ORA-29339: 圧縮形式の不一致
古いバージョンの impdp で、新しいバージョンで圧縮されたダンプをインポートしようとした場合に発生します。
-- 対処: expdp 側で version パラメータを指定して互換性を確保 expdp scott/tiger \ directory=DATA_PUMP_DIR \ dumpfile=export.dmp \ schemas=scott \ compression=all \ version=12.2
compression の選択ガイド
| 状況 | 推奨オプション | 理由 |
|---|---|---|
| Standard Editionを使用 | metadata_only |
ライセンス不要 |
| Enterprise Edition + Advanced Compressionあり | all |
最大圧縮効果 |
| CPU負荷を抑えたい | metadata_only |
データ圧縮はCPUを消費 |
| ストレージコストを最優先 | all |
最大60〜80%削減 |
| 古いバージョンとの互換性 | metadata_only |
バージョン間の互換性が高い |
よくある質問
Q. compression=all を使うと必ずAdvanced Compressionライセンスが必要ですか?
A. はい、
data_only または all を使う場合は、Oracle Database Enterprise Edition と Advanced Compression Option ライセンスの両方が必要です。metadata_only であれば Standard Edition でもライセンスなしで使用できます。Q. 圧縮されたダンプをインポートする際にも Advanced Compression が必要ですか?
A. いいえ、不要です。圧縮の解凍(インポート)は Advanced Compression ライセンスなしでも実行できます。ライセンスが必要なのはエクスポート時(圧縮する側)だけです。
Q. 圧縮によってCPU負荷はどのくらい上がりますか?
A.
compression=all では CPU 使用率が通常の1.2〜2倍程度増加することがあります。夜間バッチやバックアップ時間帯に実行する場合は許容範囲内ですが、業務時間中に実行する場合は metadata_only の方が安全です。Q. BLOBデータを含むテーブルで compression=all の効果は?
A. JPEG・MP4・PDF など、すでに圧縮済みのバイナリデータに対しては圧縮効果がほとんどありません(場合によってはわずかにサイズが増えることも)。BLOB が中心のテーブルでは
metadata_only の方が現実的です。Q. impdp でインポートするとき、同じ compression の指定は必要ですか?
A. 不要です。impdp は圧縮されたダンプファイルを自動的に検出して解凍します。インポートコマンドには
compression を指定しないのが通常の使い方です。まとめ
Data Pump compression パラメータのポイント
metadata_only:Standard Edition でも使える。ライセン不要data_only/all:Enterprise Edition + Advanced Compression が必要- 圧縮効果は一般的なデータで 60〜80% のサイズ削減
- 圧縮されたダンプのインポートには特別な設定不要
- CPU負荷を考慮して夜間バッチ・バックアップ時間帯に実行するのが安全

