Oracle Data Guardでは、企業データの高可用性、データ保護および障害時リカバリを保証します。Data Guardは、1つ以上のスタンバイ・データベースの作成、メンテナンス、管理および監視など、一連の包括的なサービスを提供し、本番のOracleデータベースを障害およびデータ破損から保護します。Data Guardでは、これらのスタンバイ・データベースを本番データベースのコピーとしてメンテナンスします。したがって、本番データベースが計画的または計画外の停止によって使用不可能になった場合は、スタンバイ・データベースを本番ロールに切り替えて、停止時間を最小限にできます。Data Guardを従来のバックアップ、リストアおよびクラスタ化の技法と連携して使用すると、高いレベルのデータ保護とデータ可用性を実現できます。
Data Guardを使用すると、リソース集中型のバックアップおよびレポート生成操作をスタンバイ・システムにオフロードすることで、管理者は本番データベースのパフォーマンスをオプションで改善できます。
この章では、Oracle Data Guardの概要を説明します。次の項目で構成されています。
Data Guard構成には、1つの本番データベースと1つ以上のスタンバイ・データベースが含まれます。Data Guard構成のデータベースは、Oracle Netで接続され、地理的に分散している場合があります。データベースの配置場所に制限はありませんが、相互に通信できる必要があります。たとえば、1個のスタンバイ・データベースを本番データベースと同じシステム上に配置し、2個のスタンバイ・データベースをリモート位置の別のシステム上に配置できます。
プライマリ・データベースとスタンバイ・データベースは、SQLコマンドライン・インタフェースまたはData Guard Brokerインタフェースを使用して管理できます。Data Guard Brokerインタフェースには、コマンドライン・インタフェース(DGMGRL)や、Oracle Enterprise Managerに統合されたグラフィカル・ユーザー・インタフェースなどがあります。
Data Guardの構成には、プライマリ・データベースとも呼ばれる本番データベースが1つ含まれており、プライマリ・ロールで機能します。これはほとんどのアプリケーションがアクセスするデータベースです。
プライマリ・データベースは、単一インスタンスのOracleデータベースまたはOracle Real Application Clusters(Oracle RAC)データベースのいずれかです。
スタンバイ・データベースは、プライマリ・データベースのトランザクション一貫性のあるコピーです。プライマリ・データベースのバックアップ・コピーを使用すると、最大30個のスタンバイ・データベースを作成して、Data Guard構成に組み込むことができます。スタンバイ・データベースが作成されると、Data Guardでは、プライマリ・データベースからスタンバイ・データベースにREDOデータを転送し、スタンバイ・データベースにREDOを適用することによって、各スタンバイ・データベースを自動的にメンテナンスします。
プライマリ・データベースと同様、スタンバイ・データベースは、単一インスタンスのOracleデータベースまたはOracle RACデータベースのいずれかです。
スタンバイ・データベースのタイプは、次のとおりです。
プライマリ・データベースと物理的に同一のコピーを提供します。これはブロック・ベースのプライマリ・データベースと同じディスク・データベース構造です。データベース・スキーマ(インデックスを含む)は同一です。フィジカル・スタンバイ・データベースは、REDO Applyによってプライマリ・データベースとの同期が保たれます。REDO Applyでは、プライマリ・データベースから受け取ったREDOデータがリカバリされ、このREDOがフィジカル・スタンバイ・データベースに適用されます。
Oracle Database 11gリリース1(11.1)現在、フィジカル・スタンバイ・データベースは、読取り専用アクセス用にオープンしている間はREDOを受信および適用できます。そのため、フィジカル・スタンバイ・データベースは、データ保護とレポート生成に同時に使用できます。
本番データベースと同じ論理情報が格納されますが、データの物理的な構成と構造は異なる場合があります。ロジカル・スタンバイ・データベースでは、プライマリ・データベースから受信したREDOデータをSQL文に変換し、スタンバイ・データベースでそのSQL文を実行するSQL Applyによって、プライマリ・データベースとの同期を維持します。
ロジカル・スタンバイ・データベースは、障害時リカバリ要件に加えて、その他のビジネス用途にも使用できます。このため、ロジカル・スタンバイ・データベースには、問合せやレポート生成の目的でいつでもアクセスできます。また、ロジカル・スタンバイ・データベースを使用すると、ほとんどの場合、データベースを停止することなく、Oracle Databaseソフトウェアやパッチ・セットをアップグレードできます。つまり、ロジカル・スタンバイ・データベースは、データ保護、レポート生成およびデータベースのアップグレードに同時に使用できます。
スナップショット・スタンバイ・データベースは、全面的に更新可能なスタンバイ・データベースです。
フィジカル・スタンバイ・データベースまたはロジカル・スタンバイ・データベースと同様、スナップショット・スタンバイ・データベースは、プライマリ・データベースからREDOデータを受信およびアーカイブします。しかし、フィジカル・スタンバイ・データベースまたはロジカル・スタンバイ・データベースとは異なり、スナップショット・スタンバイ・データベースは、受信したREDOデータを適用しません。スナップショット・スタンバイ・データベースで受信されたREDOデータは、スナップショット・スタンバイ・データベースに対して行われたローカル更新がすべて破棄された後、スナップショット・スタンバイが変換されてフィジカル・スタンバイ・データベースに戻るまで適用されません。
スナップショット・スタンバイ・データベースは、フィジカル・スタンバイ・データベースの一時的かつ更新可能なスナップショットが必要な場合に最もよく使用されます。スナップショット・スタンバイ・データベースで受信されたREDOデータは、フィジカル・スタンバイに変換されて戻るまで適用されないため、プライマリ・データベースの障害からリカバリするのに必要な時間は、適用する必要があるREDOデータの量に正比例します。
図1-1は、REDOデータをスタンバイ・データベースに転送するプライマリ・データベースが含まれる一般的なData Guard構成を示しています。スタンバイ・データベースは、障害時リカバリ操作とバックアップ操作に備えて、プライマリ・データベースから離れた位置に配置されます。スタンバイ・データベースはプライマリ・データベースと同じ位置にも構成できます。ただし、障害時リカバリに使用する場合は、スタンバイ・データベースを離れた位置に構成することをお薦めします。
次の各項では、Data GuardによるREDOデータの転送、REDOデータの適用およびデータベース・ロールの変更の管理方法について説明します。
本番データベースから1つ以上のアーカイブ先に対するREDOデータの自動転送を制御します。
スタンバイ・データベースにREDOデータを適用して、プライマリ・データベースとのトランザクションの同期を維持します。REDOデータはアーカイブ保存されたREDOログ・ファイルから適用することができます。または、リアルタイムの適用を有効にしている場合は、最初にスタンバイ・データベースにアーカイブ保存しなくても、スタンバイREDOログ・ファイルへの書込みと同時に直接適用することもできます。
データベースのロールを、スイッチオーバー操作またはフェイルオーバー操作を使用して、スタンバイ・データベースからプライマリ・データベースに、またはプライマリ・データベースからスタンバイ・データベースに変更します。
プライマリ・データベースから送信されたREDOデータは、スタンバイ・データベース上のスタンバイREDOログ上に書き込まれます。適用サービスによって、スタンバイ・データベースにREDOデータを自動的に適用し、プライマリ・データベースとの一貫性を維持します。データへの読取り専用アクセスも許可します。
フィジカル・スタンバイ・データベースとロジカル・スタンバイ・データベースの主な相違点は、適用サービスによるアーカイブREDOデータの適用方法にあります。
フィジカル・スタンバイ・データベースの場合、Data GuardではREDO Applyテクノロジを使用します。このテクノロジでは、図1-2に示すように、Oracleデータベースの標準リカバリ技法を使用してREDOデータがスタンバイ・データベースに適用されます。
ロジカル・スタンバイ・データベースの場合、Data GuardではSQL Applyテクノロジを使用します。このテクノロジでは、図1-3に示すように、まず、受信したREDOデータがSQL文に変換されてから、生成されたSQL文がロジカル・スタンバイ・データベース上で実行されます。
Oracleデータベースは、プライマリ・ロールまたはスタンバイ・ロールのいずれかで実行されます。Data Guardでは、スイッチオーバー操作またはフェイルオーバー操作のいずれかを使用してデータベースのロールを変更できます。
スイッチオーバーとは、プライマリ・データベースとそのスタンバイ・データベースの1つとの間でロールを可逆的に推移させる操作です。スイッチオーバーにより、データ消失のない状態が保証されます。この操作は通常、プライマリ・システムの計画的なメンテナンスに対して実行します。スイッチオーバー時には、プライマリ・データベースがスタンバイ・ロールに、あるいはスタンバイ・データベースがプライマリ・ロールに推移します。
フェイルオーバーは、プライマリ・データベースが使用不可能な場合に発生します。フェイルオーバーは、プライマリ・データベースで障害が発生したときのみに実行され、スタンバイ・データベースをプライマリ・ロールに推移させます。データベース管理者は、データが消失しないように、Data Guardを構成できます。
このマニュアルで説明しているロールの推移は、SQL文を使用して手動で行います。また、1.3項で説明しているように、Oracle Data Guard Brokerを使用してロールの推移を単純化させ、Oracle Enterprise ManagerまたはDGMGRLコマンドライン・インタフェースを使用してフェイルオーバーを自動化することもできます。
Data Guard Brokerは分散管理フレームワークで、Data Guard構成の作成、メンテナンスおよび監視を自動化します。Oracle Enterprise Managerのグラフィカル・ユーザー・インタフェース(GUI)またはData Guardコマンドライン・インタフェース(DGMGRL)を使用すると、次の操作が自動化および単純化されます。
REDO転送サービスや適用サービスの設定など、Data Guard構成の作成と有効化
構成内の任意のシステムによるData Guard構成全体の管理
Oracle RACのプライマリ・データベースまたはスタンバイ・データベースが含まれるData Guard構成の管理と監視
Oracle Enterprise Managerでキー・クリックを1回する、あるいはDGMGRLコマンドライン・インタフェースで単一のコマンドを使用すると起動できるようにする、スイッチオーバーおよびフェイルオーバーの単純化
プライマリ・データベースが使用できなくなった場合に、ファスト・スタート・フェイルオーバーを有効化し、すぐにフェイルオーバーを自動的に行います。ファスト・スタート・フェイルオーバーが有効化されている場合、Data Guardブローカによってフェイルオーバーの必要性が判断され、指定されたターゲット・スタンバイ・データベースへのフェイルオーバーが自動的に開始されます。DBAによる操作は不要です。
さらに、Oracle Enterprise Managerを使用すると、次の操作が自動化および単純化されます。
プライマリ・データベースのバックアップ・コピーからのフィジカル・スタンバイ・データベースまたはロジカル・スタンバイ・データベースの作成
ログ適用レートの監視、診断情報の獲得、および集中化したモニタリング・ツール、テスト・ツール、パフォーマンス・ツールなどを使用した問題の早期検出
関連項目: 詳細は、『Oracle Data Guard Broker』を参照してください。 |
Oracle Enterprise Manager Grid Control(以下、このマニュアルではEnterprise Managerと呼びます)は、Data Guard構成内のプライマリ・データベースおよびスタンバイ・データベースを表示、監視および管理するための、Webベースのインタフェースを提供します。Enterprise Managerの使いやすいインタフェースと、BrokerによるData Guard構成の集中化された管理および監視を組み合せることで、企業内の高可用性、サイト保護およびデータ保護を実現するためのData Guardソリューションが強化されます。
Enterprise Manager Grid Controlのセントラル・コンソールから、すべての管理操作をローカルまたはリモートで実行できます。プライマリ・データベースとスタンバイ・データベース、およびプライマリ・インスタンスとスタンバイ・インスタンスを含む、Oracleデータベースのホーム・ページの表示、既存のスタンバイ・データベースの作成または追加、インスタンスの開始および停止、インスタンスのパフォーマンスの監視、イベントの表示、ジョブのスケジュール、バックアップ操作およびリカバリ操作の実行が可能です。
場合によっては、状況に関係なくデータの消失が許されないビジネスがあります。また、起こりそうにない多重障害の場合に起こりうるデータの消失よりデータベースの可用性の方が重要な場合もあります。アプリケーションの中には、常に最大のデータベース・パフォーマンスが必要であるため、コンポーネントに障害が発生した場合に少量のデータの消失ならば許容できるものがあります。データ保護には、次の3つの異なるモードが用意されています。
最大可用性 この保護モードは、プライマリ・データベースの可用性を低下させない範囲で可能な最高レベルのデータ保護を提供します。トランザクションは、そのトランザクションのリカバリに必要なすべてのREDOデータが、オンラインREDOログおよび少なくとも1つの同期化されたスタンバイ・データベース上のスタンバイREDOログに書き込まれるまでコミットされません。プライマリ・データベースは、REDOストリームを少なくとも1つの同期化されたスタンバイ・データベースに書き込むことができない場合、REDOストリームを同期化されたスタンバイ・データベースに再び書き込めるようになるまで、最大パフォーマンス・モードにあるかのように動作してプライマリ・データベースの可用性を維持します。
この保護モードは、特定の二重障害の場合(スタンバイ・データベースの障害が発生した後にプライマリ・データベースの障害が発生した場合など)を除いて、データ消失がないことを保証します。
最大パフォーマンス これはデフォルトの保護モードです。プライマリ・データベースのパフォーマンスに影響を与えずに、最大レベルのデータ保護を実現します。これは、トランザクションによって生成されたすべてのREDOデータがオンライン・ログに書き込まれた直後に、そのトランザクションのコミットを可能にすることで実現されます。REDOデータは、1つ以上のスタンバイ・データベースにも書き込まれますが、トランザクション・コミットについて非同期で行われるため、プライマリ・データベースのパフォーマンスは、スタンバイ・データベースへのREDOデータの書込み遅延による影響を受けません。
この保護モードは、最大可用性モードに比べてデータ保護が若干弱く、プライマリ・データベースのパフォーマンスへの影響を最小限に抑えます。
最大保護 この保護モードは、プライマリ・データベースに障害が発生した場合でも、データ消失がないことを保証します。このレベルの保護を提供するには、トランザクションがコミットされる前に、トランザクションのリカバリに必要なREDOデータを、オンラインREDOログおよび少なくとも1つの同期化されたスタンバイ・データベース上のスタンバイREDOログに書き込む必要があります。少なくとも1つの同期化されたスタンバイ・データベースにREDOストリームを書き込むことができない場合は、データ消失が発生しないように、プライマリ・データベースは停止し、トランザクションの処理を続行しません。
3つの保護モードはいずれも、特定のREDO転送オプションを使用して、REDOデータが少なくとも1つのスタンバイ・データベースに送信されるようにする必要があります。
高可用性アーキテクチャには、データベースおよびデータベース・クライアントに対する高速フェイルオーバー機能が必要です。
クライアント・フェイルオーバーには、障害の通知、失効した接続のクリーンアップおよび新しいプライマリ・データベースへの透過的な再接続が含まれます。Oracle Databaseには、データベース・フェイルオーバーとフェイルオーバー・プロシージャを統合する機能があるため、クライアントは、データベース・フェイルオーバーから数秒以内に新しいプライマリ・データベースに自動的にリダイレクトされます。
関連項目:
|
Oracle Databaseでは、Data Guardを補完する複数の固有のテクノロジを提供して、ビジネスに不可欠なシステムが、1つのソリューションのみを利用する場合に比べ、はるかに高い可用性とデータ保護を実現しながら稼働できるようにします。Oracleの高可用性テクノロジには、次のものがあります。
Oracle Real Application Clusters(Oracle RAC)
Oracle RACを使用すると、インターコネクトによってリンクされた複数の独立型サーバーで、Oracleデータベースへのアクセスを共有し、障害の発生時に、高可用性、スケーラビリティおよび冗長性を実現できます。Oracle RACとData Guardを一緒に使用すると、システムレベル、サイトレベルおよびデータレベルのそれぞれの保護にメリットがあるため、データを消失することなく、高い可用性と障害時リカバリが実現します。
Oracle RACは、ノード障害やインスタンス・クラッシュなどの障害から迅速に、自動的にリカバリすることで、システム障害に対処します。アプリケーションに対するスケーラビリティも向上します。
Data Guardでは、トランザクション的に一貫性のある、ディスクを共有しないプライマリ・データベースとスタンバイ・データベースを介して、サイト内の問題やデータ保護に対処し、サイトの障害やデータ破損からリカバリできるようにします。
ローカル・サイトとリモート・サイトの使用、ロジカル・スタンバイ・データベースとフィジカル・スタンバイ・データベースの組合せとノードの使用によって、Oracle RACおよびData Guardを使用した様々なアーキテクチャを実現できます。Oracle RACとData Guradの統合については、付録D「Data GuardおよびOracle Real Application Clusters」、および「Oracle Database高可用性概要」を参照してください。
フラッシュバック・データベース機能により、論理データの破損やユーザー・エラーから迅速にリカバリできます。適切なときにフラッシュバックを許可することで、誤って変更または削除された可能性のある以前のバージョンのビジネス情報に再度アクセスできるようになります。この機能により、次のことが実現します。
バックアップをリストアして、エラーや破損が発生した時点までロールフォワード変更を行う必要がなくなります。かわりに、フラッシュバック・データベースでは、データファイルをリストアせずに、以前の時点までOracleデータベースをロールバックできます。
REDOの適用を遅延してユーザー・エラーや論理的な破損から保護するための、代替手段を提供します。したがって、スタンバイ・データベースは、プライマリ・データベースとより密接に同期できるため、フェイルオーバーおよびスイッチオーバーの回数が少なくなります。
フェイルオーバー後に、元のプライマリ・データベースを完全に作成しなおす必要がなくなります。障害が発生したプライマリ・データベースを、フェイルオーバー前の時点にフラッシュバックして、新しいプライマリ・データベースのスタンバイ・データベースになるように変換できます。
データベースのフラッシュバックの詳細は、『Oracle Databaseバックアップおよびリカバリ・ユーザーズ・ガイド』を、REDOデータの適用の詳細は、7.2.2項を参照してください。
Recovery Managerは、データベース・ファイルのバックアップ、リストアおよびリカバリを単純化するOracleユーティリティです。Data Guardと同様に、Recovery ManagerはOracleデータベースの機能の1つであるため、個別にインストールする必要はありません。Data GuardとRecovery Managerは密接に統合されているため、次のことが実現されます。
Recovery ManagerのDUPLICATE
コマンドを使用して、プライマリ・データベースのバックアップからスタンバイ・データベースを作成できます。
本番データベースではなくフィジカル・スタンバイ・データベースからバックアップを取得して、本番データベースの負荷を軽減し、スタンバイ・サイトのシステム・リソースを効率的に使用できます。また、フィジカル・スタンバイ・データベースがREDOを適用しているときに、バックアップを取得することもできます。
バックアップの実行後、入力に使用されたアーカイブREDOログ・ファイルを自動的に削除することで、アーカイブREDOログ・ファイルの管理を容易にします。
付録E「Recovery Managerを使用したスタンバイ・データベースの作成」、および『Oracle Databaseバックアップおよびリカバリ・ユーザーズ・ガイド』を参照してください。
Data Guardには次のようなメリットがあります。
Data Guardは、効率のよい包括的な障害時リカバリおよび高可用性ソリューションを提供します。管理が容易なスイッチオーバー機能とフェイルオーバー機能を使用すると、プライマリ・データベースとスタンバイ・データベース間でロールを可逆的に推移できるため、計画的および計画外の停止によるプライマリ・データベースの停止時間が最小限になります。
完全なデータ保護
Data Guardでは、予期しない障害が発生した場合でもデータ消失がないことを保証します。スタンバイ・データベースには、データの破損やユーザーのミスに対する保護対策が用意されています。プライマリ・データベースから受信したREDOデータはスタンバイ・データベースで検証されるため、プライマリ・データベースの記憶域レベルの物理破損は、スタンバイ・データベースに伝播されません。同様に、プライマリ・データベースの完全な破損の原因となった論理的な破損やユーザーのミスも解決できます。
プライマリ・データベースから受信したREDOデータで更新されたスタンバイ・データベース表は、バックアップ、レポート生成、要約および問合せなどの他のタスクにも使用できます。したがって、これらのタスクの実行に必要なプライマリ・データベースのワークロードを低減し、貴重なCPUとI/Oのサイクルを節約できます。
可用性とパフォーマンス要件とのバランスを保つことができるデータ保護の柔軟性
Oracle Data Guardには、各企業がデータ可用性とシステム・パフォーマンス要件とのバランスを保つことができるように、最大保護、最大可用性および最大パフォーマンスの3つのモードが用意されています。
ネットワークの問題などで、プライマリ・データベースと1つ以上のスタンバイ・データベースとの間の接続が失われた場合、プライマリ・データベース上に生成されるREDOデータは、宛先のスタンバイ・データベースに送信されません。接続が再度確立された時点で、Data Guardによって、欠落しているアーカイブREDOログ・ファイル(ギャップと呼ばれます)が自動的に検出され、それらのファイルがスタンバイ・データベースに自動的に転送されます。スタンバイ・データベースはプライマリ・データベースと同期化されるため、DBAによる手動操作は不要です。
集中化された単純な管理
Data Guard Brokerは、グラフィカル・ユーザー・インタフェースとコマンドライン・インタフェースを提供し、Data Guard構成の複数のデータベース全体の管理タスクと操作タスクを自動化します。また、ブローカは、単一のData Guard構成内のすべてのシステムを監視します。
Oracle Databaseとの統合
Data GuardではOracle Database Enterprise Editionの機能の1つであるため、個別にインストールする必要はありません。
自動ロールの推移
ファスト・スタート・フェイルオーバーが有効になると、プライマリ・サイトで障害が発生した場合、Data Guard Brokerにより、DBAによる操作の必要なしに同期化されたスタンバイ・サイトにフェイルオーバーされます。また、アプリケーションにロールの推移が自動的に通知されます。