OracleのData Pump(expdp
)では、エクスポート時に出力されるダンプファイルを圧縮することで、ストレージの節約や転送時間の短縮が可能です。特にcompression=all
オプションを使えば、メタデータとデータの両方を圧縮することができます。本記事では、Data Pumpでの圧縮の仕組みとcompression
パラメータの使い方を解説します。
compressionパラメータとは?
compression
は、Data Pumpエクスポート時に出力される内容の圧縮方法を指定するためのパラメータです。Oracle 11g以降で使用可能で、Enterprise EditionとAdvanced Compressionオプションを組み合わせることでより強力に活用できます。
主な指定値
値 | 圧縮対象 |
---|---|
none | 圧縮しない(デフォルト) |
metadata_only | メタデータのみ圧縮(標準ライセンスで使用可能) |
data_only | データのみ圧縮(Advanced Compressionが必要) |
all | メタデータ+データを圧縮(Advanced Compressionが必要) |
圧縮付きでエクスポートする基本構文
expdp ユーザー名/パスワード directory=ディレクトリ名 dumpfile=ファイル名.dmp logfile=ログファイル名.log compression=all
使用例:SCOTTスキーマをすべて圧縮してエクスポート
expdp scott/tiger directory=DATA_PUMP_DIR dumpfile=scott_comp.dmp logfile=scott_comp.log schemas=scott compression=all
このコマンドでは、SCOTTスキーマのメタデータとデータの両方を圧縮して、scott_comp.dmp
に出力します。
ライセンスに注意(Enterprise Edition + Advanced Compression)
compression=all
や data_only
を使用するには、Oracle Database Enterprise EditionとAdvanced Compression
オプションが必要です。Standard Editionではcompression=metadata_only
しか使用できませんので、環境に合わせた指定を行いましょう。
圧縮の効果と確認方法
- 圧縮によりダンプファイルのサイズが大幅に小さくなる
- 圧縮に伴い、CPU使用率が一時的に上昇することがある
- 実行後は
du -h
などでファイルサイズを比較して効果を確認
パラメータファイル(parfile)での指定例
directory=DATA_PUMP_DIR
dumpfile=scott_comp.dmp
logfile=scott_comp.log
schemas=scott
compression=all
parfile=exp_compress.par
として保存し、以下のように実行します:
expdp scott/tiger parfile=exp_compress.par
まとめ
compression=all
を活用すれば、OracleのData Pumpで生成されるダンプファイルのサイズを大幅に削減できます。ストレージ使用量の節約や、バックアップ・移行作業の効率化に役立つ便利な機能です。
ただし、使用可能な圧縮モードはライセンスによって制限があるため、環境に応じてmetadata_only
やall
などを使い分けましょう。効率よく安全なデータ管理を行うために、圧縮オプションをぜひ有効活用してみてください。