増分更新バックアップ(Incremental Update Backup)の完全ガイド

Oracle Master Gold

Oracle Databaseのバックアップ運用で「リカバリ時間を短縮したいが、毎日のフルバックアップはストレージ負荷が高い」とお悩みではありませんか? 増分更新バックアップ(Incremental Update Backup)は、RMAN(Recovery Manager)の機能を活用し、イメージコピーと増分バックアップを組み合わせることで、常に最新のフルバックアップを維持できる効率的な手法です。

💰 【PR】Oracleエンジニアの市場価値、調べてみませんか?

Oracleのスキルは需要が高く、特定の資格や経験を持っていると年収が大幅にアップするケースがあります。まずはIT専門のエージェントで非公開求人をチェックしてみませんか?


増分更新バックアップの仕組みとメリット

通常、増分バックアップからのリカバリは「フルバックアップのリストア + 複数の増分バックアップの適用」という手順を踏むため、時間がかかります。

増分更新バックアップは、あらかじめイメージコピーに対して増分を適用(ROLLING FORWARD)しておくことで、リカバリ時の工程を大幅にスキップします。

主なメリット

  • 即時リカバリ(MTTRの短縮):イメージコピーが既に最新(または前日時点)のため、ファイル転送時間が不要。
  • ストレージの最適化:フルバックアップを毎回作成せず、1世代分+増分データのみで運用可能。
  • バックアップ時間の短縮:読み取り・書き込み負荷が変更ブロックのみに限定される。

増分更新バックアップの設定手順

増分バックアップの取得(定期的に実施)

増分レベル1のバックアップを取得し、更新用のバックアップを作成します。

RMAN> BACKUP INCREMENTAL LEVEL 1 FOR RECOVER OF COPY WITH TAG 'INCR_UPDATE' DATABASE;

イメージコピーへの増分適用(ROLLING FORWARD)

取得した増分バックアップをイメージコピーに適用し、常に最新の状態を維持します。

RMAN> RECOVER COPY OF DATABASE WITH TAG 'INCR_UPDATE';

この手順を定期的に実行することで、フルバックアップを取得せずに最新のイメージコピーが維持されます。

RMAN> BACKUP INCREMENTAL LEVEL 1 FOR RECOVER OF COPY WITH TAG 'INCR_UPDATE' DATABASE;

backupを25-02-20で開始しています
チャネル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-20)を起動します
チャネルORA_DISK_1: ピース1 (25-02-20)が完了しました
ピース・ハンドル=/u01/app/oracle/product/19.0.0/dbhome_1/dbs/173ia8cn_39_1_1 タ グ=INCR_UPDATE コメント=NONE
チャネルORA_DISK_1: バックアップ・セットが完了しました。経過時間: 00:00:07
backupを25-02-20で終了しました

Control File and SPFILE Autobackupを25-02-20で開始しています
ピース・ハンドル=/u01/app/oracle/product/19.0.0/dbhome_1/dbs/c-2957249400-20250220-09 コメント=NONE
Control File and SPFILE Autobackupを25-02-20で終了しました

RMAN> RECOVER COPY OF DATABASE WITH TAG 'INCR_UPDATE';

recoverを25-02-20で開始しています
チャネルORA_DISK_1の使用
チャネルORA_DISK_1: 増分データファイル・バックアップ・セットのリストアを開始しています
チャネルORA_DISK_1: リカバリするデータファイル・コピーを指定しています
リカバリしているデータファイル・コピーのファイル番号=00001 名前=/u01/app/oracle/product/19.0.0/dbhome_1/dbs/data_D-V19_I-2957249400_TS-SYSTEM_FNO-1_113ia8ah
リカバリしているデータファイル・コピーのファイル番号=00003 名前=/u01/app/oracle/product/19.0.0/dbhome_1/dbs/data_D-V19_I-2957249400_TS-SYSAUX_FNO-3_123ia8ao
リカバリしているデータファイル・コピーのファイル番号=00004 名前=/u01/app/oracle/product/19.0.0/dbhome_1/dbs/data_D-V19_I-2957249400_TS-UNDOTBS1_FNO-4_133ia8ar
リカバリしているデータファイル・コピーのファイル番号=00005 名前=/u01/app/oracle/product/19.0.0/dbhome_1/dbs/data_D-V19_I-2957249400_TS-RCTBS_FNO-5_143ia8au
リカバリしているデータファイル・コピーのファイル番号=00007 名前=/u01/app/oracle/product/19.0.0/dbhome_1/dbs/data_D-V19_I-2957249400_TS-USERS_FNO-7_153ia8b1
チャネルORA_DISK_1: バックアップ・ピース/u01/app/oracle/product/19.0.0/dbhome_1/dbs/173ia8cn_39_1_1から読取り中です
チャネルORA_DISK_1: ピース・ハンドル=/u01/app/oracle/product/19.0.0/dbhome_1/dbs/173ia8cn_39_1_1 タグ=INCR_UPDATE
チャネルORA_DISK_1: バックアップ・ピース1がリストアされました
チャネルORA_DISK_1: リストアが完了しました。経過時間: 00:00:02
recoverを25-02-20で終了しました

Control File and SPFILE Autobackupを25-02-20で開始しています
ピース・ハンドル=/u01/app/oracle/product/19.0.0/dbhome_1/dbs/c-2957249400-20250220-0a コメント=NONE
Control File and SPFILE Autobackupを25-02-20で終了しました

RMAN>

リストアとリカバリの実行(障害発生時)

障害時には、イメージコピーを使用して迅速にリストアとリカバリを行います。

RMAN> shutdown immediate
RMAN> startup mount;
RMAN> SWITCH DATABASE TO COPY;
RMAN> RECOVER DATABASE;
RMAN> alter database open;
RMAN> shutdown immediate

データベースがクローズしました
データベースがディスマウントされました。
Oracleインスタンスがシャットダウンしました

RMAN> startup mount;

ターゲット・データベースに接続しました(起動していません)。
Oracleインスタンスが起動しました
データベースがマウントされました。

システム・グローバル領域の合計は、 1543500120バイトです。

Fixed Size 8925528バイト
Variable Size 889192448バイト
Database Buffers 637534208バイト
Redo Buffers 7847936バイト

RMAN> SWITCH DATABASE TO COPY;

データファイル1はデータファイル・コピー"/u01/app/oracle/product/19.0.0/dbhome_1/dbs/data_D-V19_I-2957249400_TS-SYSTEM_FNO-1_113ia8ah"に切り替えられました
データファイル3はデータファイル・コピー"/u01/app/oracle/product/19.0.0/dbhome_1/dbs/data_D-V19_I-2957249400_TS-SYSAUX_FNO-3_123ia8ao"に切り替えられました
データファイル4はデータファイル・コピー"/u01/app/oracle/product/19.0.0/dbhome_1/dbs/data_D-V19_I-2957249400_TS-UNDOTBS1_FNO-4_133ia8ar"に切り替えられました
データファイル5はデータファイル・コピー"/u01/app/oracle/product/19.0.0/dbhome_1/dbs/data_D-V19_I-2957249400_TS-RCTBS_FNO-5_143ia8au"に切り替えられました
データファイル7はデータファイル・コピー"/u01/app/oracle/product/19.0.0/dbhome_1/dbs/data_D-V19_I-2957249400_TS-USERS_FNO-7_153ia8b1"に切り替えられました

RMAN> RECOVER DATABASE;

recoverを25-02-20で開始しています
チャネル: ORA_DISK_1が割り当てられました
チャネルORA_DISK_1: SID=37 デバイス・タイプ=DISK

メディア・リカバリを開始しています
メディア・リカバリが完了しました。経過時間: 00:00:01

recoverを25-02-20で終了しました

RMAN> alter database open;

文が処理されました

RMAN> select status from v$instance;

STATUS
------------
OPEN

💰 【PR】Oracleエンジニアの市場価値、調べてみませんか?

Oracleのスキルは需要が高く、特定の資格や経験を持っていると年収が大幅にアップするケースがあります。まずはIT専門のエージェントで非公開求人をチェックしてみませんか?


増分更新バックアップの運用例

増分更新バックアップを効果的に運用するためのスケジュール例を示します。

曜日バックアップ内容
日曜日フルバックアップ(イメージコピー作成)
月曜日増分レベル1適用(イメージコピー更新)
火曜日増分レベル1適用(イメージコピー更新)
水曜日増分レベル1適用(イメージコピー更新)
木曜日増分レベル1適用(イメージコピー更新)
金曜日増分レベル1適用(イメージコピー更新)
土曜日増分レベル1適用(イメージコピー更新)

この運用を行うことで、最新のフルバックアップが維持され、復旧時間を大幅に短縮できます。


ベストプラクティス

適切なストレージの確保

  • イメージコピーの保存先には十分なディスク容量を確保する。
  • 増分バックアップの保持期間を考慮し、適切なディスク管理を行う。

自動化の導入

  • CRONDBMS_SCHEDULER を利用して増分バックアップの適用を自動化。
  • RMANスクリプトを活用し、定期的なバックアップと適用を自動実行。

定期的なリストアテスト

  • 障害発生時のために、定期的にバックアップデータをリストアし、リカバリの検証を実施。
  • RESTORE DATABASE VALIDATE コマンドを利用してバックアップの整合性を確認。
RMAN> RESTORE DATABASE VALIDATE;

アーカイブログ管理

  • 増分更新バックアップはアーカイブログモードでの運用が必須。
  • アーカイブログの適切な管理を行い、ストレージの過負荷を防ぐ。
RMAN> DELETE ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-7';

トラブルシューティング:代表的なORAエラー

エラーコード原因確認・対処法
ORA-19625バックアップファイルが見つからないLIST COPY でファイルの存在を確認。消失時は再度イメージコピーを取得。
ORA-19504書き込み先のディスク容量不足ストレージ残量を確認。古い増分バックアップやログを削除。
ORA-00257アーカイブログ領域の満杯増分適用後、不要なアーカイブログを DELETE ARCHIVELOG で削除。

運用・セキュリティ上の注意

  • 戻し方の検討SWITCH コマンドでバックアップ先に切り替えた後は、バックアップディスク上でDBが動作します。パフォーマンス低下のリスクがあるため、復旧後に本来の高速ストレージへ戻す手順を標準化してください。
  • タグ管理の徹底WITH TAG を指定しないと、他のバックアップと混同され、正しく更新が適用されない原因になります。
  • ブロック・チェンジ・トラッキング:増分バックアップを高速化するため、ALTER DATABASE ENABLE BLOCK CHANGE TRACKING; の設定を強く推奨します。

FAQ:よくある質問

Q1. 増分更新バックアップと通常の増分バックアップの違いは?

A1. 通常の増分バックアップは、リカバリ時に「フル + 増分1 + 増分2…」と順番に適用していきますが、増分更新はあらかじめコピーに適用を済ませておくため、リカバリが圧倒的に早いです。

Q2. ストレージ容量はどれくらい必要ですか?

A2. 最低限、データベースの全サイズ(イメージコピー用) + 日々の変更量(増分バックアップ用)が必要です。

Q3. Standard Edition 2 (SE2) でも利用できますか?

A3. はい、SE2/EE どちらの Edition でも利用可能な RMAN の標準機能です。


まとめ

  • 増分更新バックアップ は、イメージコピーと増分適用(Recover)を組み合わせた手法。
  • MTTR(平均復旧時間) を劇的に短縮でき、大規模DBでの運用に最適。
  • SWITCH コマンドを活用することで、ファイルコピーを伴わない高速なリストアが可能。
  • 運用には ブロック・チェンジ・トラッキング の併用が推奨される。

本記事は Oracle Database 19c を対象に解説します(他バージョンは画面や既定値が異なる場合があります)。


[参考]
Oracle Database バックアップおよびリカバリ・ユーザーズ・ガイド 19c

💰 【PR】Oracleエンジニアの市場価値、調べてみませんか?

Oracleのスキルは需要が高く、特定の資格や経験を持っていると年収が大幅にアップするケースがあります。まずはIT専門のエージェントで非公開求人をチェックしてみませんか?

コメント

タイトルとURLをコピーしました