ヘッダーをスキップ
Oracle Database PL/SQLパッケージ・プロシージャおよびタイプ・リファレンス
11g リリース1(11.1)
E05686-02
  目次
目次
索引
索引

戻る
戻る
 
次へ
次へ
 

48 DBMS_DG

DBMS_DGパッケージを使用すると、アプリケーションでフェイルオーバーの原因となる状況が発生した場合にファスト・スタート・フェイルオーバーを開始するように、アプリケーションからOracle Data Guard Broker環境内のプライマリ・データベースに通知できます。


関連項目:

ブローカ構成でのファスト・スタート・フェイルオーバーの実行方法の詳細は、『Oracle Data Guard Broker』を参照してください。

この章では、次の項目について説明します。


DBMS_DGの使用方法

Oracle Databaseの外部で実行されているアプリケーションによって検出可能な状況には、Oracle Data Guard Brokerがファスト・スタート・フェイルオーバーを実行する原因となる可能性があるものがあります。原因となる可能性がある状況の範囲はほぼ無制限であるため、ファスト・スタート・フェイルオーバーを実行する原因となっている状況の判別は、アプリケーションによって行われます。

このような状況が発生すると、アプリケーションによってDBMS_DG.INITIATE_FS_FAILOVERプロシージャがコールされ、アプリケーションでファスト・スタート・フェイルオーバーの即時実行が必要であることがプライマリ・データベースにアラートとして通知されます。 次に、プライマリ・データベースからオブザーバに通知されます。オブザーバは、スタンバイ・データベースがフェイルオーバーの受入れに有効なファスト・スタート・フェイルオーバー状態(「監視」および「同期」または「遅延内」のいずれか)であるかぎり、ファスト・スタート・フェイルオーバーを即時開始します。構成が有効なファスト・スタート・フェイルオーバー状態でない場合は、INITIATE_FS_FAILOVERサブプログラムによってORAエラー・メッセージが戻され(例外は通知されません)、ファスト・スタート・フェイルオーバーを実行できないことがコール元のアプリケーションに通知されます。


DBMS_DGサブプログラムの要約

表48-1 DBMS_DGパッケージのサブプログラム

サブプログラム 説明

INITIATE_FS_FAILOVERプロシージャ


アプリケーションでフェイルオーバーの原因となる状況が発生した場合にファスト・スタート・フェイルオーバーが必要であることをアプリケーションからプライマリ・データベースに通知できます。



INITIATE_FS_FAILOVERプロシージャ

このプロシージャは、状況文字列の指定に使用します。この文字列と一致する状況がアプリケーションで発生した場合、アプリケーションでファスト・スタート・フェイルオーバーの即時実行をプライマリ・データベースにリクエストできます。

構文

DBMS_DG.INITIATE_FS_FAILOVER (
     condstr          IN VARCHAR2)
RETURN BINARY_INTEGER;

パラメータ

表48-2 INITIATE_FS_FAILOVERプロシージャのパラメータ

パラメータ 説明

condstr

ファスト・スタート・フェイルオーバーをリクエストする必要がある状況文字列を指定します。状況文字列引数を指定しなかった場合は、デフォルトの文字列「アプリケーション・フェイルオーバーがリクエストされました。」がブローカ・ログ・ファイルおよびプライマリ・データベースのデータベース・アラート・ログに記録されます。


使用上の注意

エラー

表48-3 INITIATE_FS_FAILOVERプロシージャのエラー

エラー 説明

ORA-00000: 正常に完了しました。

ファスト・スタート・フェイルオーバーの開始リクエストがオブザーバに転送されました。

ORA-16646: ファスト・スタート・フェイルオーバーは使用不可です

ブローカ構成が存在しないか、またはファスト・スタート・フェイルオーバーが使用可能になっていません。

ORA-16666: スタンバイ・データベースでファスト・スタート・フェイルオーバーを開始できません

DBMS_DG.INITIATE_FS_FAILOVERがスタンバイ・サイトで起動されました。

ORA-16817: ファスト・スタート・フェイルオーバーの構成が同期化されていません

構成が同期化されていない場合に、使用可能な最大のファスト・スタート・フェイルオーバー構成でDBMS_DG.INITIATE_FS_FAILOVERが起動されました。

ORA-16819: ファスト・スタート・フェイルオーバー・オブザーバが起動されていません

DBMS_DG.INITIATE_FS_FAILOVERは起動されましたが、オブザーバは起動されていません。

ORA-16820: ファスト・スタート・フェイルオーバー・オブザーバはこのデータベースを監視しなくなりました

DBMS_DG.INITIATE_FS_FAILOVERが起動されましたが、構成によって、オブザーバが実行されていない可能性があることが検出されました。

ORA-16829: ファスト・スタート・フェイルオーバー構成の遅延

構成がユーザー指定のREDO遅延制限内でない場合に、最大パフォーマンスのファスト・スタート・フェイルオーバー構成でDBMS_DG.INITIATE_FS_FAILOVERが起動されました。


次の例を使用するには、SYDDBA権限を持つSYSユーザーとして接続します。

set serveroutput on

declare
status integer;

begin
status := dbms_dg.initiate_fs_failover(''Failover Requested'');

dbms_output.put_line(''FSFO is disabled: Expected status = ORA-16646'');
dbms_output.put_line(''                  Actual Status = ORA-'' || status);

end;
/
exit;