Oracleデータベースのバックアップを効率化する手段の一つが、RMAN(Recovery Manager)による増分バックアップです。特に大規模なデータベース環境では、毎回フルバックアップを取るのは非効率ですが、増分バックアップを活用することで、変更されたデータだけをバックアップ対象にでき、処理時間とディスク容量を大幅に節約できます。
本記事では、RMANのLEVEL 0
とLEVEL 1
の違いや、具体的な使い分け、実行例について詳しく解説します。
RMANの増分バックアップとは?
増分バックアップとは、前回のバックアップ以降に変更されたデータブロックのみをバックアップする方法です。RMANでは、以下の2つのレベルに分類されます:
LEVEL 0 バックアップ
- 完全なフルバックアップと同じ
- 増分バックアップの基準となるバックアップ
- 最初に必ず取得する必要がある
LEVEL 1 バックアップ
- LEVEL 0以降に変更があったブロックのみをバックアップ
- LEVEL 0を基準とした差分バックアップ(デフォルト)
- LEVEL 1だけではリカバリできない
差分と累積の違い
LEVEL 1 バックアップには、さらに「差分」と「累積」の2種類があります。
種類 | 対象 |
---|---|
差分(INCREMENTAL LEVEL 1) | 直前のLEVEL 0 または LEVEL 1 バックアップ以降の変更ブロック |
累積(INCREMENTAL LEVEL 1 CUMULATIVE) | 直前のLEVEL 0 バックアップ以降すべての変更ブロック |
基本的な実行例
LEVEL 0 バックアップの取得
RUN {
BACKUP INCREMENTAL LEVEL 0 DATABASE FORMAT '/backup/full_%U.bkp';
}
最初にこのLEVEL 0バックアップを取得しておくことで、以降の増分バックアップが機能します。
差分バックアップ(LEVEL 1)の取得
RUN {
BACKUP INCREMENTAL LEVEL 1 DATABASE FORMAT '/backup/inc_%U.bkp';
}
累積バックアップ(LEVEL 1 CUMULATIVE)の取得
RUN {
BACKUP INCREMENTAL LEVEL 1 CUMULATIVE DATABASE FORMAT '/backup/cum_%U.bkp';
}
増分バックアップの運用例(週間スケジュール)
- 日曜日: LEVEL 0 フルバックアップ
- 月~土曜日: LEVEL 1 差分バックアップ
このスケジュールであれば、1週間分のリカバリが可能で、ディスク容量も節約できます。
リカバリ時の挙動
リストア時は、RMANが自動的に LEVEL 0 および LEVEL 1 のバックアップを組み合わせて、最も効率の良い順序で復元処理を実行します。
LEVEL 1(差分)を頻繁に取りつつ、定期的にLEVEL 0を取り直すことで、リカバリの高速化と確実性を両立できます。
まとめ
RMANの増分バックアップは、Oracleデータベースのバックアップ運用において、パフォーマンスとストレージ効率を両立させる重要な手法です。
- LEVEL 0:増分の基準となるフルバックアップ
- LEVEL 1(差分):直前のバックアップ以降の変更分
- LEVEL 1(累積):LEVEL 0 以降の変更をすべて取得
システム構成やリカバリ要件に応じて、LEVEL 0 と LEVEL 1 の組み合わせを設計し、効率的なバックアップ戦略を構築していきましょう。