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

前
 
次
 

17 DBMS_REFRESH

DBMS_REFRESHにより、リフレッシュを一括して行えるマテリアライズド・ビューのグループを作成し、ある一時点において、整合性のある変換が行えるようになります。

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

DBMS_REFRESHサブプログラムの概要

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

サブプログラム 説明

「ADDプロシージャ」


マテリアライズド・ビューをリフレッシュ・グループに追加します。

「CHANGEプロシージャ」


リフレッシュ・グループのリフレッシュ間隔を変更します。

「DESTROYプロシージャ」


リフレッシュ・グループからすべてのマテリアライズド・ビューを削除し、リフレッシュ・グループを削除します。

「MAKEプロシージャ」


リフレッシュ・グループ・メンバー、およびこのグループ・メンバーをリフレッシュする間隔を指定します。

「REFRESHプロシージャ」


リフレッシュ・グループを手動でリフレッシュします。

「SUBTRACTプロシージャ」


マテリアライズド・ビューをリフレッシュ・グループから削除します。


ADDプロシージャ

このプロシージャは、マテリアライズド・ビューをリフレッシュ・グループに追加します。


関連項目:

詳細は、手順6「オブジェクトをリフレッシュ・グループに追加します。」および『Oracle Databaseアドバンスト・レプリケーション』を参照してください。

構文

DBMS_REFRESH.ADD (
   name     IN VARCHAR2,
   { list   IN VARCHAR2, 
   | tab    IN DBMS_UTILITY.UNCL_ARRAY, }
   lax      IN BOOLEAN := FALSE);

注意:

このプロシージャはオーバーロードされています。listパラメータとtabパラメータは、同時には指定できません。

パラメータ

表17-2 ADDプロシージャのパラメータ

パラメータ 説明
name

[schema_name.]refresh_group_nameと指定された、メンバーを追加するリフレッシュ・グループの名前です。スキーマを指定しない場合は、現行のユーザー名がデフォルトで使用されます。

list

リフレッシュ・グループに追加するマテリアライズド・ビューの、カンマ区切りのリストです。シノニムはサポートされていません。

各マテリアライズド・ビューは、[schema_name.]materialized_view_nameと指定されています。スキーマを指定しない場合は、リフレッシュ・グループの所有者がデフォルトで使用されます。

tab

カンマ区切りのリストのかわりに、DBMS_UTILITY.UNCL_ARRAYタイプのPL/SQL連想配列を使用でき、この表の各要素は、マテリアライズド・ビューの名前になります。最初のマテリアライズド・ビューは1の位置に置かれます。最後の位置はNULLになります。

各マテリアライズド・ビューは、[schema_name.]materialized_view_nameと指定されています。スキーマを指定しない場合は、リフレッシュ・グループの所有者がデフォルトで使用されます。

lax

マテリアライズド・ビューは、一度に1つのリフレッシュ・グループのみに所属できます。マテリアライズド・ビューを他のグループに移動する場合は、laxフラグをTRUEに設定する必要があります。マテリアライズド・ビューは自動的に移動され、移動先のグループのリフレッシュ間隔が適用されます。そうでない場合は、ADDのコールでエラー・メッセージが生成されます。


CHANGEプロシージャ

このプロシージャは、リフレッシュ・グループのリフレッシュ間隔を変更します。


関連項目:

リフレッシュ・グループの詳細は、『Oracle Databaseアドバンスト・レプリケーション』を参照してください。

構文

DBMS_REFRESH.CHANGE (
   name                  IN VARCHAR2,
   next_date             IN DATE           := NULL,
   interval              IN VARCHAR2       := NULL,
   implicit_destroy      IN BOOLEAN        := NULL,
   rollback_seg          IN VARCHAR2       := NULL,
   push_deferred_rpc     IN BOOLEAN        := NULL,
   refresh_after_errors  IN BOOLEAN        := NULL,
   purge_option          IN BINARY_INTEGER := NULL,
   parallelism           IN BINARY_INTEGER := NULL,
   heap_size             IN BINARY_INTEGER := NULL);

パラメータ

表17-3 CHANGEプロシージャのパラメータ

パラメータ 説明
name

リフレッシュ間隔を変更するリフレッシュ・グループの名前です。

next_date

次にリフレッシュを行う日付です。デフォルトでは、この日付は変更されません。

interval

このファンクションを使用して、リフレッシュ・グループ内のマテリアライズド・ビューを次にリフレッシュするタイミングが計算されます。intervalは、リフレッシュの直前に評価されます。したがって、リフレッシュにかかる時間より長い間隔を選択します。デフォルトでは、intervalは変更されません。

implicit_destroy

implicit_destroyフラグの値をリセットできます。このフラグが設定されている場合、グループにメンバーが存在しなくなると、そのグループが自動的に削除されます。デフォルトでは、このフラグは変更されません。

rollback_seg

使用するロールバック・セグメントを変更できます。デフォルトでは、ロールバック・セグメントは変更されません。このパラメータをリセットしてデフォルトのロールバック・セグメントを使用するには、引用符を含めてNULLを指定します。引用符を含めずにNULLを指定すると、現在使用しているロールバック・セグメントが変更されません。

push_deferred_rpc

更新可能なマテリアライズド・ビューのみで使用します。マテリアライズド・ビューをリフレッシュする前に、マテリアライズド・ビューから対応付けられたマスター表またはマスター・マテリアライズド・ビューに変更をプッシュする場合は、このパラメータをTRUEに設定します。そうしない場合、変更が一時的に失われたように見えることがあります。デフォルトでは、このフラグは変更されません。

refresh_after_errors

更新可能なマテリアライズド・ビューのみで使用します。マテリアライズド・ビューのマスター表またはマスター・マテリアライズド・ビューのDEFERRORビューに、未解決の競合がログインされていてもリフレッシュを行う場合は、このパラメータをTRUEに設定します。デフォルトでは、このフラグは変更されません。

purge_option

パラレル伝播メカニズムを使用している場合(すなわちparallelismが1以上に設定されている場合)、このパラメータは次のようになります。

  • 0 =パージなし

  • 1 =レイジー・パージ(デフォルト)

  • 2 =アグレッシブ・パージ

ほとんどの場合、レイジー・パージが最適な設定になります。複数マスター・レプリケーション・グループが異なるターゲット・サイトにプッシュされ、1つ以上のレプリケーション・グループに対する更新が不定期に行われるか不定期にプッシュされる場合は、アグレッシブ・パージに設定してキューを少なくします。すべてのレプリケーション・グループへの更新と送信がまれな場合は、パージをパージなしに設定し、キューを減らすためにパージをアグレッシブに設定して時々PUSHを実行してください。

parallelism

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

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

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

heap_size

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

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


DESTROYプロシージャ

このプロシージャは、リフレッシュ・グループからすべてのマテリアライズド・ビューを削除して、リフレッシュ・グループを削除します。


関連項目:

リフレッシュ・グループの詳細は、『Oracle Databaseアドバンスト・レプリケーション』を参照してください。

構文

DBMS_REFRESH.DESTROY (
   name   IN   VARCHAR2);

パラメータ

表17-4 DESTROYプロシージャのパラメータ

パラメータ 説明
name

破棄するリフレッシュ・グループの名前です。


MAKEプロシージャ

このプロシージャは、リフレッシュ・グループ・メンバー、およびこのグループ・メンバーをリフレッシュする間隔を指定します。


関連項目:

詳細は、手順4「リフレッシュ・グループを作成します。」および『Oracle Databaseアドバンスト・レプリケーション』を参照してください。

構文

DBMS_REFRESH.MAKE (
   name                  IN    VARCHAR2
   { list                IN    VARCHAR2,
   | tab                 IN    DBMS_UTILITY.UNCL_ARRAY,}
   next_date             IN    DATE,
   interval              IN    VARCHAR2,
   implicit_destroy      IN    BOOLEAN         := FALSE,
   lax                   IN    BOOLEAN         := FALSE,
   job                   IN    BINARY_INTEGER  := 0,
   rollback_seg          IN    VARCHAR2        := NULL,
   push_deferred_rpc     IN    BOOLEAN         := TRUE,
   refresh_after_errors  IN    BOOLEAN         := FALSE
   purge_option          IN    BINARY_INTEGER  := NULL,
   parallelism           IN    BINARY_INTEGER  := NULL,
   heap_size             IN    BINARY_INTEGER  := NULL);

注意:

このプロシージャはオーバーロードされています。listパラメータとtabパラメータは、同時には指定できません。

パラメータ

表17-5 MAKEプロシージャのパラメータ

パラメータ 説明
name

[schema_name.]refresh_group_nameと指定された、リフレッシュ・グループの識別に使用される一意の名前です。スキーマを指定しない場合は、現行のユーザー名がデフォルトで使用されます。リフレッシュ・グループは、表と同じ命名規則に従って名前付けをします。

list

リフレッシュするマテリアライズド・ビューの、カンマ区切りのリストです。シノニムはサポートされていません。これらのマテリアライズド・ビューは、異なるスキーマに置くことができ、また異なるマスター表またはマスター・マテリアライズド・ビューを持つことができます。ただし、すべてのマテリアライズド・ビューが、カレント・データベース内に存在する必要があります。

各マテリアライズド・ビューは、[schema_name.]materialized_view_nameと指定されています。スキーマを指定しない場合は、リフレッシュ・グループの所有者がデフォルトで使用されます。

tab

カンマ区切りのリストのかわりに、DBMS_UTILITY.UNCL_ARRAYデータ型を使用したPL/SQL連想配列で、リフレッシュするマテリアライズド・ビューの名前を指定できます。表にマテリアライズド・ビュー名がn個ある場合、最初のマテリアライズド・ビューは1の位置に置かれ、n + 1の位置はNULLに設定されます。

各マテリアライズド・ビューは、[schema_name.]materialized_view_nameと指定されています。スキーマを指定しない場合は、リフレッシュ・グループの所有者がデフォルトで使用されます。

next_date

次にリフレッシュを行う日付です。

interval

このファンクションを使用して、グループ内のマテリアライズド・ビューを次にリフレッシュするタイミングが計算されます。このフィールドは、next_date値とともに使用します。

たとえば、intervalにNEXT_DAY(SYSDATE+1, "MONDAY")を指定した場合、next_dateが月曜と評価されると、毎週月曜日にマテリアライズド・ビューがリフレッシュされます。intervalは、リフレッシュの直前に評価されます。したがって、リフレッシュにかかる時間より長い間隔を選択します。

implicit_destroy

リフレッシュ・グループにメンバーが存在しなくなったとき、リフレッシュ・グループを自動的に削除するには、このパラメータをTRUEに設定します。このフラグは、SUBTRACTプロシージャがコールされたときのみにチェックされます。つまり、このフラグが設定されていても、空のリフレッシュ・グループを作成できます。

lax

マテリアライズド・ビューは、一度に1つのリフレッシュ・グループのみに所属できます。マテリアライズド・ビューを既存のグループから新しいリフレッシュ・グループに移動する場合は、このパラメータをTRUEに設定する必要があります。マテリアライズド・ビューは自動的に移動され、移動先のグループのリフレッシュ間隔が適用されます。そうでない場合は、MAKEのコールでエラー・メッセージが生成されます。

job

インポート・ユーティリティで必要です。デフォルトの0(ゼロ)を使用してください。

rollback_seg

マテリアライズド・ビューのリフレッシュ時に使用するロールバック・セグメントの名前です。デフォルトのNULLの場合、デフォルトのロールバック・セグメントが使用されます。

push_deferred_rpc

更新可能なマテリアライズド・ビューのみで使用します。マテリアライズド・ビューをリフレッシュする前に、対応付けられたマスター表またはマスター・マテリアライズド・ビューに、マテリアライズド・ビューから変更をプッシュする場合は、デフォルト値TRUEを使用します。そうしない場合、変更が一時的に失われたように見えることがあります。

refresh_after_errors

更新可能なマテリアライズド・ビューのみで使用します。マテリアライズド・ビューのマスター表またはマスター・マテリアライズド・ビューのDEFERRORビューに、未解決の競合がログインされていてもリフレッシュを行う場合は、このパラメータを0(ゼロ)に設定します。

purge_option

パラレル伝播メカニズムを使用している場合(すなわちparallelismが1以上に設定されている場合)、0はパージなし、1はレイジー・パージ(デフォルト)、2はアグレッシブ・パージになります。ほとんどの場合、レイジー・パージが最適な設定になります。

複数マスター・レプリケーション・グループが異なるターゲット・サイトにプッシュされ、1つ以上のレプリケーション・グループに対する更新が不定期に行われるか不定期にプッシュされる場合は、アグレッシブ・パージに設定してキューを少なくします。すべてのレプリケーション・グループへの更新と送信がまれな場合は、パージをパージなしに設定し、キューを減らすためにパージをアグレッシブに設定して時々PUSHを実行してください。

parallelism

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

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

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

heap_size

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

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


REFRESHプロシージャ

このプロシージャは、リフレッシュ・グループを手動でリフレッシュします。


関連項目:

リフレッシュ・グループの詳細は、『Oracle Databaseアドバンスト・レプリケーション』を参照してください。

構文

DBMS_REFRESH.REFRESH (
   name   IN    VARCHAR2);

パラメータ

表17-6 REFRESHプロシージャのパラメータ

パラメータ 説明
name

手動でリフレッシュするリフレッシュ・グループの名前です。


SUBTRACTプロシージャ

このプロシージャは、マテリアライズド・ビューをリフレッシュ・グループから削除します。


関連項目:

リフレッシュ・グループの詳細は、『Oracle Databaseアドバンスト・レプリケーション』を参照してください。

構文

DBMS_REFRESH.SUBTRACT (
   name      IN    VARCHAR2,
   { list    IN    VARCHAR2,
   | tab     IN    DBMS_UTILITY.UNCL_ARRAY, }
   lax       IN    BOOLEAN := FALSE);

注意:

このプロシージャはオーバーロードされています。listパラメータとtabパラメータは、同時には指定できません。

パラメータ

表17-7 SUBTRACTプロシージャのパラメータ

パラメータ 説明
name

メンバーを削除するリフレッシュ・グループの名前です。

list

リフレッシュ・グループから削除するマテリアライズド・ビューの、カンマ区切りのリストです。(シノニムはサポートされていません。)これらのマテリアライズド・ビューは、異なるスキーマに置くことができ、また異なるマスター表またはマスター・マテリアライズド・ビューを持つことができます。ただし、すべてのマテリアライズド・ビューが、カレント・データベース内に存在する必要があります。

tab

カンマ区切りのリストのかわりに、DBMS_UTILITY.UNCL_ARRAYデータ型を使用したPL/SQL連想配列で、リフレッシュするマテリアライズド・ビューの名前を指定できます。表にマテリアライズド・ビュー名がn個ある場合、最初のマテリアライズド・ビューは1の位置に置かれ、+ 1の位置はNULLに設定されます。

lax

リフレッシュ・グループ・メンバーではないマテリアライズド・ビューの削除を試みたときに、エラー・メッセージが生成されるようにするには、このパラメータをFALSEに設定します。