Oracleデータベースのバックアップ処理は、システムの運用において非常に重要です。しかし、バックアップに時間がかかると業務に影響を与えることもあります。そこで本記事では、Data Pump(expdp) や RMAN を使用した際に、バックアップの速度を向上させる方法を詳しく解説します。
Data Pump Export(expdp)でバックアップを高速化する方法
parallelオプションを使って並列処理を実行
Data Pumpでは parallel
オプションを使うことで、複数プロセスによる並列処理が可能になります。
expdp scott/tiger directory=DATA_PUMP_DIR dumpfile=emp_%U.dmp logfile=emp.log tables=scott.emp parallel=4
parallel=4
と指定することで、4プロセスで同時にエクスポートを実行します。dumpfile
には %U
を使用し、複数ファイルに分割して出力する必要があります。
Direct Pathモードの利用
Data Pumpは内部的に「Direct Path」または「External Table」方式でデータをエクスポートします。Direct Pathはより高速な方式です。
expdp scott/tiger directory=DATA_PUMP_DIR dumpfile=emp.dmp logfile=emp.log tables=scott.emp access_method=direct_path
access_method=direct_path
を明示的に指定することで、より高速な転送処理が可能になります。
不要なデータを除外する
インデックスや統計情報などを除外することで、バックアップのデータ量を削減し、高速化できます。
expdp scott/tiger directory=DATA_PUMP_DIR dumpfile=emp.dmp logfile=emp.log tables=scott.emp content=data_only
content=data_only
を指定すると、データのみをエクスポートし、テーブル定義やインデックスなどは除外されます。
ネットワークリンクを使用しない
network_link
を使ったエクスポートは便利ですが、ネットワーク帯域がボトルネックになることがあります。可能であれば、エクスポート対象のデータベースに直接接続して処理を行う方が高速です。
RMANでバックアップを高速化する方法
複数チャネルでの並列バックアップ
RMANでは ALLOCATE CHANNEL
を使って並列にバックアップを実行することができます。
RUN {
ALLOCATE CHANNEL c1 DEVICE TYPE DISK;
ALLOCATE CHANNEL c2 DEVICE TYPE DISK;
BACKUP DATABASE;
}
チャネル数を増やすことで、複数ファイルを同時に処理できるため、高速化が可能です。
圧縮を無効にしてI/O優先に
データ圧縮はディスク容量の節約にはなりますが、CPU負荷が高くなるため処理時間が長くなることがあります。高速性を優先するなら、圧縮を無効化しましょう。
BACKUP AS BACKUPSET DATABASE FORMAT '/backup/db_%U.bkp' COMPRESSION ALGORITHM 'NONE';
増分バックアップの活用
毎回フルバックアップを取るのではなく、変更があった部分だけをバックアップする増分方式を活用することで、処理時間を大幅に短縮できます。
BACKUP INCREMENTAL LEVEL 1 DATABASE;
ハードウェアとOS側でのパフォーマンス改善
- バックアップ先を高速ストレージ(SSDなど)に変更
- CPUやメモリのリソース状況を確認し、他の重い処理と重ならないようにする
- I/Oの混雑を避けるため、夜間などの空き時間帯にバックアップを実行
まとめ
方法 | 対象 | 効果 |
---|---|---|
parallelオプション | Data Pump | 並列処理で大幅高速化 |
Direct Pathモード | Data Pump | 転送効率の向上 |
不要データ除外 | Data Pump | 出力サイズと処理時間を削減 |
複数チャネルの設定 | RMAN | 並列処理で高速化 |
非圧縮モード | RMAN | CPU負荷の軽減 |
増分バックアップ | RMAN | 変更データのみ対象にして高速化 |
バックアップは「安全性」と「スピード」のバランスが求められます。システムの負荷や環境に応じて最適な設定を行い、業務に支障が出ないよう適切にチューニングしていきましょう。