ヘッダーをスキップ
Oracle® Databaseアドバンスト・レプリケーション・マネージメントAPIリファレンス
12cリリース1 (12.1)
E52979-02
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

14 DBMS_DEFER_SYS

DBMS_DEFER_SYSプロシージャは、デフォルトのレプリケーション・ノード・リストを管理します。このパッケージは、レプリケート・トランザクション遅延リモート・プロシージャ・コール機能へのシステム管理者用インタフェースです。管理者およびレプリケーション・デーモンは、この機能を使用して、リモート・ノードのキューに入れられたトランザクションを実行でき、さらに管理者は、リモート・コールの宛先のノードを制御できます。

この章には、次の項が含まれます。

DBMS_DEFER_SYSサブプログラムの概要

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

サブプログラム 説明

「ADD_DEFAULT_DESTプロシージャ」


接続先データベースをDEFDEFAULTDESTビューに追加します。

「CLEAR_PROP_STATISTICSプロシージャ」


DEFSCHEDULEデータ・ディクショナリ・ビューの伝播統計を消去します。

「DELETE_DEFAULT_DESTプロシージャ」


接続先データベースをDEFDEFAULTDESTビューから削除します。

「DELETE_DEF_DESTINATIONプロシージャ」


接続先データベースをDEFSCHEDULEビューから削除します。

「DELETE_ERRORプロシージャ」


トランザクションをDEFERRORビューから削除します。

「DELETE_TRANプロシージャ」


トランザクションをDEFTRANDESTビューから削除します。

「DISABLEDファンクション」


カレント・サイトから指定されたサイトへの、遅延トランザクション・キューの伝播が有効になっているかどうかを判定します。

EXCLUDE_PUSHファンクション


遅延トランザクションPUSHを防ぐ排他ロックを取得します。

「EXECUTE_ERRORプロシージャ」


正常に終了しなかった遅延トランザクションを、トランザクションの元の受信者のセキュリティ・コンテキストで再実行します。

「EXECUTE_ERROR_AS_USERプロシージャ」


正常に終了しなかった遅延トランザクションを、このプロシージャを実行するユーザーのセキュリティ・コンテキストで再実行します。

「PURGEファンクション」


カレント・マスター・サイトまたはマテリアライズド・ビュー・サイトの遅延トランザクション・キューから、プッシュされたトランザクションをパージします。

「PUSHファンクション」


カレント・マスター・サイトまたはマテリアライズド・ビュー・サイトの遅延リモート・プロシージャ・コール・キューを、強制的にリモート・サイトへプッシュします。

「REGISTER_PROPAGATORプロシージャ」


指定されたユーザーを、ローカル・データベースのプロパゲータとして登録します。

「SCHEDULE_PURGEプロシージャ」


カレント・マスター・サイトまたはマテリアライズド・ビュー・サイトの遅延トランザクション・キューから、プッシュされたトランザクションをパージするジョブをスケジュールします。

「SCHEDULE_PUSHプロシージャ」


遅延トランザクション・キューをリモート・サイトにプッシュするジョブをスケジュールします。

「SET_DISABLEDプロシージャ」


カレント・サイトから、指定された接続先サイトへの遅延トランザクション・キューの伝播を、使用禁止または使用可能にします。

「UNREGISTER_PROPAGATORプロシージャ」


プロパゲータとしてのユーザーの登録を、ローカル・データベースから削除します。

「UNSCHEDULE_PURGEプロシージャ」


マスター・サイトまたはマテリアライズド・ビュー・サイトの遅延トランザクション・キューからの、プッシュされたトランザクションの自動パージを中止します。

「UNSCHEDULE_PUSHプロシージャ」


マスター・サイトまたはマテリアライズド・ビュー・サイトからリモート・サイトへの、遅延トランザクション・キューの自動プッシュを中止します。


ADD_DEFAULT_DESTプロシージャ

このプロシージャは、接続先データベースをDEFDEFAULTDESTデータ・ディクショナリ・ビューに追加します。

構文

DBMS_DEFER_SYS.ADD_DEFAULT_DEST (
   dblink   IN   VARCHAR2);

パラメータ

表14-2 ADD_DEFAULT_DESTプロシージャのパラメータ

パラメータ 説明
dblink

DEFDEFAULTDESTビューに追加するノードの、完全修飾されたデータベース名です。


例外

表14-3 ADD_DEFAULT_DESTプロシージャの例外

例外 説明
ORA-23352

指定されたdblinkは、デフォルトのリストにすでに存在しています。


CLEAR_PROP_STATISTICSプロシージャ

このプロシージャは、DEFSCHEDULEデータ・ディクショナリ・ビューの伝播統計を消去します。このプロシージャが正常に実行されると、このビューのすべての統計は0(ゼロ)に戻され、新しく統計収集が開始されます。

特に、このプロシージャはDEFSCHEDULEデータ・ディクショナリ・ビューの次の列からの統計を消去します。

  • TOTAL_TXN_COUNT

  • AVG_THROUGHPUT

  • AVG_LATENCY

  • TOTAL_BYTES_SENT

  • TOTAL_BYTES_RECEIVED

  • TOTAL_ROUND_TRIPS

  • TOTAL_ADMIN_COUNT

  • TOTAL_ERROR_COUNT

  • TOTAL_SLEEP_TIME

構文

DBMS_DEFER_SYS.CLEAR_PROP_STATISTICS (
   dblink   IN   VARCHAR2);

パラメータ

表14-4 CLEAR_PROP_STATISTICSプロシージャのパラメータ

パラメータ 説明
dblink

統計を消去するノードの、完全修飾されたデータベース名です。消去される統計は、現在のノードからdblinkに指定されたノードへの遅延トランザクションの伝播に関する統計です。


DELETE_DEFAULT_DESTプロシージャ

このプロシージャは、接続先データベースをDEFDEFAULTDESTビューから削除します。

構文

DBMS_DEFER_SYS.DELETE_DEFAULT_DEST (
   dblink   IN   VARCHAR2);

パラメータ

表14-5 DELETE_DEFAULT_DESTプロシージャのパラメータ

パラメータ 説明
dblink

DEFDEFAULTDESTビューから削除するノードの、完全修飾されたデータベース名です。ビューでこのdblinkが見つからない場合、削除作業は実行されません。


DELETE_DEF_DESTINATIONプロシージャ

このプロシージャは、接続先データベースをDEFSCHEDULEビューから削除します。

構文

DBMS_DEFER_SYS.DELETE_DEF_DESTINATION (
   destination   IN   VARCHAR2,
   force         IN   BOOLEAN := FALSE);

パラメータ

表14-6 DELETE_DEF_DESTINATIONプロシージャのパラメータ

パラメータ 説明
destination

DEFSCHEDULEビューから削除する接続先の完全修飾されたデータベース名です。ビューでこの接続先が見つからない場合、削除作業は実行されません。

force

値がTRUEに設定されていると、すべての安全チェックが無視され、接続先が削除されます。


DELETE_ERRORプロシージャ

このプロシージャは、DEFERRORビューからトランザクションを削除します。

構文

DBMS_DEFER_SYS.DELETE_ERROR(
   deferred_tran_id     IN   VARCHAR2,
   destination          IN   VARCHAR2);

パラメータ

表14-7 DELETE_ERRORプロシージャのパラメータ

パラメータ 説明
deferred_tran_id

DEFERRORビューから削除する遅延トランザクションの、DEFERRORビューから渡される識別番号です。このパラメータがNULLの場合、他のパラメータの要件に一致するすべてのトランザクションが削除されます。

destination

トランザクションが初めにキューに入れられたデータベースのDEFERRORビューから渡される、完全修飾されたデータベース名です。このパラメータがNULLの場合、他のパラメータの要件に一致するすべてのトランザクションが、DEFERRORビューから削除されます。


DELETE_TRAN プロシージャ

このプロシージャは、DEFTRANDESTビューからトランザクションを削除します。他のDEFTRANDESTまたはDEFERRORエントリがない場合、トランザクションはDEFTRANビューとDEFCALLビューからも削除されます。

構文

DBMS_DEFER_SYS.DELETE_TRAN (
   deferred_tran_id     IN   VARCHAR2,
   destination          IN   VARCHAR2);

パラメータ

表14-8 DELETE_TRANプロシージャのパラメータ

パラメータ 説明
deferred_tran_id

削除する遅延トランザクションのDEFTRANビューから渡される識別番号です。値がNULLの場合、他のパラメータの要件に一致するすべてのトランザクションが削除されます。

destination

トランザクションが初めにキューに入れられたデータベースのDEFTRANDESTビューから渡される、完全修飾されたデータベース名です。値がNULLの場合、他のパラメータの要件に一致するすべてのトランザクションが削除されます。


DISABLEDファンクション

このファンクションは、カレント・サイトから指定されたサイトへの、遅延トランザクション・キューの伝播が有効になっているかどうかを判定します。指定された接続先に対して遅延リモート・プロシージャ・コール(Remote Procedure Call: RPC)のキューが使用禁止になっている場合、DISABLEDファンクションによってTRUEが戻されます。

構文

DBMS_DEFER_SYS.DISABLED (
   destination  IN   VARCHAR2)
  RETURN BOOLEAN;

パラメータ

表14-9 DISABLEDファンクションのパラメータ

パラメータ 説明
destination

伝播ステータスをチェックするノードの、完全修飾されたデータベース名です。


例外

表14-10 DISABLEDファンクションの例外

例外 説明
NO_DATA_FOUND

指定されたdestinationDEFSCHEDULEビューにありません。


戻り値

表14-11 DISABLEDファンクションの戻り値

説明
TRUE

カレント・サイトからこのサイトへの伝播は使用禁止になっています。

FALSE

カレント・サイトからこのサイトへの伝播は有効になっています。


EXCLUDE_PUSHファンクション

このファンクションは、遅延トランザクションPUSHを防ぐ排他ロックを取得します(シリアルまたはパラレル)。このファンクションは、ロックの取得時にコミットを実行します。ロックはRELEASE_ON_COMMIT => TRUEで取得されるため、次のコミット後に、遅延トランザクション・キューのプッシュを再開できます。

構文

DBMS_DEFER_SYS.EXCLUDE_PUSH (
   timeout   IN   INTEGER)
  RETURN INTEGER;

パラメータ

表14-12 EXCLUDE_PUSHファンクションのパラメータ

パラメータ 説明
timeout

タイムアウトを秒で設定します。エラーが発生したか、またはPUSHが行われているために、設定された期間内にロックが取得されない場合は、値1が戻されます。タイムアウトの値をDBMS_LOCK.MAXWAITに設定すると、無期限に待機します。


戻り値

表14-13 EXCLUDE_PUSHファンクションの戻り値

説明
0

ロックは正常に取得されました。

1

タイムアウトにより、ロックは取得されませんでした。

2

デッドロックにより、ロックは取得されませんでした。

4

ロックはすでに取得されています。


EXECUTE_ERRORプロシージャ

このプロシージャは、正常に終了しなかった遅延トランザクションを、トランザクションの元の受信者のセキュリティ・コンテキストで再実行します。

構文

DBMS_DEFER_SYS.EXECUTE_ERROR ( 
   deferred_tran_id IN   VARCHAR2,
   destination      IN   VARCHAR2);

パラメータ

表14-14 EXECUTE_ERRORプロシージャのパラメータ

パラメータ 説明
deferred_tran_id

再実行する遅延トランザクションのDEFERRORビューから渡される識別番号です。これがNULLの場合、destinationへのキューに入れられているすべてのトランザクションが再実行されます。

destination

トランザクションが初めにキューに入れられたデータベースのDEFERRORビューから渡される、完全修飾されたデータベース名です。NULLは指定できません。指定したデータベース名が完全修飾されていない場合や無効の場合、エラーは発生しません。


例外

表14-15 EXECUTE_ERRORプロシージャの例外

例外 説明
ORA-24275 error

NULLパラメータとNULL以外のパラメータの無効な組合せが使用されています。

badparam

パラメータ値が欠落しているか、または無効です(たとえば、destinationNULL)。

missinguser

無効なユーザーです。


EXECUTE_ERROR_AS_USER プロシージャ

このプロシージャは、正常に終了しなかった遅延トランザクションを再実行します。各トランザクションは、接続しているユーザーのセキュリティ・コンテキストで実行されます。

構文

DBMS_DEFER_SYS.EXECUTE_ERROR_AS_USER ( 
   deferred_tran_id IN   VARCHAR2,
   destination      IN   VARCHAR2);

パラメータ

表14-16 EXECUTE_ERROR_AS_USERプロシージャのパラメータ

パラメータ 説明
deferred_tran_id

再実行する遅延トランザクションのDEFERRORビューから渡される識別番号です。これがNULLの場合、destinationへのキューに入れられているすべてのトランザクションが再実行されます。

destination

トランザクションが初めにキューに入れられたデータベースのDEFERRORビューから渡される、完全修飾されたデータベース名です。NULLは指定できません。


例外

表14-17 EXECUTE_ERROR_AS_USERプロシージャの例外

例外 説明
ORA-24275 error

NULLパラメータとNULL以外のパラメータの無効な組合せが使用されています。

badparam

パラメータ値が欠落しているか、または無効です(たとえば、destinationNULL)。

missinguser

無効なユーザーです。


PURGEファンクション

このファンクションは、カレント・マスター・サイトまたはマテリアライズド・ビュー・サイトの遅延トランザクション・キューから、プッシュされたトランザクションをパージします。

構文

DBMS_DEFER_SYS.PURGE (
   purge_method         IN  BINARY_INTEGER := purge_method_quick,
   rollback_segment     IN  VARCHAR2       := NULL,
   startup_seconds      IN  BINARY_INTEGER := 0,
   execution_seconds    IN  BINARY_INTEGER := seconds_infinity,
   delay_seconds        IN  BINARY_INTEGER := 0,
   transaction_count    IN  BINARY_INTEGER := transactions_infinity,
   write_trace          IN  BOOLEAN        := NULL);
  RETURN BINARY_INTEGER;

パラメータ

表14-18 PURGEファンクションのパラメータ

パラメータ 説明
purge_method

遅延トランザクション・キューのパージ方法を制御します。purge_method_quickはコストを低く抑えられますが、purge_method_preciseの方が精度が高くなります。

purge_method_quickを使用するには、次のように指定します。

dbms_defer_sys.purge_method_quick

purge_method_preciseを使用するには、次のように指定します。

dbms_defer_sys.purge_method_precise

purge_method_quickを使用する場合は、正常にプッシュされた遅延トランザクションおよび遅延プロシージャ・コールが、パージされるまで、それぞれDEFTRANおよびDEFCALLデータ・ディクショナリ・ビューに予想以上に長時間保持されることがあります。詳細は、「使用上の注意」を参照してください。

rollback_segment

パージに使用するロールバック・セグメントの名前、またはデフォルトのNULLです。

startup_seconds

同じ遅延トランザクション・キューの前のパージを待つ最大秒数です。

execution_seconds

値が0(ゼロ)より大きい場合、指定された実秒数後に、パージが完全に停止します。

delay_seconds

delay_secondsの間、遅延トランザクション・キューにパージするトランザクションがなくなると、パージが完全に停止します。

transaction_count

値が0(ゼロ)より大きい場合、transaction_countの数だけトランザクションがパージされると、完全に停止します。

write_trace

値がTRUEに設定されている場合、PURGEファンクションから戻された結果値が、サーバーのトレース・ファイルに記録されます。値がFALSEに設定されている場合は、結果値が記録されません。


戻り値

表14-19 PURGEファンクションの戻り値

説明
result_ok

OKです。delay_secondsの経過後に終了しました。

result_startup_seconds

スタート時にロック・タイムアウトにより終了しました。

result_execution_seconds

execution_secondsの超過により終了しました。

result_transaction_count

transaction_countの超過により終了しました。

result_errors

エラー発生後に終了しました。

result_split_del_order_limit

排他モードでエンキューの取得の失敗後に終了しました。このリターン・コードが戻された場合は、パージを再試行してください。問題が解決しない場合は、Oracleサポート・サービスまでお問い合せください。

result_purge_disabled

静止せずに新しいマスター・サイトを追加するときの同期のため、キューのパージが内部で使用禁止になっています。


例外

表14-20 PURGEファンクションの例外

例外 説明
argoutofrange

パラメータ値が有効範囲外です。

executiondisabled

パージの実行が使用禁止になっています。

defererror

内部エラーが発生しました。


使用上の注意

DBMS_DEFER_SYS.PURGEファンクションのpurge_methodパラメータにpurge_method_quickを指定すると、遅延トランザクションおよび遅延プロシージャ・コールが正常にプッシュされた後、それぞれDEFTRANおよびDEFCALLデータ・ディクショナリ・ビューに保持されることがあります。これは、複数のデータベース・リンクがあるレプリケーション環境で、1つのデータベース・リンクのみに対してプッシュが実行された場合に発生します。

遅延トランザクションおよび遅延プロシージャ・コールをパージするには、次のいずれかを実行します。

  • purge_method_quickではなく、purge_methodパラメータのpurge_method_preciseを使用します。purge_method_preciseを使用するとコストは増大しますが、遅延トランザクションおよびプロシージャ・コールは、正常にプッシュされた後で確実にパージされます。

  • purge_methodパラメータにpurge_method_quickを指定して、遅延トランザクションをすべてのデータベース・リンクにプッシュします。遅延トランザクションおよび遅延プロシージャ・コールは、最後のデータベース・リンクに正常にプッシュされた時点でパージされます。

PUSHファンクション

このファンクションは、カレント・マスター・サイトまたはマテリアライズド・ビュー・サイトの遅延リモート・プロシージャ・コール(RPC)・キューを、強制的にリモート・サイトへプッシュ(伝播)します。シリアル伝播またはパラレル伝播のいずれかが使用されます。

構文

DBMS_DEFER_SYS.PUSH (
   destination          IN  VARCHAR2,
   parallelism          IN  BINARY_INTEGER := 0,
   heap_size            IN  BINARY_INTEGER := 0,
   stop_on_error        IN  BOOLEAN        := FALSE,
   write_trace          IN  BOOLEAN        := FALSE,
   startup_seconds      IN  BINARY_INTEGER := 0,
   execution_seconds    IN  BINARY_INTEGER := seconds_infinity,
   delay_seconds        IN  BINARY_INTEGER := 0,
   transaction_count    IN  BINARY_INTEGER := transactions_infinity,
   delivery_order_limit IN  NUMBER         := delivery_order_infinity)
  RETURN BINARY_INTEGER;

パラメータ

表14-21 PUSHファンクションのパラメータ

パラメータ 説明
destination

変更を転送するマスター・サイトまたはマテリアライズド・ビュー・サイトの、完全修飾されたデータベース名です。

parallelism

0(ゼロ)はシリアル伝播を指定します。

n > 1は、n個のパラレル処理のパラレル伝播を指定します。

1は、パラレル処理を1つのみ使用するパラレル伝播を指定します。

heap_size

パラレル伝播スケジュールのために同時に検査されるトランザクションの最大数です。最適なパフォーマンスを実現するデフォルト値が、自動的に計算されます。

注意: Oracleサポート・サービスから指示された場合を除き、パラメータを設定しないでください。

stop_on_error

値がFALSEの場合(デフォルト)、競合などのエラーが発生しても処理が続行されます。値がTRUEの場合、接続先サイトでのエラーの発生が最初に指摘されたときに伝播を中止します。

注意: stop_on_errorTRUEに設定され、parallelismパラメータが0(ゼロ)より大きい場合、トランザクションは、エラーの発生後も一定期間伝播および適用されます。

write_trace

値がTRUEの場合、ファンクションから戻された結果値が、サーバーのトレース・ファイルに記録されます。値がFALSEに設定されている場合は、結果値が記録されません。

startup_seconds

同じ接続先への前のプッシュを待つ最大秒数です。

execution_seconds

値が0(ゼロ)より大きい場合、指定された実秒数後に、プッシュが完全に停止します。transaction_countおよびexecution_secondsが0(ゼロ)の場合(デフォルト)、キューにトランザクションがなくなるまで、トランザクションが実行されます。

execution_secondsパラメータは、操作が開始可能な期間のみを制御します。リモート・サイトのトランザクションに必要な時間は含まれません。したがって、execution_secondsパラメータは、リモート・サイトへのトランザクションの伝播を正確に制御して停止するためのものではありません。正確に制御する必要がある場合は、transaction_countまたはdelivery_orderパラメータを使用します。

delay_seconds

キューが空でも、指定された秒数が経過するまでプッシュは終了しません。タイトなループからPUSHがコールされるとき、実行オーバーヘッドを縮小するのに便利です。

transaction_count

値が0(ゼロ)より大きい場合、トランザクションの最大数のプッシュ後に停止します。transaction_countおよびexecution_secondsが0(ゼロ)の場合(デフォルト)、キューにプッシュの必要なトランザクションがなくなるまで、トランザクションが実行されます。

delivery_order_limit

delivery_orderdelivery_order_limit以上であるトランザクションのプッシュ前に、実行が完全に停止します。


戻り値

表14-22 PUSHファンクションの戻り値

説明
result_ok

OKです。delay_secondsの経過後に終了しました。

result_startup_seconds

スタート時にロック・タイムアウトにより終了しました。

result_execution_seconds

execution_secondsの超過により終了しました。

result_transaction_count

transaction_countの超過により終了しました。

result_delivery_order_limit

delivery_order_limitの超過により終了しました。

result_errors

エラー発生後に終了しました。

result_push_disabled

PUSHが内部で使用禁止になりました。通常はこの戻り値は、マスター・グループを静止せずにマスター・グループに新しいマスター・サイトを追加するとき、伝播同期のため、接続先への伝播が内部で使用禁止に設定されたことを意味します。伝播はのちに自動的に使用可能になります。

result_split_del_order_limit

排他モードでエンキューの取得の失敗後に終了しました。このリターン・コードが戻された場合は、プッシュを再試行してください。問題が解決しない場合は、Oracleサポート・サービスまでお問い合せください。


例外

表14-23 PUSHファンクションの例外

例外 説明
incompleteparallelpush

シリアル伝播を実行するには、パラレル伝播を完全に停止する必要があります。

executiondisabled

遅延リモート・プロシージャ・コール(RPC)の実行が、接続先で使用禁止になっています。

crt_err_err

DEFERRORにエントリを作成中、エラーが発生しました。

deferred_rpc_quiesce

レプリケーション・グループのレプリケーション・アクティビティが中断されました。

commfailure

遅延リモート・プロシージャ・コール(RPC)中に通信障害が発生しました。

missingpropagator

プロパゲータが存在しません。


REGISTER_PROPAGATORプロシージャ

このプロシージャは、指定されたユーザーをローカル・データベースのプロパゲータとして登録します。また、指定されたユーザーに(ユーザーがラッパーを作成できるように)次の権限を付与します。

  • CREATE SESSION

  • CREATE PROCEDURE

  • CREATE DATABASE LINK

  • EXECUTE ANY PROCEDURE

構文

DBMS_DEFER_SYS.REGISTER_PROPAGATOR (
   username  IN  VARCHAR2);

パラメータ

表14-24 REGISTER_PROPAGATORプロシージャのパラメータ

パラメータ 説明
username

ユーザー名です。


例外

表14-25 REGISTER_PROPAGATORプロシージャの例外

例外 説明
missinguser

指定されたユーザーは存在しません。

alreadypropagator

指定されたユーザーはすでにプロパゲータとして登録されています。

duplicatepropagator

他のプロパゲータがすでに登録されています。


SCHEDULE_PURGEプロシージャ

このプロシージャは、カレント・マスター・サイトまたはマテリアライズド・ビュー・サイトの遅延トランザクション・キューから、プッシュされたトランザクションのパージ・ジョブをスケジュールします。1つのパージ・ジョブをスケジュールする必要があります。


関連項目:

このプロシージャを使用した、遅延トランザクション・キューの連続的または定期的なパージのスケジュールの詳細は、『Oracle Databaseアドバンスト・レプリケーション』を参照してください。

構文

DBMS_DEFER_SYS.SCHEDULE_PURGE (
   interval             IN  VARCHAR2,
   next_date            IN  DATE,
   reset                IN  BOOLEAN        := NULL,
   purge_method         IN  BINARY_INTEGER := NULL,
   rollback_segment     IN  VARCHAR2       := NULL,
   startup_seconds      IN  BINARY_INTEGER := NULL,
   execution_seconds    IN  BINARY_INTEGER := NULL,
   delay_seconds        IN  BINARY_INTEGER := NULL,
   transaction_count    IN  BINARY_INTEGER := NULL,
   write_trace          IN  BOOLEAN        := NULL);

パラメータ

表14-26 SCHEDULE_PURGEプロシージャのパラメータ

パラメータ 説明
interval

次のパージの時間を計算するファンクションを指定できます。値はDEFSCHEDULEビューのintervalフィールドに格納され、このビューのnext_dateフィールドの計算に使用します。このパラメータのデフォルト値NULLを使用した場合、このフィールドの値は変更されません。このフィールドに既存の値が設定されていない場合は、NULLで作成されます。このフィールドに値を設定しない場合は、next_dateに値を設定する必要があります。

next_date

サイトのキューから、プッシュされたトランザクションをパージする時間を指定できます。値はDEFSCHEDULEビューのnext_dateフィールドに格納されます。このパラメータのデフォルト値NULLを使用した場合、このフィールドの値は変更されません。このフィールドに既存の値が入っていない場合は、NULLで作成されます。このフィールドに値を設定しない場合は、intervalに値を設定する必要があります。

reset

TRUEに設定すると、LAST_TXN_COUNTLAST_ERRORおよびLAST_MSGNULLに設定されます。

purge_method

遅延トランザクション・キューのパージ方法を制御します。purge_method_quickはコストを低く抑えられますが、purge_method_preciseの方が精度が高くなります。

purge_method_quickを使用するには、次のように指定します。

dbms_defer_sys.purge_method_quick

purge_method_preciseを使用するには、次のように指定します。

dbms_defer_sys.purge_method_precise

purge_method_quickを使用する場合は、正常にプッシュされた遅延トランザクションおよび遅延プロシージャ・コールが、パージされるまで、それぞれDEFTRANおよびDEFCALLデータ・ディクショナリ・ビューに予想以上に長時間保持されることがあります。詳細は、「使用上の注意」を参照してください。これらの使用方法はDBMS_DEFER_SYS.PURGEファンクションに関するものですが、DBMS_DEFER_SYS.SCHEDULE_PURGEプロシージャにも適用可能です。

rollback_segment

パージに使用するロールバック・セグメントの名前、またはデフォルトのNULLです。

startup_seconds

同じ遅延トランザクション・キューの前のパージを待つ最大秒数です。

execution_seconds

値が0(ゼロ)より大きい場合、指定された実秒数後に、パージが完全に停止します。

delay_seconds

delay_secondsの間、遅延トランザクション・キューにパージするトランザクションがなくなると、パージが完全に停止します。

transaction_count

値が0(ゼロ)より大きい場合、transaction_countの数だけトランザクションがパージされると、完全に停止します。

write_trace

値がTRUEに設定されている場合、PURGEファンクションから戻された結果値が、サーバーのトレース・ファイルに記録されます。


SCHEDULE_PUSHプロシージャ

このプロシージャは、遅延トランザクション・キューをリモート・サイトにプッシュするジョブをスケジュールします。このプロシージャではCOMMITが実行されます。


関連項目:

このプロシージャを使用した、遅延トランザクション・キューの連続的または定期的なプッシュのスケジュールの詳細は、『Oracle Databaseアドバンスト・レプリケーション』を参照してください。

構文

DBMS_DEFER_SYS.SCHEDULE_PUSH (
   destination          IN  VARCHAR2,
   interval             IN  VARCHAR2,
   next_date            IN  DATE,
   reset                IN  BOOLEAN        := FALSE,
   parallelism          IN  BINARY_INTEGER := NULL,
   heap_size            IN  BINARY_INTEGER := NULL,
   stop_on_error        IN  BOOLEAN        := NULL,
   write_trace          IN  BOOLEAN        := NULL,
   startup_seconds      IN  BINARY_INTEGER := NULL,
   execution_seconds    IN  BINARY_INTEGER := NULL,
   delay_seconds        IN  BINARY_INTEGER := NULL,
   transaction_count    IN  BINARY_INTEGER := NULL);

パラメータ

表14-27 SCHEDULE_PUSHプロシージャのパラメータ

パラメータ 説明
destination

変更を転送するマスター・サイトまたはマテリアライズド・ビュー・サイトの、完全修飾されたデータベース名です。

interval

次のプッシュの時間を計算するファンクションを指定できます。値はDEFSCHEDULEビューのintervalフィールドに格納され、このビューのnext_dateフィールドの計算に使用します。このパラメータのデフォルト値NULLを使用した場合、このフィールドの値は変更されません。このフィールドに既存の値が設定されていない場合は、NULLで作成されます。このフィールドに値を設定しない場合は、next_dateに値を設定する必要があります。

next_date

遅延トランザクションをリモート・サイトにプッシュする時間を指定できます。値はDEFSCHEDULEビューのnext_dateフィールドに格納されます。このパラメータのデフォルト値NULLを使用した場合、このフィールドの値は変更されません。このフィールドに既存の値が設定されていない場合は、NULLで作成されます。このフィールドに値を設定しない場合は、intervalに値を設定する必要があります。

reset

TRUEに設定すると、LAST_TXN_COUNTLST_ERRORおよびLAST_MSGNULLに設定されます。

parallelism

0(ゼロ)はシリアル伝播を指定します。

n > 1は、n個のパラレル処理のパラレル伝播を指定します。

1は、パラレル処理を1つのみ使用するパラレル伝播を指定します。

heap_size

パラレル伝播スケジュールのために同時に検査されるトランザクションの最大数です。最適なパフォーマンスを実現するデフォルト値が、自動的に計算されます。

注意: Oracleサポート・サービスから指示された場合を除き、パラメータを設定しないでください。

stop_on_error

値がFALSEの場合(デフォルト)、競合などのエラーが発生しても処理が続行されます。値がTRUEの場合、接続先サイトでのエラーの発生が最初に指摘されたときに伝播を中止します。

注意: stop_on_errorTRUEに設定され、parallelismパラメータが0(ゼロ)より大きい場合、トランザクションは、エラーの発生後も一定期間伝播および適用されます。

write_trace

値がTRUEの場合、ファンクションから戻された結果値が、サーバーのトレース・ファイルに記録されます。

startup_seconds

同じ接続先への前のプッシュを待つ最大秒数です。

execution_seconds

値が0(ゼロ)より大きい場合、指定された実秒数後に、実行が完全に停止します。transaction_countおよびexecution_secondsが0(ゼロ)の場合(デフォルト)、キューにトランザクションがなくなるまで、トランザクションが実行されます。

delay_seconds

キューが空でも、指定された秒数が経過するまでプッシュは終了しません。タイトなループからPUSHがコールされるとき、実行オーバーヘッドを縮小するのに便利です。

transaction_count

値が0(ゼロ)より大きい場合、トランザクションの最大数のプッシュ後に停止します。transaction_countおよびexecution_secondsが0(ゼロ)の場合(デフォルト)、キューにプッシュの必要なトランザクションがなくなるまで、トランザクションが実行されます。


SET_DISABLEDプロシージャ

カレント・サイトから指定された接続先サイトへの、遅延トランザクション・キューの伝播が使用禁止あるいは使用可能にされます。disabledパラメータがTRUEの場合、指定された接続先への伝播が使用禁止になり、PUSHが呼び出されても遅延リモート・プロシージャ・コール(RPC)キューがプッシュされなくなります。SET_DISABLEDは、指定された接続先へキューをすでにプッシュしているセッションには適用されますが、DBMS_DEFERでキューに追加されているセッションには適用されません。

disabledパラメータがFALSEの場合、指定された接続先への伝播が有効になり、キューはプッシュされませんが、PUSHの呼出しによる指定された接続先へのキューのプッシュが可能になります。disabledパラメータがTRUEFALSEかに関係なく、設定が他のセッションにも適用されるようにするには、COMMITが必要です。

構文

DBMS_DEFER_SYS.SET_DISABLED (
   destination   IN   VARCHAR2,
   disabled      IN   BOOLEAN := TRUE,
   catchup       IN   RAW := '00',
   override      IN   BOOLEAN := FALSE);

パラメータ

表14-28 SET_DISABLEDプロシージャのパラメータ

パラメータ 説明
destination

伝播ステータスを変更するノードの、完全修飾されたデータベース名です。

disabled

デフォルトでは、このパラメータによって、カレント・サイトから指定された接続先への遅延トランザクション・キューの伝播が使用禁止になります。値をFALSEに設定すると、伝播が有効になります。

catchup

マスター・グループを静止せずに新しいマスター・サイトをマスター・グループに追加するための、拡張識別子です。新しいマスター・サイトが接続先です。DEFSCHEDULEデータ・ディクショナリ・ビューの問合せを行い、既存の拡張識別子を検索します。

override

デフォルトのFALSE設定では、disabledパラメータがFALSEに設定されており、Oracle内部で伝播が使用禁止になった場合、cantsetdisabled例外が呼び出されます。

TRUE設定では、同期のために内部で伝播の使用禁止状態が設定されたかどうかは無視され、常にdisabledパラメータの指定どおりの状態の設定が行われます。

注意: Oracleサポート・サービスから指示された場合を除き、このパラメータを設定しないでください。


例外

表14-29 SET_DISABLEDプロシージャの例外

例外 説明
NO_DATA_FOUND

指定されたdestinationDEFSCHEDULEビューには、エントリが見つかりませんでした。

cantsetdisabled

マスター・グループを静止せずにマスター・グループに新しいマスター・サイトを追加している間に、このサイトの使用禁止ステータスは、同期をとるために内部で設定されます。このプロシージャを呼び出す前に、静止しないで新しいマスター・サイトの追加が完了したことを確認してください。


UNREGISTER_PROPAGATORプロシージャ

プロパゲータとしてのユーザーの登録を、ローカル・データベースから削除します。このプロシージャでは、次の処理が行われます。

  • 指定されたプロパゲータがDEFPROPAGATORから削除されます。

  • REGISTER_PROPAGATORによってユーザーに付与された権限が取り消されます。別個に付与された同一の権限も取り消されます。

  • 指定されたプロパゲータのスキーマ内に生成されたラッパーが削除されます。削除されたラッパーには、レプリケーション・カタログで削除済のマークが付けられます。

構文

DBMS_DEFER_SYS.UNREGISTER_PROPAGATOR (
   username  IN  VARCHAR2
   timeout   IN  INTEGER DEFAULT DBMS_LOCK.MAXWAIT);

パラメータ

表14-30 UNREGISTER_PROPAGATORプロシージャのパラメータ

パラメータ 説明
username

プロパゲータ・ユーザーの名前です。

timeout

タイムアウトを秒で設定します。プロパゲータが稼働中の場合、プロシージャはタイムアウトで指定された時間が経過するまで待機します。デフォルトはDBMS_LOCK.MAXWAITです。


例外

表14-31 UNREGISTER_PROPAGATORプロシージャの例外

パラメータ 説明
missingpropagator

指定されたユーザーはプロパゲータではありません。

propagator_inuse

プロパゲータが稼働中のため、登録を削除できません。後で再度実行してください。


UNSCHEDULE_PURGEプロシージャ

このプロシージャは、マスター・サイトまたはマテリアライズド・ビュー・サイトの遅延トランザクション・キューからの、プッシュされたトランザクションの自動パージを中止します。

構文

DBMS_DEFER_SYS.UNSCHEDULE_PURGE();

パラメータ

なし

UNSCHEDULE_PUSHプロシージャ

このプロシージャは、マスター・サイトまたはマテリアライズド・ビュー・サイトからリモート・サイトへの、遅延トランザクション・キューの自動プッシュを中止します。

構文

DBMS_DEFER_SYS.UNSCHEDULE_PUSH (
   dblink   IN   VARCHAR2);

パラメータ

表14-32 UNSCHEDULE_PUSHプロシージャのパラメータ

パラメータ 説明
dblink

遅延リモート・プロシージャ・コールの定期的な実行スケジュールを変更するデータベースの、完全修飾されたパス名です。


例外

表14-33 UNSCHEDULE_PUSHプロシージャの例外

例外 説明
NO_DATA_FOUND

指定されたdblinkDEFSCHEDULEビューには、エントリが見つかりませんでした。