Oracle Data Guardは、自然災害などが発生した場合を想定し、遠隔地のスタンバイデータベースとネットワーク経由でフェイルオーバーを可能にする機能です。Data Guardの仕組みを理解すればData Guardならではの問題にも迅速に対応できるでしょう。
Oracle Data Guardは、サーバを配置しているデータセンターが災害などで倒壊してしまった場合に備え、遠隔地のデータセンターに予備のデータベースを準備しておいて、データを転送して同期を取る機能です。
以下に障害発生時のフローについて図で解説します。
Data Guardは、本番系のデータベースを「プライマリ・データベース」、予備系のデータベースを「スタンバイ・データベース」と呼びます。プライマリ・データベースとスタンバイ・データベースは「1:多」の関係で、スタンバイ・データベースは1つだけでなく、最大で9個準備できます。
プライマリ・データベースがダウンした場合、スタンバイ・データベースのロールに切り替えることで、スタンバイ・データベースをプライマリ・データベースにフェイルオーバーできます。
この操作は通常手動で行う必要がありますが、Data Guard Brokerを使用すれば、DBAによる操作なしで同期済みのスタンバイ・データベースへのフェイルオーバーが可能です。Data Guard Brokerの詳細については、マニュアル「Data Guard Broker」を参照してください。
なお、Oracle Data Guardの機能を使用するためには、Enterprise Editionが必須です。また、本記事では触れませんが、11gからの新機能「Oracle Active Data Guard」を使用するためには、Enterprise Editionに加えて「Active Data Guardオプション」のライセンスが必要になります。ライセンスの詳細はマニュアル「Oracle Databaseライセンス情報」をご参照ください。
前述のとおり、Data Guardには2種類の構成方法があります。
REDOデータをプライマリ・データベースからスタンバイ・データベースに転送し、適用(Redo Apply)していく構成です。
REDOデータはマウント状態で適用していく必要があるため、スタンバイ・データベースは通常マウント状態になります。スタンバイ・データベース側でデータを確認したいときは、REDOデータの適用を一時的に止めて、読み取り専用(READ ONLY)でスタンバイ・データベースをオープンします。
補足
Oracle Database 11gではスタンバイ・データベースを読み書き可能(READ WRITE)でオープンすることができる「スナップショット・スタンバイ・データベース」という機能が追加されています。
ロジカル・スタンバイは、Oracle9iから追加された機能です。プライマリ・データベースから転送されたREDOデータをSQLに変換して、スタンバイ・データベースにSQLを実行(SQL Apply)してデータの同期を取る構成です。スタンバイ・データベース側はオープンしている状態なので、いつでもデータの確認をすることができます。
プライマリ・データベースの障害時リカバリ以外に、レポート生成などのビジネス目的でも使用することができます。
また、いくつかの条件はありますが、ロジカル・スタンバイ構成のData Guardでは、10gR1(10.1.0.3)からはローリング・アップグレードによるパッチの適用が可能となっています(詳細についてはマニュアル「Oracle Data Guard 概要および管理」を参照してください)。
本記事ではフィジカル・スタンバイ構成のData Guardを例に挙げて解説しています。
Copyright © ITmedia, Inc. All Rights Reserved.