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コンポーネントに対してこの情報を表示する手順:
-
データベースにXStream管理者として接続します。
SQL*Plusでのデータベースへの接続の詳細は、Oracle Database管理者ガイドを参照してください。
-
次の問合せを実行します。
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コンポーネントについて、次の情報を表示する手順:
-
データベースにXStream管理者として接続します。
SQL*Plusでのデータベースへの接続の詳細は、Oracle Database管理者ガイドを参照してください。
-
次の問合せを実行します。
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
ビューには、取得ユーザー、取得プロセスまたはソース・データベースに関する情報は含まれません。
アウトバウンド・サーバーに関する一般情報を表示する手順:
-
データベースにXStream管理者として接続します。
SQL*Plusでのデータベースへの接続の詳細は、Oracle Database管理者ガイドを参照してください。
-
次の問合せを実行します。
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
を表示します。
アウトバウンド・サーバーに関する詳細情報を表示する手順:
-
データベースにXStream管理者として接続します。
SQL*Plusでのデータベースへの接続の詳細は、Oracle Database管理者ガイドを参照してください。
-
次の問合せを実行します。
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の合計数を確認できます。
アウトバウンド・サーバーの現在のトランザクションに関する情報を表示する手順:
-
データベースにXStream管理者として接続します。
SQL*Plusでのデータベースへの接続の詳細は、Oracle Database管理者ガイドを参照してください。
-
次の問合せを実行します。
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_SERVER
でCOMMITTED_DATA_ONLY
値がYES
の場合にのみ移入されます。
関連項目:
6.4.4 アウトバウンド・サーバーの統計情報の表示
例では、アウトバウンド・サーバーの統計情報を表示する方法を示します。
V$XSTREAM_OUTBOUND_SERVER
ビューには、XStreamアウトバウンド・サーバーにより処理されたデータベース変更に関する次の情報が含まれています。
-
アウトバウンド・サーバーの名前
-
前回クライアント・アプリケーションがアウトバウンド・サーバーに接続されてから、アウトバウンド・サーバーからXStreamクライアント・アプリケーションに送信されたトランザクションの数
-
前回クライアント・アプリケーションがアウトバウンド・サーバーに接続されてから、アウトバウンド・サーバーからXStreamクライアント・アプリケーションに送信されたLCRの数
-
前回クライアント・アプリケーションがアウトバウンド・サーバーに接続されてから、アウトバウンド・サーバーからXStreamクライアント・アプリケーションに送信されたMB数
-
前回クライアント・アプリケーションがアウトバウンド・サーバーに接続されてから、アウトバウンド・サーバーがXStreamクライアント・アプリケーションにLCRを送信するのにかかった時間
-
アウトバウンド・サーバーによってXStreamクライアント・アプリケーションに最後に送信されたLCRのメッセージ番号
-
アウトバウンド・サーバーによってクライアント・アプリケーションに最後に送信されたLCRのソース・データベースでの作成時刻
アウトバウンド・サーバーの統計情報を表示する手順:
-
データベースにXStream管理者として接続します。
SQL*Plusでのデータベースへの接続の詳細は、Oracle Database管理者ガイドを参照してください。
-
次の問合せを実行します。
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_SERVER
でCOMMITTED_DATA_ONLY
値がYES
の場合にのみ移入されます。
関連項目:
6.4.5 アウトバウンド・サーバーの処理済最低位置の表示
アウトバウンド・サーバーの処理済最低位置の表示方法をサンプルの問合せで示します。
アウトバウンド・サーバーの場合、処理済最低位置とは、その位置以降、すべてのトランザクションがクライアント・アプリケーションによってコミットされ、ログに記録されたことを示します。処理済最低位置は、アウトバウンド・サーバーまたはクライアント・アプリケーションが再起動されるときに重要になります。
この項の問合せを実行して、アウトバウンド・サーバーの処理済最低位置に関する次の情報を表示できます。
-
アウトバウンド・サーバー名
-
取得された変更のソース・データベースの名前
-
処理済最低位置。これはクライアント・アプリケーションによって処理された最低水位標の位置を示します。
-
処理された最低位置が、アウトバウンド・サーバーによって最後に更新された時刻
アウトバウンド・サーバーの処理済の最低位置を表示する手順:
-
データベースにXStream管理者として接続します。
SQL*Plusでのデータベースへの接続の詳細は、Oracle Database管理者ガイドを参照してください。
-
次の問合せを実行します。
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を送信するオペレーティング・システム・プロセスのプロセス識別番号
アウトバウンド・サーバーのプロセス情報を表示する手順:
-
データベースにXStream管理者として接続します。
SQL*Plusでのデータベースへの接続の詳細は、Oracle Database管理者ガイドを参照してください。
-
次の問合せを実行します。
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 アウトバウンド・サーバーの適用パラメータの設定の表示
問合せの例では、アウトバウンド・サーバーの適用パラメータの設定を表示する方法を示します。
適用パラメータにより、アウトバウンド・サーバーの動作方法が決定されます。
アウトバウンド・サーバーの適用パラメータの設定を表示する手順:
-
データベースにXStream管理者として接続します。
SQL*Plusでのデータベースへの接続の詳細は、Oracle Database管理者ガイドを参照してください。
-
次の問合せを実行します。
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
の場合、パラメータはユーザーによって設定され、デフォルト値に設定されることもされないこともあります。
関連項目:
-
適用パラメータの詳細は、Oracle Database PL/SQLパッケージおよびタイプ・リファレンスを参照
6.5 アウトバウンド・サーバーの取得プロセスの監視
問合せの例では、アウトバウンド・サーバーの取得プロセスを監視する方法を示します。
関連項目:
Oracle Streams概要および管理には、取得プロセスの監視に使用できる問合せが含まれています
6.5.1 各取得プロセスに関する変更取得情報の表示
問合せの例では、各取得プロセスに関する変更取得情報を表示する方法を示します。
この項で説明する問合せを実行すると、データベース内の各取得プロセスに関する次の情報が表示されます。
-
取得プロセスの名前。
-
取得プロセスの現在の状態
「取得プロセスの状態」を参照してください。
-
詳細なルール評価のためにLogMinerから取得プロセスに渡されたREDOエントリの合計数。取得プロセスの事前フィルタ処理で変更を廃棄できない場合、取得プロセスはREDOエントリをLCRに変換し、そのLCRに対して詳細なルール評価を実行します。
-
取得プロセスが最後に起動されてからエンキューされたLCRの合計数。
データベース内の各取得プロセスについて、この変更取得情報を表示する手順:
-
データベースにXStream管理者として接続します。
SQL*Plusでのデータベースへの接続の詳細は、Oracle Database管理者ガイドを参照してください。
-
次の問合せを実行します。
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には、COMMIT
、ROLLBACK
などのディレクティブが含まれます。このため、エンキューされたLCRの合計数は、取得プロセスによってエンキューされた行変更およびDDL変更の数より多くなります。
関連項目:
トランザクション制御文の詳細は、「行LCR」を参照
6.5.2 各取得プロセスの登録済REDOログ・ファイルの表示
問合せの例では、データベース内の各取得プロセスに登録済のアーカイブREDOログ・ファイルに関する情報を表示する方法を示します。
問合せの例では、ローカル取得プロセスおよびダウンストリーム取得プロセスの両方に対し、これらのファイルに関する情報が表示されます。
この問合せでは、各登録済アーカイブREDOログ・ファイルに関する次の情報が表示されます。
-
ファイルを使用する取得プロセスの名前
-
ファイルのソース・データベース
-
ファイルの順序番号
-
ローカル・サイトでのファイルの名前および場所
-
ファイルにデータ・ディクショナリ・ビルドの最初の部分が含まれているかどうか
-
ファイルにデータ・ディクショナリ・ビルドの最後の部分が含まれているかどうか
各取得プロセスの登録済REDOログ・ファイルを表示する手順:
-
データベースにXStream管理者として接続します。
SQL*Plusでのデータベースへの接続の詳細は、Oracle Database管理者ガイドを参照してください。
-
次の問合せを実行します。
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つ表示されます。この問合せでは、ローカル・ファイル・システムにおけるこれらの各ファイルの名前および場所が表示されます。
関連項目:
-
ディクショナリ・ビルドの詳細は、取得プロセスに関連するSCN値を参照
6.5.3 各取得プロセスで必要なREDOログ・ファイルの表示
問合せの例では、各取得プロセスに必要なREDOログ・ファイルを表示する方法を示します。
取得プロセスには、必須チェックポイントSCNが含まれるREDOログ・ファイルおよび後続のすべてのREDOログ・ファイルが必要です。ALL_CAPTURE
データ・ディクショナリ・ビューのREQUIRED_CHECKPOINT_SCN
列を問い合せると、取得プロセスの必須チェックポイントSCNを判別できます。必須チェックポイントSCNが含まれているREDOログ・ファイルより前のREDOログ・ファイルは、取得プロセスでは不要になります。これらのREDOログ・ファイルは、他の目的でも不要になるとオフラインで格納できます。後で取得プロセスの開始SCNを小さい値にリセットする場合、これらのREDOログ・ファイルが必要となることがあります。
この問合せでは、必要な各アーカイブREDOログ・ファイルに関する次の情報が表示されます。
-
ファイルを使用する取得プロセスの名前
-
ファイルのソース・データベース
-
ファイルの順序番号
-
ローカル・サイトでの必要なREDOログ・ファイルの名前および場所
データベース内の必要な各アーカイブREDOログ・ファイルに関する前述の情報を表示するには、次の問合せを実行します。
出力は次のようになります。
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値を表示する手順:
-
データベースにXStream管理者として接続します。
SQL*Plusでのデータベースへの接続の詳細は、Oracle Database管理者ガイドを参照してください。
-
次の問合せを実行します。
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 各取得プロセスのパラメータ設定の表示
問合せの例では、各取得プロセスのパラメータ設定を一覧表示する方法を示します。
取得プロセス・パラメータによって、取得プロセスの動作が決定されます。
各取得プロセスのパラメータ設定を一覧表示する手順:
-
データベースにXStream管理者として接続します。
SQL*Plusでのデータベースへの接続の詳細は、Oracle Database管理者ガイドを参照してください。
-
次の問合せを実行します。
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
の場合、パラメータはユーザーによって設定され、デフォルト値に設定されることもされないこともあります。
関連項目:
-
取得プロセス・パラメータの詳細は、Oracle Database PL/SQLパッケージ・プロシージャおよびタイプ・リファレンスを参照
6.5.6 各取得プロセスの適用済SCNの確認
問合せの例では、各取得プロセスの適用済SCNを確認する方法を示します。
取得プロセスの適用済システム変更番号(SCN)は、関連するアウトバウンド・サーバーによりデキューされた最新の論理変更レコード(LCR)のSCNです。この適用済SCNより小さいすべての変更は、取得プロセスによって取得された変更を処理するすべてのアウトバウンド・サーバーによって処理されています。
各取得プロセスの適用済SCNを確認する手順:
-
データベースにXStream管理者として接続します。
SQL*Plusでのデータベースへの接続の詳細は、Oracle Database管理者ガイドを参照してください。
-
次の問合せを実行します。
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ログのスキャン待機時間を表示する手順:
-
データベースにXStream管理者として接続します。
SQL*Plusでのデータベースへの接続の詳細は、Oracle Database管理者ガイドを参照してください。
-
次の問合せを実行します。
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)に含めるように取得プロセスに指示できます。
取得プロセスによって取得された追加の属性を表示する手順:
-
データベースにXStream管理者として接続します。
SQL*Plusでのデータベースへの接続の詳細は、Oracle Database管理者ガイドを参照してください。
-
次の問合せを実行します。
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
)が含められますが、その他の追加属性は含められません。
関連項目:
-
INCLUDE_EXTRA_ATTRIBUTE
プロシージャの詳細は、Oracle Database PL/SQLパッケージおよびタイプ・リファレンスを参照
6.6 XStreamルールの監視
サンプル問合せでは、XStreamルールを監視する方法を示します。
ALL_XSTREAM_RULES
ビューにはアウトバウンド・サーバーおよびインバウンド・サーバーで使用されるルールに関する情報が含まれています。DBMS_XSTREAM_ADM
パッケージのCREATE_OUTBOUND
プロシージャを使用してアウトバウンド・サーバーが作成された場合、これらのビューには、アウトバウンド・サーバーに変更を送信する取得プロセスによって使用されるルールの情報も含まれます。ただし、ADD_OUTBOUND
プロシージャを使用して作成されたアウトバウンド・サーバーの場合、このビューには取得プロセス・ルールに関する情報は含まれません。また、これらのビューには、取得プロセスからアウトバウンド・サーバーへのストリームの伝播で使用されるルールに関する情報は含まれません。
XStreamコンポーネントで使用されるルールに関する情報を表示する手順:
-
データベースにXStream管理者として接続します。
SQL*Plusでのデータベースへの接続の詳細は、Oracle Database管理者ガイドを参照してください。
-
次の問合せを実行します。
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_TYPE
はAPPLY
であることに注意してください。ALL_APPLY
ビューのPURPOSE
列への問合せを実行することで、適用コンポーネントの目的を判別できます。
ALL_XSTREAM_RULES
ビューには、この例に示されている情報に加えて、XStream構成で使用されるルールに関する詳細が含まれます。たとえば、このビューを問い合せて、XStreamコンポーネントで使用されるルール・セットに関する情報を表示できます。
取得プロセス、伝播、適用プロセス、アウトバウンド・サーバーおよびインバウンド・サーバーなどの、すべてのコンポーネントで使用されるルールに関する情報を表示するには、ALL_XSTREAM_RULES
ビューを問い合せることができます。ルールを監視するための問合せの例については、Oracle Streams概要および管理を参照してください。
関連項目:
6.7 宣言ルールベースの変換の監視
問合せの例では、宣言ルールベースの変換を監視する方法を示します。
宣言ルールベースの変換は、行LCRに対する共通の変換シナリオ・セットの1つを扱うルールベースの変換です。宣言ルールベースの変換は、PL/SQLを使用せずに内部的に実行されます。
この項で説明する問合せを実行すると、データベース内の各宣言ルールベースの変換に関する次の情報が表示されます。
-
宣言ルールベースの変換が指定されたルールの所有者
-
宣言ルールベースの変換が指定されたルールの名前
-
指定された宣言ルールベースの変換のタイプ。
ADD
COLUMN
、DELETE
COLUMN
、KEEP
COLUMNS
、RENAME
COLUMN
、RENAME
SCHEMA
およびRENAME
TABLE
の各タイプが表示される可能性があります。 -
宣言ルールベースの変換の優先順位。この優先順位は、同じルールに指定されている同じ手順番号の他の変換に対する、変換の実行順序です。手順番号が同じ変換では、優先順位が最も低い変換が最初に実行されます。
-
宣言ルールベースの変換の手順番号。複数の宣言ルールベースの変換が同じルールに指定された場合、手順番号が最も小さい変換が最初に実行されます。変換を作成する際に、宣言ルールベースの変換の手順番号を指定できます。
DBA_XSTREAM_TRANSFORMATIONS
ビューにアクセスするには、DBA
ロールを持っている必要があります。
次の問合せを実行すると、データベース内の宣言ルールベースの変換に関する情報が表示されます。
出力は次のようになります。
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
COLUMN
、DELETE
COLUMN
など)と等しいものと指定して、問合せにWHERE
句を含めます。
たとえば、前述の問合せではADD
COLUMN
変換およびRENAME
TABLE
変換が表示されます。
注意:
優先順位および手順番号は、宣言ルールベースの変換のみに関連します。これらはサブセット・ルール変換またはカスタム・ルールベースの変換に関連しません。
関連項目:
6.7.1 ADD COLUMN変換に関する情報の表示
問合せの例では、データベース内のADD
COLUMN
宣言ルールベースの変換に関する詳細情報を表示する方法を示します。
ビューDBA_XTREAM_TRANSFORMATIONS
を使用して、宣言ルールベースの変換プロシージャDBMS_XSTREAM_ADM
を使用して行LCRに追加された列の情報を表示します。
ADD
COLUMN
変換に関する情報を表示する手順:
-
データベースにXStream管理者として接続します。
SQL*Plusでのデータベースへの接続の詳細は、Oracle Database管理者ガイドを参照してください。
-
次の問合せを実行します。
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
変換に関する情報を表示する手順:
-
データベースにXStream管理者として接続します。
SQL*Plusでデータベースに接続する方法については、『Oracle Database管理者ガイド』を参照してください。
-
次の問合せを実行します。
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
表に変更されています。