FAILOVER

FAILOVERコマンドは、指定したターゲットのスタンバイ・データベースをプライマリ・データベースのロールに遷移するフェイルオーバーを開始します。

このタイプのフェイルオーバーは、手動フェイルオーバーと呼びます。詳細は、「手動フェイルオーバー」を参照してください。

ノート:

フェイルオーバーを実行すると、スタンバイ・データベースがプライマリ・データベースのロールに遷移するため、フェイルオーバーは、プライマリ・データベースに障害が発生するか使用不可になり、適時にリカバリできない場合に実行してください。フェイルオーバーの結果、実行時に有効になっている保護モード、およびターゲット・スタンバイ・データベースがプライマリ・データベースと同期化されていたかどうかによっては、データが消失する場合があります。

プライマリ・データベースに障害がなく、データの消失なしに現在のプライマリ・データベースとスタンバイ・データベースのロールを切り替えるには、SWITCHOVERコマンドを使用します。

書式

FAILOVER TO <db_unique_name> [IMMEDIATE];

コマンド・パラメータ

db_unique_name

プライマリ・データベース・ロールへのフェイルオーバーの対象となるフィジカル、ロジカルまたはスナップショット・スタンバイ・データベースのDB_UNIQUE_NAME初期化パラメータ値。

使用上のノート

  • ORA-752またはORA-600 [3020] エラーにより、フェイルオーバー・ターゲットでREDO Applyが停止されていないかぎり、常に完全フェイルオーバーを最初に実行するようにします。これらのエラーのいずれかが発生した場合は、先に進む前に、My Oracle Supportノート1265884.1 (https://support.oracle.com)の「スタンバイ・リカバリ時のORA-752またはORA-600 [3020]の解決」のガイドラインに従います。即時フェイルオーバーは、完全フェイルオーバーが失敗するか、前述のエラーの場合にのみ実行してください。

  • 指定したスタンバイ・データベースは、プライマリ・データベースに障害が発生する前に有効化されている必要があります。ただし、有効化されているスタンバイ・データベースが停止している場合は、フェイルオーバー操作の候補とみなすことができます。この場合は、DGMGRLのSTARTUPコマンドを使用してスタンバイ・データベースを再起動してからFAILOVERコマンドを発行します。

  • フェイルオーバーは、指定したスタンバイ・データベースに対して動作し、スタンバイ・データベースのロールがプライマリ・データベースのロールに変更されます。フェイルオーバーに関係しないその他のスタンバイ・データベースは、スタンバイ・ロールのままです。

  • FAILOVERコマンドを発行する前に、新しいプライマリ・データベースになるスタンバイ・データベースに接続していることを確認します。必要な場合は、CONNECTコマンドを発行してフェイルオーバーするスタンバイ・データベースに接続します。

  • オプションを指定せずにFAILOVERコマンドを発行すると、フェイルオーバー・ターゲットとして選択したスタンバイ・データベースにより、プライマリ・ロールへの変更前に受信した未適用のREDOがすべて適用されます。これを完全フェイルオーバーと呼びます。

  • ブローカ構成が最大保護モードで動作している場合、手動フェイルオーバー操作を実行すると、保護モードが強制的に最大パフォーマンスに設定されます。REDO転送サービスの設定は影響を受けません。フェイルオーバー操作後に、構成に必要な保護モードをリストアする必要があります。

    ノート:

    ファスト・スタート・フェイルオーバーの場合は、ブローカにより、フェイルオーバー前に有効になっていた保護モードが維持されます。

  • IMMEDIATEオプションを指定してFAILOVERコマンドを発行すると、受け取った未適用のREDOの適用は試行されません。このオプションを指定すると、スタンバイ・データベースでスタンバイREDOログ・ファイルが構成されている場合でも、アプリケーション・データが消失する可能性があります。また、構成内の他のスタンバイ・データベースは、回復または再作成されるまで機能しません。詳細は、「ロール変更後の無効化されたデータベースの再有効化」を参照してください。

  • 手動フェイルオーバーを実行するか、ブローカをファスト・スタート・フェイルオーバーを実行するように設定できます。フェイルオーバーの条件が満たされた場合に、ブローカにより自動的にフェイルオーバーを起動させる方法については、ENABLE FAST_START FAILOVERコマンドを参照してください。

  • ファスト・スタート・フェイルオーバーが有効になっている場合は、完全手動フェイルオーバーを、ファスト・スタート・フェイルオーバーのターゲット・スタンバイ・データベースに対してのみ、そのスタンバイ・データベースがプライマリ・データベースと同期化されているかプライマリ・データベースのラグ制限内である場合にのみ、およびオブザーバーが開始されている場合にのみ実行できます。ファスト・スタート・フェイルオーバーが有効になっている場合に、即時手動フェイルオーバーは実行できません。

  • 障害が発生した元のプライマリ・データベース上で、フェイルオーバーの前に「データベースをフラッシュバック」が有効化されていた場合は、ブローカのREINSTATEコマンド(REINSTATE DATABASEコマンドを参照)を使用して、そのプライマリ・データベースを回復できます。

    フィジカル・スタンバイ・データベースに対してフェイルオーバーが実行された場合は、そのスタンバイ・データベースで「データベースをフラッシュバック」が有効化されていて、使用可能なフラッシュバック・ログ情報が不足なくある場合にのみ、そのフェイルオーバーにより無効化されたその他のフィジカル・スタンバイ・データベースも回復できます。ステップについては、「ロール変更後の無効化されたデータベースの再有効化」を参照してください。

  • 元のプライマリ・データベースは、回復または再作成後、スタンバイ・データベースとしてのみ構成に関係できます。

    注意:

    フェイルオーバー前に、まだアクティブなインスタンスが実行されている場合は、元のプライマリ・データベースを停止します。

    関連項目:

    プライマリ・データベースのスタンバイ・データベースとして機能するように、元のプライマリ・データベースを再有効化する方法については、「ロール変更後の無効化されたデータベースの再有効化」を参照してください

コマンドの例

次の例では、スタンバイ・データベースSouth_Salesがプライマリ・ロールに遷移するフェイルオーバーを実行しています。

DGMGRL> FAILOVER TO 'South_Sales';
Performing failover NOW, please wait...
Failover succeeded, new primary is "South_Sales"

DGMGRL> SHOW CONFIGURATION;
Configuration - DRSolution
 
  Protection Mode: MaxPerformance
  Members:
    South_Sales - Primary database
    North_Sales - Physical standby database (disabled)
      ORA-16661: The standby database must be be reinstated.
 
Fast-Start Failover: DISABLED
 
Configuration Status:
WARNING