ヘッダーをスキップ
Oracle Streams概要および管理
11g リリース1(11.1)
E05775-02
  目次
目次
索引
索引

前へ
前へ
 
次へ
次へ
 

23 Oracle Streams暗黙的取得の監視

取得プロセス同期取得は両方とも暗黙的取得を実行します。

次の各項では、Oracle Streams暗黙的取得の監視について説明します。


注意:

Oracle Streams環境の監視には、Oracle Enterprise ManagerコンソールのOracle Streamsツールを使用する方法も適しています。詳細は、Oracle Database 2日でデータ・レプリケーションおよび統合ガイドおよびOracle Streamsツールのオンライン・ヘルプを参照してください。


関連項目:


取得プロセスの監視

この項では、Oracle Streamsの取得プロセスの監視に使用できる問合せの例を示します。

この項の内容は次のとおりです。

各取得プロセスのキュー、ルール・セットおよび状態の表示

この項で説明する問合せを実行すると、データベース内の各取得プロセスに関する情報を表示できます。

データベース内の各取得プロセスに関する一般情報を表示するには、次の問合せを実行します。

COLUMN CAPTURE_NAME HEADING 'Capture|Process|Name' FORMAT A15
COLUMN QUEUE_NAME HEADING 'Capture|Process|Queue' FORMAT A15
COLUMN RULE_SET_NAME HEADING 'Positive|Rule Set' FORMAT A15
COLUMN NEGATIVE_RULE_SET_NAME HEADING 'Negative|Rule Set' FORMAT A15
COLUMN STATUS HEADING 'Capture|Process|Status' FORMAT A15

SELECT CAPTURE_NAME, QUEUE_NAME, RULE_SET_NAME, NEGATIVE_RULE_SET_NAME, STATUS 
   FROM DBA_CAPTURE;

出力は次のようになります。

Capture         Capture                                         Capture
Process         Process         Positive        Negative        Process
Name            Queue           Rule Set        Rule Set        Status
--------------- --------------- --------------- --------------- ---------------
STRM01_CAPTURE  STREAMS_QUEUE   RULESET$_25     RULESET$_36     ENABLED

取得プロセスの状態がABORTEDの場合、DBA_CAPTUREデータ・ディクショナリ・ビューのERROR_NUMBERおよびERROR_MESSAGE列を問い合せると、エラーを特定できます。


関連項目:

取得プロセスがABORTEDの場合のエラー番号およびエラー・メッセージを表示する問合せの例は、「取得プロセスが有効かどうか」を参照

各取得プロセスに関する変更取得情報の表示

この項で説明する問合せを実行すると、データベース内の各取得プロセスに関する次の情報が表示されます。

  • 取得プロセスの名前。

  • プロセス番号CPnnnnは文字および数字)。

  • セッション識別子。

  • セッションのシリアル番号。

  • 取得プロセスの現在の状態。

    • INITIALIZING

    • WAITING FOR DICTONARY REDO

    • DICTIONARY INITIALIZATION

    • MINING

    • LOADING

    • CAPTURING CHANGES

    • WAITING FOR REDO

    • EVALUATING RULE

    • CREATING LCR

    • ENQUEUING MESSAGE

    • PAUSED FOR FLOW CONTROL

    • SHUTTING DOWN

  • 詳細なルール評価のためにLogMinerから取得プロセスに渡されたREDOエントリの合計数。取得プロセスでREDOエントリがメッセージに変換され、取得プロセスの事前フィルタ処理で変更を廃棄できない場合、メッセージの詳細なルール評価が行われます。

  • 取得プロセスが最後に起動されてからエンキューされたLCRの合計数。

データベースの各取得プロセスに関する前述の情報を表示するには、次の問合せを実行します。

COLUMN CAPTURE_NAME HEADING 'Capture|Name' FORMAT A7
COLUMN PROCESS_NAME HEADING 'Capture|Process|Number' FORMAT A7
COLUMN SID HEADING 'Session|ID' FORMAT 9999
COLUMN SERIAL# HEADING 'Session|Serial|Number' FORMAT 9999
COLUMN STATE HEADING 'State' FORMAT A20
COLUMN TOTAL_MESSAGES_CAPTURED HEADING 'Redo|Entries|Evaluated|In Detail' FORMAT 9999999
COLUMN TOTAL_MESSAGES_ENQUEUED HEADING 'Total|LCRs|Enqueued' FORMAT 9999999999

SELECT c.CAPTURE_NAME,
       SUBSTR(s.PROGRAM,INSTR(s.PROGRAM,'(')+1,4) PROCESS_NAME, 
       c.SID,
       c.SERIAL#, 
       c.STATE,
       c.TOTAL_MESSAGES_CAPTURED,
       c.TOTAL_MESSAGES_ENQUEUED 
  FROM V$STREAMS_CAPTURE c, V$SESSION s
  WHERE c.SID = s.SID AND
        c.SERIAL# = s.SERIAL#;

出力は次のようになります。

                                                          Redo
        Capture         Session                        Entries       Total
Capture Process Session  Serial                      Evaluated        LCRs
Name    Number       ID  Number State                In Detail    Enqueued
------- ------- ------- ------- -------------------- --------- -----------
CAPTURE CP01        954       3 CAPTURING CHANGES      3719085     3389713
_HNS

スキャンされたREDOエントリの数は、取得プロセスによって取得されたDMLおよびDDLのREDOエントリの数より多くなる場合があります。取得プロセスのルール・セットを満たすDMLおよびDDLのREDOエントリのみが取得され、取得プロセスのキューにエンキューされます。また、エンキューされたLCRの合計数には、トランザクション制御文を含むLCRも含まれます。これらの行LCRには、COMMITROLLBACKなどのディレクティブが含まれます。このため、エンキューされたLCRの合計数は、取得プロセスによってエンキューされた行変更およびDDL変更の数より多くなります。


関連項目:


各取得プロセスの状態変更およびメッセージ作成時刻の表示

この項で説明する問合せを実行すると、データベース内の各取得プロセスに関する次の情報が表示されます。

  • 取得プロセスの名前。

  • 取得プロセスの現在の状態。

    • INITIALIZING

    • WAITING FOR DICTONARY REDO

    • DICTIONARY INITIALIZATION

    • MINING

    • LOADING

    • CAPTURING CHANGES

    • WAITING FOR REDO

    • EVALUATING RULE

    • CREATING LCR

    • ENQUEUING MESSAGE

    • PAUSED FOR FLOW CONTROL

    • SHUTTING DOWN

  • 取得プロセスの状態が最後に変更された日時。

  • 取得プロセスで最後にLCRが作成された日時。

データベースの各取得プロセスに関する前述の情報を表示するには、次の問合せを実行します。

COLUMN CAPTURE_NAME HEADING 'Capture|Name' FORMAT A15
COLUMN STATE HEADING 'State' FORMAT A27
COLUMN STATE_CHANGED HEADING 'State|Change Time'
COLUMN CREATE_MESSAGE HEADING 'Last Message|Create Time'

SELECT CAPTURE_NAME,
       STATE,
       TO_CHAR(STATE_CHANGED_TIME, 'HH24:MI:SS MM/DD/YY') STATE_CHANGED,
       TO_CHAR(CAPTURE_MESSAGE_CREATE_TIME, 'HH24:MI:SS MM/DD/YY') CREATE_MESSAGE
  FROM V$STREAMS_CAPTURE;

出力は次のようになります。

Capture                                     State             Last Message
Name            State                       Change Time       Create Time
--------------- --------------------------- ----------------- -----------------
CAPTURE_SIMP    CAPTURING CHANGES           13:24:42 11/08/04 13:24:41 11/08/04

各取得プロセスの取得操作の実行経過時間の表示

この項で説明する問合せを実行すると、データベース内の各取得プロセスに関する次の情報が表示されます。

  • 取得プロセスの名前。

  • 取得の経過時間。取得プロセスが最後に起動されてから、REDOログ内の変更のスキャンにかかった時間(秒)を示します。

  • ルール評価の経過時間。取得プロセスが最後に起動されてから、ルール評価にかかった時間(秒)を示します。

  • エンキューの経過時間。取得プロセスが最後に起動されてから、メッセージのエンキューにかかった時間(秒)を示します。

  • LCR作成の経過時間。取得プロセスが最後に起動されてから、論理変更レコード(LCR)の作成にかかった時間(秒)を示します。

  • 停止の経過時間。取得プロセスが最後に起動されてから、フロー制御のために停止した時間(秒)を示します。


注意:

この問合せに関するすべての時間は秒単位で表示されます。デフォルトでは、V$STREAMS_CAPTUREビューには経過時間がセンチセカンドで表示されます。センチセカンドは、100分の1秒です。この項で説明する問合せを実行すると、各経過時間を100で割って、経過時間を秒単位で表示できます。

データベースの各取得プロセスに関する前述の情報を表示するには、次の問合せを実行します。

COLUMN CAPTURE_NAME HEADING 'Capture|Name' FORMAT A15
COLUMN ELAPSED_CAPTURE_TIME HEADING 'Elapsed|Capture|Time' FORMAT 99999999.99
COLUMN ELAPSED_RULE_TIME HEADING 'Elapsed|Rule|Evaluation|Time' FORMAT 99999999.99
COLUMN ELAPSED_ENQUEUE_TIME HEADING 'Elapsed|Enqueue|Time' FORMAT 99999999.99
COLUMN ELAPSED_LCR_TIME HEADING 'Elapsed|LCR|Creation|Time' FORMAT 99999999.99
COLUMN ELAPSED_PAUSE_TIME HEADING 'Elapsed|Pause|Time' FORMAT 99999999.99

SELECT CAPTURE_NAME,
       (ELAPSED_CAPTURE_TIME/100) ELAPSED_CAPTURE_TIME,
       (ELAPSED_RULE_TIME/100) ELAPSED_RULE_TIME,
       (ELAPSED_ENQUEUE_TIME/100) ELAPSED_ENQUEUE_TIME,
       (ELAPSED_LCR_TIME/100) ELAPSED_LCR_TIME,
       (ELAPSED_PAUSE_TIME/100) ELAPSED_PAUSE_TIME
  FROM V$STREAMS_CAPTURE;

出力は次のようになります。

                                  Elapsed                   Elapsed
                     Elapsed         Rule      Elapsed          LCR      Elapsed
Capture              Capture   Evaluation      Enqueue     Creation        Pause
Name                    Time         Time         Time         Time         Time
--------------- ------------ ------------ ------------ ------------ ------------
STM1$CAP             1213.92          .04        33.84       185.25       600.60

各ダウンストリーム取得プロセスに関する情報の表示

ダウンストリーム取得とは、ソース・データベース以外のデータベースで実行される取得プロセスのことです。この項で説明する問合せを実行すると、データベース内の各ダウンストリーム取得プロセスに関する次の情報を表示できます。

  • 取得プロセスの名前

  • 取得プロセスで取得された変更のソース・データベース

  • 取得プロセスで使用されるキューの名前

  • 取得プロセスの状態(ENABLEDDISABLEDまたはABORTED

  • ダウンストリーム取得プロセスで、ソース・データベースへのデータベース・リンクを使用して管理アクションを実行するかどうか

データベース内の各ダウンストリーム取得プロセスに関する前述の情報を表示するには、次の問合せを実行します。

COLUMN CAPTURE_NAME HEADING 'Capture|Process|Name' FORMAT A15
COLUMN SOURCE_DATABASE HEADING 'Source|Database' FORMAT A15
COLUMN QUEUE_NAME HEADING 'Capture|Process|Queue' FORMAT A15
COLUMN STATUS HEADING 'Capture|Process|Status' FORMAT A15
COLUMN USE_DATABASE_LINK HEADING 'Uses|Database|Link?' FORMAT A8

SELECT CAPTURE_NAME, 
       SOURCE_DATABASE, 
       QUEUE_NAME, 
       STATUS, 
       USE_DATABASE_LINK
   FROM DBA_CAPTURE
   WHERE CAPTURE_TYPE = 'DOWNSTREAM';

出力は次のようになります。

Capture                              Capture         Capture         Uses
Process         Source               Process         Process         Database
Name            Database             Queue           Status          Link?
--------------- -------------------- --------------- --------------- --------
STRM03_CAPTURE  DBS1.EXAMPLE.COM     STRM03_QUEUE    ENABLED         YES

この場合、取得プロセスのソース・データベースはdbs1.example.comですが、取得プロセスを実行しているローカル・データベースはdbs1.example.comではありません。また、この問合せで戻される取得プロセスでは、ソース・データベースへのデータベース・リンクを使用して管理アクションを実行します。データベース・リンクの名前は、ソース・データベースのグローバル名(この場合はdbs1.example.com)と同じです。

取得プロセスの状態がABORTEDの場合、DBA_CAPTUREデータ・ディクショナリ・ビューのERROR_NUMBERおよびERROR_MESSAGE列を問い合せると、エラーを特定できます。


注意:

Oracle Streamsダウンストリーム取得プロセスのソース・データベースでは、V$ARCHIVE_DEST_STATUSビューを問い合せてダウンストリーム・データベースに関する情報を表示できます。このビューの次の列がダウンストリーム・データベースに関連しています。
  • REDOログ情報がダウンストリーム取得データベースに送信されている場合は、TYPE列にDOWNSTREAMが表示されます。

  • DESTINATION列には、ダウンストリーム取得データベースの名前が表示されます。



関連項目:


各取得プロセスの登録済REDOログ・ファイルの表示

この項で説明する問合せを実行すると、データベース内の各取得プロセスの登録済アーカイブREDOログ・ファイルに関する情報を表示できます。この問合せによって、ローカル取得プロセスおよびダウンストリーム取得プロセスのこれらのファイルに関する情報が表示されます。

この問合せでは、各登録済アーカイブREDOログ・ファイルに関する次の情報が表示されます。

  • ファイルを使用する取得プロセスの名前

  • ファイルのソース・データベース

  • ファイルの順序番号

  • ローカル・サイトでのファイルの名前および場所

  • ファイルにデータ・ディクショナリ・ビルドの最初の部分が含まれているかどうか

  • ファイルにデータ・ディクショナリ・ビルドの最後の部分が含まれているかどうか

データベースの各登録済アーカイブREDOログ・ファイルに関する前述の情報を表示するには、次の問合せを実行します。

COLUMN CONSUMER_NAME HEADING 'Capture|Process|Name' FORMAT A15
COLUMN SOURCE_DATABASE HEADING 'Source|Database' FORMAT A10
COLUMN SEQUENCE# HEADING 'Sequence|Number' FORMAT 99999
COLUMN NAME HEADING 'Archived Redo Log|File Name' FORMAT A20
COLUMN DICTIONARY_BEGIN HEADING 'Dictionary|Build|Begin' FORMAT A10
COLUMN DICTIONARY_END HEADING 'Dictionary|Build|End' FORMAT A10

SELECT r.CONSUMER_NAME,
       r.SOURCE_DATABASE,
       r.SEQUENCE#, 
       r.NAME, 
       r.DICTIONARY_BEGIN, 
       r.DICTIONARY_END 
  FROM DBA_REGISTERED_ARCHIVED_LOG r, DBA_CAPTURE c
  WHERE r.CONSUMER_NAME = c.CAPTURE_NAME;  

出力は次のようになります。

Capture                                                  Dictionary Dictionary
Process         Source     Sequence Archived Redo Log    Build      Build
Name            Database     Number File Name            Begin      End
--------------- ---------- -------- -------------------- ---------- ----------
STRM02_CAPTURE  DBS2.EXAMP       15 /orc/dbs/log/arch2_1 NO         NO
                LE.COM              _15_478347508.arc
STRM02_CAPTURE  DBS2.EXAMP       16 /orc/dbs/log/arch2_1 NO         NO
                LE.COM              _16_478347508.arc 
STRM03_CAPTURE  DBS1.EXAMP       45 /remote_logs/arch1_1 YES        YES
                LE.COM              _45_478347335.arc
STRM03_CAPTURE  DBS1.EXAMP       46 /remote_logs/arch1_1 NO         NO
                LE.COM              _46_478347335.arc
STRM03_CAPTURE  DBS1.EXAMP       47 /remote_logs/arch1_1 NO         NO
                LE.COM              _47_478347335.arc

strm02_captureローカル取得プロセスstrm03_captureダウンストリーム取得プロセスの場合にこの問合せをdbs2.example.comデータベースで実行したとします。strm03_captureダウンストリーム取得プロセスのソース・データベースdbs1.example.comです。この問合せによって、strm02_captureの登録済アーカイブREDOログ・ファイルが2つ、strm02_captureの登録済アーカイブREDOログ・ファイルが3つ表示されます。この問合せでは、ローカル・ファイル・システムにおけるこれらの各ファイルの名前および場所が表示されます。

各取得プロセスで必要なREDOログ・ファイルの表示

取得プロセスには、必須チェックポイントSCNが含まれているREDOログ・ファイルおよび後続のすべてのREDOログ・ファイルが必要です。DBA_CAPTUREデータ・ディクショナリ・ビューのREQUIRED_CHECKPOINT_SCN列を問い合せると、取得プロセスの必須チェックポイントSCNを判別できます。必須チェックポイントSCNが含まれているREDOログ・ファイルより前のREDOログ・ファイルは、取得プロセスでは不要になります。これらのREDOログ・ファイルは、他の目的でも不要になるとオフラインで格納できます。後で取得プロセスの開始SCNを小さい値にリセットする場合、これらのREDOログ・ファイルが必要となることがあります。

この問合せでは、必要な各アーカイブREDOログ・ファイルに関する次の情報が表示されます。

  • ファイルを使用する取得プロセスの名前

  • ファイルのソース・データベース

  • ファイルの順序番号

  • ローカル・サイトでの必要なREDOログ・ファイルの名前および場所

データベース内の必要な各アーカイブREDOログ・ファイルに関する前述の情報を表示するには、次の問合せを実行します。

COLUMN CONSUMER_NAME HEADING 'Capture|Process|Name' FORMAT A15
COLUMN SOURCE_DATABASE HEADING 'Source|Database' FORMAT A10
COLUMN SEQUENCE# HEADING 'Sequence|Number' FORMAT 99999
COLUMN NAME HEADING 'Required|Archived Redo Log|File Name' FORMAT A40

SELECT r.CONSUMER_NAME,
       r.SOURCE_DATABASE,
       r.SEQUENCE#, 
       r.NAME 
  FROM DBA_REGISTERED_ARCHIVED_LOG r, DBA_CAPTURE c
  WHERE r.CONSUMER_NAME =  c.CAPTURE_NAME AND
        r.NEXT_SCN      >= c.REQUIRED_CHECKPOINT_SCN;  

出力は次のようになります。

Capture                             Required
Process         Source     Sequence Archived Redo Log
Name            Database     Number File Name
--------------- ---------- -------- ----------------------------------------
STRM02_CAPTURE  DBS2.EXAMP       16 /orc/dbs/log/arch2_1_16_478347508.arc
                LE.COM
STRM03_CAPTURE  DBS1.EXAMP       47 /remote_logs/arch1_1_47_478347335.arc
                LE.COM

各取得プロセスで使用される各REDOログ・ファイルのSCN値の表示

この項で説明する問合せを実行すると、データベース内の各取得プロセスの登録済アーカイブREDOログ・ファイルのSCN値に関する情報を表示できます。この問合せによって、ローカル取得プロセスおよびダウンストリーム取得プロセスのこれらのファイルのSCN値に関する情報が表示されます。また、この問合せでは、ローカル・データベースの取得プロセスで不要になったREDOログ・ファイルが識別されます。

この問合せでは、各登録済アーカイブREDOログ・ファイルに関する次の情報が表示されます。

  • ファイルを使用する取得プロセスの取得プロセス名

  • ローカル・サイトでのファイルの名前および場所

  • REDOログ・ファイルに含まれている情報の最小SCN値

  • 連続するREDOログ・ファイルの次のREDOログ・ファイルの最小SCN値

  • REDOログ・ファイルが消去可能かどうか

データベースの各登録済アーカイブREDOログ・ファイルに関する前述の情報を表示するには、次の問合せを実行します。

COLUMN CONSUMER_NAME HEADING 'Capture|Process|Name' FORMAT A15
COLUMN NAME HEADING 'Archived Redo Log|File Name' FORMAT A25
COLUMN FIRST_SCN HEADING 'First SCN' FORMAT 99999999999
COLUMN NEXT_SCN HEADING 'Next SCN' FORMAT 99999999999
COLUMN PURGEABLE HEADING 'Purgeable?' FORMAT A10
 
SELECT r.CONSUMER_NAME,
       r.NAME, 
       r.FIRST_SCN,
       r.NEXT_SCN,
       r.PURGEABLE 
  FROM DBA_REGISTERED_ARCHIVED_LOG r, DBA_CAPTURE c
  WHERE r.CONSUMER_NAME = c.CAPTURE_NAME;

出力は次のようになります。

Capture
Process         Archived Redo Log
Name            File Name                    First SCN     Next SCN Purgeable?
--------------- ------------------------- ------------ ------------ ----------
CAPTURE_SIMP    /private1/ARCHIVE_LOGS/1_       509686       549100 YES
                3_502628294.dbf
 
CAPTURE_SIMP    /private1/ARCHIVE_LOGS/1_       549100       587296 YES
                4_502628294.dbf
 
CAPTURE_SIMP    /private1/ARCHIVE_LOGS/1_       587296       623107 NO
                5_502628294.dbf

すべての取得プロセスに対してPurgeable?YESに設定されているREDOログ・ファイルは、ローカル・データベースの取得プロセスでは不要です。これらのREDOログ・ファイルは、ローカル・データベースの既存の取得プロセスに影響を与えずに削除できます。1つ以上の取得プロセスに対してPurgeable?NOに設定されているREDOログ・ファイルは、保持しておく必要があります。

各取得プロセスで使用可能な最後のアーカイブREDOエントリの表示

ローカル取得プロセスの場合、使用可能な最後のアーカイブREDOエントリは、オンラインREDOログからアーカイブ・ログ・ファイルに最後にフラッシュされたエントリです。ダウンストリーム取得プロセスの場合、使用可能な最終アーカイブREDOエントリは、取得プロセスで使用されるLogMinerセッションに最後に追加されたアーカイブ・ログ・ファイル内の最新のSCNを持つREDOエントリです。

この項で説明する問合せを実行すると、各取得プロセスで使用可能な最後のREDOエントリに関する次の情報が表示されます。

  • 取得プロセスの名前。

  • 取得プロセスで使用されるLogMinerセッションの識別番号

  • 取得プロセスで使用可能な最後のREDOエントリのSCN

  • 最後のREDOエントリが取得プロセスで使用可能になった時刻

この問合せで表示される情報は、有効になっている取得プロセスに対してのみ有効です。

次の問合せを実行すると、各取得プロセスに関する前述の情報が表示されます。

COLUMN CAPTURE_NAME HEADING 'Capture|Name' FORMAT A20
COLUMN LOGMINER_ID HEADING 'LogMiner ID' FORMAT 9999
COLUMN AVAILABLE_MESSAGE_NUMBER HEADING 'Last Redo SCN' FORMAT 9999999999
COLUMN AVAILABLE_MESSAGE_CREATE_TIME HEADING 'Time of|Last Redo SCN'

SELECT CAPTURE_NAME,
       LOGMINER_ID,
       AVAILABLE_MESSAGE_NUMBER,
       TO_CHAR(AVAILABLE_MESSAGE_CREATE_TIME, 'HH24:MI:SS MM/DD/YY') 
         AVAILABLE_MESSAGE_CREATE_TIME
  FROM V$STREAMS_CAPTURE;

出力は次のようになります。

Capture                                        Time of
Name                 LogMiner ID Last Redo SCN Last Redo SCN
-------------------- ----------- ------------- -----------------
STREAMS_CAPTURE                1        322953 11:33:20 10/16/03

各取得プロセスのパラメータ設定の表示

次の問合せを実行すると、データベース内の取得プロセスごとの各取得プロセス・パラメータの現行の設定が表示されます。

COLUMN CAPTURE_NAME HEADING 'Capture|Process|Name' FORMAT A25
COLUMN PARAMETER HEADING 'Parameter' FORMAT A26
COLUMN VALUE HEADING 'Value' FORMAT A10
COLUMN SET_BY_USER HEADING 'Set by User?' FORMAT A15

SELECT CAPTURE_NAME,
       PARAMETER, 
       VALUE,
       SET_BY_USER  
  FROM DBA_CAPTURE_PARAMETERS;

出力は次のようになります。

Capture
Process
Name                      Parameter                  Value      Set by User?
------------------------- -------------------------- ---------- ---------------
CAPTURE_HNS               DISABLE_ON_LIMIT           N          NO
CAPTURE_HNS               DOWNSTREAM_REAL_TIME_MINE  Y          YES
CAPTURE_HNS               MAXIMUM_SCN                INFINITE   NO
CAPTURE_HNS               MESSAGE_LIMIT              INFINITE   NO
CAPTURE_HNS               MESSAGE_TRACKING_FREQUENCY 2000000    NO
CAPTURE_HNS               PARALLELISM                1          NO
CAPTURE_HNS               STARTUP_SECONDS            0          NO
CAPTURE_HNS               TIME_LIMIT                 INFINITE   NO
CAPTURE_HNS               TRACE_LEVEL                0          NO
CAPTURE_HNS               WRITE_ALERT_LOG            Y          NO

注意:

パラメータのSet by user列がNOの場合、そのパラメータはデフォルト値に設定されます。パラメータのSet by user列がYESの場合、パラメータはデフォルト値に設定されることもされないこともあります。

データベース内のすべての取得プロセスの適用済SCNの判別

取得プロセスの適用済システム変更番号(SCN)は、関連する適用プロセスによってデキューされた最新のメッセージのSCNです。この適用済SCNより小さいすべての変更は、取得プロセスによって取得された変更を適用するすべての適用プロセスによってデキューされています。

データベース内のすべての取得プロセスの適用済SCNを表示するには、次の問合せを実行します。

COLUMN CAPTURE_NAME HEADING 'Capture Process Name' FORMAT A30
COLUMN APPLIED_SCN HEADING 'Applied SCN' FORMAT 99999999999

SELECT CAPTURE_NAME, APPLIED_SCN FROM DBA_CAPTURE;

出力は次のようになります。

Capture Process Name           Applied SCN
------------------------------ -----------
CAPTURE_EMP                         177154

各取得プロセスのREDOログのスキャン待機時間の判別

この項で説明する問合せを実行すると、各取得プロセスに関する次の情報を検索できます。

  • REDOログのスキャン待機時間。取得プロセスによってスキャンされた最新のREDOログ・エントリの作成時刻から現在の時刻までの秒数を示します。取得プロセスを起動した直後は、この数値が比較的大きくなる場合があります。

  • 状態が最後に記録されてからの秒数。取得プロセスで最後に状態が記録されてからの秒数を示します。

  • 現行の取得プロセス時刻。取得プロセスで最後に状態が記録された時刻を示します。

  • メッセージ作成時刻。データ操作言語(DML)またはデータ定義言語(DDL)の変更によって、最新の取得LCRに関するREDOデータが生成された時刻です。

この問合せで表示される情報は、有効になっている取得プロセスに対してのみ有効です。

次の問合せを実行すると、各取得プロセスのREDOスキャンの待機時間が判別されます。

COLUMN CAPTURE_NAME HEADING 'Capture|Process|Name' FORMAT A10
COLUMN LATENCY_SECONDS HEADING 'Latency|in|Seconds' FORMAT 999999
COLUMN LAST_STATUS HEADING 'Seconds Since|Last Status' FORMAT 999999
COLUMN CAPTURE_TIME HEADING 'Current|Process|Time'
COLUMN CREATE_TIME HEADING 'Message|Creation Time' FORMAT 999999

SELECT CAPTURE_NAME,
       ((SYSDATE - CAPTURE_MESSAGE_CREATE_TIME)*86400) LATENCY_SECONDS,
       ((SYSDATE - CAPTURE_TIME)*86400) LAST_STATUS,
       TO_CHAR(CAPTURE_TIME, 'HH24:MI:SS MM/DD/YY') CAPTURE_TIME,       
       TO_CHAR(CAPTURE_MESSAGE_CREATE_TIME, 'HH24:MI:SS MM/DD/YY') CREATE_TIME
  FROM V$STREAMS_CAPTURE;

出力は次のようになります。

Capture    Latency               Current
Process         in Seconds Since Process           Message
Name       Seconds   Last Status Time              Creation Time
---------- ------- ------------- ----------------- -----------------
CAPTURE          4             4 12:04:13 03/01/02 12:04:13 03/01/02

この問合せで戻される"Latency in Seconds"は、現在の時刻(SYSDATE)と"Message Creation Time"の差です。この問合せで戻される"Seconds Since Last Status"は、現在の時刻(SYSDATE)と"Current Process Time"の差です。

各取得プロセスのメッセージのエンキュー待機時間の判別

この項で説明する問合せを実行すると、各取得プロセスに関する次の情報を検索できます。

  • メッセージのエンキュー待機時間。エントリがREDOログに記録されてから取得プロセスでメッセージがエンキューされるまでの秒数を示します。

  • メッセージ作成時刻。データ操作言語(DML)またはデータ定義言語(DDL)の変更によって、最新のエンキュー済メッセージに関するREDOデータが生成された時刻を示します。

  • エンキュー時刻。取得プロセスによってメッセージがキューにエンキューされた時刻を示します。

  • エンキューされたメッセージのメッセージ番号。

この問合せで表示される情報は、有効になっている取得プロセスに対してのみ有効です。

次の問合せを実行すると、各取得プロセスのメッセージの取得待機時間が判別されます。

COLUMN CAPTURE_NAME HEADING 'Capture|Process|Name' FORMAT A10
COLUMN LATENCY_SECONDS HEADING 'Latency|in|Seconds' FORMAT 999999
COLUMN CREATE_TIME HEADING 'Message Creation|Time' FORMAT A20
COLUMN ENQUEUE_TIME HEADING 'Enqueue Time' FORMAT A20
COLUMN ENQUEUE_MESSAGE_NUMBER HEADING 'Message|Number' FORMAT 9999999999

SELECT CAPTURE_NAME,
       (ENQUEUE_TIME-ENQUEUE_MESSAGE_CREATE_TIME)*86400 LATENCY_SECONDS, 
       TO_CHAR(ENQUEUE_MESSAGE_CREATE_TIME, 'HH24:MI:SS MM/DD/YY') CREATE_TIME,
       TO_CHAR(ENQUEUE_TIME, 'HH24:MI:SS MM/DD/YY') ENQUEUE_TIME,
       ENQUEUE_MESSAGE_NUMBER
  FROM V$STREAMS_CAPTURE;

出力は次のようになります。

Capture    Latency
Process         in Message Creation                            Message
Name       Seconds Time                 Enqueue Time          Number
---------- ------- -------------------- -------------------- -------
CAPTURE          0 10:56:51 03/01/02    10:56:51 03/01/02     253962

この問合せで戻される"Latency in Seconds"は、"Enqueue Time""Message Creation Time"の差です。

各取得プロセスのルールの評価に関する情報の表示

この項で説明する問合せを実行すると、各取得プロセスルールの評価に関する情報を表示できます。

  • 取得プロセスの名前。

  • 取得プロセスが最後に起動されてから事前フィルタ処理中に廃棄された変更数。これらの変更が取得プロセスのルール・セットを完全には満たしていないことが、事前フィルタ処理中に取得プロセスによって判定されています。

  • 取得プロセスが最後に起動されてから事前フィルタ処理中に保持された変更数。これらの変更が取得プロセスのルール・セットを完全に満たしていることが、事前フィルタ処理中に取得プロセスによって判定されています。このような変更はLCRに変換され、取得プロセス・キューにエンキューされます。

  • 取得プロセスが最後に起動されてからの事前フィルタ処理評価の合計数。

  • 取得プロセスが最後に起動されてから事前フィルタ処理後に判定されていない変更数。これらの変更は、取得プロセスのルール・セットを満たしている場合も満たしていない場合もあります。一部の変更は、完全評価を必要とせずに、事前フィルタ処理後に実行するフィルタ処理で除外できる場合があります。その他の変更は、完全評価を実行して、取得プロセスのルール・セットを満たしているかどうかを判定する必要があります。

  • 取得プロセスが最後に起動されてからの完全評価の数。完全評価を実行するとコストが高くなる場合があります。したがって、取得プロセスでは、この数が比較的小さい場合に最高のパフォーマンスが実現されます。

この問合せで表示される情報は、有効になっている取得プロセスに対してのみ有効です。

次の問合せを実行すると、各取得プロセスに関する前述の情報が表示されます。

COLUMN CAPTURE_NAME HEADING 'Capture|Name' FORMAT A15
COLUMN TOTAL_PREFILTER_DISCARDED HEADING 'Prefilter|Changes|Discarded' 
  FORMAT 9999999999
COLUMN TOTAL_PREFILTER_KEPT HEADING 'Prefilter|Changes|Kept' FORMAT 9999999999
COLUMN TOTAL_PREFILTER_EVALUATIONS HEADING 'Prefilter|Evaluations' 
  FORMAT 9999999999
COLUMN UNDECIDED HEADING 'Undecided|After|Prefilter' FORMAT 9999999999
COLUMN TOTAL_FULL_EVALUATIONS HEADING 'Full|Evaluations' FORMAT 9999999999

SELECT CAPTURE_NAME,
       TOTAL_PREFILTER_DISCARDED,
       TOTAL_PREFILTER_KEPT,
       TOTAL_PREFILTER_EVALUATIONS,
       (TOTAL_PREFILTER_EVALUATIONS - 
         (TOTAL_PREFILTER_KEPT + TOTAL_PREFILTER_DISCARDED)) UNDECIDED,
       TOTAL_FULL_EVALUATIONS
  FROM V$STREAMS_CAPTURE;

出力は次のようになります。

                 Prefilter   Prefilter               Undecided
Capture            Changes     Changes   Prefilter       After        Full
Name             Discarded        Kept Evaluations   Prefilter Evaluations
--------------- ---------- ----------- ----------- ----------- -----------
CAPTURE_HNS         927409     3271491     4198900           0           9

事前フィルタ処理評価の合計数は、事前フィルタ処理で廃棄された変更、保持された変更および判定されなかった変更の合計と等しくなります。

取得と適用の複合を使用する取得プロセスの判別

取得プロセスは伝播送信者として動作し、バッファ・キューは変更のレプリケーションがより効率的になるように最適化されるため、取得と適用の複合環境は効率的です。

取得プロセスで取得と適用の複合が使用される場合、V$STREAMS_CAPTUREデータ・ディクショナリ・ビューのOPTIMIZATION列は0(ゼロ)より大きい値です。取得プロセスで取得と適用の複合が使用されない場合、OPTIMIZATION列は0(ゼロ)です。

取得プロセスで取得と適用の複合が使用されるかどうかを判別するには、次の問合せを実行します。

COLUMN CAPTURE_NAME HEADING 'Capture Name' FORMAT A30
COLUMN OPTIMIZATION HEADING 'Optimized?' FORMAT A10

SELECT CAPTURE_NAME, 
       DECODE(OPTIMIZATION,
                0, 'No',
                   'Yes') OPTIMIZATION
  FROM V$STREAMS_CAPTURE;

出力は次のようになります。

Capture Name                   Optimized?
------------------------------ ----------
CAPTURE_HNS                    Yes

この出力は、取得プロセスcapture_hnsで取得と適用の複合が使用されていることを示しています。

同期取得の監視

この項では、Oracle Streamsの同期取得の監視に使用できる問合せの例を示します。

この項の内容は次のとおりです。


関連項目:


各同期取得のキュー、ルール・セットおよび状態の表示

この項で説明する問合せを実行すると、データベース内の各同期取得に関する次の情報を表示できます。

データベース内の各同期取得に関する一般情報を表示するには、次の問合せを実行します。

COLUMN CAPTURE_NAME HEADING 'Synchronous|Capture Name' FORMAT A20
COLUMN QUEUE_NAME HEADING 'Synchronous|Capture Queue' FORMAT A20
COLUMN RULE_SET_NAME HEADING 'Positive Rule Set' FORMAT A20
COLUMN CAPTURE_USER HEADING 'Capture User' FORMAT A15

SELECT CAPTURE_NAME, QUEUE_NAME, RULE_SET_NAME, CAPTURE_USER
   FROM DBA_SYNC_CAPTURE;

出力は次のようになります。

Synchronous          Synchronous
Capture Name         Capture Queue        Positive Rule Set    Capture User
-------------------- -------------------- -------------------- ---------------
SYNC01_CAPTURE       STRM01_QUEUE         RULESET$_21          STRMADMIN
SYNC02_CAPTURE       STRM02_QUEUE         SYNC02_RULE_SET      HR

同期取得によって変更が取得される表の表示

ローカル・データベースの同期取得によってDML変更が取得される表は、DBA_SYNC_CAPTURE_TABLESビューに表示されます。DBA_STREAMS_TABLE_RULESビューには、各同期取得の名前および各同期取得で使用されるルールに関する情報が含まれています。この項で説明する問合せを実行すると、次の情報を表示できます。

  • 各同期取得の名前。

  • 同期取得で使用されるルールの名前。

  • ルールが適用されるサブセット化操作のタイプ(ルールがサブセット・ルールの場合)。

  • 各ルールで指定されている各表の所有者。

  • 各ルールで指定されている各表の名前。

  • 同期取得が表に対して有効または無効のいずれになっているか。表に対して同期取得が有効になっている場合、表に対して行われたDML変更は同期取得によって取得されます。表に対して同期取得が有効になっていない場合、表に対して行われたDML変更は同期取得によって取得されません。

これらの情報を表示するには、次の問合せを実行します。

COLUMN STREAMS_NAME HEADING 'Synchronous|Capture Name' FORMAT A15
COLUMN RULE_NAME HEADING 'Rule Name' FORMAT A15
COLUMN SUBSETTING_OPERATION HEADING 'Subsetting|Operation' FORMAT A10
COLUMN TABLE_OWNER HEADING 'Table|Owner' FORMAT A10
COLUMN TABLE_NAME HEADING 'Table Name' FORMAT A15
COLUMN ENABLED HEADING 'Enabled?' FORMAT A8

SELECT r.STREAMS_NAME, 
       r.RULE_NAME, 
       r.SUBSETTING_OPERATION,
       t.TABLE_OWNER, 
       t.TABLE_NAME, 
       t.ENABLED
   FROM DBA_STREAMS_TABLE_RULES r,
        DBA_SYNC_CAPTURE_TABLES t
   WHERE r.STREAMS_TYPE = 'SYNC_CAPTURE' AND
         r.TABLE_OWNER  = t.TABLE_OWNER AND
         r.TABLE_NAME   = t.TABLE_NAME;

出力は次のようになります。

Synchronous                     Subsetting Table
Capture Name    Rule Name       Operation  Owner      Table Name      Enabled?
--------------- --------------- ---------- ---------- --------------- --------
SYNC01_CAPTURE  EMPLOYEES20                HR         EMPLOYEES       YES
SYNC02_CAPTURE  DEPARTMENTS24   DELETE     HR         DEPARTMENTS     YES
SYNC02_CAPTURE  DEPARTMENTS23   UPDATE     HR         DEPARTMENTS     YES
SYNC02_CAPTURE  DEPARTMENTS22   INSERT     HR         DEPARTMENTS     YES

この出力は、表hr.employeesに対して行われたDML変更が同期取得sync01_captureによって取得されることを示しています。また、この出力は、表hr.departmentsに対して行われた変更のサブセットが同期取得sync02_captureによって取得されることも示しています。

表のENABLED列にNOが表示されている場合、この表に対する変更は同期取得によっては取得されません。DBMS_STREAMS_ADMパッケージのADD_TABLE_RULESまたはADD_SUBSET_RULES以外のプロシージャによって同期取得のルール・セットに表ルールが追加されると、ENABLED列にNOが表示されます。たとえば、DBMS_RULE_ADMパッケージのADD_RULEプロシージャによって同期取得のルール・セットに表ルールが追加された場合、DBA_SYNC_CAPTURE_TABLESビューを問い合せると表は表示されますが、同期取得によって表に対するDML変更は取得されません。DBA_SYNC_CAPTURE_TABLESビューに、スキーマおよびグローバル・ルールの結果は表示されません。

暗黙的取得によって取得された追加属性の表示

DBMS_CAPTURE_ADMパッケージのINCLUDE_EXTRA_ATTRIBUTEプロシージャを使用すると、1つ以上の追加属性を取得してLCRに含めるように取得プロセスまたは同期取得に指示できます。次の問合せを実行すると、ローカル・データベースの各取得プロセスによって取得されたLCRに含まれている追加属性が表示されます。

COLUMN CAPTURE_NAME HEADING 'Capture Process or|Synchronous Capture' FORMAT A20
COLUMN ATTRIBUTE_NAME HEADING 'Attribute Name' FORMAT A15
COLUMN INCLUDE HEADING 'Include Attribute in LCRs?' FORMAT A30

SELECT CAPTURE_NAME, ATTRIBUTE_NAME, INCLUDE 
  FROM DBA_CAPTURE_EXTRA_ATTRIBUTES
  ORDER BY CAPTURE_NAME;

出力は次のようになります。

Capture Process or   Attribute Name  Include Attribute in LCRs?
Synchronous Capture
-------------------- --------------- ------------------------------
SYNC_CAPTURE         ROW_ID          NO
SYNC_CAPTURE         SERIAL#         NO
SYNC_CAPTURE         SESSION#        NO
SYNC_CAPTURE         THREAD#         NO
SYNC_CAPTURE         TX_NAME         YES
SYNC_CAPTURE         USERNAME        NO

この出力に基づいて、取得プロセスまたは同期取得sync_captureでは、取得したLCRにトランザクション名(tx_name)が含められますが、その他の追加属性は含められません。CAPTURE_NAME列によって戻される名前が取得プロセスまたは同期取得のいずれであるかを判別するには、DBA_CAPTUREおよびDBA_SYNC_CAPTUREビューを問い合せます。


関連項目: