Oracle Database の運用で「バックアップ時間が長すぎる」「ディスク容量が足りない」とお悩みではありませんか?結論として、増分バックアップを活用すれば、変更のあったデータブロックのみを効率的に保存できます。本記事では、累積増分バックアップと差分増分バックアップの仕組み、使い分けの判断基準、具体的な RMAN コマンド例を初心者の方にも分かりやすく解説します。
💰 【PR】Oracleエンジニアの市場価値、調べてみませんか?
Oracleのスキルは需要が高く、特定の資格や経験を持っていると年収が大幅にアップするケースがあります。まずはIT専門のエージェントで非公開求人をチェックしてみませんか?
結論:どちらを使うべき?最短比較リスト
バックアップ戦略を立てる際の「やることリスト」と判断基準です。
- バックアップ時間を最短にしたい・容量を節約したい→ 差分増分バックアップを選択。
- 障害発生時のリカバリ作業をシンプル・迅速にしたい→ 累積増分バックアップを選択。
- 運用方針の決定→ 週に1回「レベル0(フル)」、毎日に「レベル1(増分)」を取得するのが一般的です。
増分バックアップの基礎知識とレベルの定義
増分バックアップとは、前回のバックアップ以降に変更されたデータブロックのみをコピーする手法です。Oracle では「レベル」という概念で管理されます。
- レベル0(増分レベル0): 基礎となるバックアップ。全データブロックをバックアップします(実質的なフルバックアップですが、増分戦略の起点として必須です)。
- レベル1(増分レベル1): レベル0、または他のレベル1以降の変更分をバックアップします。これに「差分」と「累積」の2種類が存在します。
差分増分バックアップと累積増分バックアップの違いとは?
もっとも大きな違いは「どの時点からの変更分を持つか」という基準点にあります。
1. 差分増分バックアップ (Differential)
デフォルトの設定です。**「直前のレベル1(またはレベル0)」**以降の変更分を取得します。
- メリット: 毎日のバックアップ量が最小限で済みます。
- デメリット: リカバリ時、レベル0以降の「すべての日のレベル1」を順番に適用する必要があり、時間がかかります。
2. 累積増分バックアップ (Cumulative)
「直前のレベル0」以降のすべての変更分を取得します。
- メリット: リカバリ時、「レベル0」と「最新の累積レベル1」の2つがあれば復旧できるため、作業が高速です。
- デメリット: レベル0からの日数が経過するほど、バックアップサイズが肥大化します。
図解:バックアップイメージの比較
【差分増分 (Differential)】 ※デフォルト
月(L0) ── 火(L1) ── 水(L1) ── 木(L1)
[火のみ] [水のみ] [木のみ]
【累積増分 (Cumulative)】
月(L0) ── 火(L1) ── 水(L1) ── 木(L1)
[火のみ] [火+水] [火+水+木]
実装:RMANによるバックアップ実行例
実行には SYSBACKUP または SYSDBA 権限が必要です。CDB/PDB環境では、接続先(ルートまたは個別PDB)に応じた範囲が取得されます。
前提条件
- ターゲット・データベースが ARCHIVELOGモード であること。
- RMAN(Recovery Manager)で接続していること。
1. 増分レベル0(基盤)の取得
すべての増分バックアップの起点となります。
-- データベース全体のレベル0バックアップを実行
RMAN> BACKUP INCREMENTAL LEVEL 0 DATABASE;
意図:全データブロックをスキャンし、増分適用のベースラインを作成します。
2. 累積増分レベル1の取得
「CUMULATIVE」キーワードを明示します。
-- レベル0以降の全変更分をバックアップ
RMAN> BACKUP INCREMENTAL LEVEL 1 CUMULATIVE DATABASE;
意図:前回のレベル0以降に発生した全変更を1つのバックアップセットにまとめます。
RMAN> BACKUP INCREMENTAL LEVEL 1 CUMULATIVE DATABASE;
backupを25-02-16で開始しています
チャネルORA_DISK_1の使用
チャネルORA_DISK_1: 増分レベル1のデータファイル・バックアップ・セットを開始しています
チャネルORA_DISK_1: バックアップ・セットにデータファイルを指定しています
入力データファイル ファイル番号=00001 名前=/u01/app/oracle/oradata/V19/system01.dbf
入力データファイル ファイル番号=00003 名前=/u01/app/oracle/oradata/V19/sysaux01.dbf
入力データファイル ファイル番号=00004 名前=/u01/app/oracle/oradata/V19/undotbs01.dbf
入力データファイル ファイル番号=00005 名前=/u01/app/oracle/oradata/V19/rctbs01.dbf
入力データファイル ファイル番号=00007 名前=/u01/app/oracle/oradata/V19/users01.dbf
チャネルORA_DISK_1: ピース1 (25-02-16)を起動します
チャネルORA_DISK_1: ピース1 (25-02-16)が完了しました
ピース・ハンドル=/u01/app/oracle/product/19.0.0/dbhome_1/dbs/133huqn2_35_1_1 タグ=TAG20250216T155514 コメント=NONE
チャネルORA_DISK_1: バックアップ・セットが完了しました。経過時間: 00:00:07
backupを25-02-16で終了しました
Control File and SPFILE Autobackupを25-02-16で開始しています
ピース・ハンドル=/u01/app/oracle/product/19.0.0/dbhome_1/dbs/c-2957249400-20250216-0b コメント=NONE
Control File and SPFILE Autobackupを25-02-16で終了しました
3. 差分増分レベル1の取得
キーワードを指定しない場合、自動的に差分となります。
-- 直近のレベル1または0からの変更分のみバックアップ
RMAN> BACKUP INCREMENTAL LEVEL 1 DATABASE;
トラブルシューティング:よくあるORAエラーと対処法
| エラーコード | 原因 | 対処法 |
| ORA-19606 | バックアップ対象が読み取り専用 | 読み取り専用ファイルを含める設定か確認。 |
| ORA-19504 | 書き込み先のディスク容量不足 | 累積増分の場合はサイズが大きくなるため、領域を確保。 |
| ORA-15025 | ASMディスクへのアクセス失敗 | 権限設定およびディスク・グループの状態を確認。 |
運用上の注意点とセキュリティ
- ブロック・チェンジ・トラッキング (BCT)増分バックアップを高速化するには、BCT機能を有効にすることを強く推奨します。これを有効にしないと、Oracleは変更箇所を探すために全データファイルをスキャンしてしまいます。SQL
-- BCTの有効化(SYSDBA権限でSQL実行) ALTER DATABASE ENABLE BLOCK CHANGE TRACKING USING FILE '/u01/app/oracle/oradata/bct_file.trc'; - セキュリティバックアップ・ピースには機密データが含まれます。
CONFIGURE ENCRYPTION FOR DATABASE ON;を使用した暗号化を検討してください。 - 戻し方の確認バックアップは「リカバリできること」がゴールです。定期的に
RESTORE DATABASE VALIDATE;で整合性を確認しましょう。
FAQ:よくある質問
Q: 増分バックアップは Standard Edition 2 (SE2) でも使えますか?
A: はい、SE2でも RMAN による増分バックアップは利用可能です。ただし、高速化のための「ブロック・チェンジ・トラッキング」は Enterprise Edition (EE) 限定の機能です。
Q: レベル2やレベル3のバックアップはありますか?
A: 以前のバージョンには存在しましたが、現在は レベル0とレベル1のみ がサポートされています。
Q: 累積と差分、どちらがストレージを消費しますか?
A: 一般的に、同じ頻度で取得するなら「累積増分」の方が、重複データを含むためストレージ消費量は多くなります。
まとめ
- 増分バックアップ は変更ブロックのみをコピーし、効率的なデータ保護を実現する。
- 差分増分 は「直前のバックアップ」が起点。サイズ最小、リカバリはやや低速。
- 累積増分 は「直前のレベル0」が起点。サイズ大、リカバリは高速。
- 19c運用 では、バックアップ時間短縮のために「ブロック・チェンジ・トラッキング」の併用を検討する。
本記事は Oracle Database 19c を対象に解説します(他バージョンは画面や既定値が異なる場合があります)。
[参考]
Oracle Database バックアップおよびリカバリ・ユーザーズ・ガイド 19c
💰 【PR】Oracleエンジニアの市場価値、調べてみませんか?
Oracleのスキルは需要が高く、特定の資格や経験を持っていると年収が大幅にアップするケースがあります。まずはIT専門のエージェントで非公開求人をチェックしてみませんか?



コメント