次の各項では、Oracle Streams暗黙的取得の監視について説明します。
注意: Oracle Streams環境の監視には、Oracle Enterprise ManagerコンソールのOracle Streamsツールを使用する方法も適しています。詳細は、Oracle Database 2日でデータ・レプリケーションおよび統合ガイドおよびOracle Streamsツールのオンライン・ヘルプを参照してください。 |
関連項目:
|
この項では、Oracle Streamsの取得プロセスの監視に使用できる問合せの例を示します。
この項の内容は次のとおりです。
この項で説明する問合せを実行すると、データベース内の各取得プロセスに関する情報を表示できます。
取得プロセスの名前
取得プロセスで使用されるキューの名前
取得プロセスで使用されるポジティブ・ルール・セットの名前
取得プロセスで使用されるネガティブ・ルール・セットの名前
取得プロセスの状態(ENABLED
、DISABLED
またはABORTED
)
データベース内の各取得プロセスに関する一般情報を表示するには、次の問合せを実行します。
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
列を問い合せると、エラーを特定できます。
この項で説明する問合せを実行すると、データベース内の各取得プロセスに関する次の情報が表示されます。
取得プロセスの名前。
プロセス番号CP
nn
(nn
は文字および数字)。
セッション識別子。
セッションのシリアル番号。
取得プロセスの現在の状態。
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には、COMMIT
、ROLLBACK
などのディレクティブが含まれます。このため、エンキューされた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
ダウンストリーム取得とは、ソース・データベース以外のデータベースで実行される取得プロセスのことです。この項で説明する問合せを実行すると、データベース内の各ダウンストリーム取得プロセスに関する次の情報を表示できます。
取得プロセスの名前
取得プロセスで取得された変更のソース・データベース
取得プロセスで使用されるキューの名前
取得プロセスの状態(ENABLED
、DISABLED
または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
列を問い合せると、エラーを特定できます。
この項で説明する問合せを実行すると、データベース内の各取得プロセスの登録済アーカイブ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つ表示されます。この問合せでは、ローカル・ファイル・システムにおけるこれらの各ファイルの名前および場所が表示されます。
関連項目: |
取得プロセスには、必須チェックポイント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値に関する情報を表示できます。この問合せによって、ローカル取得プロセスおよびダウンストリーム取得プロセスのこれらのファイルの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エントリは、取得プロセスで使用される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を表示するには、次の問合せを実行します。
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ログ・エントリの作成時刻から現在の時刻までの秒数を示します。取得プロセスを起動した直後は、この数値が比較的大きくなる場合があります。
状態が最後に記録されてからの秒数。取得プロセスで最後に状態が記録されてからの秒数を示します。
現行の取得プロセス時刻。取得プロセスで最後に状態が記録された時刻を示します。
メッセージ作成時刻。データ操作言語(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
ビューを問い合せます。
関連項目:
|