STOP_OBSERVER

STOP_OBSERVER関数を使用すると、Data Guard Broker構成でファスト・スタート・フェイルオーバーのオブザーバを停止できます。

STOP_OBSERVER関数

DBMS_DG.STOP_OBSERVER (
     ob_name               IN VARCHAR2,
     severity              OUT BINARY_INTEGER)
RETURN BINARY_INTEGER;

パラメータ

パラメータ 説明
ob_name 停止するオブザーバの名前を示す文字列。有効な値を次に示します。
  • オブザーバ名。登録されているすべてのオブザーバを示すリストは、V$FS_FAILOVER_OBSERVERSを参照してください。
  • 登録されているオブザーバが1つのみの場合は、NULLまたは空の文字列。
  • 登録されているすべてのオブザーバを停止するには、ALL
severity この関数によって返されたステータスに関連付けられている重大度。重大度は、次のOracleエラー番号のいずれかになります。
  • ORA-0: 正常に完了しました。
  • ORA-16501: Oracle Data Guard Broker操作に失敗しました
  • ORA-16502: Oracle Data Guard Broker操作は警告付きで成功しました

使用上のノート

  • この関数では、2進整数が返されます。

  • この関数をコールできるのは、ブローカ構成内のいずれかのデータベースに接続されている間です。
  • このコマンドではファスト・スタート・フェイルオーバーを無効化できませんが、ファスト・スタート・フェイルオーバーはオブザーバがないと開始できません。
  • このコマンドの発行時に、ファスト・スタート・フェイルオーバーが有効化されている必要はありません。
  • この関数のコール時にファスト・スタート・フェイルオーバーが有効になっている場合は、プライマリ・データベースとスタンバイ・データベースが接続されており相互に通信している必要があります。そうでない場合は、次のエラーが戻されます。

    ORA-16636 ファスト・スタート・フェイルオーバーのターゲット・スタンバイがエラー状態のため、オブザーバを停止できません

    プライマリ・データベースとスタンバイ・データベースの間に接続が存在しない場合は、プライマリ・データベースでFORCEオプションを指定してファスト・スタート・フェイルオーバーの無効化を発行した後に、この関数をコールできます。オブザーバおよびターゲットのスタンバイ・データベースから切断されたプライマリ・データベース上でFORCEオプションを指定してファスト・スタート・フェイルオーバーを無効化しても、オブザーバによる、ターゲットのスタンバイ・データベースへのファスト・スタート・フェイルオーバーの開始を無効にはできません。

  • この関数のコール時にファスト・スタート・フェイルオーバーが有効になっていない場合は、オブザーバを停止したときにプライマリ・データベースのみが実行されている必要があります。
  • オブザーバは、この関数のコールの直後に停止されるわけではありません。オブザーバは、次回オブザーバーがブローカと接続されるまで停止されたことを検出しません。この関数のコールが正常に完了した後はすぐに、どのコンピュータででもオブザーバを再度起動できます。旧オブザーバがまだ自身の停止を検出していない場合でも、新規オブザーバを即座に開始できます。ブローカ構成では新しいオブザーバがすでに開始されているため、元のオブザーバの開始を試行すると失敗します。
  • この関数では、新しいファスト・スタート・フェイルオーバー・ターゲットまたは新しいマスター・オブザーバへの切替えが進行中の場合は、エラーが返されます。
  • この関数では、登録されているオブザーバが2つ以上ありそのマスターのみを停止しようとすると、エラーが返されます。

戻り値

エラー 説明
ORA-00000: 正常に完了しました。

指定されたオブザーバは正常に停止されました。

その他

Data Guard Brokerで、指定されたオブザーバを停止できませんでした。戻り値で、この失敗の理由が示されます。