6 XStream Outの監視

XStream Out構成を監視できます。

注意:

この章では、可能な場合はALL_静的データ・ディクショナリ・ビューを問合せの例として使用します。場合によっては、ALL_ビューの情報にはDBA_ビューの情報より多くの制限があります。

6.1 XStream Outの監視について

XStreamコンポーネントに関連する情報およびXStreamに関連する統計情報について、XStreamに関連するデータ・ディクショナリ・ビューを問い合せることができます。

Oracle Enterprise Manager Cloud Controlを使用してXStream構成のいくつかの側面を監視できますが、XStreamデータベース・コンポーネントのモニタリングのための主要なインタフェースはSQL*Plusです。たとえば、取得プロセス、アウトバウンド・サーバー、インバウンド・サーバーおよびOracle Enterprise Manager Cloud Controlのルールに関する情報を表示できます。

SQL*Plusでは、信頼できるXStream管理者がALL_およびDBA_ビューを問い合せることができます。信頼されないXStream管理者はALL_ビューのみを問い合せることができます。

この章では、Oracle Streamsパフォーマンス・アドバイザを使用してXStream構成を監視する方法についても説明します。Oracle Streamsパフォーマンス・アドバイザは、DBMS_STREAMS_ADVISOR_ADMパッケージと、データ・ディクショナリ・ビューのコレクションから構成されます。Oracle Streamsパフォーマンス・アドバイザを使用すると、XStream環境のトポロジおよびパフォーマンスを監視できます。

6.2 XStream Outコンポーネントに関するセッション情報の監視

例では、XStream Outコンポーネントに関するセッション情報を監視する方法を示します。

この項で説明する問合せを実行すると、データベース内の各XStreamコンポーネントに関する次のセッション情報が表示されます。

  • XStreamコンポーネント名

  • セッション識別子

  • シリアル番号

  • オペレーション・システムのプロセス識別番号

  • XStreamプログラム名

データベース内に構成済の複数のXStream Outコンポーネントがある場合、この問合せは、特定のXStreamコンポーネントに対するセッション情報を判別するときに特に便利です。

データベース内の各XStreamコンポーネントに対してこの情報を表示する手順:

  1. データベースにXStream管理者として接続します。

    SQL*Plusでのデータベースへの接続の詳細は、Oracle Database管理者ガイドを参照してください。

  2. 次の問合せを実行します。

    COLUMN ACTION HEADING 'XStream Component' FORMAT A30
    COLUMN SID HEADING 'Session ID' FORMAT 99999
    COLUMN SERIAL# HEADING 'Session|Serial|Number' FORMAT 99999999
    COLUMN PROCESS HEADING 'Operating System|Process ID' FORMAT A17
    COLUMN PROCESS_NAME HEADING 'XStream|Program|Name' FORMAT A7
     
    SELECT /*+PARAM('_module_action_old_length',0)*/ ACTION,
           SID,
           SERIAL#,
           PROCESS,
           SUBSTR(PROGRAM,INSTR(PROGRAM,'(')+1,4) PROCESS_NAME
      FROM V$SESSION
      WHERE MODULE ='XStream';
    
    
    

XStream Out構成の出力は次のようになります。

                                            Session                   XStream
                                             Serial Operating System  Program
XStream Component              Session ID    Number Process ID        Name
------------------------------ ---------- --------- ----------------- -------
XOUT - Apply Coordinator               21         9 27222             AP01
CAP$_XOUT_18 - Capture                 28        33 27248             CP01
XOUT - Apply Server                    97        43 27226             AS00
XOUT - Apply Reader                   105         5 27224             AS01
XOUT - Apply Server                   112        27 27342             TNS
XOUT - Propagation Send/Rcv           117         5 27250             CS00

XStreamプログラム名のTNSを示す行には、アウトバウンド・サーバーに接続されたXStreamクライアント・アプリケーションのセッションに関する情報が含まれます。

関連項目:

V$SESSIONビューの詳細は、『Oracle Databaseリファレンス』を参照してください。

6.3 XStream Outコンポーネントでのイベントの履歴の監視

例では、DBA_REPLICATION_PROCESS_EVENTSビューを問い合せることによって、XStreamコンポーネントに対しイベントの履歴を監視する方法を示します。

たとえば、ビューではコンポーネントがいつ作成または起動されたかを表示できます。コンポーネント・パラメータが変更されたときに表示することもできます。コンポーネントでエラーが発生した場合、ビューは、エラーに関する情報を表示できます。

このトピックの問合せでは、XStream Outコンポーネントでのイベントに関する次の情報が表示されます。

  • XStreamコンポーネント名

  • コンポーネント・タイプ

  • イベント名

  • イベントの説明

  • イベント時間

データベース内の各XStream Outコンポーネントについて、次の情報を表示する手順:

  1. データベースにXStream管理者として接続します。

    SQL*Plusでのデータベースへの接続の詳細は、Oracle Database管理者ガイドを参照してください。

  2. 次の問合せを実行します。

    COLUMN STREAMS_NAME FORMAT A12
    COLUMN PROCESS_TYPE FORMAT A17
    COLUMN EVENT_NAME FORMAT A10
    COLUMN DESCRIPTION FORMAT A20
    COLUMN EVENT_TIME FORMAT A15
    
    SELECT STREAMS_NAME,
           PROCESS_TYPE,
           EVENT_NAME,
           DESCRIPTION,
           EVENT_TIME
      FROM DBA_REPLICATION_PROCESS_EVENTS;
    

XStream Out構成の出力は次のようになります。

STREAMS_NAME PROCESS_TYPE      EVENT_NAME DESCRIPTION          EVENT_TIME
------------ ----------------- ---------- -------------------- ---------------
CAP$_XOUT_7  CAPTURE           CREATE     SUCCESS              10-NOV-15 12.30
                                                               .13.845080 PM
XOUT         APPLY COORDINATOR CREATE     SUCCESS              10-NOV-15 12.30
                                                               .16.841110 PM
"CAP$_XOUT_7 CAPTURE           ALTER      RULE_SET_NAME => "SY 10-NOV-15 12.30
"                                         S"."RULESET$_12"     .17.373285 PM
"XOUT"       APPLY COORDINATOR ALTER      RULE_SET_NAME => "SY 10-NOV-15 12.30
                                          S"."RULESET$_19"     .18.817718 PM
"CAP$_XOUT_7 CAPTURE           PARAMETER  Change parameter 'XO 10-NOV-15 12.30
"                              CHANGE     UT_CLIENT_EXISTS' to .19.100361 PM
                                           value 'Y'
CAP$_XOUT_7  CAPTURE           START      SUCCESS              10-NOV-15 12.30
                                                               .19.434029 PM
XOUT         APPLY COORDINATOR START      SUCCESS              10-NOV-15 12.30
                                                               .19.543379 PM
XOUT         APPLY READER      START      SUCCESS              10-NOV-15 12.30
                                                               .20.584332 PM
XOUT         APPLY SERVER      START      SUCCESS              10-NOV-15 12.30
                                                               .20.593923 PM
CAP$_XOUT_7  CAPTURE SERVER    START      SUCCESS              10-NOV-15 12.30
                                                               .20.926374 PM

6.4 アウトバウンド・サーバーの監視

問合せの例では、アウトバウンド・サーバーを監視する方法を示します。

Oracle Streams適用プロセスは、XStream Outを使用してアウトバウンド・サーバーとして機能します。したがって、適用プロセスのデータ・ディクショナリ・ビューを使用してアウトバウンド・サーバーを監視することもできます。また、XStream Out環境には、取得プロセスとキューが含まれており、伝播、ルール、ルールベースの変換などの他のコンポーネントが含まれる場合もあります。

6.4.1 アウトバウンド・サーバーに関する一般情報の表示

サンプル問合せでは、アウトバウンド・サーバーに関する一般情報を表示する方法を示します。

この項の問合せを実行して、アウトバウンド・サーバーに関する次の情報を表示できます。

  • アウトバウンド・サーバー名

  • アウトバウンド・サーバーの接続ユーザーの名前

    接続ユーザーとは論理変更レコード(LCR)ストリームを取得するためにアウトバウンド・サーバーに接続できるユーザーのことです。クライアント・アプリケーションは、指定した接続ユーザーとしてアウトバウンド・サーバーに連結する必要があります。

  • 処理用にアウトバウンド・サーバーの変更を取得する取得プロセスの取得ユーザーの名前

  • 処理用にアウトバウンド・サーバーの変更を取得する取得プロセスの名前

  • 取得された変更のソース・データベースの名前

  • アウトバウンド・サーバーで使用されるキューの所有者

  • アウトバウンド・サーバーで使用されるキューの名前

ALL_XSTREAM_OUTBOUNDビューには、次のいずれの場合も、取得ユーザー、取得プロセスおよびソース・データベースに関する情報が含まれます。

  • アウトバウンド・サーバーはDBMS_XSTREAM_ADMパッケージのCREATE_OUTBOUNDプロシージャによって作成された。

  • アウトバウンド・サーバーはDBMS_XSTREAM_ADMパッケージのADD_OUTBOUNDプロシージャを使用して作成され、アウトバウンド・サーバーの取得プロセスがアウトバウンド・サーバーと同じデータベースで実行される。

アウトバウンド・サーバーがADD_OUTBOUNDプロシージャを使用して作成され、アウトバウンド・サーバーの取得プロセスが別のデータベース上にある場合、ALL_XSTREAM_OUTBOUNDビューには、取得ユーザー、取得プロセスまたはソース・データベースに関する情報は含まれません。

アウトバウンド・サーバーに関する一般情報を表示する手順:

  1. データベースにXStream管理者として接続します。

    SQL*Plusでのデータベースへの接続の詳細は、Oracle Database管理者ガイドを参照してください。

  2. 次の問合せを実行します。

    COLUMN SERVER_NAME HEADING 'Outbound|Server|Name' FORMAT A10
    COLUMN CONNECT_USER HEADING 'Connect|User' FORMAT A10
    COLUMN CAPTURE_USER HEADING 'Capture|User' FORMAT A10
    COLUMN CAPTURE_NAME HEADING 'Capture|Process|Name' FORMAT A12
    COLUMN SOURCE_DATABASE HEADING 'Source|Database' FORMAT A11
    COLUMN QUEUE_OWNER HEADING 'Queue|Owner' FORMAT A10
    COLUMN QUEUE_NAME HEADING 'Queue|Name' FORMAT A10
    
    SELECT SERVER_NAME, 
           CONNECT_USER, 
           CAPTURE_USER, 
           CAPTURE_NAME,
           SOURCE_DATABASE,
           QUEUE_OWNER,
           QUEUE_NAME
      FROM ALL_XSTREAM_OUTBOUND;
    

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

Outbound                         Capture
Server     Connect    Capture    Process      Source      Queue      Queue
Name       User       User       Name         Database    Owner      Name
---------- ---------- ---------- ------------ ----------- ---------- ----------
XOUT       XSTRMADMIN XSTRMADMIN CAP$_XOUT_18 XOUT.EXAMPL XSTRMADMIN Q$_XOUT_19
                                              E.COM

6.4.2 アウトバウンド・サーバーのステータスおよびエラー情報の表示

問合せの例では、アウトバウンド・サーバーのステータスおよびエラー情報を表示する方法を示します。

DBA_APPLYビューは、アウトバウンド・サーバーとして機能している適用プロセスのPURPOSE列にあるXStream Outを表示します。

アウトバウンド・サーバーに関する詳細情報を表示する手順:

  1. データベースにXStream管理者として接続します。

    SQL*Plusでのデータベースへの接続の詳細は、Oracle Database管理者ガイドを参照してください。

  2. 次の問合せを実行します。

    COLUMN APPLY_NAME HEADING 'Outbound Server|Name' FORMAT A15
    COLUMN STATUS HEADING 'Status' FORMAT A8
    COLUMN ERROR_NUMBER HEADING 'Error Number' FORMAT 9999999
    COLUMN ERROR_MESSAGE HEADING 'Error Message' FORMAT A40
    
    SELECT APPLY_NAME, 
           STATUS,
           ERROR_NUMBER,
           ERROR_MESSAGE
      FROM DBA_APPLY
      WHERE PURPOSE = 'XStream Out';
    

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

Outbound Server
Name            Status   Error Number Error Message
--------------- -------- ------------ ----------------------------------------
XOUT            ENABLED

この出力では、XOUTはアウトバウンド・サーバーとして機能している適用プロセスであることが示されています。

注意:

この例では、DBA_APPLYビューを問い合せます。このビューにより、信頼できるユーザーは、データベース内のすべての適用ユーザーの情報を表示できます。信頼されないユーザーは、ALL_APPLYビューを問い合せる必要があります。この場合、情報が現在のユーザーに制限されます。

6.4.3 アウトバウンド・サーバーの現在のトランザクションに関する情報の表示

問合せの例では、アウトバウンド・サーバーの現在のトランザクションに関する情報を表示する方法を示します。

V$XSTREAM_OUTBOUND_SERVERビューには、XStreamアウトバウンド・サーバーにより現在処理されているトランザクションに関する次の情報が含まれています。

  • アウトバウンド・サーバーの名前

  • 現在処理中のトランザクションのトランザクションID

  • 現在処理中のトランザクションのコミット・システム変更番号(SCN)

  • 現在処理中のトランザクションのコミット位置

  • XStreamクライアント・アプリケーションに最後に送信されたLCRの位置

  • アウトバウンド・サーバーにより処理される現在のLCRのメッセージ番号

特定のトランザクションでアウトバウンド・サーバーが処理したLCRの数を判別するには、次の問合せを実行します。V$XSTREAM_TRANSACTIONビューのTOTAL_MESSAGE_COUNT列を問い合せて、トランザクション内のLCRの合計数を確認できます。

アウトバウンド・サーバーの現在のトランザクションに関する情報を表示する手順:

  1. データベースにXStream管理者として接続します。

    SQL*Plusでのデータベースへの接続の詳細は、Oracle Database管理者ガイドを参照してください。

  2. 次の問合せを実行します。

    COLUMN SERVER_NAME HEADING 'Outbound|Server|Name' FORMAT A10
    COLUMN 'Transaction ID' HEADING 'Transaction|ID' FORMAT A11
    COLUMN COMMITSCN HEADING 'Commit SCN' FORMAT 9999999999999
    COLUMN COMMIT_POSITION HEADING 'Commit Position' FORMAT A15
    COLUMN LAST_SENT_POSITION HEADING 'Last Sent|Position' FORMAT A15
    COLUMN MESSAGE_SEQUENCE HEADING 'Message|Number' FORMAT 999999999
     
    SELECT SERVER_NAME,
           XIDUSN ||'.'|| 
           XIDSLT ||'.'||
           XIDSQN "Transaction ID",
           COMMITSCN,
           COMMIT_POSITION,
           LAST_SENT_POSITION,
           MESSAGE_SEQUENCE
      FROM V$XSTREAM_OUTBOUND_SERVER;
    

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

Outbound
Server     Transaction                                Last Sent          Message
Name       ID              Commit SCN Commit Position Position            Number
---------- ----------- -------------- --------------- --------------- ----------
XOUT       2.22.304            820023 0000000C82E4000 0000000C8337000        616
                                      000010000000100 000010000000100
                                      00000C82E400000 00000C833700000
                                      0010000000101   0010000000101

注意:

COMMITSCNおよびCOMMIT_POSITIONの値は、V$XSTREAM_OUTBOUND_SERVERCOMMITTED_DATA_ONLY値がYESの場合にのみ移入されます。

6.4.4 アウトバウンド・サーバーの統計情報の表示

例では、アウトバウンド・サーバーの統計情報を表示する方法を示します。

V$XSTREAM_OUTBOUND_SERVERビューには、XStreamアウトバウンド・サーバーにより処理されたデータベース変更に関する次の情報が含まれています。

  • アウトバウンド・サーバーの名前

  • 前回クライアント・アプリケーションがアウトバウンド・サーバーに接続されてから、アウトバウンド・サーバーからXStreamクライアント・アプリケーションに送信されたトランザクションの数

  • 前回クライアント・アプリケーションがアウトバウンド・サーバーに接続されてから、アウトバウンド・サーバーからXStreamクライアント・アプリケーションに送信されたLCRの数

  • 前回クライアント・アプリケーションがアウトバウンド・サーバーに接続されてから、アウトバウンド・サーバーからXStreamクライアント・アプリケーションに送信されたMB数

  • 前回クライアント・アプリケーションがアウトバウンド・サーバーに接続されてから、アウトバウンド・サーバーがXStreamクライアント・アプリケーションにLCRを送信するのにかかった時間

  • アウトバウンド・サーバーによってXStreamクライアント・アプリケーションに最後に送信されたLCRのメッセージ番号

  • アウトバウンド・サーバーによってクライアント・アプリケーションに最後に送信されたLCRのソース・データベースでの作成時刻

アウトバウンド・サーバーの統計情報を表示する手順:

  1. データベースにXStream管理者として接続します。

    SQL*Plusでのデータベースへの接続の詳細は、Oracle Database管理者ガイドを参照してください。

  2. 次の問合せを実行します。

    COLUMN SERVER_NAME HEADING 'Outbound|Server|Name' FORMAT A8
    COLUMN TOTAL_TRANSACTIONS_SENT HEADING 'Total|Trans|Sent' FORMAT 9999999
    COLUMN TOTAL_MESSAGES_SENT HEADING 'Total|LCRs|Sent' FORMAT 9999999999
    COLUMN BYTES_SENT HEADING 'Total|MB|Sent' FORMAT 99999999999999
    COLUMN ELAPSED_SEND_TIME HEADING 'Time|Sending|LCRs|(in seconds)' FORMAT 99999999
    COLUMN LAST_SENT_MESSAGE_NUMBER HEADING 'Last|Sent|Message|Number' FORMAT 99999999
    COLUMN LAST_SENT_MESSAGE_CREATE_TIME HEADING 'Last|Sent|Message|Creation|Time' FORMAT A9
     
    SELECT SERVER_NAME,
           TOTAL_TRANSACTIONS_SENT,
           TOTAL_MESSAGES_SENT,
           (BYTES_SENT/1024)/1024 BYTES_SENT,
           (ELAPSED_SEND_TIME/100) ELAPSED_SEND_TIME,
           LAST_SENT_MESSAGE_NUMBER,
           TO_CHAR(LAST_SENT_MESSAGE_CREATE_TIME,'HH24:MI:SS MM/DD/YY') 
              LAST_SENT_MESSAGE_CREATE_TIME
      FROM V$XSTREAM_OUTBOUND_SERVER;
    

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

                                                                     Last
                                                      Time      Last Sent
Outbound    Total       Total           Total      Sending      Sent Message
Server      Trans        LCRs              MB         LCRs   Message Creation
Name         Sent        Sent            Sent (in seconds)    Number Time
-------- -------- ----------- --------------- ------------ --------- ---------
XOUT         4028      256632              67            1    820023 10:11:00
                                                                     02/28/11

注意:

TOTAL_TRANSACTIONS_SENT値は、V$XSTREAM_OUTBOUND_SERVERCOMMITTED_DATA_ONLY値がYESの場合にのみ移入されます。

6.4.5 アウトバウンド・サーバーの処理済最低位置の表示

アウトバウンド・サーバーの処理済最低位置の表示方法をサンプルの問合せで示します。

アウトバウンド・サーバーの場合、処理済最低位置とは、その位置以降、すべてのトランザクションがクライアント・アプリケーションによってコミットされ、ログに記録されたことを示します。処理済最低位置は、アウトバウンド・サーバーまたはクライアント・アプリケーションが再起動されるときに重要になります。

この項の問合せを実行して、アウトバウンド・サーバーの処理済最低位置に関する次の情報を表示できます。

  • アウトバウンド・サーバー名

  • 取得された変更のソース・データベースの名前

  • 処理済最低位置。これはクライアント・アプリケーションによって処理された最低水位標の位置を示します。

  • 処理された最低位置が、アウトバウンド・サーバーによって最後に更新された時刻

アウトバウンド・サーバーの処理済の最低位置を表示する手順:

  1. データベースにXStream管理者として接続します。

    SQL*Plusでのデータベースへの接続の詳細は、Oracle Database管理者ガイドを参照してください。

  2. 次の問合せを実行します。

    COLUMN SERVER_NAME HEADING 'Outbound|Server|Name' FORMAT A10
    COLUMN SOURCE_DATABASE HEADING 'Source|Database' FORMAT A20
    COLUMN PROCESSED_LOW_POSITION HEADING 'Processed|Low LCR|Position' FORMAT A30
    COLUMN PROCESSED_LOW_TIME HEADING 'Processed|Low|Time' FORMAT A9
    
    SELECT SERVER_NAME,
           SOURCE_DATABASE,
           PROCESSED_LOW_POSITION,
           TO_CHAR(PROCESSED_LOW_TIME,'HH24:MI:SS MM/DD/YY') PROCESSED_LOW_TIME
    FROM ALL_XSTREAM_OUTBOUND_PROGRESS; 
    

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

Outbound                        Processed                      Processed
Server     Source               Low LCR                        Low
Name       Database             Position                       Time
---------- -------------------- ------------------------------ ---------
XOUT       XOUT.EXAMPLE.COM     0000000C84EA000000000000000000 10:18:37
                                00000C84EA000000000000000001   02/28/11

6.4.6 アウトバウンド・サーバーのプロセス情報の確認

問合せの例では、アウトバウンド・サーバーのプロセス情報を確認する方法を示します。

アウトバウンド・サーバーは、Oracleバックグラウンド・プロセスです。このバックグラウンド・プロセスは、XStreamクライアント・アプリケーションがアウトバウンド・サーバーに接続する場合にのみ実行されます。V$XSTREAM_OUTBOUND_SERVERビューには、このバックグラウンド・プロセスに関する情報が含まれます。

この項の問合せを実行して、アウトバウンド・サーバーに関する次の情報を表示できます。

  • アウトバウンド・サーバー名

  • アウトバウンド・サーバー・セッションのセッションID

  • アウトバウンド・サーバー・セッションのシリアル番号

  • クライアント・アプリケーションにLCRを送信するオペレーティング・システム・プロセスのプロセス識別番号

アウトバウンド・サーバーのプロセス情報を表示する手順:

  1. データベースにXStream管理者として接続します。

    SQL*Plusでのデータベースへの接続の詳細は、Oracle Database管理者ガイドを参照してください。

  2. 次の問合せを実行します。

    COLUMN SERVER_NAME HEADING 'Outbound Server Name' FORMAT A20
    COLUMN SID HEADING 'Session ID' FORMAT 9999999999
    COLUMN SERIAL# HEADING 'Serial Number' FORMAT 9999999999
    COLUMN SPID HEADING 'Operating-System Process' FORMAT A25
    
    SELECT SERVER_NAME, 
           SID, 
           SERIAL#, 
           SPID
      FROM V$XSTREAM_OUTBOUND_SERVER;
    

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

Outbound Server Name  Session ID Serial Number Operating-System Process
-------------------- ----------- ------------- -------------------------
XOUT                          18            19 15906

注意:

V$XSTREAM_APPLY_SERVERビューは、アウトバウンド・サーバーのプロセスに関する追加情報、およびアウトバウンド・サーバーで使用される適用サーバーのバックグラウンド・プロセスに関する情報を提供します。

6.4.7 アウトバウンド・サーバーの適用パラメータの設定の表示

問合せの例では、アウトバウンド・サーバーの適用パラメータの設定を表示する方法を示します。

適用パラメータにより、アウトバウンド・サーバーの動作方法が決定されます。

アウトバウンド・サーバーの適用パラメータの設定を表示する手順:

  1. データベースにXStream管理者として接続します。

    SQL*Plusでのデータベースへの接続の詳細は、Oracle Database管理者ガイドを参照してください。

  2. 次の問合せを実行します。

    COLUMN APPLY_NAME HEADING 'Outbound Server|Name' FORMAT A15
    COLUMN PARAMETER HEADING 'Parameter' FORMAT A30
    COLUMN VALUE HEADING 'Value' FORMAT A22
    COLUMN SET_BY_USER HEADING 'Set by|User?' FORMAT A10
     
    SELECT APPLY_NAME,
           PARAMETER, 
           VALUE,
           SET_BY_USER  
      FROM ALL_APPLY_PARAMETERS a, ALL_XSTREAM_OUTBOUND o
      WHERE a.APPLY_NAME=o.SERVER_NAME
      ORDER BY a.PARAMETER;
    

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

Outbound Server                                                       Set by
Name            Parameter                      Value                  User?
--------------- ------------------------------ ---------------------- ----------
XOUT            ALLOW_DUPLICATE_ROWS           N                      NO
XOUT            APPLY_SEQUENCE_NEXTVAL         Y                      NO
XOUT            COMMIT_SERIALIZATION           DEPENDENT_TRANSACTIONS NO
XOUT            COMPARE_KEY_ONLY               N                      NO
XOUT            COMPUTE_LCR_DEP_ON_ARRIVAL     N                      NO
XOUT            DISABLE_ON_ERROR               Y                      NO
XOUT            DISABLE_ON_LIMIT               N                      NO
XOUT            EAGER_SIZE                     9500                   NO
XOUT            ENABLE_XSTREAM_TABLE_STATS     Y                      NO
XOUT            EXCLUDETAG                                            NO
XOUT            EXCLUDETRANS                                          NO
XOUT            EXCLUDEUSER                                           NO
XOUT            EXCLUDEUSERID                                         NO
XOUT            GETAPPLOPS                     Y                      NO
XOUT            GETREPLICATES                  N                      NO
XOUT            GROUPTRANSOPS                  10000                  NO
XOUT            HANDLECOLLISIONS               N                      NO
XOUT            IGNORE_TRANSACTION                                    NO
XOUT            MAXIMUM_SCN                    INFINITE               NO
XOUT            MAX_PARALLELISM                1                      NO
XOUT            MAX_SGA_SIZE                   INFINITE               NO
XOUT            OPTIMIZE_PROGRESS_TABLE        Y                      NO
XOUT            OPTIMIZE_SELF_UPDATES          Y                      NO
XOUT            PARALLELISM                    1                      NO
XOUT            PRESERVE_ENCRYPTION            Y                      NO
XOUT            RTRIM_ON_IMPLICIT_CONVERSION   Y                      NO
XOUT            STARTUP_SECONDS                0                      NO
XOUT            SUPPRESSTRIGGERS               Y                      NO
XOUT            TIME_LIMIT                     INFINITE               NO
XOUT            TRACE_LEVEL                    0                      NO
XOUT            TRANSACTION_LIMIT              INFINITE               NO
XOUT            TXN_AGE_SPILL_THRESHOLD        900                    NO
XOUT            TXN_LCR_SPILL_THRESHOLD        10000                  NO
XOUT            WRITE_ALERT_LOG                Y                      NO

アウトバウンド・サーバーでは、一部の適用パラメータの設定は無視されます。

注意:

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

6.5 アウトバウンド・サーバーの取得プロセスの監視

問合せの例では、アウトバウンド・サーバーの取得プロセスを監視する方法を示します。

関連項目:

Oracle Streams概要および管理には、取得プロセスの監視に使用できる問合せが含まれています

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

問合せの例では、各取得プロセスに関する変更取得情報を表示する方法を示します。

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

  • 取得プロセスの名前。

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

    取得プロセスの状態を参照してください。

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

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

データベース内の各取得プロセスについて、この変更取得情報を表示する手順:

  1. データベースにXStream管理者として接続します。

    SQL*Plusでのデータベースへの接続の詳細は、Oracle Database管理者ガイドを参照してください。

  2. 次の問合せを実行します。

    COLUMN CAPTURE_NAME HEADING 'Capture|Name' FORMAT A15
    COLUMN STATE HEADING 'State' FORMAT A25
    COLUMN TOTAL_MESSAGES_CAPTURED HEADING 'Redo|Entries|Evaluated|In Detail' FORMAT 99999999999999
    COLUMN TOTAL_MESSAGES_ENQUEUED HEADING 'Total|LCRs|Enqueued' FORMAT 99999999999999
    
    SELECT CAPTURE_NAME,
           STATE,
           TOTAL_MESSAGES_CAPTURED,
           TOTAL_MESSAGES_ENQUEUED 
      FROM V$XSTREAM_CAPTURE;
    

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

                                                     Redo
                                                  Entries           Total
Capture                                         Evaluated            LCRs
Name            State                           In Detail        Enqueued
--------------- ------------------------- --------------- ---------------
CAP$_XOUT_1     WAITING FOR TRANSACTION            297666          261798

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

関連項目:

トランザクション制御文の詳細は、行LCRを参照

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

問合せの例では、データベース内の各取得プロセスに登録済のアーカイブREDOログ・ファイルに関する情報を表示する方法を示します。

問合せの例では、ローカル取得プロセスおよびダウンストリーム取得プロセスの両方に対し、これらのファイルに関する情報が表示されます。

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

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

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

  • ファイルの順序番号

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

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

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

各取得プロセスの登録済REDOログ・ファイルを表示する手順:

  1. データベースにXStream管理者として接続します。

    SQL*Plusでのデータベースへの接続の詳細は、Oracle Database管理者ガイドを参照してください。

  2. 次の問合せを実行します。

    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, ALL_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
--------------- ---------- -------- -------------------- ---------- ----------
CAP$_XOUT_1     DBS2.EXAMP       15 /orc/dbs/log/arch2_1 NO         NO
                LE.COM              _15_478347508.arc
CAP$_XOUT_1     DBS2.EXAMP       16 /orc/dbs/log/arch2_1 NO         NO
                LE.COM              _16_478347508.arc 
CAP$_XOUT_2     DBS1.EXAMP       45 /remote_logs/arch1_1 YES        YES
                LE.COM              _45_478347335.arc
CAP$_XOUT_2     DBS1.EXAMP       46 /remote_logs/arch1_1 NO         NO
                LE.COM              _46_478347335.arc
CAP$_XOUT_2     DBS1.EXAMP       47 /remote_logs/arch1_1 NO         NO
                LE.COM              _47_478347335.arc

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

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

問合せの例では、各取得プロセスに必要なREDOログ・ファイルを表示する方法を示します。

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

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

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

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

  • ファイルの順序番号

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

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

  1. データベースにXStream管理者として接続します。

    SQL*Plusでのデータベースへの接続の詳細は、Oracle Database管理者ガイドを参照してください。

  2. 次の問合せを実行します。
    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, ALL_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
--------------- ---------- -------- ----------------------------------------
CAP$_XOUT_1     DBS2.EXAMP       16 /orc/dbs/log/arch2_1_16_478347508.arc
                LE.COM
CAP$_XOUT_2     DBS1.EXAMP       47 /remote_logs/arch1_1_47_478347335.arc
                LE.COM

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

問合せの例では、データベース内の各取得プロセスに登録済のアーカイブREDOログ・ファイルのSCN値に関する情報を表示する方法を示します。

この問合せでは、ローカル取得プロセスおよびダウンストリーム取得プロセスの両方に対し、これらのファイルのSCN値が表示されます。また、この問合せでは、ローカル・データベースの取得プロセスで不要になったREDOログ・ファイルが識別されます。

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

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

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

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

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

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

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

  1. データベースにXStream管理者として接続します。

    SQL*Plusでのデータベースへの接続の詳細は、Oracle Database管理者ガイドを参照してください。

  2. 次の問合せを実行します。

    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, ALL_CAPTURE c
      WHERE r.CONSUMER_NAME = c.CAPTURE_NAME;
    

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

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

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

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

問合せの例では、各取得プロセスのパラメータ設定を一覧表示する方法を示します。

取得プロセス・パラメータによって、取得プロセスの動作が決定されます。

各取得プロセスのパラメータ設定を一覧表示する手順:

  1. データベースにXStream管理者として接続します。

    SQL*Plusでのデータベースへの接続の詳細は、Oracle Database管理者ガイドを参照してください。

  2. 次の問合せを実行します。

    COLUMN CAPTURE_NAME HEADING 'Capture|Process|Name' FORMAT A25
    COLUMN PARAMETER HEADING 'Parameter' FORMAT A30
    COLUMN VALUE HEADING 'Value' FORMAT A10
    COLUMN SET_BY_USER HEADING 'Set by|User?' FORMAT A10
     
    SELECT c.CAPTURE_NAME,
           PARAMETER,
           VALUE,
           SET_BY_USER
      FROM ALL_CAPTURE_PARAMETERS c, ALL_XSTREAM_OUTBOUND o
      WHERE c.CAPTURE_NAME=o.CAPTURE_NAME
      ORDER BY PARAMETER;
    

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

Capture
Process                                                             Set by
Name                      Parameter                      Value      User?
------------------------- ------------------------------ ---------- ----------
CAP$_XOUT_1               CAPTURE_IDKEY_OBJECTS          N          NO
CAP$_XOUT_1               CAPTURE_SEQUENCE_NEXTVAL       N          NO
CAP$_XOUT_1               DISABLE_ON_LIMIT               N          NO
CAP$_XOUT_1               DOWNSTREAM_REAL_TIME_MINE      Y          NO
CAP$_XOUT_1               EXCLUDETAG                                NO
CAP$_XOUT_1               EXCLUDETRANS                              NO
CAP$_XOUT_1               EXCLUDEUSER                               NO
CAP$_XOUT_1               EXCLUDEUSERID                             NO
CAP$_XOUT_1               GETAPPLOPS                     Y          NO
CAP$_XOUT_1               GETREPLICATES                  N          NO
CAP$_XOUT_1               IGNORE_TRANSACTION                        NO
CAP$_XOUT_1               IGNORE_UNSUPPORTED_TABLE       *          NO
CAP$_XOUT_1               INCLUDE_OBJECTS                           NO
CAP$_XOUT_1               INLINE_LOB_OPTIMIZATION        N          NO
CAP$_XOUT_1               MAXIMUM_SCN                    INFINITE   NO
CAP$_XOUT_1               MAX_SGA_SIZE                   INFINITE   NO
CAP$_XOUT_1               MERGE_THRESHOLD                60         NO
CAP$_XOUT_1               MESSAGE_LIMIT                  INFINITE   NO
CAP$_XOUT_1               MESSAGE_TRACKING_FREQUENCY     2000000    NO
CAP$_XOUT_1               PARALLELISM                    0          NO
CAP$_XOUT_1               SKIP_AUTOFILTERED_TABLE_DDL    Y          NO
CAP$_XOUT_1               SPLIT_THRESHOLD                1800       NO
CAP$_XOUT_1               STARTUP_SECONDS                0          NO
CAP$_XOUT_1               TIME_LIMIT                     INFINITE   NO
CAP$_XOUT_1               TRACE_LEVEL                    0          NO
CAP$_XOUT_1               USE_RAC_SERVICE                N          NO
CAP$_XOUT_1               WRITE_ALERT_LOG                Y          NO
CAP$_XOUT_1               XOUT_CLIENT_EXISTS             Y          NO

注意:

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

6.5.6 各取得プロセスの適用済SCNの確認

問合せの例では、各取得プロセスの適用済SCNを確認する方法を示します。

取得プロセスの適用済システム変更番号(SCN)は、関連するアウトバウンド・サーバーによりデキューされた最新の論理変更レコード(LCR)のSCNです。この適用済SCNより小さいすべての変更は、取得プロセスによって取得された変更を処理するすべてのアウトバウンド・サーバーによって処理されています。

各取得プロセスの適用済SCNを確認する手順:

  1. データベースにXStream管理者として接続します。

    SQL*Plusでのデータベースへの接続の詳細は、Oracle Database管理者ガイドを参照してください。

  2. 次の問合せを実行します。

    COLUMN CAPTURE_NAME HEADING 'Capture Process Name' FORMAT A30
    COLUMN APPLIED_SCN HEADING 'Applied SCN' FORMAT 99999999999
    
    SELECT CAPTURE_NAME, APPLIED_SCN FROM ALL_CAPTURE;
    

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

Capture Process Name            Applied SCN
------------------------------ ------------
CAP$_XOUT_1                          824825

6.5.7 各取得プロセスのREDOログのスキャン待機時間の表示

問合せの例では、各取得プロセスのREDOログのスキャン待機時間を表示する方法を示します。

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

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

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

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

  • 論理変更レコード(LCR)の作成時刻。データ操作言語(DML)またはデータ定義言語(DDL)の変更によって、最新の取得済LCRに関するREDOデータがソース・データベースで生成された時刻です。

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

各取得プロセスのREDOログのスキャン待機時間を表示する手順:

  1. データベースにXStream管理者として接続します。

    SQL*Plusでのデータベースへの接続の詳細は、Oracle Database管理者ガイドを参照してください。

  2. 次の問合せを実行します。

    COLUMN CAPTURE_NAME HEADING 'Capture|Process|Name' FORMAT A12
    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$XSTREAM_CAPTURE;
    

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

Capture      Latency               Current
Process           in Seconds Since Process           Message
Name         Seconds   Last Status Time              Creation Time
------------ ------- ------------- ----------------- -----------------
CAP$_XOUT_1        1             1 10:32:52 02/28/11 10:32:52 02/28/11

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

6.5.8 取得プロセスによって取得された追加属性の表示

問合せの例では、取得プロセスによって取得された追加の属性を表示する方法を示します。

DBMS_CAPTURE_ADMパッケージのINCLUDE_EXTRA_ATTRIBUTEプロシージャを使用すると、1つ以上の追加属性を取得して論理変更レコード(LCR)に含めるように取得プロセスに指示できます。

取得プロセスによって取得された追加の属性を表示する手順:

  1. データベースにXStream管理者として接続します。

    SQL*Plusでのデータベースへの接続の詳細は、Oracle Database管理者ガイドを参照してください。

  2. 次の問合せを実行します。

    COLUMN CAPTURE_NAME HEADING 'Capture Process' 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 ALL_CAPTURE_EXTRA_ATTRIBUTES
      ORDER BY CAPTURE_NAME;
    

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

Capture Process      Attribute Name  Include Attribute in LCRs?
-------------------- --------------- ------------------------------
CAP$_XOUT_1          ROW_ID          NO
CAP$_XOUT_1          SERIAL#         NO
CAP$_XOUT_1          SESSION#        NO
CAP$_XOUT_1          THREAD#         NO
CAP$_XOUT_1          TX_NAME         YES
CAP$_XOUT_1          USERNAME        NO

この出力に基づいて、取得プロセスxcaptureでは、取得したLCRにトランザクション名(tx_name)が含められますが、その他の追加属性は含められません。

6.6 XStreamルールの監視

サンプル問合せでは、XStreamルールを監視する方法を示します。

ALL_XSTREAM_RULESビューにはアウトバウンド・サーバーおよびインバウンド・サーバーで使用されるルールに関する情報が含まれています。DBMS_XSTREAM_ADMパッケージのCREATE_OUTBOUNDプロシージャを使用してアウトバウンド・サーバーが作成された場合、これらのビューには、アウトバウンド・サーバーに変更を送信する取得プロセスによって使用されるルールの情報も含まれます。ただし、ADD_OUTBOUNDプロシージャを使用して作成されたアウトバウンド・サーバーの場合、このビューには取得プロセス・ルールに関する情報は含まれません。また、これらのビューには、取得プロセスからアウトバウンド・サーバーへのストリームの伝播で使用されるルールに関する情報は含まれません。

XStreamコンポーネントで使用されるルールに関する情報を表示する手順:

  1. データベースにXStream管理者として接続します。

    SQL*Plusでのデータベースへの接続の詳細は、Oracle Database管理者ガイドを参照してください。

  2. 次の問合せを実行します。

    COLUMN STREAMS_NAME HEADING 'XStream|Component|Name' FORMAT A9
    COLUMN STREAMS_TYPE HEADING 'XStream|Component|Type' FORMAT A9
    COLUMN RULE_NAME HEADING 'Rule|Name' FORMAT A13
    COLUMN RULE_SET_TYPE HEADING 'Rule Set|Type' FORMAT A8
    COLUMN STREAMS_RULE_TYPE HEADING 'Rule|Level' FORMAT A7
    COLUMN SCHEMA_NAME HEADING 'Schema|Name' FORMAT A6
    COLUMN OBJECT_NAME HEADING 'Object|Name' FORMAT A11
    COLUMN RULE_TYPE HEADING 'Rule|Type' FORMAT A4
    
    SELECT STREAMS_NAME, 
           STREAMS_TYPE,
           RULE_NAME,
           RULE_SET_TYPE,
           STREAMS_RULE_TYPE,
           SCHEMA_NAME,
           OBJECT_NAME,
           RULE_TYPE
      FROM ALL_XSTREAM_RULES;
    

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

XStream   XStream
Component Component Rule          Rule Set Rule    Schema Object      Rule
Name      Type      Name          Type     Level   Name   Name        Type
--------- --------- ------------- -------- ------- ------ ----------- ----
XOUT      APPLY     ORDERS11      POSITIVE TABLE   OE     ORDERS      DML
XOUT      APPLY     ORDERS12      POSITIVE TABLE   OE     ORDERS      DDL
XOUT      APPLY     ORDER_ITEMS14 POSITIVE TABLE   OE     ORDER_ITEMS DML
XOUT      APPLY     ORDER_ITEMS15 POSITIVE TABLE   OE     ORDER_ITEMS DDL
XOUT      APPLY     HR16          POSITIVE SCHEMA  HR                 DML
XOUT      APPLY     HR17          POSITIVE SCHEMA  HR                 DDL

ルールがアウトバウンド・サーバーxoutのポジティブ・ルール・セットであっても、STREAMS_TYPEAPPLYであることに注意してください。ALL_APPLYビューのPURPOSE列への問合せを実行することで、適用コンポーネントの目的を判別できます。

ALL_XSTREAM_RULESビューには、この例に示されている情報に加えて、XStream構成で使用されるルールに関する詳細が含まれます。たとえば、このビューを問い合せて、XStreamコンポーネントで使用されるルール・セットに関する情報を表示できます。

取得プロセス、伝播、適用プロセス、アウトバウンド・サーバーおよびインバウンド・サーバーなどの、すべてのコンポーネントで使用されるルールに関する情報を表示するには、ALL_XSTREAM_RULESビューを問い合せることができます。ルールを監視するための問合せの例については、Oracle Streams概要および管理を参照してください。

6.7 宣言ルールベースの変換の監視

問合せの例では、宣言ルールベースの変換を監視する方法を示します。

宣言ルールベースの変換は、行LCRに対する共通の変換シナリオ・セットの1つを扱うルールベースの変換です。宣言ルールベースの変換は、PL/SQLを使用せずに内部的に実行されます。

この項で説明する問合せを実行すると、データベース内の各宣言ルールベースの変換に関する次の情報が表示されます。

  • 宣言ルールベースの変換が指定されたルールの所有者

  • 宣言ルールベースの変換が指定されたルールの名前

  • 指定された宣言ルールベースの変換のタイプ。ADD COLUMNDELETE COLUMNKEEP COLUMNSRENAME COLUMNRENAME SCHEMAおよびRENAME TABLEの各タイプが表示される可能性があります。

  • 宣言ルールベースの変換の優先順位。この優先順位は、同じルールに指定されている同じ手順番号の他の変換に対する、変換の実行順序です。手順番号が同じ変換では、優先順位が最も低い変換が最初に実行されます。

  • 宣言ルールベースの変換の手順番号。複数の宣言ルールベースの変換が同じルールに指定された場合、手順番号が最も小さい変換が最初に実行されます。変換を作成する際に、宣言ルールベースの変換の手順番号を指定できます。

DBA_XSTREAM_TRANSFORMATIONSビューにアクセスするには、DBAロールを持っている必要があります。

次の問合せを実行すると、データベース内の宣言ルールベースの変換に関する情報が表示されます。

  1. データベースにXStream管理者として接続します。

    SQL*Plusでのデータベースへの接続の詳細は、Oracle Database管理者ガイドを参照してください。

  2. 次の問合せを実行します。
    COLUMN RULE_OWNER HEADING 'Rule Owner' FORMAT A15
    COLUMN RULE_NAME HEADING 'Rule Name' FORMAT A15
    COLUMN DECLARATIVE_TYPE HEADING 'Declarative|Type' FORMAT A15
    COLUMN PRECEDENCE HEADING 'Precedence' FORMAT 99999
    COLUMN STEP_NUMBER HEADING 'Step Number' FORMAT 99999
    
    SELECT RULE_OWNER, 
           RULE_NAME, 
           DECLARATIVE_TYPE,
           PRECEDENCE,
           STEP_NUMBER
      FROM DBA_XSTREAM_TRANSFORMATIONS
      WHERE TRANSFORM_TYPE = 'DECLARATIVE TRANSFORMATION';
    

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

                                Declarative
Rule Owner      Rule Name       Type            Precedence Step Number
--------------- --------------- --------------- ---------- -----------
XSTRMADMIN      JOBS26          RENAME TABLE             4           0
XSTRMADMIN      EMPLOYEES22     ADD COLUMN               3           0

この出力から、変換の手順番号が同じ(0(ゼロ))で、ADD COLUMN変換の優先順位が低いため、ADD COLUMN変換がRENAME TABLE変換より前に実行されることがわかります。

DBA_XSTREAM_TRANSFORMATIONSビューは、変換の宣言タイプに基づいて、各変換に関するより詳細な情報を表示できます。DECLARATIVE_TYPEが変換のタイプ(ADD COLUMNDELETE COLUMNなど)と等しいものと指定して、問合せにWHERE句を含めます。

たとえば、前述の問合せではADD COLUMN変換およびRENAME TABLE変換が表示されます。

注意:

優先順位および手順番号は、宣言ルールベースの変換のみに関連します。これらはサブセット・ルール変換またはカスタム・ルールベースの変換に関連しません。

6.7.1 ADD COLUMN変換に関する情報の表示

問合せの例では、データベース内のADD COLUMN宣言ルールベースの変換に関する詳細情報を表示する方法を示します。

ビューDBA_XTREAM_TRANSFORMATIONSを使用して、宣言ルールベースの変換プロシージャDBMS_XSTREAM_ADMを使用して行LCRに追加された列の情報を表示します。

ADD COLUMN変換に関する情報を表示する手順:

  1. データベースにXStream管理者として接続します。

    SQL*Plusでのデータベースへの接続の詳細は、Oracle Database管理者ガイドを参照してください。

  2. 次の問合せを実行します。

    COLUMN RULE_OWNER HEADING 'Rule|Owner' FORMAT A10
    COLUMN RULE_NAME HEADING 'Rule|Name' FORMAT A11
    COLUMN SCHEMA_NAME HEADING 'Schema|Name' FORMAT A6
    COLUMN TABLE_NAME HEADING 'Table|Name' FORMAT A9
    COLUMN COLUMN_NAME HEADING 'Column|Name' FORMAT A10
    COLUMN COLUMN_VALUE HEADING 'Column|Value' FORMAT A10
    COLUMN COLUMN_TYPE HEADING 'Column|Type' FORMAT A8
    
    SELECT RULE_OWNER,
           RULE_NAME,
           SCHEMA_NAME,
           TABLE_NAME,
           COLUMN_NAME,
           ANYDATA.AccessDate(COLUMN_VALUE) "Value",
           COLUMN_TYPE
      FROM DBA_XSTREAM_TRANSFORMATIONS
      WHERE DECLARATIVE_TYPE = 'ADD COLUMN';
    

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

Rule       Rule        Schema   Table    Column     Column      Column
Owner      Name        Name     Name     Name       Value       Type
----------  ----------- ------  --------- ---------- ---------- --------
XSTRMADMIN  EMPLOYEES22 HR      EMPLOYEES BIRTH_DATE            SYS.DATE

この出力には、ADD COLUMN宣言ルールベースの変換に関する次の情報が表示されています。

  • この変換は、xstrmadminスキーマのemployees22ルールに対して指定されています。

  • この変換によって、hrスキーマのemployees表を含む行LCRに列が追加されています。

  • 追加された列の列名はBIRTH_DATEです。

  • 追加された列の値はNULLです。ALL_XSTREAM_TRANSFORMATIONSビューのCOLUMN_VALUE列はANYDATA型です。この例では、列の型がDATEであるため、ANYDATA.AccessDateメンバー・ファンクションを使用して値が表示されています。他の型の値を表示するには、適切なメンバー・ファンクションを使用します。

  • 追加された列の型はDATEです。

6.7.2 RENAME TABLE変換に関する情報の表示

問合せの例では、データベース内のRENAME TABLE宣言ルールベースの変換に関する詳細情報を表示する方法を示します。

ビューDBA_XSTREAM_TRANSFORMATIONSを使用して、行の論理変更レコード(LCR)内の表の名前を変更する宣言ルールベースの変換に関する情報を示します。

RENAME TABLE変換に関する情報を表示する手順:

  1. データベースにXStream管理者として接続します。

    SQL*Plusでデータベースに接続する方法については、『Oracle Database管理者ガイド』を参照してください。

  2. 次の問合せを実行します。

    COLUMN RULE_OWNER HEADING 'Rule|Owner' FORMAT A10
    COLUMN RULE_NAME HEADING 'Rule|Name' FORMAT A10
    COLUMN FROM_SCHEMA_NAME HEADING 'From|Schema|Name' FORMAT A10
    COLUMN TO_SCHEMA_NAME HEADING 'To|Schema|Name' FORMAT A10
    COLUMN FROM_TABLE_NAME HEADING 'From|Table|Name' FORMAT A15
    COLUMN TO_TABLE_NAME HEADING 'To|Table|Name' FORMAT A15
    
    SELECT RULE_OWNER, 
           RULE_NAME, 
           FROM_SCHEMA_NAME,
           TO_SCHEMA_NAME,
           FROM_TABLE_NAME,
           TO_TABLE_NAME
      FROM DBA_XSTREAM_TRANSFORMATIONS
      WHERE DECLARATIVE_TYPE = 'RENAME TABLE';
    

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

                      From       To         From            To
Rule       Rule       Schema     Schema     Table           Table
Owner      Name       Name       Name       Name            Name
---------- ---------- ---------- ---------- --------------- ---------------
XSTRMADMIN JOBS26     HR         HR         HR.JOBS         HR.ASSIGNMENTS

この出力には、RENAME TABLE宣言ルールベースの変換に関する次の情報が表示されています。

  • この変換は、xstrmadminスキーマのjobs26ルールに対して指定されています。

  • この変換によって、行LCR内のhr.jobs表の名前が、hr.assignments表に変更されています。