79 DBMS_DG

DBMS_DGパッケージには、Oracle Data Guard Broker構成をプログラムで管理するためのツールが用意されています。

構成の作成、変更および削除、フェイルオーバーとスイッチオーバーの処理、プロパティの設定およびヘルスのモニタリングを行うためのプロシージャを使用すると、スクリプトおよびカスタム・ツールを使用してData Guardのルーチン・タスクを自動化できます。

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

この章のトピックは、次のとおりです:

ノート:

マルチテナント・コンテナ・データベースが、Oracle Database 21c以降のリリースで唯一サポートされているアーキテクチャです。ドキュメントが改訂されている間は、従来の用語が残っている可能性があります。ほとんどの場合、"データベース"と"非CDB"は、文脈に応じてCDBまたはPDBを指しています。アップグレードなどでは、"非CDB"が以前のリリースの非CDBを指している場合もあります。

ノート:

マルチテナント・コンテナ・データベース(CDB)で操作している場合は、DBMS_DG内のファンクションはルート・レベルでのみ実行されます。個々のプラガブル・データベース(PDB)レベルではなく、ルート・レベルで接続していることを確認してください。

79.1 DBMS_DGのセキュリティ・モデル

DBMS_DGパッケージは実行者の権限で実行され、SYSDBA権限が必要です。

79.2 Oracle Data GuardのDBMS_DG APIの概要

Oracle Data GuardのDBMS_DG APIを使用すると、ブローカ構成を管理できます。

表79-1 DBMS_DG APIの概要

API 効果
ADD_DATABASE Data Guard Broker構成にスタンバイ・データベースを追加します。
ADD_FAR_SYNC

Data Guard Broker構成に遠隔同期インスタンスを追加します。

ADD_RECOVERY_APPLIANCE

Data Guard Broker構成にZero Data Loss Recovery Applianceを追加します。

CONVERT_TO_PHYSICAL

スナップショット・スタンバイ・データベースをフィジカル・スタンバイ・データベースに変換するために使用します。

CONVERT_TO_SNAPSHOT

スナップショット・スタンバイ・データベースをフィジカル・スタンバイ・データベースに変換します。

CREATE_CONFIGURATION

Data Guard Broker構成を作成するために使用します。

DISABLE

構成メンバーを無効にするために使用します。

DISABLE_CONFIGURATION

この関数は、構成のブローカ管理を無効にするために使用します。

DISABLE_FS_FAILOVER

ファスト・スタート・フェイルオーバーを無効にするために使用します。

DISABLE_FS_FAILOVER_CONDITION

ファスト・スタート・フェイルオーバーを実行する条件を削除するために使用します。

ENABLE

この関数は、指定したメンバーのブローカ管理を有効にするために使用します。

ENABLE_CONFIGURATION

構成のブローカ管理を有効にします。

ENABLE_FS_FAILOVER

ファスト・スタート・フェイルオーバーを有効にするために使用します。

ENABLE_FS_FAILOVER_CONDITION ファスト・スタート・フェイルオーバーを実行する条件を追加指定するために使用できます。

FAILOVER

この関数を使用すると、データベース・フェイルオーバーを実行できます。

GET_CONFIGURATION_PROPERTY

構成プロパティの値を取得するために使用します。

GET_CONFIGURATION_TAG

構成タグの値を取得します。

GET_MEMBER_TAG

メンバー・タグの値を取得します。

GET_PROPERTY

メンバー・プロパティの値を取得するために使用します。

HEALTH_CHECK

すべての構成メンバーの健全性をブローカで評価するために使用します。

INITIATE_FS_FAILOVER

状況文字列を指定するために使用します。この文字列と一致する状況がアプリケーションで発生した場合、アプリケーションでファスト・スタート・フェイルオーバーの起動をリクエストできます。

REINSTATE

フェイルオーバー操作の後にデータベースを回復するために使用できます。

REMOVE

Data Guard Broker構成のメンバーを削除するために使用します。

REMOVE_CONFIGURATION

Data Guard Broker構成を削除するために使用します。

REMOVE_CONFIGURATION_TAG

構成タグを削除します。

REMOVE_CONFIGURATION_TAG_ALL

すべての構成タグを削除します。

REMOVE_MEMBER_TAG

メンバー・タグを削除します。

REMOVE_MEMBER_TAG_ALL

すべてのメンバー・タグを削除します。

REMOVE_INSTANCE

Data Guard Broker構成のメンバーからインスタンスを削除するために使用できます。

RESET_CONFIGURATION_PROPERTY

構成プロパティをそのデフォルト値にリセットするために使用します。

RESET_PROPERTY

メンバーの構成可能プロパティをそのデフォルト値にリセットするために使用できます。

SET_CONFIGURATION_PROPERTY

構成プロパティの値を設定するために使用できます。

SET_CONFIGURATION_TAG

構成タグの値を設定します。

SET_MEMBER_TAG

メンバー・タグの値を設定します。キーが存在しない場合は、新しいキーが作成されます。

SET_PROPERTY

メンバーの構成可能プロパティの値を設定するために使用できます。

SET_PROTECTION_MODE

構成保護モードを設定するために使用できます。

SET_STATE_APPLY_OFF

ロジカルまたはフィジカル・スタンバイ・データベースの適用状態をオフに設定するために使用します。

SET_STATE_APPLY_ON

ロジカルまたはフィジカル・スタンバイ・データベースの適用状態をオンに設定するために使用します。

SET_STATE_TRANSPORT_OFF

プライマリ・データベースのREDO転送の状態をオフに設定するために使用します。

SET_STATE_TRANSPORT_ON

プライマリ・データベースのREDO転送の状態をオンに設定するために使用できます。

STOP_OBSERVER Data Guard Broker構成でファスト・スタート・フェイルオーバーのオブザーバを停止するために使用します。
SWITCHOVER データベース・スイッチオーバーを実行するために使用します。
WAIT 様々なData Guard Brokerイベントの発生を待機するために使用します。

79.2.1 ADD_DATABASE

ADD_DATABASE関数を使用すると、Data Guard Broker構成にスタンバイ・データベースを追加できます。

ADD_DATABASEファンクション

形式

DBMS_DG.ADD_DATABASE (
     database_name          IN VARCHAR2,
     database_ci            IN VARCHAR2,
     severity               OUT BINARY_INTEGER)
RETURN BINARY_INTEGER;

パラメータ

パラメータ 説明
database_name

ブローカでこのスタンバイ・データベースを参照するために使用される名前。この名前は、対応するデータベースのDB_UNIQUE_NAME初期化パラメータの値と一致する(大/小文字は区別されません)必要があります。

database_ci

完全指定の接続記述子またはOracle Net Servicesのネーミング・メソッド(TNSなど)により解決される名前です。指定した値は、データベース・プロパティDGConnectIdentifierの初期値としても使用されます。

severity この関数によって返されたステータスに関連付けられている重大度。重大度は、次のOracleエラー番号のいずれかになります。
  • ORA-0: 正常に完了しました。
  • ORA-16501: Oracle Data Guard Broker操作に失敗しました
  • ORA-16502: Oracle Data Guard Broker操作は警告付きで成功しました

使用上のノート

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

  • この関数は、プライマリ・データベース、または有効化されているスタンバイ・データベースか遠隔同期インスタンスに接続している間のみコールできます。

戻り値

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

スタンバイ・データベースはData Guard Broker構成に正常に追加されました。

Other

Data Guard Brokerで構成にスタンバイ・データベースを追加できませんでした。戻り値で、この失敗の理由が示されます。

79.2.2 ADD_FAR_SYNC

ADD_FAR_SYNC関数を使用すると、Data Guard Broker構成に遠隔同期インスタンスを追加できます。このコマンドを使用するには、Oracleウォレット・ベースの認証を構成し、SYSDBA権限で接続する必要があります。

ADD_FAR_SYNC関数

形式

DBMS_DG.ADD_FAR_SYNC (
     far_sync_name          IN VARCHAR2,
     far_sync_ci            IN VARCHAR2,
     severity               OUT BINARY_INTEGER)
RETURN BINARY_INTEGER;

パラメータ

パラメータ 説明
far_sync_name

ブローカでこの遠隔同期インスタンスを参照するために使用する名前。この名前は、対応するデータベースのDB_UNIQUE_NAME初期化パラメータの値と一致する(大/小文字は区別されません)必要があります。

far_sync_ci

完全指定の接続記述子またはOracle Net Servicesのネーミング・メソッド(TNSなど)により解決される名前です。指定した値は、データベース・プロパティDGConnectIdentifierの初期値としても使用されます。

severity この関数によって返されたステータスに関連付けられている重大度。重大度は、次のOracleエラー番号のいずれかになります。
  • ORA-0: 正常に完了しました。
  • ORA-16501: Oracle Data Guard Broker操作に失敗しました
  • ORA-16502: Oracle Data Guard Broker操作は警告付きで成功しました

使用上のノート

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

  • この関数は、プライマリ・データベース、または有効化されているスタンバイ・データベースか遠隔同期インスタンスに接続している間のみコールできます。

戻り値

エラー 説明
ORA-00000: normal, successful completion

遠隔同期インスタンスはData Guard Broker構成に正常に追加されました。

Other

Data Guard Brokerで構成に遠隔同期インスタンスを追加できませんでした。戻り値で、この失敗の理由が示されます。

79.2.3 ADD_RECOVERY_APPLIANCE

ADD_FAR_SYNC関数を使用すると、Data Guard Broker構成にZero Data Loss Recovery Applianceを追加できます。

ADD_RECOVERY_APPLIANCE関数

形式

DBMS_DG.ADD_RECOVERY_APPLIANCE (
     ra_name          IN VARCHAR2,
     ra_ci            IN VARCHAR2,
     severity         OUT BINARY_INTEGER)
RETURN BINARY_INTEGER;

パラメータ

パラメータ 説明
ra_name

ブローカで、このZero Data Loss Recovery Applianceを参照するために使用される名前。この名前は、対応するデータベースのDB_UNIQUE_NAME初期化パラメータの値と一致する(大/小文字は区別されません)必要があります。

ra_ci

完全指定の接続記述子またはOracle Net Servicesのネーミング・メソッド(TNSなど)により解決される名前です。指定した値は、DGConnectIdentifierプロパティの初期値としても使用されます。

severity この関数によって返されたステータスに関連付けられている重大度。重大度は、次のOracleエラー番号のいずれかになります。
  • ORA-0: 正常に完了しました。
  • ORA-16501: Oracle Data Guard Broker操作に失敗しました
  • ORA-16502: Oracle Data Guard Broker操作は警告付きで成功しました

使用上のノート

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

  • この関数は、プライマリ・データベース、または有効化されているスタンバイ・データベースか遠隔同期インスタンスに接続している間のみコールできます。

戻り値

エラー 説明
ORA-00000: normal, successful completion

Zero Data Loss Recovery ApplianceはData Guard Broker構成に正常に追加されました。

Other

Data Guard Brokerで構成にZero Data Loss Recovery Applianceを追加できませんでした。戻り値で、この失敗の理由が示されます。

79.2.4 CONVERT_TO_PHYSICAL

CONVERT_TO_PHYSICAL関数を使用すると、スナップショット・スタンバイ・データベースをフィジカル・スタンバイ・データベースに変換できます。

CONVERT_TO_PHYSICAL関数

形式

DBMS_DG.CONVERT_TO_PHYSICAL (
     db_name          IN VARCHAR2,
     severity         OUT BINARY_INTEGER)
RETURN BINARY_INTEGER;

パラメータ

パラメータ 説明
db_name

フィジカル・スタンバイ・データベースに変換するスナップショット・スタンバイ・データベースのDB_UNIQUE_NAME初期化パラメータ値。

severity この関数によって返されたステータスに関連付けられている重大度。重大度は、次のOracleエラー番号のいずれかになります。
  • ORA-0: 正常に完了しました。
  • ORA-16501: Oracle Data Guard Broker操作に失敗しました
  • ORA-16502: Oracle Data Guard Broker操作は警告付きで成功しました

使用上のノート

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

  • この関数をコールするには、クライアントがプライマリ・データベースに接続されている必要があります。

  • スナップショット・スタンバイ・データベースは、フィジカル・スタンバイへの変換を完了するにはマウント・モードで実行されている必要があります。

戻り値

エラー 説明
ORA-00000: normal, successful completion

スナップショット・スタンバイ・データベースは正常にフィジカル・スタンバイ・データベースに変換されました。

ORA-16540: invalid argument このデータベースについて指定された名前が、有効なDB_UNIQUE_NAME値ではありませんでした。
ORA-16732: Oracle Clusterware is restarting the database instance Oracle Clusterwareで、スナップショット・スタンバイ・データベースをフィジカル・スタンバイ・データベースに変換するためにブローカで必要とされているモードになるよう、このデータベースを再起動中です。このデータベースの再起動が完了するまで待ってから、この関数のコールを再試行してください。
ORA-16897: start database to mount mode スナップショット・スタンバイ・データベースがマウント・モードで実行されていないため、フィジカル・スタンバイへの変換を実行できませんでした。このデータベースを再起動してマウント・モードにし、この関数のコールを再試行してください。
ORA-16899: Operation requires a connection to the primary database. この関数は、完了するには、プライマリ・データベースに接続している間にコールする必要があります。プライマリ・データベースに再接続し、この関数のコールを再試行してください。
Other

Data Guard Brokerでこのデータベースを変換できませんでした。戻り値で、この失敗の理由が示されます。

79.2.5 CONVERT_TO_SNAPSHOT

CONVERT_TO_SNAPSHOT関数を使用すると、スナップショット・スタンバイ・データベースをフィジカル・スタンバイ・データベースに変換できます。

CONVERT_TO_SNAPSHOT関数

形式

DBMS_DG.CONVERT_TO_SNAPSHOT (
     db_name          IN VARCHAR2,
     severity         OUT BINARY_INTEGER)
RETURN BINARY_INTEGER;

パラメータ

パラメータ 説明
db_name

スナップショット・スタンバイ・データベースに変換するフィジカル・スタンバイ・データベースのDB_UNIQUE_NAME初期化パラメータ値。

severity この関数によって返されたステータスに関連付けられている重大度。重大度は、次のOracleエラー番号のいずれかになります。
  • ORA-0: 正常に完了しました。
  • ORA-16501: Oracle Data Guard Broker操作に失敗しました
  • ORA-16502: Oracle Data Guard Broker操作は警告付きで成功しました

使用上のノート

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

戻り値

エラー 説明
ORA-00000: normal, successful completion

このデータベースは正常にスナップショット・スタンバイ・データベースに変換されました。

ORA-16540: invalid argument このデータベースについて指定された名前が、有効なDB_UNIQUE_NAME値ではありませんでした。
Other

Data Guard Brokerでこのデータベースを変換できませんでした。戻り値で、この失敗の理由が示されます。

79.2.6 CREATE_CONFIGURATION

CREATE_CONFIGURATION関数を使用すると、Data Guard Broker構成を作成できます。プライマリ・データベースは自動的に構成に追加されます。プライマリ・データベースのDB_UNIQUE_NAME初期化パラメータの値は、データベースからフェッチされます。

CREATE_CONFIGURATIONファンクション

DBMS_DG.CREATE_CONFIGURATION (
     config_name          IN VARCHAR2,
     primary_ci           IN VARCHAR2,
     severity             OUT BINARY_INTEGER)
RETURN BINARY_INTEGER;

パラメータ

パラメータ 説明
config_name

作成する構成のわかりやすい名前。有効な名前には英数字が含まれます。名前に空白を含める場合は、その名前を二重引用符または一重引用符で囲む必要があります。名前は30バイト以内で指定してください。

primary_ci 完全指定の接続記述子またはOracle Net Servicesのネーミング・メソッド(TNSなど)により解決される名前です。指定した値は、データベース・プロパティDGConnectIdentifierの初期値としても使用されます。
severity この関数によって返されたステータスに関連付けられている重大度。重大度は、次のOracleエラー番号のいずれかになります。
  • ORA-0: 正常に完了しました。
  • ORA-16501: Oracle Data Guard Broker操作に失敗しました
  • ORA-16502: Oracle Data Guard Broker操作は警告付きで成功しました

使用上のノート

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

  • この関数は、プライマリ・データベースに接続している間のみコールできます。

戻り値

エラー 説明
ORA-00000: normal, successful completion

Data Guard Broker構成が作成され、プライマリ・データベースが構成に追加されました。

Other

Data Guard Brokerでこのデータベースを変換できませんでした。戻り値で、この失敗の理由が示されます。

79.2.7 DISABLE

DISABLE関数を使用すると、スナップショット・スタンバイ・データベースをフィジカル・スタンバイ・データベースに変換できます。

DISABLEファンクション

DBMS_DG.DISABLE (
     member_name          IN VARCHAR2,
     severity             OUT BINARY_INTEGER)
RETURN BINARY_INTEGER;

パラメータ

パラメータ 説明
member_name

無効にするメンバーのDB_UNIQUE_NAME初期化パラメータ値。

severity この関数によって返されたステータスに関連付けられている重大度。重大度は、次のOracleエラー番号のいずれかになります。
  • ORA-0: 正常に完了しました。
  • ORA-16501: Oracle Data Guard Broker操作に失敗しました
  • ORA-16502: Oracle Data Guard Broker操作は警告付きで成功しました

使用上のノート

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

  • この関数は、プライマリ・データベースに接続している間のみコールできます。
エラー 説明
ORA-00000: normal, successful completion

このメンバーは正常に無効化されました。

ORA-16540: invalid argument このメンバーについて指定された名前が、有効なDB_UNIQUE_NAME値ではありませんでした。
Other

Data Guard Brokerでこのメンバーを無効にできませんでした。戻り値で、この失敗の理由が示されます。

79.2.8 DISABLE_CONFIGURATION

DISABLE_CONFIGURATION関数を使用すると、構成とそのデータベースすべてがブローカによって管理されなくなるように、構成のブローカ管理を無効にできます。

DISABLEファンクション

DBMS_DG.DISABLE_CONFIGURATION (
     severity             OUT BINARY_INTEGER)
RETURN BINARY_INTEGER;

パラメータ

パラメータ 説明
severity この関数によって返されたステータスに関連付けられている重大度。重大度は、次のOracleエラー番号のいずれかになります。
  • ORA-0: 正常に完了しました。
  • ORA-16501: Oracle Data Guard Broker操作に失敗しました
  • ORA-16502: Oracle Data Guard Broker操作は警告付きで成功しました

使用上のノート

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

  • この関数は、プライマリ・データベースに接続している間のみコールできます。

戻り値

エラー 説明
ORA-00000: normal, successful completion

このメンバーは正常に無効化されました。

Other

Data Guard Brokerでこのメンバーを無効にできませんでした。戻り値で、この失敗の理由が示されます。

79.2.9 DISABLE_FS_FAILOVER

DISABLE_FS_FAILOVER関数を使用すると、ファスト・スタート・フェイルオーバーを無効にできます。この関数を使用すると、オブザーバでターゲット・スタンバイへのフェイルオーバーが開始されなくなります。

DISABLE_FS_FAILOVER関数

DBMS_DG.DISABLE_FS_FAILOVER (
     force           IN BOOLEAN DEFAULT FALSE,
     severity        OUT BINARY_INTEGER)
RETURN BINARY_INTEGER;

パラメータ

パラメータ 説明
force

FORCEオプションでファスト・スタート・フェイルオーバーを無効にするかどうかを示すブール値。値をTRUEにした場合、この関数では、セッションが接続されているメンバーでファスト・スタート・フェイルオーバーが無効になります。値をFALSEにした場合、この関数では、プライマリおよび現在のターゲット・スタンバイでファスト・スタート・フェイルオーバーが無効になります。両方のデータベースでファスト・スタート・フェイルオーバーを無効にできない場合、それらは有効化されたままになります。

severity この関数によって返されたステータスに関連付けられている重大度。重大度は、次のOracleエラー番号のいずれかになります。
  • ORA-0: 正常に完了しました。
  • ORA-16501: Oracle Data Guard Broker操作に失敗しました
  • ORA-16502: Oracle Data Guard Broker操作は警告付きで成功しました

使用上のノート

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

  • プライマリ・データベースとターゲット・スタンバイ・データベースにネットワーク接続がある場合に、ブローカ構成内のすべてのデータベースでファスト・スタート・フェイルオーバーを無効にするには、forceパラメータにFALSEを指定します。無効化操作中にエラーが発生した場合、ブローカによりエラー・メッセージが戻され、無効化操作が停止されます。エラー状態を無視し接続先データベースでファスト・スタート・フェイルオーバーを無効にするには、forceパラメータにTRUE値を指定してこのコールを再発行する必要があります。
  • プライマリ・データベースとターゲット・スタンバイ・データベースの間のネットワークが切断されているか、この関数のコール元のデータベースにプライマリ・データベースとの接続がない場合は、forceパラメータにTRUE値を指定します。forceパラメータにTRUE値を指定した場合は、エラー発生時でも、接続先データベースでファスト・スタート・フェイルオーバーが無効になります。
  • オブザーバおよびターゲット・スタンバイ・データベースから切断されているプライマリ・データベースで、forceパラメータにTRUE値を指定してこの関数をコールした場合は、オブザーバでターゲット・スタンバイ・データベースへのファスト・スタート・フェイルオーバーは開始されません。
  • ブローカ構成内のいずれかのデータベースに接続されている間は、そのデータベースとプライマリとが接続されていれば、forceパラメータにFALSE値を指定してこの関数をコールできます。
  • ターゲット・スタンバイ・データベースでforceパラメータにTRUE値を指定してこの関数をコールし、その後、プライマリ・データベースとの接続が再開された場合、ファスト・スタート・フェイルオーバーは、構成内のすべてのデータベースで無効になります。
  • プライマリに接続されている間にforceパラメータにTRUE値を指定してこの関数をコールした場合は、両方のデータベースの間にネットワーク接続があれば、ターゲット・スタンバイ・データベースでファスト・スタート・フェイルオーバーが無効になります。
エラー 説明
ORA-00000: normal, successful completion

forceパラメータで指定された値に従って、ファスト・スタート・フェイルオーバーが無効になりました。

Other

Data Guard Brokerで、ファスト・スタート・フェイルオーバーを無効にできませんでした。

79.2.10 DISABLE_FS_FAILOVER_CONDITION

DISABLE_FS_FAILOVER_CONDITION関数を使用すると、ファスト・スタート・フェイルオーバーを実行する条件を削除できます。

DISABLE_FS_FAILOVER_CONDITION関数

DBMS_DG.DISABLE_FS_FAILOVER_CONDITION (
     condition            IN VARCHAR2,
     severity             OUT BINARY_INTEGER)
RETURN BINARY_INTEGER;

パラメータ

パラメータ 説明
condition

無効にするファスト・スタート・フェイルオーバー条件。

severity この関数によって返されたステータスに関連付けられている重大度。重大度は、次のOracleエラー番号のいずれかになります。
  • ORA-0: 正常に完了しました。
  • ORA-16501: Oracle Data Guard Broker操作に失敗しました
  • ORA-16502: Oracle Data Guard Broker操作は警告付きで成功しました

使用上のノート

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

戻り値

ヘルスの状態 説明
"データファイル書込みエラー"

ファスト・スタート・フェイルオーバーが有効化され、データファイル書込みエラー条件が指定されている場合、任意のデータ・ファイル(一時ファイル、システム・データ・ファイル、UNDOファイルなど)で書込みエラーが発生すると、ファスト・スタート・フェイルオーバーが開始されます。

"破損した制御ファイル"

制御ファイルが破損しています。この条件はデフォルトで有効になっています。

"破損したディクショナリ" 重要なデータベース・オブジェクトのディクショナリが破損しました。この条件はデフォルトで有効になっています。
"アクセス不可能なログ・ファイル" I/Oエラーにより、LGWRがログ・グループのどのメンバーにも書き込むことができません。
"スタック・アーカイバ" デバイスに空き容量がないかデバイスを使用できないためにアーカイバがREDOログをアーカイブできません。
エラー 説明
ORA-00000: normal, successful completion

ファスト・スタート・フェイルオーバー条件が無効になりました。

Other

Data Guard Brokerで、ファスト・スタート・フェイルオーバー条件を無効にできませんでした。

79.2.11 ENABLE

ENABLE関数を使用すると、指定したメンバーのブローカ管理を有効にできます。

ENABLEファンクション

DBMS_DG.ENABLE (
     member_name          IN VARCHAR2,
     severity             OUT BINARY_INTEGER)
RETURN BINARY_INTEGER;

パラメータ

パラメータ 説明
member_name

有効にするメンバーのDB_UNIQUE_NAME初期化パラメータ値。

severity この関数によって返されたステータスに関連付けられている重大度。重大度は、次のOracleエラー番号のいずれかになります。
  • ORA-0: 正常に完了しました。
  • ORA-16501: Oracle Data Guard Broker操作に失敗しました
  • ORA-16502: Oracle Data Guard Broker操作は警告付きで成功しました

使用上のノート

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

戻り値

エラー 説明
ORA-00000: normal, successful completion

このメンバーは正常に無効化されました。

ORA-16540: invalid argument このメンバーについて指定された名前が、有効なDB_UNIQUE_NAME値ではありませんでした。
Other

Data Guard Brokerでこのメンバーを有効にできませんでした。戻り値で、この失敗の理由が示されます。

79.2.12 ENABLE_CONFIGURATION

ENABLE_CONFIGURATION関数を使用すると、構成のブローカ管理を有効にできます。

ENABLE_CONFIGURATIONファンクション

DBMS_DG.ENABLE_CONFIGURATION (
     severity             OUT BINARY_INTEGER)
RETURN BINARY_INTEGER;

パラメータ

パラメータ 説明
severity この関数によって返されたステータスに関連付けられている重大度。重大度は、次のOracleエラー番号のいずれかになります。
  • ORA-0: 正常に完了しました。
  • ORA-16501: Oracle Data Guard Broker操作に失敗しました
  • ORA-16502: Oracle Data Guard Broker操作は警告付きで成功しました

使用上のノート

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

  • 構成が無効になっている場合は、制御ファイルのロールがPRIMARYであるデータベースに接続し、この関数をコールしてその構成を有効にします。

戻り値

エラー 説明
ORA-00000: normal, successful completion

この構成は正常に有効化されました。

Other

Data Guard Brokerでこの構成を有効にできませんでした。戻り値で、この失敗の理由が示されます。

79.2.13 ENABLE_FS_FAILOVER

ENABLE_FS_FAILOVER関数を使用すると、ファスト・スタート・フェイルオーバーを有効にできます。これにより、プライマリ・データベースが失われた場合に、手動で操作する必要なく、ブローカによって、具体的に選択されているスタンバイ・データベースにフェイルオーバーできるようになります。

ENABLE_FS_FAILOVER関数

DBMS_DG.ENABLE_FS_FAILOVER (
     observe_only    IN BOOLEAN DEFAULT FALSE,
     severity        OUT BINARY_INTEGER)
RETURN BINARY_INTEGER;

パラメータ

パラメータ 説明
observe_only ファスト・スタート・フェイルオーバーを監視専用モードで有効にするかどうかを示すブール値。値をTRUEにした場合、この関数では、ファスト・スタート・フェイルオーバーが監視専用モードで有効になります。値をFALSEにした場合、この関数では、ファスト・スタート・フェイルオーバーが監視専用モードでなく有効になります。監視専用モードでは、オブザーバによって、ターゲット・スタンバイ・データベースへのフェイルオーバーが実際に実行されることはなく、実行された場合の高速フェイルオーバーの開始時期について情報が出力されます。
severity この関数によって返されたステータスに関連付けられている重大度。重大度は、次のOracleエラー番号のいずれかになります。
  • ORA-0: 正常に完了しました。
  • ORA-16501: Oracle Data Guard Broker操作に失敗しました
  • ORA-16502: Oracle Data Guard Broker操作は警告付きで成功しました

使用上のノート

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

  • このコマンドを発行してファスト・スタート・フェイルオーバーを有効化する前に、「ファスト・スタート・フェイルオーバーを有効化するための前提条件」で説明する前提条件を満たす必要があります。
  • ENABLE FAST_START FAILOVERコマンドの発行により、フェイルオーバーが起動されることはありません。構成を監視しているオブザーバが、フェイルオーバーの条件が満たされた場合に、ファスト・スタート・フェイルオーバーを開始できるようにするだけです。
  • ブローカ構成のデータベースに接続されている間は、ファスト・スタート・フェイルオーバーを有効化できます。
  • ファスト・スタート・フェイルオーバーを有効化した後にオブザーバを開始しない場合、プライマリ・データベースとターゲットのスタンバイ・データベースにORA-16819の警告が表示されます。
  • 複数のスタンバイ・データベースを含むブローカ構成でファスト・スタート・フェイルオーバーを有効化する場合は、プライマリ・データベース上のFastStartFailoverTarget構成プロパティで1つ以上の実行可能なターゲット・スタンバイ・データベースを指定する必要があります。プライマリ・データベースおよびターゲット・スタンバイ・データベースの両方が次の条件を満たしている必要があります。
    • スタンバイREDOログが構成されていること
    • REDO転送が、両方のデータベース上で、構成された保護モードに正しく構成されていること

      ノート:

      また、プライマリ・データベースとスタンバイ・データベースの両方でフラッシュバック・データベースを有効化し、フェイルオーバー後に元のプライマリ・データベースの回復を許可することをお薦めします。
  • ファスト・スタート・フェイルオーバーを有効化した後は、「ファスト・スタート・フェイルオーバーが有効化されている場合の制限事項」の説明にある制約に従う必要があります。

戻り値

エラー 説明
ORA-00000: normal, successful completion

forceパラメータで指定された値に従って、ファスト・スタート・フェイルオーバーが無効になりました。

Other

返された重大度がORA-16501の場合は、Data Guard Brokerでファスト・スタート・フェイルオーバーを有効にできておらず、戻り値でその理由が示されます。返された重大度がORA-16501の場合は、Data Guard Brokerでファスト・スタート・フェイルオーバーを有効にできており、戻り値で、どのようにファスト・スタート・フェイルオーバーが有効になったかについて情報が示されます。

79.2.14 ENABLE_FS_FAILOVER_CONDITION

ENABLE_FS_FAILOVER_CONDITION関数を使用すると、ファスト・スタート・フェイルオーバーを実行する条件を追加で指定できます。

ENABLE_FS_FAILOVER_CONDITION関数

DBMS_DG.ENABLE_FS_FAILOVER_CONDITION (
     condition            IN VARCHAR2,
     severity             OUT BINARY_INTEGER)
RETURN BINARY_INTEGER;

パラメータ

パラメータ 説明
condition 有効にするファスト・スタート・フェイルオーバー条件。
severity この関数によって返されたステータスに関連付けられている重大度。重大度は、次のOracleエラー番号のいずれかになります。
  • ORA-0: 正常に完了しました。
  • ORA-16501: Oracle Data Guard Broker操作に失敗しました
  • ORA-16502: Oracle Data Guard Broker操作は警告付きで成功しました

使用上のノート

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

  • この関数を使用して、ORA-240エラーがあるときのファスト・スタート・フェイルオーバーの開始を有効にすることもできます。
ヘルスの状態 説明
"データファイル書込みエラー"

ファスト・スタート・フェイルオーバーが有効化され、データファイル書込みエラー条件が指定されている場合、任意のデータ・ファイル(一時ファイル、システム・データ・ファイル、UNDOファイルなど)で書込みエラーが発生すると、ファスト・スタート・フェイルオーバーが開始されます。

"破損した制御ファイル"

制御ファイルが破損しています。この条件はデフォルトで有効になっています。

"破損したディクショナリ" 重要なデータベース・オブジェクトのディクショナリが破損しました。この条件はデフォルトで有効になっています。
"アクセス不可能なログ・ファイル" I/Oエラーにより、LGWRがログ・グループのどのメンバーにも書き込むことができません。
"スタック・アーカイバ" デバイスに空き容量がないかデバイスを使用できないためにアーカイバがREDOログをアーカイブできません。

戻り値

エラー 説明
ORA-00000: normal, successful completion

ファスト・スタート・フェイルオーバー条件が有効になりました。

Other

Data Guard Brokerでこのファスト・スタート・フェイルオーバー条件を有効にできませんでした。戻り値で、この失敗の理由が示されます。

79.2.15 FAILOVER

FAILOVER関数を使用すると、データベース・フェイルオーバーを実行できます。

FAILOVERファンクション

DBMS_DG.FAILOVER (
     db_name              IN VARCHAR2,
     failover_type,       IN VARCHAR2,
     severity             OUT BINARY_INTEGER)
RETURN BINARY_INTEGER;

パラメータ

パラメータ 説明
db_name フェイルオーバー先のスタンバイ・データベースのDB_UNIQUE_NAME初期化パラメータ値。
failover_type 実行するフェイルオーバーのタイプ。指定可能なキーワードは次のとおりです:
  • COMPLETE: 完全フェイルオーバー。この場合は、フェイルオーバー操作の実行前に、ターゲット・スタンバイ・データベースによって、プライマリ・データベースから受信したREDOデータがすべて適用されます。
  • IMMEDIATE: 未適用のREDOデータが先に適用されることなく、フェイルオーバー操作がすぐに実行されます。このオプションを使用すると、データ消失を伴うフェイルオーバー操作となる可能性が高くなります。
severity この関数によって返されたステータスに関連付けられている重大度。重大度は、次のOracleエラー番号のいずれかになります。
  • ORA-0: 正常に完了しました。
  • ORA-16501: Oracle Data Guard Broker操作に失敗しました
  • ORA-16502: Oracle Data Guard Broker操作は警告付きで成功しました

使用上のノート

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

  • ORA-752またはORA-600 [3020] エラーにより、フェイルオーバー・ターゲットでREDO Applyが停止されていないかぎり、常に完全フェイルオーバーを最初に実行するようにします。これらのエラーのいずれかが発生した場合は、先に進む前に、My Oracle Supportノート1265884.1 (https://support.oracle.com.)の「スタンバイ・リカバリ時のORA-752またはORA-600 [3020]の解決」のガイドラインに従います。即時フェイルオーバーは、完全フェイルオーバーが失敗するか、前述のエラーの場合にのみ実行してください。
  • 指定したスタンバイ・データベースは、プライマリ・データベースに障害が発生する前に有効化されている必要があります。ただし、有効化されているスタンバイ・データベースが停止している場合は、フェイルオーバー操作の候補とみなすことができます。この場合は、スタンバイ・データベースを再起動してから、このコールを再試行してください。
  • この関数をコールする前に、新しいプライマリ・データベースとなるスタンバイ・データベースに接続していることを確認してください。必要な場合は、CONNECTコマンドを発行してフェイルオーバーするスタンバイ・データベースに接続します。
  • ブローカ構成が最大保護モードで動作している場合、手動フェイルオーバー操作を実行すると、保護モードが強制的に最大パフォーマンスに設定されます。REDO転送サービスの設定は影響を受けません。フェイルオーバー操作後に、構成に必要な保護モードをリストアする必要があります。

    ノート:

    ファスト・スタート・フェイルオーバーの場合は、ブローカにより、フェイルオーバー前に有効になっていた保護モードが維持されます。
  • failover_typeキーワードのIMMEDIATEを指定してこの関数をコールした場合は、受信した未適用のREDOが適用されることはありません。このオプションを指定すると、スタンバイ・データベースでスタンバイREDOログ・ファイルが構成されている場合でも、アプリケーション・データが消失する可能性があります。また、構成内の他のスタンバイ・データベースは、回復または再作成されるまで機能しません。詳細は、「ロール変更後の無効化されたデータベースの再有効化」を参照してください。ファスト・スタート・フェイルオーバーを有効にした後は、「ファスト・スタート・フェイルオーバーが有効化されている場合の制限事項」で示されている制約に従う必要があります。
  • 手動フェイルオーバーを実行するか、ブローカをファスト・スタート・フェイルオーバーを実行するように設定できます。フェイルオーバーの条件が満たされた場合に、ブローカにより自動的にフェイルオーバーを起動させる方法については、ENABLE FAST_START FAILOVERコマンドを参照してください。
  • ファスト・スタート・フェイルオーバーが有効になっている場合は、完全手動フェイルオーバーを、ファスト・スタート・フェイルオーバーのターゲット・スタンバイ・データベースに対してのみ、そのスタンバイ・データベースがプライマリ・データベースと同期化されているかプライマリ・データベースのラグ制限内である場合にのみ、およびオブザーバーが開始されている場合にのみ実行できます。ファスト・スタート・フェイルオーバーが有効になっている場合に、即時手動フェイルオーバーは実行できません。障害が発生した元のプライマリ・データベースで、フェイルオーバーの前に「データベースをフラッシュバック」が有効になっていた場合は、ブローカのREINSTATEコマンドを使用して、元のプライマリ・データベースを回復できます。フィジカル・スタンバイ・データベースに対してフェイルオーバーが実行された場合は、そのスタンバイ・データベースで「データベースをフラッシュバック」が有効化されていて、使用可能なフラッシュバック・ログ情報が不足なくある場合にのみ、そのフェイルオーバーにより無効化されたその他のフィジカル・スタンバイ・データベースも回復できます。
  • 元のプライマリ・データベースは、回復または再作成後、スタンバイ・データベースとしてのみ構成に関係できます。注意: フェイルオーバーの前に、元のプライマリ・データベースに実行中のアクティブなインスタンスがまだ存在している場合は、元のプライマリ・データベースを停止する必要があります。
エラー 説明
ORA-00000: normal, successful completion

フェイルオーバーが正常に完了しました。

Other

Data Guard Brokerでこのフェイルオーバー操作を完了できませんでした。戻り値で、この失敗の理由が示されます。

79.2.16 GET_CONFIGURATION_PROPERTY

GET_CONFIGURATION_PROPERTY関数を使用すると、構成プロパティの値を取得できます。

GET_CONFIGURATION_PROPERTY関数

DBMS_DG.GET_CONFIGURATION_PROPERTY (
     property_name        IN VARCHAR2,
     value                OUT VARCHAR2,
     severity             OUT BINARY_INTEGER)
RETURN BINARY_INTEGER;

パラメータ

パラメータ 説明
property_name 値をフェッチする構成プロパティの名前。
value 指定された構成プロパティの値は、この出力パラメータで返されます。
severity この関数によって返されたステータスに関連付けられている重大度。重大度は、次のOracleエラー番号のいずれかになります。
  • ORA-0: 正常に完了しました。
  • ORA-16501: Oracle Data Guard Broker操作に失敗しました
  • ORA-16502: Oracle Data Guard Broker操作は警告付きで成功しました

使用上のノート

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

戻り値

エラー 説明
ORA-00000: normal, successful completion

プロパティの値が正常にフェッチされました。

Other

Data Guard Brokerで構成プロパティ値をフェッチできませんでした。戻り値で、この失敗の理由が示されます。

79.2.17 GET_CONFIGURATION_TAG

GET_CONFIGURATION_TAGファンクションは、構成タグの値を取得します。

GET_CONFIGURATION_TAGファンクション

DBMS_DG.GET_CONFIGURATION_TAG (
     config_name          IN VARCHAR2,
     tag_name             IN VARCHAR2,
     value                OUT VARCHAR2,
     severity             OUT BINARY_INTEGER)
RETURN BINARY_INTEGER;

パラメータ

パラメータ 説明
config_name

構成ファイルの名前。ローカル構成の場合はNULLです。

tag_name

タグの名前。

使用上のノート

  • このファンクションは、操作が成功したかどうかを示すOracleエラー番号である2進整数を戻します。

戻り値

エラー 説明
value

タグの値。

severity

この関数によって返されたステータスに関連付けられている重大度。

79.2.18 GET_MEMBER_TAG

GET_MEMBER_TAGファンクションは、メンバー・タグの値を取得します。

GET_MEMBER_TAGファンクション

DBMS_DG.GET_MEMBER_TAG (
     config_name          IN VARCHAR2,
     member_name          IN VARCHAR2,
     tag_name             IN VARCHAR2,
     value                OUT VARCHAR2,
     severity             OUT BINARY_INTEGER)
RETURN BINARY_INTEGER;

パラメータ

パラメータ 説明
config_name

構成ファイルの名前。ローカル構成の場合はNULLです。

member_name

メンバー構成ファイルの名前。

tag_name

タグの名前。

使用上のノート

  • このファンクションは、操作が成功したかどうかを示すOracleエラー番号である2進整数を戻します。

戻り値

エラー 説明
value

タグの値。

severity

この関数によって返されたステータスに関連付けられている重大度。

79.2.19 GET_PROPERTY

GET_PROPERTY関数を使用すると、メンバー・プロパティの値を取得できます。

GET_PROPERTYファンクション

DBMS_DG.GET_PROPERTY (
     member_name          IN VARCHAR2,
     property_name        IN VARCHAR2,
     value                OUT CLOB,
     severity             OUT BINARY_INTEGER)
RETURN BINARY_INTEGER;

パラメータ

パラメータ 説明
member_name プロパティ値をフェッチするメンバーのDB_UNIQUE_NAME初期化パラメータ値。
property_name 値をフェッチする構成プロパティの名前。
value 指定された構成プロパティの値は、この出力パラメータで返されます。
severity この関数によって返されたステータスに関連付けられている重大度。重大度は、次のOracleエラー番号のいずれかになります。
  • ORA-0: 正常に完了しました。
  • ORA-16501: Oracle Data Guard Broker操作に失敗しました
  • ORA-16502: Oracle Data Guard Broker操作は警告付きで成功しました

使用上のノート

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

エラー 説明
ORA-00000: normal, successful completion

プロパティの値が正常にフェッチされました。

Other

Data Guard Brokerでプロパティ値をフェッチできませんでした。戻り値で、この失敗の理由が示されます。

79.2.20 HEALTH_CHECK

HEALTH_CHECK関数を使用すると、ブローカで、すべての構成メンバーについて健全性を評価できます。

HEALTH_CHECKファンクション

DBMS_DG.HEALTH_CHECK
RETURN BINARY_INTEGER;

パラメータ

なし

使用上のノート

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

戻り値

エラー 説明
ORA-00000: normal, successful completion

健全性チェックが正常に開始されました。

Other

Data Guard Brokerで健全性チェックを実行できませんでした。戻り値で、この失敗の理由が示されます。

79.2.21 INITIATE_FS_FAILOVERプロシージャ

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

構文

DBMS_DG.INITIATE_FS_FAILOVER (
     condstr          IN VARCHAR2)
RETURN BINARY_INTEGER;

パラメータ

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

パラメータ 説明

condstr

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

使用上のノート

  • このプロシージャは、2進整数を戻します。

  • ファスト・スタート・フェイルオーバーが最後に実行された時間および原因を参照するには、V$FS_FAILOVER_STATSビューを問い合せます。

  • このプロシージャは、プライマリ・データベースまたはファスト・スタート・フェイルオーバー・スタンバイ・データベースに接続している場合にのみコールできます。

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

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

エラー

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

エラー 説明

ORA-00000: normal, successful completion

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

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(''Fast-Start Failover is disabled: Expected status = ORA-16646'');
dbms_output.put_line(''                  Actual Status = ORA-'' || status);

end;
/
exit;

79.2.22 REINSTATE

REINSTATE関数を使用すると、フェイルオーバー操作の後にデータベースを回復できます。

REINSTATEファンクション

DBMS_DG.REINSTATE (
     db_name              IN VARCHAR2,
     severity             OUT BINARY_INTEGER)
RETURN BINARY_INTEGER;

パラメータ

パラメータ 説明
db_name 回復するデータベースのDB_UNIQUE_NAME初期化パラメータ値。
severity この関数によって返されたステータスに関連付けられている重大度。重大度は、次のOracleエラー番号のいずれかになります。
  • ORA-0: 正常に完了しました。
  • ORA-16501: Oracle Data Guard Broker操作に失敗しました
  • ORA-16502: Oracle Data Guard Broker操作は警告付きで成功しました

使用上のノート

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

  • 「ブローカ構成に含まれる元のプライマリ・データベースの回復」で説明する回復の条件が満たされていない場合、回復処理は失敗し、対応するエラー・ステータスが表示され、指定されたデータベースは無効なままになります。
  • データベース名として元のプライマリの名前が指定されており、ファスト・スタート・フェイルオーバーが有効になっている場合は、元のプライマリ・データベースが新規プライマリ・データベースのスタンバイとして回復され、ファスト・スタート・フェイルオーバー環境が、新規スタンバイ・データベースの可用性を反映するように更新されます。新規スタンバイ・データベースは、新規プライマリ・データベースに障害が発生した場合、新規プライマリ・データベースからREDOデータを受け取り、ファスト・スタート・フェイルオーバーのターゲットとなります。FastStartFailoverAutoReinstate構成プロパティがFALSEに設定されている場合を除き、オブザーバが実行中であれば自動的に回復が実行されます。
  • この関数では、ファスト・スタート・フェイルオーバーが有効になっている必要はありません。このコマンドは、完全手動フェイルオーバーが実行された後、元のプライマリ・データベースを回復する場合に使用できます。完全または即時フェイルオーバー後に無効化されたその他のスタンバイ・データベースを回復するために使用することもできます。
  • この関数は、ブローカ構成内の回復するデータベース以外のデータベースに接続されている間にコールします。

戻り値

エラー 説明
ORA-00000: normal, successful completion

このデータベースは正常に回復されました。

ORA-16540: invalid argument このデータベースについて指定された名前が、有効なDB_UNIQUE_NAME値ではありませんでした。
ORA-16732: Oracle Clusterware is restarting the database instance Oracle Clusterwareで、ブローカに必要とされているモードになるよう、このデータベースを再起動中です。データベースが再起動された後に、この関数のコールを再試行してください。
ORA-16897: start database to mount mode このデータベースはマウント・モードで実行されていなかったため、回復が実行されませんでした。このデータベースを再起動してマウント・モードにし、この関数のコールを再試行してください。
ORA-16899: Operation requires a connection to the primary database. この関数をコールするには、プライマリ・データベースへの接続が必要です。
Other

Data Guard Brokerで、指定されたデータベースを回復できませんでした。戻り値で、この失敗の理由が示されます。

79.2.23 REMOVE

REMOVE関数を使用すると、Data Guard Broker構成のメンバーを削除できます。

REMOVEファンクション

DBMS_DG.REMOVE (
     member_name          IN VARCHAR2,
     preserve_destination IN BOOLEAN DEFAULT FALSE,
     severity              OUT BINARY_INTEGER)
RETURN BINARY_INTEGER;

パラメータ

パラメータ 説明
member_name 回復するデータベースのDB_UNIQUE_NAME初期化パラメータ値。
preserve_destination 構成からメンバーを削除するときにlog_archive_dest初期化パラメータの設定を保持するかクリアするかを示すブール値。値をTRUEにした場合は、パラメータ設定をクリアしないように指定されます。値をFALSEにした場合は、パラメータ設定をクリアするように指定されます。
severity この関数によって返されたステータスに関連付けられている重大度。重大度は、次のOracleエラー番号のいずれかになります。
  • ORA-0: 正常に完了しました。
  • ORA-16501: Oracle Data Guard Broker操作に失敗しました
  • ORA-16502: Oracle Data Guard Broker操作は警告付きで成功しました

使用上のノート

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

  • ブローカ構成に含まれるプライマリ・データベースの名前を指定すると、エラーが戻されます。
  • この関数では、デフォルトで、指定されたメンバーへの参照すべてが、構成のメンバーごとにREDO転送初期化パラメータすべてから削除されます。これらの設定を保持するには、preserve_destinationパラメータにTRUEを指定します。
  • この関数は、ファスト・スタート・フェイルオーバーが有効になっておりdatabase-nameでターゲット・スタンバイ・データベースの名前が指定されている場合はコールできません。

戻り値

エラー 説明
ORA-00000: normal, successful completion

このメンバーは正常に削除されました。

Other

Data Guard Brokerで構成からこのメンバーを削除できませんでした。戻り値で、この失敗の理由が示されます。

79.2.24 REMOVE_CONFIGURATION

REMOVE_CONFIGURATION関数を使用すると、Data Guard Broker構成を削除できます。

REMOVE_CONFIGURATIONファンクション

DBMS_DG.REMOVE_CONFIGURATION (
     preserve_destinations IN BOOLEAN DEFAULT FALSE,
     severity              OUT BINARY_INTEGER)
RETURN BINARY_INTEGER;

パラメータ

パラメータ 説明
preserve_destination 構成からメンバーを削除するときにlog_archive_dest初期化パラメータの設定を保持するかクリアするかを示すブール値。値をTRUEにした場合は、パラメータ設定をクリアしないように指定されます。値をFALSEにした場合は、パラメータ設定をクリアするように指定されます。
severity この関数によって返されたステータスに関連付けられている重大度。重大度は、次のOracleエラー番号のいずれかになります。
  • ORA-0: 正常に完了しました。
  • ORA-16501: Oracle Data Guard Broker操作に失敗しました
  • ORA-16502: Oracle Data Guard Broker操作は警告付きで成功しました

使用上のノート

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

  • ブローカ構成を削除すると、その構成に関連付けられているすべてのメンバーの管理が無効化されます。
  • この関数では、デフォルトで、プライマリ・データベースのLOG_ARCHIVE_DEST_n初期化パラメータ、および構成内のすべてのメンバーのLOG_ARCHIVE_CONFIG初期化パラメータの、該当するブローカ設定が削除されます。これらの設定を保持するには、 preserve_destinationsパラメータにtrue値を指定します。
  • このコマンドでは、基礎となるOracle Data Guard構成の実際のプライマリまたはスタンバイ・データベース・インスタンス、データベース、遠隔同期インスタンス、データ・ファイル、制御ファイル、初期化パラメータ・ファイル、サーバー・パラメータ・ファイルまたはログ・ファイルは削除されず、影響を受けません。
  • ファスト・スタート・フェイルオーバーが有効化されている場合は、その構成を削除できません。

戻り値

エラー 説明
ORA-00000: normal, successful completion

この構成は正常に削除されました。

Other

Data Guard Brokerでこの構成を削除できませんでした。戻り値で、この失敗の理由が示されます。

79.2.25 REMOVE_CONFIGURATION_TAG

REMOVE_CONFIGURATION_TAGファンクションは、構成タグを削除します。

REMOVE_CONFIGURATION_TAGファンクション

DBMS_DG.REMOVE_CONFIGURATION_TAG (
     config_name          IN VARCHAR2,
     tag_name             IN VARCHAR2,
     severity             OUT BINARY_INTEGER)
RETURN BINARY_INTEGER;

パラメータ

パラメータ 説明
config_name

構成ファイルの名前。ローカル構成の場合はNULLです。

tag_name

タグの名前。

使用上のノート

  • このファンクションは、操作が成功したかどうかを示すOracleエラー番号である2進整数を戻します。

戻り値

エラー 説明
severity

この関数によって返されたステータスに関連付けられている重大度。

79.2.26 REMOVE_CONFIGURATION_TAG_ALL

REMOVE_CONFIGURATION_TAG_ALLファンクションは、すべての構成タグを削除します。

REMOVE_CONFIGURATION_TAG_ALLファンクション

DBMS_DG.REMOVE_CONFIGURATION_TAG_ALL (
     config_name          IN VARCHAR2,
     severity             OUT BINARY_INTEGER)
RETURN BINARY_INTEGER;

パラメータ

パラメータ 説明
config_name

構成ファイルの名前。ローカル構成の場合はNULLです。

使用上のノート

  • このファンクションは、操作が成功したかどうかを示すOracleエラー番号である2進整数を戻します。

戻り値

エラー 説明
severity

この関数によって返されたステータスに関連付けられている重大度。

79.2.27 REMOVE_INSTANCE

REMOVE_INSTANCE関数を使用すると、Data Guard Broker構成のメンバーからインスタンスを削除できます。

REMOVE_INSTANCEファンクション

DBMS_DG.REMOVE_INSTANCE (
     member_name           IN VARCHAR2,
     instance_name         IN VARCHAR2,
     severity              OUT BINARY_INTEGER)
RETURN BINARY_INTEGER;

パラメータ

パラメータ 説明
member_name インスタンスを削除するメンバーのDB_UNIQUE_NAME初期化パラメータ値。
instance_name ブローカ構成を削除するインスタンスの名前(SID)。
severity この関数によって返されたステータスに関連付けられている重大度。重大度は、次のOracleエラー番号のいずれかになります。
  • ORA-0: 正常に完了しました。
  • ORA-16501: Oracle Data Guard Broker操作に失敗しました
  • ORA-16502: Oracle Data Guard Broker操作は警告付きで成功しました

使用上のノート

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

  • 開始されたインスタンスは、ブローカにより自動的にブローカ構成に追加されます。ただし、インスタンスはデータベース・プロファイルから自動的に削除されません。この関数を使用すると、手動で、存在しなくなったインスタンスを構成から削除できます。
  • ブローカ構成内の現在アクティブなインスタンスに対してこの関数を使用すると、エラーが返されます。
  • 遠隔同期インスタンス用にデータベースに現在関連付けられている唯一のインスタンスに対してこの関数を使用すると、エラーが返されます。

戻り値

エラー 説明
ORA-00000: normal, successful completion

この構成は正常に削除されました。

Other

Data Guard Brokerでこの構成を削除できませんでした。戻り値で、この失敗の理由が示されます。

79.2.28 REMOVE_MEMBER_TAG

REMOVE_MEMBER_TAGファンクションは、メンバー・タグを削除します。

REMOVE_MEMBER_TAGファンクション

DBMS_DG.REMOVE_MEMBER_TAG(
     config_name          IN VARCHAR2,
     member_name          IN VARCHAR2,
     tag_name             IN VARCHAR2,
     severity             OUT BINARY_INTEGER)
RETURN BINARY_INTEGER;

パラメータ

パラメータ 説明
config_name

構成ファイルの名前。ローカル構成の場合はNULLです。

member_name

メンバー構成ファイルの名前。

tag_name

タグの名前。

使用上のノート

  • このファンクションは、操作が成功したかどうかを示すOracleエラー番号である2進整数を戻します。

戻り値

エラー 説明
severity

この関数によって返されたステータスに関連付けられている重大度。

79.2.29 REMOVE_MEMBER_TAG_ALL

REMOVE_MEMBER_TAG_ALLファンクションは、すべてのメンバー・タグを削除します。

REMOVE_MEMBER_TAG_ALLファンクション

DBMS_DG.REMOVE_MEMBER_TAG_ALL(
     config_name          IN VARCHAR2,
     member_name          IN VARCHAR2,
     severity             OUT BINARY_INTEGER)
RETURN BINARY_INTEGER;

パラメータ

パラメータ 説明
config_name

構成ファイルの名前。ローカル構成の場合はNULLです。

member_name

メンバー構成ファイルの名前。

使用上のノート

  • このファンクションは、操作が成功したかどうかを示すOracleエラー番号である2進整数を戻します。

戻り値

エラー 説明
severity

この関数によって返されたステータスに関連付けられている重大度。

79.2.30 RESET_CONFIGURATION_PROPERTY

RESET_CONFIGURATION_PROPERTY関数を使用すると、構成プロパティをデフォルト値にリセットできます。

RESET_CONFIGURATION_PROPERTY関数

DBMS_DG.RESET_CONFIGURATION_PROPERTY (
     property_name         IN VARCHAR2,
     severity              OUT BINARY_INTEGER)
RETURN BINARY_INTEGER;

パラメータ

パラメータ 説明
property_name 値をデフォルト値にリセットする構成プロパティの名前。
severity この関数によって返されたステータスに関連付けられている重大度。重大度は、次のOracleエラー番号のいずれかになります。
  • ORA-0: 正常に完了しました。
  • ORA-16501: Oracle Data Guard Broker操作に失敗しました
  • ORA-16502: Oracle Data Guard Broker操作は警告付きで成功しました

使用上のノート

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

戻り値

エラー 説明
ORA-00000: normal, successful completion

この構成は正常に削除されました。

Other

Data Guard Brokerでこの構成を削除できませんでした。戻り値で、この失敗の理由が示されます。

79.2.31 RESET_PROPERTY

RESET_PROPERTY関数を使用すると、メンバーの構成可能プロパティをデフォルト値にリセットできます。

RESET_PROPERTYファンクション

DBMS_DG.RESET_PROPERTY (
     member_name           IN VARCHAR2,
     property_name         IN VARCHAR2,
     severity              OUT BINARY_INTEGER)
RETURN BINARY_INTEGER;

パラメータ

パラメータ 説明
member_name 構成可能プロパティ値をデフォルト値にリセットするメンバーのDB_UNIQUE_NAME初期化パラメータ値。
property_name 値をデフォルト値にリセットする構成プロパティの名前。
severity この関数によって返されたステータスに関連付けられている重大度。重大度は、次のOracleエラー番号のいずれかになります。
  • ORA-0: 正常に完了しました。
  • ORA-16501: Oracle Data Guard Broker操作に失敗しました
  • ORA-16502: Oracle Data Guard Broker操作は警告付きで成功しました

使用上のノート

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

戻り値

エラー 説明
ORA-00000: normal, successful completion

指定された構成可能プロパティの値が、デフォルト値に正常にリセットされました。

Other

Data Guard Brokerで、指定された構成可能プロパティをデフォルト値にリセットできませんでした。戻り値で、この失敗の理由が示されます。

79.2.32 SET_CONFIGURATION_PROPERTY

SET_CONFIGURATION_PROPERTY関数を使用すると、構成プロパティの値を設定できます。

SET_CONFIGURATION_PROPERTY関数

DBMS_DG.SET_CONFIGURATION_PROPERTY (
     property_name IN VARCHAR2,
     value         IN VARCHAR2,
     severity      OUT BINARY_INTEGER)
RETURN BINARY_INTEGER;

パラメータ

パラメータ 説明
property_name 値を設定する構成プロパティの名前。
value 指定した構成プロパティに設定する値。
severity この関数によって返されたステータスに関連付けられている重大度。重大度は、次のOracleエラー番号のいずれかになります。
  • ORA-0: 正常に完了しました。
  • ORA-16501: Oracle Data Guard Broker操作に失敗しました
  • ORA-16502: Oracle Data Guard Broker操作は警告付きで成功しました

使用上のノート

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

戻り値

エラー 説明
ORA-00000: normal, successful completion

指定された構成可能プロパティの値が、デフォルト値に正常にリセットされました。

Other

Data Guard Brokerで、指定された構成可能プロパティをデフォルト値にリセットできませんでした。戻り値で、この失敗の理由が示されます。

79.2.33 SET_CONFIGURATION_TAG

SET_CONFIGURATION_TAGファンクションは、構成タグの値を設定します。タグが存在しない場合は、新しいタグが作成されます。

SET_CONFIGURATION_TAGファンクション

DBMS_DG.SET_CONFIGURATION_TAG (
     config_name          IN VARCHAR2,
     tag_name             IN VARCHAR2,
     value                IN VARCHAR2,
     severity             OUT BINARY_INTEGER)
RETURN BINARY_INTEGER;

パラメータ

パラメータ 説明
config_name

構成ファイルの名前。ローカル構成の場合はNULLです。

tag_name

タグの名前。

value

タグの値。

使用上のノート

  • このファンクションは、操作が成功したかどうかを示すOracleエラー番号である2進整数を戻します。

戻り値

エラー 説明
severity

この関数によって返されたステータスに関連付けられている重大度。

79.2.34 SET_MEMBER_TAG

SET_MEMBER_TAGファンクションは、メンバー・タグの値を設定します。キーが存在しない場合は、新しいキーが作成されます。

SET_MEMBER_TAGファンクション

DBMS_DG.SET_MEMBER_TAG (
     config_name          IN VARCHAR2,
     member_name          IN VARCHAR2,
     tag_name             IN VARCHAR2,
     value                IN VARCHAR2,
     severity             OUT BINARY_INTEGER)
RETURN BINARY_INTEGER;

パラメータ

パラメータ 説明
config_name

構成ファイルの名前。ローカル構成の場合はNULLです。

member_name

メンバーの名前。

tag_name

タグの名前。

value

タグの値。

使用上のノート

  • このファンクションは、操作が成功したかどうかを示すOracleエラー番号である2進整数を戻します。

戻り値

エラー 説明
severity

この関数によって返されたステータスに関連付けられている重大度。

79.2.35 SET_PROPERTY

SET_CONFIGURATION_PROPERTY関数を使用すると、メンバーの構成可能プロパティの値を設定できます。

SET_PROPERTYファンクション

DBMS_DG.SET_PROPERTY (
     member_name           IN VARCHAR2,
     property_name         IN VARCHAR2,
     value                 IN VARCHAR2,
     severity              OUT BINARY_INTEGER)
RETURN BINARY_INTEGER;

パラメータ

パラメータ 説明
member_name 構成可能プロパティ値を設定するメンバーのDB_UNIQUE_NAME初期化パラメータ値。
property_name 値を設定する構成可能プロパティの名前。
value 指定した構成可能プロパティに設定する値。
severity この関数によって返されたステータスに関連付けられている重大度。重大度は、次のOracleエラー番号のいずれかになります。
  • ORA-0: 正常に完了しました。
  • ORA-16501: Oracle Data Guard Broker操作に失敗しました
  • ORA-16502: Oracle Data Guard Broker操作は警告付きで成功しました

使用上のノート

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

戻り値

エラー 説明
ORA-00000: normal, successful completion

指定された構成可能プロパティの値が、デフォルト値に正常にリセットされました。

Other

Data Guard Brokerで、指定された構成可能プロパティをデフォルト値にリセットできませんでした。戻り値で、この失敗の理由が示されます。

79.2.36 SET_PROTECTION_MODE

SET_PROTECTION_MODE関数を使用すると、構成保護モードを設定できます。

SET_PROTECTION_MODE関数

DBMS_DG.SET_PROTECTION_MODE (
     protection_mode IN VARCHAR2,
     severity        OUT BINARY_INTEGER)
RETURN BINARY_INTEGER;

パラメータ

パラメータ 説明
protection_mode 設定する保護モードを示す文字列。有効な値は次のとおりです:
  • MAXPERFORMANCE
  • MAXAVAILABILITY
  • MAXPROTECTION
severity この関数によって返されたステータスに関連付けられている重大度。重大度は、次のOracleエラー番号のいずれかになります。
  • ORA-0: 正常に完了しました。
  • ORA-16501: Oracle Data Guard Broker操作に失敗しました
  • ORA-16502: Oracle Data Guard Broker操作は警告付きで成功しました

使用上のノート

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

  • この関数を使用して保護モードを設定する前に、少なくとも1つのスタンバイが、プライマリから直接REDOを受け取る場合にSYNCまたはFASTSYNCモードでREDOを受け取るように構成されていることを確認してください。スタンバイが遠隔同期インスタンスを介してREDOを受け取る場合、遠隔同期インスタンスはSYNCまたはFASTSYNCモードでREDOを受け取るように構成され、スタンバイはASYNCモードでREDOを受け取るように構成される必要があります。
  • 次の表は、構成の保護モードと、REDO転送サービスの対応する最低限の設定を示しています。
    保護モード REDO転送 スタンバイREDOログ・ファイルの要否 ファスト・スタート・フェイルオーバーとの併用
    MAXPROTECTION SYNC はい はい
    MAXAVAILABILITY SYNCまたはFASTSYNC はい はい
    MAXPERFORMANCE ASYNC はい はい

    構成のデフォルトの保護モードはMAXPERFORMANCEです。

  • この関数は、ファスト・スタート・フェイルオーバーが有効になっている場合はコールできません。
  • MAXPERFORMANCEからMAXPROTECTIONへのアップグレードは許可されません。まずMAXAVAILABILITYに変更してから、MAXPROTECTIONにする必要があります。

戻り値

エラー 説明
ORA-00000: normal, successful completion

構成保護モードが正常に変更されました。

Other

Data Guard Brokerで保護モードを変更できませんでした。戻り値で、この失敗の理由が示されます。

79.2.37 SET_STATE_APPLY_OFF

SET_STATE_APPLY_OFF関数を使用すると、ロジカルまたはフィジカル・スタンバイ・データベースの適用状態をオフに設定できます。

SET_STATE_APPLY_OFF関数

DBMS_DG.SET_STATE_APPLY_OFF (
     member_name           IN VARCHAR2,
     severity              OUT BINARY_INTEGER)
RETURN BINARY_INTEGER;

パラメータ

パラメータ 説明
member_name 適用状態をOFFに設定する必要があるスタンバイ・データベースのDB_UNIQUE_NAME初期化パラメータ値。
severity この関数によって返されたステータスに関連付けられている重大度。重大度は、次のOracleエラー番号のいずれかになります。
  • ORA-0: 正常に完了しました。
  • ORA-16501: Oracle Data Guard Broker操作に失敗しました
  • ORA-16502: Oracle Data Guard Broker操作は警告付きで成功しました

使用上のノート

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

  • スナップショット・スタンバイ・データベースの適用状態をOFFに設定することはできません。
  • このデータベースの状態変更は、Oracle RACデータベースのすべてのインスタンスに影響します。
エラー 説明
ORA-00000: normal, successful completion

指定されたスタンバイ・データベースの適用状態が正常にOFFに設定されました。

Other

Data Guard Brokerで、指定されたスタンバイ・データベースの適用状態をOFFに設定できませんでした。戻り値で、この失敗の理由が示されます。

79.2.38 SET_STATE_APPLY_ON

SET_STATE_APPLY_ON関数を使用すると、ロジカルまたはフィジカル・スタンバイ・データベースの適用状態をオンに設定できます。

SET_STATE_APPLY_ON関数

DBMS_DG.SET_STATE_APPLY_ON (
     member_name           IN VARCHAR2,
     apply_instance        IN VARCHAR2 DEFAULT NULL,
     severity              OUT BINARY_INTEGER)
RETURN BINARY_INTEGER;

パラメータ

パラメータ 説明
member_name 適用状態をONに設定する必要があるスタンバイ・データベースのDB_UNIQUE_NAME初期化パラメータ値。
apply_instance これがOracle RACスタンバイ・データベースである場合の、適用インスタンスにする必要があるインスタンスのSIDを示す文字列。
severity この関数によって返されたステータスに関連付けられている重大度。重大度は、次のOracleエラー番号のいずれかになります。
  • ORA-0: 正常に完了しました。
  • ORA-16501: Oracle Data Guard Broker操作に失敗しました
  • ORA-16502: Oracle Data Guard Broker操作は警告付きで成功しました

使用上のノート

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

  • スナップショット・スタンバイ・データベースの適用状態をONに設定することはできません。
  • apply_instance引数が指定されている場合は、そのインスタンスが適用インスタンスになります。
  • このデータベースの状態変更は、Oracle RACデータベースのすべてのインスタンスに影響します。

戻り値

エラー 説明
ORA-00000: normal, successful completion

指定されたスタンバイ・データベースの適用状態が正常にONに設定されました。

Other

Data Guard Brokerで、指定されたスタンバイ・データベースの適用状態をONに設定できませんでした。戻り値で、この失敗の理由が示されます。

79.2.39 SET_STATE_TRANSPORT_OFF

SET_STATE_TRANSPORT_OFF関数を使用すると、プライマリ・データベースのREDO転送状態をオフに設定できます。

SET_STATE_TRANSPORT_OFF関数

DBMS_DG.SET_STATE_TRANSPORT_OFF (
     member_name           IN VARCHAR2,
     severity              OUT BINARY_INTEGER)
RETURN BINARY_INTEGER;

パラメータ

パラメータ 説明
member_name プライマリ・データベースのDB_UNIQUE_NAME初期化パラメータ値。
severity この関数によって返されたステータスに関連付けられている重大度。重大度は、次のOracleエラー番号のいずれかになります。
  • ORA-0: 正常に完了しました。
  • ORA-16501: Oracle Data Guard Broker操作に失敗しました
  • ORA-16502: Oracle Data Guard Broker操作は警告付きで成功しました

使用上のノート

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

  • 転送状態は、プライマリ・データベースの場合のみオフに設定できます。
  • このデータベースの状態変更は、Oracle RACデータベースのすべてのインスタンスに影響します。

戻り値

エラー 説明
ORA-00000: normal, successful completion

プライマリ・データベースの転送状態が正常にOFFに設定されました。

Other

Data Guard Brokerで転送状態をOFFに設定できませんでした。戻り値で、この失敗の理由が示されます。

79.2.40 SET_STATE_TRANSPORT_ON

SET_STATE_TRANSPORT_ON関数を使用すると、プライマリ・データベースのREDO転送の状態をオンに設定できます。

SET_STATE_TRANSPORT_ON関数

DBMS_DG.SET_STATE_TRANSPORT_ON (
     member_name           IN VARCHAR2,
     severity              OUT BINARY_INTEGER)
RETURN BINARY_INTEGER;

パラメータ

パラメータ 説明
member_name プライマリ・データベースのDB_UNIQUE_NAME初期化パラメータ値。
severity この関数によって返されたステータスに関連付けられている重大度。重大度は、次のOracleエラー番号のいずれかになります。
  • ORA-0: 正常に完了しました。
  • ORA-16501: Oracle Data Guard Broker操作に失敗しました
  • ORA-16502: Oracle Data Guard Broker操作は警告付きで成功しました

使用上のノート

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

  • 転送状態は、プライマリ・データベースの場合のみオンに設定できます。
  • このデータベースの状態変更は、Oracle RACデータベースのすべてのインスタンスに影響します。

戻り値

エラー 説明
ORA-00000: normal, successful completion

プライマリ・データベースの転送状態が正常にONに設定されました。

Other

Data Guard Brokerで転送状態をONに設定できませんでした。戻り値で、この失敗の理由が示されます。

79.2.41 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 fast-start failover target standby in error state, cannot stop observer

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

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

戻り値

エラー 説明
ORA-00000: normal, successful completion

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

Other

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

79.2.42 SWITCHOVER

SWITCHOVER関数を使用すると、データベース・スイッチオーバーを実行できます。

SWITCHOVERファンクション

DBMS_DG.SWITCHOVER (
     db_name              IN VARCHAR2,
     severity             OUT BINARY_INTEGER)
RETURN BINARY_INTEGER;

パラメータ

パラメータ 説明
db_name スイッチオーバー先のスタンバイ・データベースのDB_UNIQUE_NAME初期化パラメータ値。
severity この関数によって返されたステータスに関連付けられている重大度。重大度は、次のOracleエラー番号のいずれかになります。
  • ORA-0: 正常に完了しました。
  • ORA-16501: Oracle Data Guard Broker操作に失敗しました
  • ORA-16502: Oracle Data Guard Broker操作は警告付きで成功しました

使用上のノート

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

  • ファスト・スタート・フェイルオーバーが有効な場合は、ファスト・スタート・フェイルオーバーのターゲット・スタンバイ・データベースへのスイッチオーバーのみ実行できます。
  • スイッチオーバーの起動前に、ブローカによって、プライマリ・データベースおよびスタンバイ・データベースが次の状態であることが検証されます。
    • REDO転送サービスが起動するように、プライマリ・データベースが有効化され、TRANSPORT-ON状態になっている必要があります。
    • スタンバイ・データベースが有効化され、TRANSPORT-ON状態になっており、ログ適用サービスが起動している必要があります。
  • ブローカは、スイッチオーバーに関係するように選択したスタンバイ・データベースにREDO転送サービスのエラーがないかぎり、スイッチオーバーを続行します。その他のスタンバイ・データベースにエラーが発生しても、スイッチオーバーの続行には影響しません。
  • ロジカル・スタンバイ・データベースへのスイッチオーバーは、構成が最大保護モードで動作している場合には許可されません。
  • ブローカ構成が最大保護モードまたは最大可用性モードで動作している場合、スイッチオーバーの操作後も同じ保護モードが維持されます(「スイッチオーバー操作実行前の考慮事項」を参照)。スイッチオーバーのターゲットとなるスタンバイ・データベースが保護モード要件を満たす唯一のスタンバイであったためにモードを維持できない場合、スイッチオーバーは許可されません。
  • プライマリ・ロールを引き継ぐスタンバイ・データベースがフィジカル・スタンバイ・データベースの場合は、スイッチオーバーの完了後に、元のプライマリ・データベースが再起動されます。スタンバイ・データベースがロジカル・スタンバイ・データベースの場合は、プライマリ・データベースもロジカル・スタンバイ・データベースも再起動されません。
  • プライマリ・ロールを引き継ぐスタンバイ・データベースがフィジカル・スタンバイ・データベースの場合、元のプライマリ・データベースはフィジカル・スタンバイ・データベースとなります。
  • プライマリ・ロールを引き継ぐスタンバイ・データベースがロジカル・スタンバイ・データベースの場合、元のプライマリ・データベースはロジカル・スタンバイ・データベースとなります。
  • Oracle RACプライマリ・データベースがフィジカル・スタンバイ・データベースになる場合、スイッチオーバーを実行する前に、プライマリ・データベース上のインスタンスのうち1つを残してそれ以外はすべては停止されます。詳細は、「スイッチオーバー」を参照してください。
  • スナップショット・スタンバイ・データベースにスイッチオーバーすることはできません。
  • プライマリ・ロールを引き継ぐスタンバイ・データベースがロジカル・スタンバイ・データベースで、構成にフィジカル・スタンバイ・データベースが含まれている場合、スイッチオーバー後、フィジカル・スタンバイ・データベースは無効化されます。

    注意: このため、通常は、スイッチオーバーにはロジカル・スタンバイ・データベースではなくフィジカル・スタンバイ・データベースを指定することをお薦めします。ロジカル・スタンバイ・データベースへのスイッチオーバーが必要な場合、フィジカル・スタンバイ・データベースを再作成する方法については、「ロール変更後の無効化されたデータベースの再有効化」を参照してください。

    比較的すぐに元のプライマリ・データベースにスイッチバックする場合は、フィジカルおよびスナップショット・スタンバイ・データベースを無効なままにしておくことができます。フィジカルおよびスナップショット・スタンバイ・データベースはまだ元のプライマリ・データベースの実行可能なスタンバイ・データベースであるため、元のプライマリ・データベースへのスイッチバックの完了後、これらを再有効化できます。

戻り値

エラー 説明
ORA-00000: normal, successful completion

スイッチオーバーが正常に完了しました。

ORA-16540: invalid argument このデータベースについて指定された名前が、有効なDB_UNIQUE_NAME値ではありませんでした。
ORA-16600: not connected to target standby database この関数は、プライマリ・データベースに接続されているときはコールできません。この関数は、ターゲット・スタンバイ・データベースに接続されている間にコールしてください。
ORA-16732: Oracle Clusterware is restarting the database instance Oracle Clusterwareで、ブローカに必要とされているモードになるよう、このデータベースを再起動中です。データベースが再起動された後に、この関数のコールを再試行してください。
ORA-16897: start database to mount mode スイッチオーバーが正常に完了しました。クライアントで、前のプライマリ・データベースを再起動してマウント・モードにする必要があります。
ORA-16897: start database to open mode スイッチオーバーが正常に完了しました。クライアントで、前のプライマリ・データベースを再起動してオープン・モードにする必要があります。
Other

Data Guard Brokerでスイッチオーバーを完了できませんでした。戻り値で、この失敗の理由が示されます。

79.2.43 WAIT

WAIT関数を使用すると、様々なData Guard Brokerイベントの発生を待機できます。

WAITファンクション

DBMS_DG.WAIT (
     wait_event            IN BINARY_INTEGER
     wait_time             IN BINARY_INTEGER)
RETURN BINARY_INTEGER;

パラメータ

パラメータ 説明
wait_event 待機するData Guard Brokerイベント。次のいずれかになります。
  • DBMS_DG.WAIT_START_BROKER: Data Guard Brokerが起動されて初期化が終了するまで待機します。この待機イベントを指定すると、DG_BROKER_START初期化パラメータもTRUEに設定されます。
  • DBMS_DG.WAIT_STOP_BROKER: Data Guard Brokerが停止されるまで待機します。この待機イベントを指定すると、DG_BROKER_START初期化パラメータもFALSEに設定されます。
wait_time 指定された待機イベントの発生を待機する秒数。

使用上のノート

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

戻り値

エラー 説明
ORA-00000: normal, successful completion

待機対象のイベントが、wait_timeパラメータで指定された秒数以内に発生しました。

ORA-16509: request timed out 待機対象のイベントが、wait_timeパラメータで指定された秒数以内に発生しませんでした。
Other

Data Guard Brokerで、指定された待機イベントを待つことができませんでした。戻り値で、この失敗の理由が示されます。