ヘッダーをスキップ

Oracle Data Guard 概要および管理
11gリリース1(11.1)

E05755-03
目次
目次
索引
索引

戻る 次へ

D Data GuardおよびOralce Real Application Clusters

Oracle Data Guard構成は、単一インスタンスおよび複数インスタンスのOralce Real Application Clusters(RAC)データベースの組合せで構成されます。この章では、Oracle Data GuardをOracle RACデータベースとともに使用する場合に適用される構成要件と考慮事項の概要を説明します。次の項目で構成されています。

D.1 Oracle RAC環境でのスタンバイ・データベースの構成

スタンバイ・データベースを構成すると、Oracle RACを使用しているプライマリ・データベースを保護できます。次の表では、プライマリ・データベースとスタンバイ・データベースのインスタンスの可能な組合せについて説明します。

インスタンスの組合せ  単一インスタンス・スタンバイ・データベース  複数インスタンス・スタンバイ・データベース 

単一インスタンス・プライマリ・データベース 

可 

可 

複数インスタンス・プライマリ・データベース 

可 

可 

それぞれの組合せでは、プライマリ・データベースの各インスタンスが、REDOデータをスタンバイ・データベースのインスタンスへ転送します。

D.1.1 複数インスタンス・プライマリ・データベースと単一インスタンス・スタンバイ・データベースの設定

図D-1では、プライマリ・データベース・インスタンスが2つあるOracle RACデータベース(複数インスタンス・プライマリ・データベース)が、単一インスタンス・スタンバイ・データベースへREDOデータを転送しています。

図D-1    複数インスタンス・プライマリ・データベースからのREDOデータの転送


画像の説明

この場合は、プライマリ・データベースのインスタンス1がローカル・アーカイブREDOログ・ファイル1、2、3、4、5にREDOデータをアーカイブし、スタンバイ・データベース宛先にREDOデータを転送するのに対し、インスタンス2がローカル・アーカイブREDOログ・ファイル32、33、34、35、36にREDOデータをアーカイブし、同じスタンバイ・データベース宛先にREDOデータを転送します。スタンバイ・データベースでは、アーカイブREDOログ・ファイルを適用する正しい順序が自動的に判断されます。

Oracle RAC環境でプライマリ・データベースを設定する手順

各プライマリ・インスタンスを構成するには、第3章(フィジカル・スタンバイ・データベース作成の場合)、または第4章(ロジカル・スタンバイ・データベース作成の場合)の説明に従ってください。

単一インスタンス・スタンバイ・データベースを設定する手順

LOG_ARCHIVE_DEST_nパラメータおよびLOG_ARCHIVE_FORMATパラメータを定義して、アーカイブREDOログ・ファイルおよびスタンバイREDOログ・ファイルの場所を指定するには、第3章(フィジカル・スタンバイ・データベース作成の場合)、または第4章(ロジカル・スタンバイ・データベース作成の場合)の説明に従ってください。

D.1.2 Oracle RACプライマリおよびスタンバイ・データベースの設定

この項では、Oracle RACスタンバイ・データベースにREDOデータを送信するようにOracle RACプライマリ・データベースを構成する方法について説明します。

D.1.2.1 REDOデータを受信するためのOracle RACスタンバイ・データベースの構成

次の手順を実行して、プライマリ・データベースからREDOデータを受信するようにOracle RACスタンバイ・データベースを構成します。

  1. スタンバイ・データベースで、スタンバイREDOログを作成します。スタンバイREDOログのREDOログ・ファイルは、すべてのスタンバイ・データベース・インスタンスがアクセスできる場所(クラスタ・ファイル・システムやASMインスタンスなど)に存在する必要があります。スタンバイREDOログの作成の詳細は、6.2.3.1項を参照してください。

  2. 各スタンバイ・データベース・インスタンスでスタンバイREDOログ・アーカイブを構成します。スタンバイREDOログは、すべてのスタンバイ・データベース・インスタンスがアクセスできる場所にアーカイブする必要があります。また、すべてのスタンバイ・データベース・インスタンスは、スタンバイREDOログを同じ場所にアーカイブするように構成する必要があります。スタンバイREDOログ・アーカイブの構成の詳細は、6.2.3.2項を参照してください。

D.1.2.2 REDOデータを送信するためのOracle RACプライマリ・データベースの構成

REDOデータをRACスタンバイ・データベースに送信するように、RACプライマリ・データベースの各インスタンスを構成します。REDOデータを別のデータベースに送信するようにOracleデータベース・インスタンスを構成する方法は、6.2.2項を参照してください。

REDOデータをOracle RACスタンバイ・データベースに送信するようにOracle RACプライマリ・データベースを構成する際には、次のベスト・プラクティスをお薦めします。

  1. 各プライマリ・データベース・インスタンスで同じLOG_ARCHIVE_DEST_nパラメータを使用して、REDOデータを特定のスタンバイ・データベースに送信する。

  2. 特定のスタンバイ・データベースに対応する各LOG_ARCHIVE_DEST_nパラメータのSERVICE属性を同じネット・サービス名に設定する。

  3. ネット・サービス名は、アドレス・リストを含むOracle Net接続記述子に解決する必要があり、そのアドレス・リストには、各スタンバイ・データベース・インスタンスの接続データが含まれる必要がある。

D.2 Oracle RAC環境での構成に関する考慮事項

この項では、Oracle RAC環境に固有のData Guard構成情報を示します。この章は、次の項目で構成されています。

D.2.1 アーカイブREDOログ・ファイル名の形式

アーカイブREDOログ・ファイル名は、log_%parameterの形式になります。%parameterには、表D-1のパラメータを1つ以上含めることができます。

表D-1    LOG_ARCHIVE_FORMAT初期化パラメータのディレクティブ 
ディレクティブ  説明 

%a 

データベース・アクティブID 

%A 

0(ゼロ)を埋め込んだデータベース・アクティブID 

%d 

データベースID 

%D 

0(ゼロ)を埋め込んだデータベースID 

%t 

インスタンス・スレッド番号 

%T 

0(ゼロ)を埋め込んだインスタンス・スレッド番号 

%s 

ログ・ファイル順序番号 

%S 

0(ゼロ)を埋め込んだログ・ファイル順序番号 

%r 

リセットログID 

%R 

0(ゼロ)を埋め込んだリセットログID 

次に例を示します。

LOG_ARCHIVE_FORMAT = log%d_%t_%s_%r.arc

Oracle RACが、LOG_ARCHIVE_FORMATパラメータでアーカイブREDOログ・ファイルを一意に識別するためには、スレッド・パラメータ%tまたは%Tが必須です。

D.2.2 データ保護モード

最大保護モードまたは最大可用性モードで稼働しているOracle RAC構成では、インスタンスがスタンバイ宛先との接続を失うと、他のすべてのインスタンスがその宛先へのデータ送信を停止します(これにより、その宛先に転送されたデータの整合性が維持されます)。

障害のあったスタンバイ宛先が復旧すると、Data Guardは、ギャップなしになるまで、そのサイトを再同期化モードで実行します。これによって、そのスタンバイ宛先はData Guard構成に再び含まれます。

次に、Oracle RAC環境における保護モードの動作を説明します。

D.2.3 ロールの推移

この項は、次の項目で構成されています。

D.2.3.1 スイッチオーバー

Oracle RACデータベースの場合は、ターゲット・データベースがフィジカル・スタンバイであるスイッチオーバー時にアクティブにできるのは、1つのプライマリ・インスタンスと1つのスタンバイ・インスタンスのみです。したがって、フィジカル・スタンバイ・データベースへのスイッチオーバーの前に、1つのプライマリ・インスタンスと1つのスタンバイ・インスタンス以外はすべて停止します。スイッチオーバーの完了後、スイッチオーバーの実行時に停止したプライマリ・インスタンスとスタンバイ・インスタンスを再起動します。この制限は、ロジカル・スタンバイ・データベースの場合には存在しません。


注意

SQL ALTER DATABASE文を使用してスイッチオーバーを実行すると、REDOログ・ファイルが存在していない場合は自動的に作成されます。これによって、COMMIT操作の完了に必要な時間が大幅に長くなる場合があるため、フィジカル・スタンバイ・データベースを作成するときは、REDOログ・ファイルを手動で追加することをお薦めします。 


D.2.3.2 フェイルオーバー

Oracle RACスタンバイ・データベースへのフェイルオーバーを実行するには、まず、1つのスタンバイ・インスタンス以外はすべて停止します。フェイルオーバーの完了後、停止したインスタンスを再起動します。

D.3 トラブルシューティング

この項は、Oracle RACで発生する問題のトラブルシューティングのヘルプとして利用できます。

D.3.1 Oralce RAC構成でスイッチオーバーできない

データベースでOracle RACを使用すると、アクティブ・インスタンスによってスイッチオーバーの実行が妨げられます。他のインスタンスがアクティブの場合は、スイッチオーバーの試行が次のエラー・メッセージを伴って失敗します。

SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO STANDBY; 
ALTER DATABASE COMMIT TO SWITCHOVER TO STANDBY * 
ORA-01105: mount is incompatible with mounts by other instances 

処置: 次のようにGV$INSTANCEビューを問い合せ、問題の原因となっているインスタンスを判断します。

SQL> SELECT INSTANCE_NAME, HOST_NAME FROM GV$INSTANCE 
  2> WHERE INST_ID <> (SELECT INSTANCE_NUMBER FROM V$INSTANCE);
INSTANCE_NAME HOST_NAME 
------------- --------- 
INST2         standby2 

この例では、識別されたインスタンスを手動で停止しないと、スイッチオーバーを継続できません。識別されたインスタンスには使用中のインスタンスから接続でき、SHUTDOWN文をリモートで発行できます。次に例を示します。

SQL> CONNECT SYS@standby2 AS SYSDBA
Enter Password:
SQL> SHUTDOWN;
SQL> EXIT

戻る 次へ
Oracle
Copyright © 1999, 2008 Oracle Corporation.

All Rights Reserved.
目次
目次
索引
索引