ブローカ構成メンバーの状態管理
構成の各メンバーは、様々な状態を示している可能性があり、構成が有効化されている場合は、その状態によってOracle Data Guardの動作が決まります。
次の表に、様々な状態を示します。
表には次のものは示されていません。
- スナップショット・スタンバイ・データベース(状態を持たず、REDOデータのみを受信するため)
- 遠隔同期インスタンス(状態を持たず、REDOのみを受信してスタンバイ・データベースに転送するため)
- Zero Data Loss Recovery Appliance(状態を持たないため)
表4-1 データベースの状態と説明
| データベース・ロール | 状態名 | 説明 |
|---|---|---|
|
プライマリ |
|
REDO転送サービスは、プライマリ・データベースが読取り/書込みアクセス用にオープンされるとREDOデータをスタンバイ・データベースまたは遠隔同期インスタンスに転送するように設定されます。 これがOracle RACデータベースの場合は、読取り/書込みモードでオープンされているすべてのインスタンスでREDO転送サービスが実行されます。 これは、プライマリ・データベースが初めて有効化されるときのデフォルト状態です。 |
|
プライマリ |
|
プライマリ・データベースのREDO転送サービスが停止します。 これがOracle RACデータベースの場合は、どのインスタンスでもREDO転送サービスが実行されません。 |
|
フィジカル・スタンバイ |
|
フィジカル・スタンバイ・データベースのREDO Applyが開始します。 スタンバイ・データベースがOracle RACデータベースの場合、ブローカは適用インスタンスと呼ばれる単一のスタンバイ・インスタンスでのみREDO Applyを起動します。このインスタンスに障害が発生すると、ブローカは、マウントされているか読取り専用でオープンされている他のインスタンスを自動的に選択します。この新規インスタンスが適用インスタンスとなります。 Oracle Database 12cリリース2 (12.2.0.1)では、稼働中のアクティブな各フィジカル・スタンバイ・インスタンスでREDO Applyが実行されるように設定できます。複数のインスタンス上でREDO Applyを実行するようにデータベースがすでに設定されている場合は、Data Guard Brokerのプロパティ
Oracle Active Data Guardオプションのライセンスを購入済の場合は、REDO Applyがアクティブなときにフィジカル・スタンバイ・データベースをオープン状態にしておくことができます。この機能はリアルタイム問合せと呼ばれます。詳細は、『Oracle Data Guard概要および管理』を参照してください。 |
|
フィジカル・スタンバイ |
|
REDO Applyが停止します。 これがOracle RACデータベースの場合は、データベースの状態を |
|
ロジカル・スタンバイ |
|
ロジカル・スタンバイ・データベースがオープンされている場合、ロジカル・スタンバイのデータベース・ガードがオンであれば、そのデータベースでSQL Applyが起動します。 これがOracle RACデータベースの場合は、単一のインスタンス(適用インスタンス)でSQL Applyが実行されます。このインスタンスに障害が発生すると、ブローカは自動的に他のオープン・インスタンスを選択します。この新規インスタンスが適用インスタンスとなります。 これは、ロジカル・スタンバイ・データベースが初めて有効化されるときのデフォルト状態です。 |
|
ロジカル・スタンバイ |
|
SQL Applyは実行されません。ロジカル・スタンバイのデータベース・ガードはオンです。 これがOracle RACデータベースの場合は、状態を |
データベースの状態遷移
DGMGRLのEDIT DATABASEコマンドを使用して、データベースの状態を明示的に変更できます。
たとえば、次の例に示すEDIT DATABASEコマンドは、North_Salesデータベースの状態をTRANSPORT-OFFに変更します。
DGMGRL> EDIT DATABASE 'North_Sales' SET STATE='TRANSPORT-OFF'; Succeeded.
次の各項では、プライマリ・データベースおよびスタンバイ・データベースにおいて考えられる状態遷移について詳細に説明します。
プライマリ・データベースの状態遷移
プライマリ・データベースをTRANSPORT-ON状態に遷移する際に、ブローカは構成メンバーのREDO転送関連プロパティと、プライマリ・データベースのRedoRoutesプロパティを使用して、REDO転送サービスを設定します。REDO転送サービスを設定するために、プライマリ・データベースのLOG_ARCHIVE_DEST_nおよびLOG_ARCHIVE_DEST_STATE_n初期化パラメータと全データベース(プライマリまたはスタンバイ)および遠隔同期インスタンスのLOG_ARCHIVE_CONFIG初期化パラメータが設定されます。必要な場合は、データベースのデータ保護モードもブローカ構成ファイルに記録されている保護モードに合せて設定されます。最後に、データベースがオープンされている場合、各スレッドのログが切り替えられ、REDO転送サービスが開始されます。
プライマリ・データベースをTRANSPORT-OFF状態に遷移する際、ブローカはLOG_ARCHIVE_DEST_STATE_n初期化パラメータをリセットし、すべての管理対象スタンバイへのREDO転送サービスをオフにします。ブローカ管理のすべてのスタンバイへのREDOデータの転送が停止されます。ログ・ファイルは、引き続きプライマリ・データベース側でアーカイブされます。
プライマリ・データベースがOracle RACデータベースの場合は、ブローカにより、すべてのプライマリ・インスタンスで、同じ設定を使用してREDO転送サービスが構成されます。
フィジカル・スタンバイ・データベースの状態遷移
フィジカル・スタンバイ・データベースをAPPLY-ON状態に遷移する際に、ブローカはREDO Apply関連プロパティで指定されたオプションを使用してREDO Applyを起動します。スタンバイがOracle RACデータベースの場合、ブローカは適用インスタンスと呼ばれる単一のスタンバイ・インスタンスでREDO Applyを起動します。
REDO Applyは、稼働中の複数のアクティブなフィジカル・スタンバイ・インスタンスで実行するように設定できます。(この機能を使用するには、スタンバイ・データベースにOracle Active Data Guardオプションのライセンスが必要です。) 複数のインスタンス上でREDO Applyを実行するようにデータベースがすでに設定されている場合は、Data Guard BrokerのプロパティApplyInstancesを使用して、Oracle RACフィジカル・スタンバイ・データベース上でREDO Applyに関係するインスタンスの数を制限できます。
Oracle Active Data Guardオプションのライセンスを購入済の場合は、REDO Applyがアクティブなときにフィジカル・スタンバイ・データベースをオープン状態にしておくことができます。この機能はリアルタイム問合せと呼ばれます。詳細は、『Oracle Data Guard概要および管理』を参照してください。
他のインスタンスがオープンされている場合、REDO Applyを開始する前に適用インスタンスをオープンする必要があります。
APPLY-OFF状態に遷移すると、ブローカはREDO Applyを停止します。
ノート:
フィジカル・スタンバイ上のOracle RAC One Nodeでオンライン・データベース再配置を実行する場合、新しいインスタンスは現在実行中のインスタンスと同じモードで開始されます。そのため、データベースが元のインスタンスにマウントされている場合、そのデータベースは新しいインスタンスにマウントされることになります。同様に、データベースが元のインスタンスでオープンしている場合、そのデータベースは新しいインスタンスでオープンされることになります。これにより、新しいインスタンスは、データベースのOracle Clusterwareで記録された開始オプションと一致しないモードで開始される可能性があります。
ロジカル・スタンバイ・データベースの状態遷移
ロジカル・スタンバイ・データベースがAPPLY-ON状態に遷移すると、ブローカは、データベースがオープンされるまで待機し、データベース・ガードを有効化してロジカル・スタンバイ・データベース内の表への変更を防ぎ、ログ適用関連プロパティで指定されたオプションを使用してSQL Applyを起動します。ロジカル・スタンバイ・データベースがOracle RACデータベースの場合、ブローカは単一のスタンバイ・インスタンス(適用インスタンス)でSQL Applyを起動します。
APPLY-OFF状態に遷移すると、ブローカはSQL Applyを停止します。
関連項目:
-
SQL Applyの管理の詳細は、「ログ適用サービスの管理」を参照してください
-
REDO転送サービスの管理の詳細およびREDO転送関連プロパティの一覧は、REDO転送サービスの管理を参照してください
-
データベース・ガードの詳細は、『Oracle Data Guard概要および管理』を参照してください。
-
EDIT DATABASEコマンドの詳細は、「Oracle Data Guardコマンドライン・リファレンス」を参照してください。