REDOルーティング・ルール
RedoRoutesプロパティは、1つ以上のREDOルーティング・ルールを含む文字列に設定されます。
各ルールは、次のようにカッコ内に入れます。
(redo_routing_rule_1) [(redo_routing_rule_n)]
redo routing ruleには、redo sourceフィールドとredo destinationフィールドが含まれ、それらは次のようにコロンで区切られます。
(redo source : redo destination)
redo sourceフィールドには、次のように、キーワードLOCAL、ANY、またはDB_UNIQUE_NAME値のカンマ区切りリストが含まれる必要があります。
{LOCAL | ANY | db_unique_name_1,[,db_unique_name_n]}
-
キーワード
LOCALは、ローカル・データベース名の別名です。このキーワードは、遠隔同期インスタンスでは使用できません。 -
ANYキーワードは、構成内の任意のデータベースの別名です。 -
1つのデータベースは、明示的にも、暗黙的(
LOCALキーワードを使用)にも、指定されたデータベースで定義されている複数のREDOルーティング・ルールにおけるREDOソースとして指定することはできません。
redo destinationフィールドには、キーワードALL、またはREDO転送グループのカンマ区切りリストが含まれる必要があり、それぞれ宛先データベースと優先度属性(オプション)およびREDO転送モード属性(オプション)で構成されます。
{ALL [xpt_mode] | redo_dest_group_1 [, redo_dest_group_n]}
-
ALLキーワードは、構成において可能なすべての接続先の別名です。 -
redo_dest_group_nは次のようにします。{ db_unique_name_1 [xpt_mode] | ( db_unique_name_1 [xpt_mode] [PRIORITY=n] [,db_unique_name_n [xpt_mode] [PRIORITY=n]] ) }オプションの
xpt_modeは、REDOを関連の接続先に送信するために使用されるREDO転送モードを指定します。指定可能な値は、3つの値(ASYNC、SYNCまたはFASTSYNC)のいずれかです。REDO転送属性を指定しない場合、使用される転送モードは、そのREDO接続先のLogXptModeプロパティで指定されたものになります。オプションの[
PRIORITY=n]では、nに1から8を指定できます。遠隔同期メンバーのデフォルト値は1で、非遠隔同期メンバーのデフォルト値は8です。グループおよび優先度の設定が異なると、様々な条件下でREDO転送がどのような影響を受けるか理解しておく必要があります。次の例では、いくつかの状況について説明します。
例1: グループ内の優先度が異なる場合
PRI(プライマリ・データベース)SB1(スタンバイ・データベース)FS1(遠隔同期インスタンス)
PRIが、スタンバイ・データベースSB1で使用するREDOログを生成します。遠隔同期インスタンスFS1が存在するため、スタンバイ・データベースへのREDO転送パスには2つの可能性が考えられます。
- (パス1)
PRI—>FS1—>SB1 - (パス2)
PRI—>SB1
RedoRoutesプロパティを使用して表現できます。
PRI—RedoRoutes = (local : ( FS1 PRIORITY=1, SB1 PRIORITY=2 ) )FS1—RedoRoutes = ( PRI : SB1 )
PRIのRedoRoutesプロパティで指定したように、プライマリ(PRI)には2つの宛先(PRIORITY=1のFS1とPRIORITY=2のSB1)が設定されています。優先度の数字が小さいほど優先度が高くなるため、プライマリPRIは、まずFS1にREDOログを送信しようとします。
FS1が使用できる場合、プライマリはPRIORITY=1が設定されているFS1に送信します。FS1が使用できない場合、プライマリはPRIORITY=2が設定されているSB1に送信します。FS1が再度アクティブになると、PRIORITY 1はPRIORITY 2よりも優先度が高いので、プライマリはまたFS1に送信するようになります。
例2: グループ内の優先度が同じ場合
FS2を追加して、RedoRoutesプロパティを次のように更新すると仮定します。
PRI—RedoRoutes = (local : ( FS1 PRIORITY=1, FS2 PRIORITY=1 ) )FS1—RedoRoutes = ( PRI : SB1 )FS2—RedoRoutes = ( PRI : SB1 )
現在、プライマリPRIには、同じ優先度の2つの宛先(FS1とFS2)が設定されています。プライマリはFS1またはFS2のいずれかを選択する必要があります。プライマリがFS1を選択すると仮定します。
FS1が使用できる場合、プライマリはFS1に送信します。FS1が使用できない場合、プライマリはFS2に送信します。FS1が再度アクティブになった後も、FS1とFS2の優先度が同じであるため、プライマリは引き続きFS2に送信します。FS2に障害が発生すると、プライマリはFS1に送信します。
例3: 複数グループ
SB2を追加してから、RedoRoutesプロパティを次のように更新して、プライマリに2つの宛先グループを設定すると仮定します。
PRI—RedoRoutes = (local : ( FS1 PRIORITY=1, SB1 PRIORITY=2 ), ( FS2 PRIORITY=1, SB2 PRIORITY=2 ) )FS1—RedoRoutes = ( PRI : SB1 )FS2—RedoRoutes = ( PRI : SB2 )
一般的なルールとして、REDOのアクティブ・パスは各グループに1つです。(REDOのアクティブ・パスが複数ある場合の使用例は、例4を参照してください。) プライマリは、1番目のグループ( FS1 PRIORITY=1, SB1 PRIORITY=2 )に対して1つのREDO転送パスを、2番目のグループ( FS2 PRIORITY=1, SB2 PRIORITY=2 )に対して別のREDO転送パスを確立します。
-
FS1とFS2の両方が使用できる場合、プライマリはFS1とFS2に送信します。 -
FS1は使用できないがFS2は使用できる場合、プライマリはSB1とFS2に送信します。 -
FS1は使用できるがFS2は使用できない場合、プライマリはFS1とSB2に送信します。 -
FS1とFS2の両方とも使用できない場合、プライマリはSB1とSB2に送信します。
例4: PRIORITY属性が8に設定されている場合
PRIORITY=8には特別な意味があります。PRIORITY=8が設定されている宛先にREDOを送信する場合、プライマリはすべてのPRIORITY=8宛先に送信する必要があります。RedoRoutesプロパティを次のように更新して、3つの宛先が含まれる1つのグループをプライマリに設定すると仮定します。
PRI—RedoRoutes = (local : ( FS1 PRIORITY=1, SB1 PRIORITY=8, SB2 PRIORITY=8 ) )FS1—RedoRoutes = ( PRI : SB1, SB2 )
このように設定すると、動作は次のようになります。
-
FS1が使用できる場合、プライマリはFS1に送信します。 -
FS1が使用できない場合、SB1とSB2のどちらにもPRIORITY=8が設定されているため、プライマリはこの両方に送信します -
FS1が再度アクティブになると、プライマリはFS1に送信します。
高度なREDO転送設定の使用上のノート
次の使用上のノートが、高度なREDO転送設定について適用されます:
-
RedoRoutesプロパティのデフォルト値はNULLです。プライマリ・データベースは、(LOCAL : ALL)として扱われます。 -
REDOルーティング・ルールがアクティブになるのは、そのREDOソース・フィールドで現在のプライマリ・データベースが指定されている場合です。ルールがアクティブになっている場合、プライマリ・データベースのREDOは、ルールが定義されているデータベースによって、そのルールのREDO接続先フィールドで指定されている各接続先に送信されます。
-
カスケード接続先で、その接続先へのリアルタイム・カスケーディングを有効にするには、
ASYNCREDO転送属性を明示的に指定する必要があります。 -
RedoRoutesプロパティでは、フィジカル・スタンバイ・データベースがスナップショット・スタンバイに変換された場合に、スナップショット・スタンバイがREDOデータを別のメンバーに送信するように構成できません。 -
ロジカル・スタンバイ・データベースに
RedoRoutesプロパティを設定できるのは、REDOソース・フィールドがLOCALに設定されている場合のみです。