ファスト・スタート・フェイルオーバーの管理

ファスト・スタート・フェイルオーバーを有効にすると、ブローカによるフェイルオーバーの必要性の判断と、事前に指定された1つ以上のターゲット・スタンバイ・データベースのリストにあるスタンバイ・データベースへのフェイルオーバーの開始が可能になります。

設定により、消失データなしでフェイルオーバーする場合と、構成可能なデータ量を消失する場合があります。また、フェイルオーバーが開始される条件やエラーも指定できます。DBMS_DG PL/SQLパッケージを使用すると、アプリケーションでファスト・スタート・フェイルオーバーを要求できます。

ブローカ構成プロパティを使用して、ファスト・スタート・フェイルオーバーの動作を制御します。また、Cloud ControlまたはDGMGRLのENABLE FAST_START FAILOVER CONDITIONコマンドおよびDISABLE FAST_START FAILOVER CONDITIONコマンドを使用して、ファスト・スタート・フェイルオーバーが実行される条件を指定することもできます。

ファスト・スタート・フェイルオーバーをチューニングするプロパティの構成

各種プロパティを設定して、ファスト・スタート・フェイルオーバーの動作を調整できます。

ファスト・スタート・フェイルオーバーに関する構成可能なプロパティは、次のとおりです。

  • FastStartFailoverThreshold

    FastStartFailoverThreshold構成プロパティを設定して、(プライマリ・データベースが使用できないことが検出されてから)フェイルオーバーを開始するまでにオブザーバおよびターゲット・スタンバイ・データベースを待機させる秒数を指定します。詳細および例は、「ファスト・スタート・フェイルオーバーの有効化」を参照してください。

  • FastStartFailoverPmyShutdown

    FastStartFailoverPmyShutdown構成プロパティは、REDOの生成が停止され(V$DATABASEFS_FAILOVER_STATUS列の値がSTALLED)、オブザーバおよびターゲット・スタンバイ・データベースとの接続が失われてから経過した時間がFastStartFailoverThreshold構成プロパティに指定された秒数を超過した場合、プライマリ・データベースを停止するかどうかを制御します。FastStartFailoverPmyShutdownのデフォルト値はTRUEです。

    ノート:

    ユーザーによる構成可能な条件が検出された場合、またはDBMS_DG.INITIATE_FS_FAILOVER関数をコールしてアプリケーションでファスト・スタート・フェイルオーバーが開始された場合、プライマリ・データベースは常に停止します。

  • FastStartFailoverLagLimit

    ファスト・スタート・フェイルオーバー機能は、最大パフォーマンス・モードで動作するデータベースで構成できます。ASYNCモードでREDOを受け取る宛先は、許容可能なファスト・スタート・フェイルオーバーのターゲット・スタンバイ・データベースであり、これらの宛先はREDOの受取りおよび適用に関してプライマリより遅れる可能性があります。FastStartFailoverLagLimit構成プロパティを使用して、構成可能な時間ベースの制限を指定できます。スタンバイ・データベースでREDOが適用された時点がプライマリのREDO生成時点からこの秒数以内であれば、ファスト・スタート・フェイルオーバーが許可されます。適用時点がこの制限よりも遅れていると、ファスト・スタート・フェイルオーバーは許可されません。

    FastStartFailoverLagLimit構成プロパティは、構成が最大可用性モードで動作しているときに、ファスト・スタート・フェイルオーバーが有効化されている場合も使用できます。構成が最大保護モードで稼働している場合は使用できません。FastStartFailoverLagLimitがゼロ以外の値に設定され、構成が最大可用性モードで動作している場合、データ消失がゼロのフェイルオーバーまたはデータ消失を伴うフェイルオーバーが行われる可能性があります。データ消失を伴うフェイルオーバーが実行された場合、データ損失の量はFastStartFailoverLagLimit構成プロパティで指定された秒数を超えることはありません。FastStartFailoverLagLimitプロパティにゼロ以外の値が指定されており、保護モードが最大可用性モードまたは最大パフォーマンス・モードの場合は、ターゲット・スタンバイのREDO転送モードはSYNCFASTSYNCまたはASYNCの値に設定する必要があります。保護モードまたはREDO転送モードをSYNCまたはFASTSYNCに変更する場合は、最初にファスト・スタート・フェイルオーバーを無効にする必要があります。同様に、保護モードを最大可用性モードから最大パフォーマンス・モードに変更する場合は、まず、ファスト・スタート・フェイルオーバーを無効化する必要があります。元のプライマリの回復は、ターゲット・スタンバイへのファスト・スタート・フェイルオーバー後に可能になります。オブザーバは元のプライマリを再検出すると、自動的に元のプライマリを回復し、指定されたラグ以内で生成されたすべてのREDOが失われます。

    ノート:

    FastStartFailoverLagLimitFastStartFailoverThreshold以下に設定することをお薦めします。FastStartFailoverLagLimitをFastStartFailoverThresholdより大きく設定すると、ファスト・スタート・フェイルオーバーが開始された後もプライマリによってコミットが続行されることになるため、少しの間その構成のプライマリ・データベースが2つになってしまう可能性が生じます。

    関連項目:

    詳細は、「Oracle Data Guard Brokerのプロパティ」を参照

  • FastStartFailoverLagType

    ファスト・スタート・フェイルオーバー構成のFastStartFailoverLagType値(APPLYまたはTRANSPORT)は、データ損失しきい値を指定するために使用するラグのタイプ(適用ラグまたは転送ラグ)を指定します。

  • FastStartFailoverLagGraceTime

    ファスト・スタート・フェイルオーバー構成のFastStartFailoverLagGraceTime値は、プライマリ・データベースが遅延状態への移動権限をリクエストしたときに、ラグ制限(FastStartFailoverLagLimit)に達するまでに経過できる最大時間(秒)を指定します。

  • FastStartFailoverAutoReinstate

    FastStartFailoverAutoReinstate構成プロパティは、プライマリ・データベースがクラッシュしたか、FastStartFailoverThresholdの秒数を超えて停止したためにファスト・スタート・フェイルオーバーが発生した場合、元のプライマリ・データベースを自動的に回復するかどうかを制御します。FastStartFailoverAutoReinstateのデフォルト値はTRUEです。

    フェイルオーバーの完了後に診断または修復作業を行う場合は、FastStartFailoverAutoReinstate構成プロパティをFALSEに設定すると、自動回復を回避できます。

    ノート:

    ユーザーによる構成可能なファスト・スタート・フェイルオーバー条件が検出されたためにファスト・スタート・フェイルオーバーが発生した場合、またはDBMS_DG.INITIATE_FS_FAILOVER関数をコールしてアプリケーションでファスト・スタート・フェイルオーバーを開始した場合、元のプライマリ・データベースの自動回復は実行されません。

  • FastStartFailoverTarget

    FastStartFailoverTarget構成プロパティは、このデータベースがプライマリ・データベースの場合、ファスト・スタート・フェイルオーバーのターゲットになれるデータベースのDB_UNIQUE_NAME値を指定します。

  • ObserverPingInterval

    ObserverPingInterval構成プロパティは、オブザーバがプライマリ・データベースにpingする頻度を指定します。このプロパティは、ミリ秒単位で測定されます。最小値は100ミリ秒です。プライマリ・データベース障害の検出時間を短縮するには、ファスト・スタート・フェイルオーバーを有効にする前にObserverPingIntervalおよびObserverPingRetryプロパティを設定する必要があります。

    プライマリの障害の検出時間を非常に短くする必要がある低ネットワーク待機時間環境では、ObserverPingIntervalとObserverPingRetryを組み合せて使用すると検出時間を短縮でき、最短で1秒になります。ObserverPingIntervalは、オブザーバによるping実行頻度を指定するために使用します。指定できる最小値は100ミリ秒です。

  • ObserverPingRetry

    ObserverPingRetry構成プロパティは、ターゲット・スタンバイ・データベースへのフェイルオーバーを開始するまでに、失敗したpingをオブザーバが再試行する回数を指定します。失敗したpingとは、プライマリ・データベースへのpingが失敗したか、ObserverPingIntervalプロパティで指定された時間より長い時間がかかったケースを指します。プライマリ・データベース障害の検出時間を短縮するには、ObserverPingRetryプロパティとObserverPingIntervalプロパティの両方を設定する必要があります。最小値は10

  • ObserverReconnect

    ObserverReconnect構成プロパティは、オブザーバがプライマリ・データベースに対して新しい接続を確立する頻度を指定します。このプロパティがデフォルト値の0に設定されている場合、オブザーバはプライマリ・データベースへの新しい接続を定期的に確立しません。これによりプライマリ・データベースに新しいオブザーバ接続を定期的に確立することによる処理オーバーヘッドがなくなる一方、オブザーバがプライマリ・データベースに新しい接続を作成できないことを検出できなくなります。データベースでのログインおよびログアウトはリソース消費量の多い操作であることに注意してください。そのため、このプロパティは、プライマリ・データベースの障害を適時に検出できる程度には小さいが、プライマリ・データベースでのログインおよびログアウトの影響を制限できる程度には大きい値に設定することをお薦めします。

  • ObserverOverride

    ObserverOverride構成プロパティをTRUEに設定すると、スタンバイがプライマリに正常に接続していても、オブザーバのプライマリへの接続が失われた場合、自動フェイルオーバーが発生します。

ファスト・スタート・フェイルオーバーの条件の構成

デフォルトでは、構成済の時間しきい値(FastStartFailoverThreshold)の経過後にオブザーバもスタンバイもプライマリにアクセスできないと、ファスト・スタート・フェイルオーバーが実行されます。

また、別の条件でファスト・スタート・フェイルオーバーを実行する必要がある場合もあります。

構成可能な条件は、データベースの健全性チェック・メカニズムによって検出されるものとOracleサーバーで発生するエラー(ORAエラーなど)によって検出されるものの2種類に分類されます。指定された条件が発生すると、オブザーバは、スタンバイがフェイルオーバーを受け入れるために適した状態であれば、FastStartFailoverThresholdを超えるまで待機せずにファスト・スタート・フェイルオーバーを開始します。

各条件は、個別に有効化または無効化できます。Oracle Data Guard構成では、ユーザー指定のすべての構成可能なファスト・スタート・フェイルオーバー条件がブローカ構成ファイルに保持されます。

プライマリ・データベースが有効な健全性チェック条件のいずれかを示すと、オブザーバによって検出され、スタンバイがフェイルオーバーを受け入れるために適した状態であれば(監視されており、同期化されているかラグ制限内であれば)ただちにファスト・スタート・フェイルオーバーが開始されます。

Oracle ORAエラー条件が指定されている場合、エラーが示されるとプライマリ・データベースがオブザーバに通知し、オブザーバは、スタンバイがフェイルオーバーを受け入れるために適した状態であれば(監視されており、同期化されているかラグ制限内であれば)ただちにファスト・スタート・フェイルオーバーを開始します。ファスト・スタート・フェイルオーバーをトリガーできるOracle ORAエラーはORA-240のみであることに注意してください。

ノート:

プライマリ・データベースは停止し、オブザーバは元のプライマリ・データベースの自動回復を試行しません。

関連項目:

アプリケーションによるファスト・スタート・フェイルオーバーの開始

DBMS_DG PL/SQLパッケージを使用して、特定の条件が満たされたときにアプリケーションによりファスト・スタート・フェイルオーバーを指示することができます。

「アプリケーションによるファスト・スタート・フェイルオーバーの指示」を参照してください。