この章では、Oracle Data Guard Brokerとそのアーキテクチャおよびコンポーネントについて述べ、Data Guard構成の作成、制御および監視を自動化する方法について説明します。内容は次のとおりです。
Data Guard構成の定義およびOracle Data Guardの概念と用語の詳細は、『Oracle Data Guard概要および管理』を参照してください。
Oracle Data Guardは、企業データの高可用性、データ保護および障害時リカバリを保証します。Data Guardでは、1つ以上のスタンバイ・データベースを作成、維持、管理および監視する包括的なサービスのセットを提供されます。これにより、本番のOracleデータベースを障害やデータ破損からリカバリできます。Data Guardでは、これらのスタンバイ・データベースが、トランザクション的に一貫性のあるプライマリ・データベースのコピーとして維持されます。計画的または計画外の障害によりプライマリ・データベースが使用できなくなると、Data Guardは任意のスタンバイ・データベースを本番ロールに切り替えることができます。これにより、障害に関連する停止時間が最短に抑えられます。Data Guardは、従来のバックアップ、リカバリおよびクラスタ・テクニック、フラッシュバック・データベース機能と併用でき、高水準のデータ保護およびデータ可用性を提供します。
Data Guard構成には、1つのプライマリ・データベースと最大30個のスタンバイ・データベースが含まれます。Data Guard構成内のデータベースはOracle Netで接続され、地理的に散在していてもかまいません。相互の通信が可能であれば、データベースの位置に制限はありません。たとえば、スタンバイ・データベースの1つをプライマリ・データベースと同じシステムに置き、別のシステムに2つのスタンバイ・データベースを置くこともできます。
Data Guard Brokerでは、これらのプライマリ・データベースとスタンバイ・データベースが、統合ユニットとしてまとめて管理および監視できるようにブローカ構成として論理的にグループ化されます。ブローカ構成の管理には、Oracle Enterprise Managerのグラフィカル・ユーザー・インタフェースを使用する方法と、Data Guardコマンドライン・インタフェースを使用する方法があります。
Oracle Data Guard Brokerは、Data Guard構成の作成、メンテナンスおよび監視を自動化および集中化する分散管理フレームワークです。次のリストは、ブローカによって自動化および簡素化される操作を示しています。
Data Guard構成の作成。各構成には、プライマリ・データベース、新規または既存の(フィジカル、ロジカルまたはスナップショット)スタンバイ・データベース、REDO転送サービスおよびログ適用サービスが含まれます。データベースのいずれかにOracle Real Application Clusters(RAC)データベースを使用できます。
既存のData Guard構成に対する新規または既存の(フィジカル、スナップショット、ロジカル、Oracle RACまたは非Oracle RAC)スタンバイ・データベースの追加。合計で、同一構成内に1つのプライマリ・データベースと1~30個のスタンバイ・データベースを構成します。
構成に含まれる任意のデータベースへのクライアント接続を介したData Guard構成全体の管理。管理対象には、すべてのデータベース、REDO転送サービスおよびログ適用サービスが含まれます。
ブローカ構成の保護モードの管理。
単一のコマンドによるスイッチオーバーまたはフェイルオーバーの起動と、構成内のすべてのデータベースにわたる複雑なロール変更の開始および制御。
プライマリ・データベースの消失時に自動的に実行するフェイルオーバーの構成。手動操作なしで可用性が高まります。
構成全体のステータスの監視、診断情報の取得、REDO適用率やREDO生成率などの統計のレポート、および集中化された監視、テストやパフォーマンス・ツールを使用した迅速な問題検出。
ブローカの使いやすいインタフェースである、Oracle Enterprise ManagerのData Guard管理ページ(ブローカのGUI)およびDGMGRLと呼ばれるData Guardコマンドライン・インタフェースを使用すると、すべての管理操作をローカルまたはリモートで実行できます。
これらのインタフェースにより、Data Guard構成の構成および管理が簡素化されます。表1-1に、ブローカのインタフェースを使用する場合とSQL*Plusを使用する場合の構成管理の比較を示します。
表1-1 ブローカがある場合とない場合の構成管理
ブローカのインタフェースによって利便性が向上し、Data Guard構成の管理と監視が集中化されます。ブローカはOracle DatabaseのEnterprise EditionおよびPersonal Editionの機能として選択可能で、OracleデータベースおよびOracle Enterprise Managerとも統合されます。これらのブローカ属性には次のようなメリットがあります。
障害時の保護: ブローカを使用すると、Data Guard構成の構成と監視に必要な手動による作業の多くが自動化され、Oracle Data Guard本来の高可用性、データ保護および障害時保護機能が強化されます。Data Guard構成内のどのシステムのクライアントからでもアクセスが可能であるため、単一の障害箇所は排除されます。プライマリ・データベースに障害が発生すると、ブローカはプロセスを自動化し、いずれかのスタンバイ・データベースがプライマリ・データベースにかわって本番処理を引き継ぎます。Data Guardが提供するデータベースの可用性により、データの保護が容易になります。
Oracle Real Application Clusters(RAC)データベースでの高可用性とスケーラビリティ: Oracle Data Guard Brokerでは、プライマリ・データベースの一貫したコピーをトランザクションごとに維持することで障害時保護が強化されますが、Oracle Real Application Clusters(RAC)データベースのようなOracleの高可用性ソリューションとともにData Guardを構成すると、そのデータベースの特定のコピーの可用性およびスケーラビリティがさらに拡張されます。Oracle RACデータベースのサイト内の高可用性により、Data Guard Brokerが提供するサイト間の保護が補完されます。
クラスタ・システムでプライマリOracle RACデータベースが管理されており、そのデータベースへのアクセスを複数のインスタンスが共有している場合を考えてみます。ここで、計画外の障害が発生したとします。Data Guard Brokerの観点からは、クラスタ化データベースの1つ以上のインスタンスが引き続きスタンバイ・データベースにREDOデータを転送可能であるかぎり、プライマリ・データベースは使用可能であるとみなされます。Oracle Clusterwareは、Oracle RACデータベースのインスタンスの可用性を管理します。プライマリ・データベースを使用可能な状態に保つために、障害が発生したインスタンスを迅速にリカバリしようとします。障害が発生したインスタンスをOracle Clusterwareがリカバリできない場合、ブローカは自動的に1つ少なくなったインスタンスで引き続き動作します。プライマリ・データベースの最後のインスタンスに障害が発生すると、ブローカは指定されたスタンバイ・データベースにフェイルオーバーする手段を提供します。プライマリ・データベースの最後のインスタンスに障害が発生し、ファスト・スタート・フェイルオーバーが有効化されている場合は、事前決定済のスタンバイ・データベースへのフェイルオーバーが自動的に実行され、継続的な高可用性を提供できます。
ブローカはOracle Clusterwareと統合されているため、データベース・ロールの変更はスムーズかつシームレスに実行されます。このことが特に明らかなのは、計画的なロール・スイッチオーバーの場合です(元のプライマリ・データベースがスタンバイのロールを引き継いでいる間に、フィジカル・スタンバイ・データベースがプライマリ・ロールを引き継ぐように指示される場合など)。ブローカとOracle Clusterwareは連動してプライマリ・データベースでのサービスの可用性を一時的に停止し、Oracle Clusterwareがブローカで動作し元のプライマリ・データベースで必要に応じてインスタンスを正常に再起動する間に、両方のデータベースについて実際のロール変更を行ってから、定義されたサービスを新規プライマリ・データベースで開始します。ブローカは基礎となるData Guard構成とそのデータベース・ロールを管理しますが、Oracle Clusterwareはロールに依存するサービスの可用性を管理します。サービスの可用性の管理をOracle Clusterwareに依存するアプリケーションでは、Data Guard構成内でロール変更が発生した場合に、サービスが一時停止していることのみ確認されます。
Oracle Clusterwareによって各Oracle RACデータベース・インスタンスの可用性が維持されることに加え、ブローカは地理的に離れた複数の場所で発生する処理を整理して1つ以上のフィジカルまたはロジカル・データベースのコピーを維持することで、障害時保護を提供します。また、ブローカとOracle Clusterwareは、Oracleの高可用性アーキテクチャに強力な基盤を提供します。
参照: Oracle Clusterwareの詳細は、『Oracle Real Application Clusters管理およびデプロイメント・ガイド』を参照してください。 |
Data Guard構成の作成の自動化: ブローカを使用すると、プライマリ・データベースとスタンバイ・データベース(フィジカルまたはロジカル、スナップショット、Oracle RACまたは非Oracle RAC)で構成されるData Guard構成を、論理的に定義および作成できます。Data Guard構成内のデータベース間での通信は、Oracle Net Servicesを使用して自動的に実行されます。データベースは、LANで接続されたローカル・データベースでも、WANを介して接続された地理的に散在するリモート・データベースでもかまいません。
Oracle Enterprise Managerには、次のように、ブローカ構成の作成に関連した複雑な作業を自動化するウィザードが用意されています。
既存のスタンバイ・データベースまたは新規に(Enterprise Managerを介して作成された既存のバックアップから)作成されたスタンバイ・データベースの追加
スタンバイ制御ファイル、サーバー・パラメータ・ファイルおよびデータファイルの構成
スタンバイ・データベースとの通信の実行
スタンバイREDOログ・ファイルの作成
ファスト・スタート・フェイルオーバーを使用する場合のフラッシュバック・データベースの有効化
DGMGRLでは新規スタンバイ・データベースを自動的に作成できませんが、DGMGRLコマンドを使用して、既存のスタンバイ・データベースを構成および監視できます。これには、Enterprise Managerを使用して作成されたスタンバイ・データベースが含まれます。
追加のスタンバイ・データベースの簡単な構成: プライマリ・データベースとスタンバイ・データベースで構成されるData Guard構成を作成した後は、各Data Guard構成に、新規または既存のフィジカル、スナップショットまたはロジカル・スタンバイ・データベースを29個まで追加できます。Oracle Enterprise Managerのスタンバイ・データベースの追加ウィザードを使用すると、指示に従って、さらにデータベースを追加できます。
管理の簡素化、集中化および拡張: コマンドを発行して、ブローカ構成の多くの側面を管理できます。次のような操作が可能です。
プライマリ・データベース、スタンバイ・データベース、REDO転送サービスおよびログ適用サービスなど、構成内のすべてのコンポーネントの管理を簡素化できます。
データベースの状態遷移を調整し、データベース・プロパティを動的に更新できます。このときブローカは、構成内の全データベースのプロファイルを含むブローカ構成ファイルに変更を記録します。さらに、変更を構成内の全データベースとそのサーバー・パラメータ・ファイルに伝播します。
Enterprise Managerの検証操作を起動して、REDO転送サービスとログ適用サービスが正しく構成され、機能していることを確認できます。
スイッチオーバー操作およびフェイルオーバー操作の簡素化: ブローカでは、Oracle Enterprise Managerでキーを1回クリックするか、DGMGRLコマンドライン・インタフェースで単一のコマンドを使用してスイッチオーバーおよびフェイルオーバーを起動できるため(このマニュアルでは手動フェイルオーバーと呼びます)、これらの操作が簡素化されます。完全自動管理の場合、ファスト・スタート・フェイルオーバーを有効にすると、ブローカによるフェイルオーバーの必要性の判断と、事前に指定されたターゲット・スタンバイ・データベースへのフェイルオーバーの自動開始が可能になり、DBAによる操作は不要です。ファスト・スタート・フェイルオーバーの構成により、消失データなしでフェイルオーバーする場合と、構成可能なデータ量を消失する場合があります。
ファスト・スタート・フェイルオーバーにより、手動操作の必要性を少なくして可用性を高め、管理コストを削減できます。手動フェイルオーバーでは、フェイルオーバーを実行する正確なタイミングおよび対象となるターゲット・スタンバイ・データベースを管理できます。選択する方法に関係なく、ブローカによって構成内のすべてのデータベースのロール遷移が調整されます。フェイルオーバーが完了すると、ブローカが高速アプリケーション通知(FAN)イベントを発行して新しいプライマリが使用可能であることをアプリケーションに通知します。
DBMS_DG
PL/SQLパッケージを使用すると、特定の条件が満たされたときにアプリケーションによるファスト・スタート・フェイルオーバーの開始が可能になります。詳細は、4.7.3項を参照してください。
構成内の全データベースにわたるスイッチオーバー操作またはフェイルオーバー操作に関する複雑なロール変更の開始に必要なコマンドは、1つのみです。ブローカにより、ブローカ構成内の指定スタンバイ・データベースへのスイッチオーバーとフェイルオーバーが自動化されます。Enterprise Managerを使用すると、実行可能な(有効化され、実行されているNORMALステータスの)スタンバイ・データベースのセットから、新しいプライマリ・データベースを選択できます。DGMGRLのSWITCHOVER
コマンドとFAILOVER
コマンドでは、ターゲット・スタンバイ・データベースを指定するだけで、構成内の複数のデータベースにわたるスイッチオーバー操作またはフェイルオーバー操作における多数の手順が自動的に開始および完了します。
ビルトイン監視、アラート・メカニズムおよび制御メカニズム: ブローカには、構成に含まれるすべてのデータベースの健全性を監視するビルトインの検証機能が用意されています。構成内の任意のデータベースに接続している間、診断情報を取得し、集中化された監視、テストおよびパフォーマンスの各ツールを使用して、明白な問題と潜在的な問題を迅速に検出できます。Enterprise ManagerとDGMGRLはどちらも、プライマリ・データベース上のREDO転送サービスの進捗と、スタンバイ・データベース上のREDO ApplyまたはSQL Applyの進捗について、完全な構成ビューを取得します。
ブローカの健全性チェック・メカニズムおよびOracle Enterprise Managerのイベント管理システムとの緊密な統合により、ローカルとリモートのデータベースを監視し、イベントに応答する機能も大幅に強化されています。
アプリケーションに対して透過的: ブローカはアプリケーションと透過的に動作するため、あらゆるデータベースで使用できます。ブローカで管理する構成に合せたアプリケーション・コードの変更は不要です。
参照: スタンバイ・データベースの作成に必要な個々の手順と、ブローカにより自動化または簡素化されている他の監視および制御操作の詳細は、『Oracle Data Guard概要および管理』を参照してください。 |
ブローカにより、次の論理オブジェクトに対する操作が実行され、Data Guard環境の管理が簡素化されます。
ブローカは、1つ以上のData Guard構成をサポートします。各構成には、プライマリ・データベースと各スタンバイ・データベースのプロファイルが含まれます。サポートされるブローカ構成は、次のオブジェクトで構成されます。
構成オブジェクト。このオブジェクトはデータベース・プロファイルの名前付きコレクションです。データベース・プロファイルは、現在の状態、現在のステータスおよびプロパティを含むデータベース・オブジェクトの記述です。構成オブジェクトのプロファイルには、1つのプライマリ・データベースとそのスタンバイ・データベース(フィジカル、スナップショットおよびロジカル・スタンバイ・データベースの混在が可能)が含まれます。特定の構成に含まれるデータベースは通常、複数のホスト・システム間に分散されます。
データベース・オブジェクト。このオブジェクトは、プライマリ・データベースまたはスタンバイ・データベースに対応します。ブローカは、データベース・オブジェクトのプロファイルを使用して、特定システム上の単一データベースの状態を管理および制御します。Oracle RACデータベースの場合は、データベース・オブジェクトを1つ以上のインスタンス・オブジェクトで構成できます。
インスタンス・オブジェクト。ブローカは、データベースを1つ以上の名前付きインスタンスのコレクションとして扱います。インスタンスは自動的に検出され、データベースに関連付けられます。
図1-1に、これらのオブジェクトの関係を示します。
Oracle Data Guard Brokerは、次のコンポーネントで構成されています。
Oracle Enterprise ManagerおよびData Guardコマンドライン・インタフェース(DGMGRL)は、ブローカのクライアント・インタフェースです。これらのインタフェースによって、プライマリとスタンバイのデータベースの集合からなる構成を定義および管理できます。DGMGRLには、ファスト・スタート・フェイルオーバーを容易にするプロセスである、オブザーバを作成するコマンドも含まれます。1.5項で、これらのインタフェースについてより詳しく説明します。
Data Guardモニターはブローカのサーバー側コンポーネントで、Oracleデータベースと統合されています。Data Guardモニターは、DMONプロセスなどのいくつかのプロセスとブローカ構成ファイルで構成されており、構成のデータベースの制御、実行時の動作の変更、構成全体の健全性の監視、およびその他の操作特性に関する通知の提供などを実行できます。1.6項で、Data Guardモニターについてより詳しく説明します。
図1-2に、ブローカのこれらのコンポーネントを示します。
ブローカのいずれかのユーザー・インタフェースを使用してブローカ構成を作成し、構成を制御および監視できます。次の各項では、ブローカのユーザー・インタフェースについて説明します。
Oracle Enterprise ManagerはData Guardモニターと連動し、Data Guard構成の管理を自動化および簡素化します。
Enterprise Managerを使用すると、スタンバイ・データベースの作成と管理に関する複雑な操作が、次のようなData Guard管理ページおよびウィザードによって簡素化されます。
スタンバイ・データベースの追加ウィザード。プライマリ・データベースとローカルまたはリモートのスタンバイ・データベースで構成されるブローカ構成が存在しない場合に、このウィザードを使用して新規に作成できます。このウィザードでは、フィジカル、スナップショットまたはロジカル・スタンバイ・データベースを作成したり、既存のフィジカル、スナップショットまたはロジカル(Oracle RACまたは非Oracle RAC)スタンバイ・データベースをインポートできます。フィジカル、スナップショットまたはロジカル・スタンバイ・データベースを作成すると、スタンバイ制御ファイル、サーバー・パラメータ・ファイル、オンラインREDOログ・ファイル、スタンバイREDOログ・ファイルおよびスタンバイ・データファイルも自動的に作成されます。
プロパティ・ページ。このページを使用すると、任意のデータベースに対してデータベース・プロパティを設定できます。可能な場合、この設定は、構成内の他のすべてのデータベースおよびサーバー・パラメータ・ファイルにただちに伝播されます。
さらに、REDO転送サービスおよびログ適用サービスのサポートに必要なOracle Net Servicesのすべての構成変更を行います。
参照: Data Guardのすべての機能をOracleデータベースの各リリースで管理するために必要なEnterprise Manager Grid Controlのバージョンについては、http://support.oracle.com にあるMy Oracle Supportノート787461.1を参照してください。 |
Data Guardコマンドライン・インタフェース(DGMGRL)を使用すると、DGMGRLのプロンプトまたはスクリプトからData Guard構成を制御および監視できます。構成内のデータベースの管理と監視に必要なアクティビティのほとんどは、DGMGRLコマンドを使用して実行できます。
DGMGRLには、プライマリ・データベースおよびターゲット・スタンバイ・データベースを継続的に監視し、フェイルオーバーの必要性を評価して、条件を満たしたときにファスト・スタート・フェイルオーバーを開始するオブザーバ・プロセスを作成するコマンドも含まれます。
ブローカの構成、制御および監視機能は、ブローカの管理対象となる各データベースでメンテナンスされるサーバー側ソフトウェアと構成ファイルにより実装されます。このソフトウェアは、Data Guardモニターと呼ばれます。
以降の各項では、ブローカ構成を管理するための、Data GuardモニターとOracleデータベースおよびリモートData Guardモニターの相互作用について説明します。
Data Guardモニター(DMON)プロセスは、ブローカの管理対象となる各データベース・インスタンスに対して実行されるOracleバックグラウンド・プロセスです。Data Guard Brokerを起動すると、DMONプロセスが作成されます。
データベースの管理にOracle Enterprise ManagerとDGMGRLのどちらを使用する場合でも、DMONプロセスはサーバー側コンポーネントであり、ローカル・データベースおよび他のデータベースで実行中のDMONプロセスと相互に作用して、要求された機能を実行します。また、DMONプロセスはブローカ構成の健全性を監視し、構成に関する一貫した記述が各データベースに確実に存在するようにします。
参照: Oracleデータベースで使用されるメモリー構造とプロセスの詳細は、『Oracle Database概要』を参照してください。 |
図1-3に、Oracleデータベースのインスタンスを構成する複数のバックグラウンド・プロセスの1つであるブローカのDMONプロセスを示します。図中の各データベース・インスタンスには固有のDMONプロセスがあります。
図1-3の中央にあるジグザグの矢印は、同じブローカ構成に含まれる2つのデータベースのDMONプロセス間に存在する双方向のOracle Net Services通信チャネルを表しています。
この双方向通信チャネルは、データベース間での要求のやりとりと、ブローカ構成に含まれるすべてのデータベースの健全性の監視に使用されます。
ブローカのDMONプロセスでは、ブローカ構成内のすべてのデータベース・オブジェクトに関するプロファイルが、バイナリ構成ファイル内で永続的にメンテナンスされます。このファイルのコピーは、ブローカ構成に属している各データベースに対するDMONプロセスによってメンテナンスされます。Oracle RACデータベースの場合は、このファイルのコピーが各データベースごとにすべてのインスタンスによって共有されます。
この構成ファイルには、構成内のデータベースの状態とプロパティを説明するプロファイルが含まれています。たとえば、このファイルには、構成内のデータベースと、各データベースのロール、プロパティおよび状態が記録されます。
構成データはDMONプロセスにより透過的に管理され、すべてのデータベース間で構成情報の一貫性が維持されます。ブローカは、構成ファイル内のデータを使用して、データベースの構成と起動、各データベースの動作の制御、およびDGMGRLとOracle Enterprise Managerへの情報の提供を行います。
データベースをブローカ構成に追加したり、既存データベースのプロパティを変更すると、各DMONプロセスはその構成ファイルのコピーに新しい情報を記録します。
各データベースには、DMONプロセスがデータベースの動作を制御するための様々なプロパティが関連付けられています。これらのプロパティは、構成ファイル内に格納されているデータベースのオブジェクト・プロファイルの一部として記録されます。Data Guard環境に関連するデータベース初期化パラメータの制御には、多数のデータベース・プロパティが使用されます。
ブローカがデータベース自体と構成ファイル内の両方でパラメータの値を確実に更新できるように、サーバー・パラメータ・ファイルを使用して、静的および動的な初期化パラメータを制御する必要があります。サーバー・パラメータ・ファイルを使用すると、ブローカは、データベース管理者(DBA)がブローカの使用時に選択したプロパティ値と、サーバー・パラメータ・ファイルに記録された関連する初期化パラメータ値を調整できます。
ブローカ構成内のデータベース・プロパティに値を設定すると、ブローカはその変更を構成ファイルに記録し、Data Guard構成内のすべてのデータベースに伝播します。