連載
» 2006年11月02日 00時00分 公開

Oracleバックアップ/リカバリ講座(9):バックアップの所要時間を短縮するテクニック (1/4)

本記事では、Oracleデータベースのバックアップ/リストア/リカバリについて、そのアーキテクチャ、代表的なバックアップ手法、論理/物理バックアップ、RMANといった全般的な内容を解説していく。(編集部)

[渡辺学,株式会社アゲハ]

主な内容

--Page 1--
▼バックアップ方法を検討する
▼増分バックアップで取得する
▼リストア時の違い
--Page 2--
▼増分バックアップの取得例
▼増分バックアップの高速化
--Page 3--
▼バックアップ対象を分割して取得する
--Page 4--
▼アーカイブREDOログファイルのみを取得する
▼バックアップ対象を減らす


 前回「これだけでRecovery Managerは完全マスター」ではRecovery Manager(以下、RMAN)の概要とデータベース全体のバックアップを例に簡単な操作方法を紹介しました。今回はOracle 10gの新機能も踏まえつつ応用的なバックアップの方法について説明します。以降のバックアップ結果については、これまでと同様にLinux環境のOracle 10g Relese2で実行したものになります。

バックアップ方法を検討する

 データベースのバックアップ方法を検討する場合、RMANに限らず、まずデータベース全体をバックアップするフルバックアップを基本的な方法として考えます。しかし、データベースの規模が大きく、バックアップの取得に長時間を要する場合や、システムの要件によっては業務終了後もバッチ処理が多くバックアップを行える時間が非常に短いなど、その都度、データベース全体のバックアップを取得することが難しい場合もあると思います。

 そのため、データベースの規模や、システム要件に合わせた別のバックアップ方式、方法を検討する必要があります。ここではバックアップの取得時間を短縮できる以下の方法を例に説明します。

  1. 増分バックアップで取得する
  2. バックアップを分割して取得する
  3. アーカイブREDOログファイルのみを取得する
  4. 一部をバックアップ対象から除外する

 また、このほかにもバックアップ先を高速なディスク装置に交換する、テープ装置を増設するなどハードウェアを増強する方法や、第4回「Recovery Managerを使ったバックアップ方法」で説明したレプリケーションやData Guardといった機能を組み合わせる方法もありますが、今回はRMANで実装可能な方法に的を絞り説明します。

増分バックアップで取得する

 RMANでバックアップの時間を短くしたい場合は、まず「増分バックアップ」を考えてみましょう。増分バックアップでは、バックアップ対象のすべてのファイルが読み込まれますが、更新されたブロックが少ない場合にはバックアップ先へ書き込むサイズが小さくなり、その結果バックアップの取得時間を短縮できます。

 RMANでは増分バックアップの種類として、「差分増分バックアップ」と「累積増分バックアップ」があります。どちらの方法も、ベースとなるバックアップ(例えばLEVEL 0)を取得してから増分バックアップ(ベースとなるLEVELより数字が大きいもの、例えばLEVEL 1)を取得していくという流れは同じになります。では、差分増分バックアップと累積増分バックアップの違いを見てみましょう。

差分増分バックアップ

 差分増分バックアップは、直前に行われた全体バックアップ以降に変更されたデータのみをバックアップする方法です。図1を例にすると、月〜土曜日の差分増分バックアップでは、日曜日の全体バックアップをベースとして、前日のバックアップ以降に変更されたデータのみが対象になるので、日々のバックアップ時間が短縮されます。

図1 差分増分バックアップの例 日曜日に全体バックアップ、平日に差分増分バックアップを行う例。 図1 差分増分バックアップの例
日曜日に全体バックアップ、平日に差分増分バックアップを行う例。

累積増分バックアップ

 これに対して累積増分バックアップは、同じレベルで取得された全体バックアップ以前のレベルからの変更をすべて対象とします。図2を例にすると、月〜土曜日の累積増分バックアップではすべて、日曜日のバックアップ以降に変更されたデータを取得します。このため、日々のバックアップ量は差分増分バックアップよりも増加し、日を追うごとにバックアップ時間の差が広がっていきます。

図2 累積増分バックアップの例 日曜日に全体バックアップ、平日に累積増分バックアップを行う例。 図2 累積増分バックアップの例
日曜日に全体バックアップ、平日に累積増分バックアップを行う例。

リストア時の違い

 バックアップにかかる時間だけを見ると、差分増分バックアップの方が累積増分バックアップよりも、優れているように感じますが、今度はそれぞれの方法でリカバリすることを考えてみましょう。

 増分バックアップからリカバリを行う場合は、まずベースとなるバックアップ(LEVEL 0)をリストアしてから増分バックアップ(LEVEL 1)、アーカイブREDOログファイル、オンラインREDOログファイルを使用してリカバリを行っていきます。

 例えば日曜日にベースとなるバックアップ(LEVEL 0)を取得し、月〜土曜日までは増分バックアップを行っている環境で木曜日に障害が発生し、リカバリする状況を考えてみます。

 リカバリを行う場合、図3を例にすると、差分増分バックアップを行っている場合は、ベースとなるバックアップと月〜水曜日の増分バックアップ(LEVEL 1)が必要となります。一方で図4の累積増分バックアップの場合で必要となるのは、日曜日のベースとなるバックアップと水曜日の増分バックアップのみになります。

 そのため、リカバリ時間を考えた場合、バックアップ時間とは逆に累積増分バックアップの方がリストアするファイル数、データ量が少なくなります。つまり、差分増分バックアップと累積増分バックアップのどちらを採用するかは、バックアップ時間とリカバリ時間のどちらを優先するかによって決定されることになります。

図3 差分増分バックアップからのリカバリ方法 木曜日に障害が発生した場合のリカバリ例。 図3 差分増分バックアップからのリカバリ方法
木曜日に障害が発生した場合のリカバリ例。
図4 累積増分バックアップからのリカバリ方法 木曜日に障害が発生した場合のリカバリ例。 図4 累積増分バックアップからのリカバリ方法
木曜日に障害が発生した場合のリカバリ例。
       1|2|3|4 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。