24 Oracle Streams暗黙的取得の監視
次の各項では、Oracle Streams暗黙的取得の監視について説明します。
注意:
Oracle Enterprise Manager Cloud ControlのOracle Streamsツールも、Oracle Streams環境を監視するための優れた手段です。詳細は、Oracle Streamsツールのオンライン・ヘルプを参照してください。
関連項目:
-
この章で説明するデータ・ディクショナリ・ビューの詳細は、『Oracle Databaseリファレンス』を参照
24.1 取得プロセスの監視
24.1.1 各取得プロセスのキュー、ルール・セットおよび状態の表示
この項で説明する問合せを実行すると、データベース内の各取得プロセスに関する情報を表示できます。
-
取得プロセスの名前
-
取得プロセスで使用されるキューの名前
-
取得プロセスで使用されるポジティブ・ルール・セットの名前
-
取得プロセスで使用されるネガティブ・ルール・セットの名前
-
取得プロセスの状態(
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
列を問い合せると、エラーを特定できます。
関連項目:
取得プロセスがABORTEDの場合のエラー番号およびエラー・メッセージを表示する問合せの例は、「取得プロセスが有効かどうか」を参照
24.1.2 各取得プロセスに関するセッション情報の表示
この項で説明する問合せを実行すると、データベース内の取得プロセスに関連付けられている各セッション情報が表示されます。
-
取得プロセスのコンポーネント
-
セッション識別子
-
シリアル番号
-
オペレーション・システムのプロセス識別番号
-
CP
nn
という形式の取得プロセスのプロセス名(nn
は文字および数字)
データベースの各取得プロセスに関する前述の情報を表示するには、次の問合せを実行します。
COLUMN ACTION HEADING 'Capture Process Component' FORMAT A25 COLUMN SID HEADING 'Session ID' FORMAT 99999 COLUMN SERIAL# HEADING 'Session|Serial|Number' FORMAT 99999999 COLUMN PROCESS HEADING 'Operating System|Process Number' FORMAT A20 COLUMN PROCESS_NAME HEADING 'Process|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 ='Streams' AND ACTION LIKE '%Capture%';
出力は次のようになります。
Session Serial Operating System Process Capture Process Component Session ID Number Process Number Name ------------------------- ---------- --------- -------------------- ------- EMDBA$CAP - Capture 74 9 10019 CP01
関連項目:
取得プロセスの並列性の詳細は、「取得プロセスのサブコンポーネント」を参照
24.1.3 各取得プロセスに関する変更取得情報の表示
この項で説明する問合せを実行すると、データベース内の各取得プロセスに関する次の情報が表示されます。
-
取得プロセスの名前。
-
プロセス番号
CP
nn
(nn
は文字および数字) -
セッション識別子。
-
セッションのシリアル番号。
-
取得プロセスの現在の状態
「取得プロセスの状態」を参照してください。
-
詳細なルール評価のために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変更の数より多くなります。
関連項目:
トランザクション制御文の詳細は、「行LCR」を参照
24.1.4 各取得プロセスの状態変更およびメッセージ作成時刻の表示
この項で説明する問合せを実行すると、データベース内の各取得プロセスに関する次の情報が表示されます。
-
取得プロセスの名前。
-
取得プロセスの現在の状態
「取得プロセスの状態」を参照してください。
-
取得プロセスの状態が最後に変更された日時。
-
取得プロセスで最後に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
24.1.5 各取得プロセスの取得操作の実行経過時間の表示
この項で説明する問合せを実行すると、データベース内の各取得プロセスに関する次の情報が表示されます。
-
取得プロセスの名前。
-
取得の経過時間。取得プロセスが最後に起動されてから、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
24.1.6 各ダウンストリーム取得プロセスに関する情報の表示
ダウンストリーム取得とは、ソース・データベース以外のデータベースで実行される取得プロセスのことです。この項で説明する問合せを実行すると、データベース内の各ダウンストリーム取得プロセスに関する次の情報を表示できます。
-
取得プロセスの名前
-
取得プロセスで取得された変更のソース・データベース
-
取得プロセスで使用されるキューの名前
-
取得プロセスの状態(
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
列を問い合せると、エラーを特定できます。
注意:
Oracle Streamsダウンストリーム取得プロセスのソース・データベースでは、V$ARCHIVE_DEST_STATUS
ビューを問い合せてダウンストリーム・データベースに関する情報を表示できます。このビューの次の列がダウンストリーム・データベースに関連しています。
-
REDOログ情報がダウンストリーム取得データベースに送信されている場合は、
TYPE
列にDOWNSTREAM
が表示されます。 -
DESTINATION
列には、ダウンストリーム取得データベースの名前が表示されます。
関連項目:
-
取得プロセスの作成の詳細は、『Oracle Streamsレプリケーション管理者ガイド』を参照
-
取得プロセスがABORTEDの場合のエラー番号およびエラー・メッセージを表示する問合せの例は、「取得プロセスが有効かどうか」を参照
24.1.7 各取得プロセスの登録済REDOログ・ファイルの表示
この項で説明する問合せを実行すると、データベース内の各取得プロセスの登録済アーカイブREDOログ・ファイルに関する情報を表示できます。この問合せによって、ローカル取得プロセスおよびダウンストリーム取得プロセスのこれらのファイルに関する情報が表示されます。
この問合せでは、各登録済アーカイブREDOログ・ファイルに関する次の情報が表示されます。
-
ファイルを使用する取得プロセスの名前
-
ファイルのソース・データベース
-
ファイルの順序番号
-
ローカル・サイトでのファイルの名前および場所
-
ファイルにデータ・ディクショナリ・ビルドの最初の部分が含まれているかどうか
-
ファイルにデータ・ディクショナリ・ビルドの最後の部分が含まれているかどうか
データベースの各登録済アーカイブREDOログ・ファイルに関する前述の情報を表示するには、次の問合せを実行します。
COLUMN CONSUMER_NAME HEADING 'Capture|Process|Name' FORMAT A15 COLUMN SOURCE_DATABASE HEADING 'Source|Database' FORMAT A10 COLUMN SEQUENCE# HEADING 'Sequence|Number' FORMAT 99999 COLUMN NAME HEADING 'Archived Redo Log|File Name' FORMAT A20 COLUMN DICTIONARY_BEGIN HEADING 'Dictionary|Build|Begin' FORMAT A10 COLUMN DICTIONARY_END HEADING 'Dictionary|Build|End' FORMAT A10 SELECT r.CONSUMER_NAME, r.SOURCE_DATABASE, r.SEQUENCE#, r.NAME, r.DICTIONARY_BEGIN, r.DICTIONARY_END FROM DBA_REGISTERED_ARCHIVED_LOG r, DBA_CAPTURE c WHERE r.CONSUMER_NAME = c.CAPTURE_NAME;
出力は次のようになります。
Capture Dictionary Dictionary Process Source Sequence Archived Redo Log Build Build Name Database Number File Name Begin End --------------- ---------- -------- -------------------- ---------- ---------- STRM02_CAPTURE DBS2.EXAMP 15 /orc/dbs/log/arch2_1 NO NO LE.COM _15_478347508.arc STRM02_CAPTURE DBS2.EXAMP 16 /orc/dbs/log/arch2_1 NO NO LE.COM _16_478347508.arc STRM03_CAPTURE DBS1.EXAMP 45 /remote_logs/arch1_1 YES YES LE.COM _45_478347335.arc STRM03_CAPTURE DBS1.EXAMP 46 /remote_logs/arch1_1 NO NO LE.COM _46_478347335.arc STRM03_CAPTURE DBS1.EXAMP 47 /remote_logs/arch1_1 NO NO LE.COM _47_478347335.arc
strm02_capture
がローカル取得プロセス、strm03_capture
がダウンストリーム取得プロセスの場合にこの問合せをdbs2.example.com
データベースで実行したとします。strm03_capture
ダウンストリーム取得プロセスのソース・データベースはdbs1.example.com
です。この問合せによって、strm02_capture
の登録済アーカイブREDOログ・ファイルが2つ、strm03_capture
の登録済アーカイブREDOログ・ファイルが3つ表示されます。この問合せでは、ローカル・ファイル・システムにおけるこれらの各ファイルの名前および場所が表示されます。
関連項目:
-
データ・ディクショナリ・ビルドの詳細は、「取得プロセスのLogMinerデータ・ディクショナリ」を参照
-
取得プロセスの構成の詳細は、『Oracle Streamsレプリケーション管理者ガイド』を参照
24.1.8 各取得プロセスで必要なREDOログ・ファイルの表示
取得プロセスには、必須チェックポイントSCNが含まれているREDOログ・ファイルおよび後続のすべてのREDOログ・ファイルが必要です。DBA_CAPTURE
データ・ディクショナリ・ビューのREQUIRED_CHECKPOINT_SCN
列を問い合せると、取得プロセスの必須チェックポイントSCNを判別できます。必須チェックポイントSCNが含まれているREDOログ・ファイルより前のREDOログ・ファイルは、取得プロセスでは不要になります。これらのREDOログ・ファイルは、他の目的でも不要になるとオフラインで格納できます。後で取得プロセスの開始SCNを小さい値にリセットする場合、これらのREDOログ・ファイルが必要となることがあります。
この問合せでは、必要な各アーカイブREDOログ・ファイルに関する次の情報が表示されます。
-
ファイルを使用する取得プロセスの名前
-
ファイルのソース・データベース
-
ファイルの順序番号
-
ローカル・サイトでの必要なREDOログ・ファイルの名前および場所
データベース内の必要な各アーカイブREDOログ・ファイルに関する前述の情報を表示するには、次の問合せを実行します。
COLUMN CONSUMER_NAME HEADING 'Capture|Process|Name' FORMAT A15 COLUMN SOURCE_DATABASE HEADING 'Source|Database' FORMAT A10 COLUMN SEQUENCE# HEADING 'Sequence|Number' FORMAT 99999 COLUMN NAME HEADING 'Required|Archived Redo Log|File Name' FORMAT A40 SELECT r.CONSUMER_NAME, r.SOURCE_DATABASE, r.SEQUENCE#, r.NAME FROM DBA_REGISTERED_ARCHIVED_LOG r, DBA_CAPTURE c WHERE r.CONSUMER_NAME = c.CAPTURE_NAME AND r.NEXT_SCN >= c.REQUIRED_CHECKPOINT_SCN;
出力は次のようになります。
Capture Required Process Source Sequence Archived Redo Log Name Database Number File Name --------------- ---------- -------- ---------------------------------------- STRM02_CAPTURE DBS2.EXAMP 16 /orc/dbs/log/arch2_1_16_478347508.arc LE.COM STRM03_CAPTURE DBS1.EXAMP 47 /remote_logs/arch1_1_47_478347335.arc LE.COM
関連項目:
24.1.9 各取得プロセスで使用される各REDOログ・ファイルのSCN値の表示
この項で説明する問合せを実行すると、データベース内の各取得プロセスの登録済アーカイブREDOログ・ファイルのSCN値に関する情報を表示できます。この問合せによって、ローカル取得プロセスおよびダウンストリーム取得プロセスのこれらのファイルのSCN値に関する情報が表示されます。また、この問合せでは、ローカル・データベースの取得プロセスで不要になったREDOログ・ファイルが識別されます。
この問合せでは、各登録済アーカイブREDOログ・ファイルに関する次の情報が表示されます。
-
ファイルを使用する取得プロセスの取得プロセス名
-
ローカル・サイトでのファイルの名前および場所
-
REDOログ・ファイルに含まれている情報の最小SCN値
-
連続するREDOログ・ファイルの次のREDOログ・ファイルの最小SCN値
-
REDOログ・ファイルが消去可能かどうか
データベースの各登録済アーカイブREDOログ・ファイルに関する前述の情報を表示するには、次の問合せを実行します。
COLUMN CONSUMER_NAME HEADING 'Capture|Process|Name' FORMAT A15 COLUMN NAME HEADING 'Archived Redo Log|File Name' FORMAT A25 COLUMN FIRST_SCN HEADING 'First SCN' FORMAT 99999999999 COLUMN NEXT_SCN HEADING 'Next SCN' FORMAT 99999999999 COLUMN PURGEABLE HEADING 'Purgeable?' FORMAT A10 SELECT r.CONSUMER_NAME, r.NAME, r.FIRST_SCN, r.NEXT_SCN, r.PURGEABLE FROM DBA_REGISTERED_ARCHIVED_LOG r, DBA_CAPTURE c WHERE r.CONSUMER_NAME = c.CAPTURE_NAME;
出力は次のようになります。
Capture Process Archived Redo Log Name File Name First SCN Next SCN Purgeable? --------------- ------------------------- ------------ ------------ ---------- CAPTURE_SIMP /private1/ARCHIVE_LOGS/1_ 509686 549100 YES 3_502628294.dbf CAPTURE_SIMP /private1/ARCHIVE_LOGS/1_ 549100 587296 YES 4_502628294.dbf CAPTURE_SIMP /private1/ARCHIVE_LOGS/1_ 587296 623107 NO 5_502628294.dbf
すべての取得プロセスに対してPurgeable?
がYES
に設定されているREDOログ・ファイルは、ローカル・データベースの取得プロセスでは不要です。これらのREDOログ・ファイルは、ローカル・データベースの既存の取得プロセスに影響を与えずに削除できます。1つ以上の取得プロセスに対してPurgeable?
がNO
に設定されているREDOログ・ファイルは、保持しておく必要があります。
関連項目:
24.1.10 各取得プロセスで使用可能な最後のアーカイブREDOエントリの表示
ローカル取得プロセスの場合、使用可能な最後のアーカイブREDOエントリは、オンラインREDOログからアーカイブ・ログ・ファイルに最後にフラッシュされたエントリです。ダウンストリーム取得プロセスの場合、使用可能な最終アーカイブREDOエントリは、取得プロセスで使用されるLogMinerセッションに最後に追加されたアーカイブ・ログ・ファイル内の最新のシステム変更番号(SCN)を持つREDOエントリです。
この項で説明する問合せを実行すると、各取得プロセスで使用可能な最後のREDOエントリに関する次の情報が表示されます。
-
取得プロセスの名前。
-
取得プロセスで使用されるLogMinerセッションの識別番号
-
取得プロセスで使用可能な最大SCN
ローカル取得の場合、このSCNは最後にログ・ファイルにフラッシュされたREDOのSCNです。ダウンストリーム取得の場合、このSCNはアーカイブ・ログによって最後にLogMinerに追加されたSCNです。
-
取得プロセスで使用可能な最大SCNのタイムスタンプ
ローカル取得の場合、このタイムスタンプはSCNがログ・ファイルに書き込まれた時刻です。ダウンストリーム取得の場合、このタイムスタンプはLogMinerで使用可能な最新のアーカイブ・ログ(最新のSCNが含まれる)の時刻です。
この問合せで表示される情報は、有効になっている取得プロセスに対してのみ有効です。
次の問合せを実行すると、各取得プロセスに関する前述の情報が表示されます。
COLUMN CAPTURE_NAME HEADING 'Capture|Name' FORMAT A20 COLUMN LOGMINER_ID HEADING 'LogMiner ID' FORMAT 9999 COLUMN AVAILABLE_MESSAGE_NUMBER HEADING 'Highest|Available SCN' FORMAT 9999999999 COLUMN AVAILABLE_MESSAGE_CREATE_TIME HEADING 'Time of|Highest|Available 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;
出力は次のようになります。
Time of Capture Highest Highest Name LogMiner ID Available SCN Available SCN -------------------- ----------- ------------- ----------------- DB1$CAP 1 1506751 09:46:11 06/29/09
24.1.11 各取得プロセスのパラメータ設定の表示
次の問合せを実行すると、データベース内の取得プロセスごとの各取得プロセス・パラメータの現行の設定が表示されます。
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 CAPTURE_NAME, PARAMETER, VALUE, SET_BY_USER FROM DBA_CAPTURE_PARAMETERS;
出力は次のようになります。
Capture Process Set by Name Parameter Value User? ------------------------- ------------------------------ ---------- ---------- DA$CAP CAPTURE_IDKEY_OBJECTS N NO DA$CAP CAPTURE_SEQUENCE_NEXTVAL N NO DA$CAP DISABLE_ON_LIMIT N NO DA$CAP DOWNSTREAM_REAL_TIME_MINE Y NO DA$CAP EXCLUDETRANS NO DA$CAP EXCLUDEUSER NO DA$CAP EXCLUDEUSERID NO DA$CAP GETAPPLOPS Y NO DA$CAP GETREPLICATES N NO DA$CAP IGNORE_TRANSACTION NO DA$CAP IGNORE_UNSUPPORTED_TABLE * NO DA$CAP MAXIMUM_SCN INFINITE NO DA$CAP MAX_SGA_SIZE INFINITE NO DA$CAP MERGE_THRESHOLD 60 NO DA$CAP MESSAGE_LIMIT INFINITE NO DA$CAP MESSAGE_TRACKING_FREQUENCY 2000000 NO DA$CAP PARALLELISM 1 NO DA$CAP SKIP_AUTOFILTERED_TABLE_DDL Y NO DA$CAP SPLIT_THRESHOLD 1800 NO DA$CAP STARTUP_SECONDS 0 NO DA$CAP TIME_LIMIT INFINITE NO DA$CAP TRACE_LEVEL 0 NO DA$CAP WRITE_ALERT_LOG Y NO DA$CAP XOUT_CLIENT_EXISTS N NO
注意:
パラメータのSet
by
user
列がNO
の場合、そのパラメータはデフォルト値に設定されます。パラメータのSet
by
user
列がYES
の場合、パラメータはユーザーによって設定され、デフォルト値に設定されることもされないこともあります。
関連項目:
24.1.12 データベース内のすべての取得プロセスの適用済SCNの判別
取得プロセスの適用済システム変更番号(SCN)は、関連する適用プロセスによってデキューされた最新のメッセージのSCNです。この適用済SCNより小さいすべての変更は、取得プロセスによって取得された変更を適用するすべての適用プロセスによってデキューされています。
データベース内のすべての取得プロセスの適用済SCNを表示するには、次の問合せを実行します。
COLUMN CAPTURE_NAME HEADING 'Capture Process Name' FORMAT A30 COLUMN APPLIED_SCN HEADING 'Applied SCN' FORMAT 99999999999 SELECT CAPTURE_NAME, APPLIED_SCN FROM DBA_CAPTURE;
出力は次のようになります。
Capture Process Name Applied SCN ------------------------------ ----------- CAPTURE_EMP 177154
24.1.13 各取得プロセスのREDOログのスキャン待機時間の判別
この項で説明する問合せを実行すると、各取得プロセスに関する次の情報を検索できます。
-
REDOログのスキャン待機時間。取得プロセスによってスキャンされた最新のREDOログ・エントリの作成時刻から現在の時刻までの秒数を示します。取得プロセスを起動した直後は、この数値が比較的大きくなる場合があります。
-
状態が最後に記録されてからの秒数。取得プロセスで最後に状態が記録されてからの秒数を示します。
-
現行の取得プロセス時刻。取得プロセスで最後に状態が記録された時刻を示します。
-
メッセージ作成時刻。データ操作言語(DML)またはデータ定義言語(DDL)の変更によって、最新の取得LCRに関するREDOデータがソース・データベースで生成された時刻です。
この問合せで表示される情報は、有効になっている取得プロセスに対してのみ有効です。
次の問合せを実行すると、各取得プロセスのREDOスキャンの待機時間が判別されます。
COLUMN CAPTURE_NAME HEADING 'Capture|Process|Name' FORMAT A10 COLUMN LATENCY_SECONDS HEADING 'Latency|in|Seconds' FORMAT 999999 COLUMN LAST_STATUS HEADING 'Seconds Since|Last Status' FORMAT 999999 COLUMN CAPTURE_TIME HEADING 'Current|Process|Time' COLUMN CREATE_TIME HEADING 'Message|Creation Time' FORMAT 999999 SELECT CAPTURE_NAME, ((SYSDATE - CAPTURE_MESSAGE_CREATE_TIME)*86400) LATENCY_SECONDS, ((SYSDATE - CAPTURE_TIME)*86400) LAST_STATUS, TO_CHAR(CAPTURE_TIME, 'HH24:MI:SS MM/DD/YY') CAPTURE_TIME, TO_CHAR(CAPTURE_MESSAGE_CREATE_TIME, 'HH24:MI:SS MM/DD/YY') CREATE_TIME FROM V$STREAMS_CAPTURE;
出力は次のようになります。
Capture Latency Current Process in Seconds Since Process Message Name Seconds Last Status Time Creation Time ---------- ------- ------------- ----------------- ----------------- DA$CAP 1 1 12:33:39 07/14/10 12:33:39 07/14/10
この問合せで戻される"Latency
in
Seconds"
は、現在の時刻(SYSDATE
)と"Message
Creation
Time"
の差です。この問合せで戻される"Seconds
Since
Last
Status"
は、現在の時刻(SYSDATE
)と"Current
Process
Time"
の差です。
24.1.14 各取得プロセスのメッセージのエンキュー待機時間の判別
この項で説明する問合せを実行すると、各取得プロセスに関する次の情報を検索できます。
-
メッセージのエンキュー待機時間。エントリがソース・データベースで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"
の差です。
24.1.15 各取得プロセスのルールの評価に関する情報の表示
-
取得プロセスの名前。
-
取得プロセスが最後に起動されてから事前フィルタ処理中に廃棄された変更数。これらの変更が取得プロセスのルール・セットを完全には満たしていないことが、事前フィルタ処理中に取得プロセスによって判定されています。
-
取得プロセスが最後に起動されてから事前フィルタ処理中に保持された変更数。これらの変更が取得プロセスのルール・セットを完全に満たしていることが、事前フィルタ処理中に取得プロセスによって判定されています。このような変更は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
事前フィルタ処理評価の合計数は、事前フィルタ処理で廃棄された変更、保持された変更および判定されなかった変更の合計と等しくなります。
関連項目:
24.1.16 取得と適用の複合を使用する取得プロセスの判別
取得プロセスは伝播送信者として動作し、バッファ・キューは変更のレプリケーションがより効率的になるように最適化されるため、取得と適用の複合環境は効率的です。
取得プロセスで取得と適用の複合が使用される場合、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
で取得と適用の複合が使用されていることを示しています。
関連項目:
24.1.17 分割とマージ操作に関する情報の表示
Oracle Streams接続先の分割およびマージは、次の場合に役立ちます。
-
単一の取得プロセスで、複数の適用プロセスに送信される変更を取得する場合。
-
適用プロセスが、取得プロセスによって取得された変更の受入れを停止した場合。たとえば、適用プロセスは、適用プロセスが無効化された場合、適用プロセスが含まれているデータベースが停止した場合、ネットワークの問題が発生した場合、適用プロセスが含まれているデータベースを実行しているコンピュータ・システムが停止した場合、または他のなんらかの理由によって、変更の受入れを停止する場合があります。
これらの条件が満たされている場合、問題のある宛先のストリームを、他の宛先のストリームから分割してパフォーマンスが低下しないようにすることをお薦めします。問題が修正されたら、分割された宛先のストリームを取得プロセスの他の宛先のストリームにマージできます。
デフォルトでは、分割とマージ操作は、Oracle Streamsが問題のある宛先を検出したときに自動的に実行されます。自動分割とマージ操作は、split_threshold
およびmerge_threshold
の2つの取得プロセス・パラメータで制御されています。
次の各項では、現在および過去の自動分割とマージ操作を監視するために実行できる問合せについて説明します。
注意:
この項で説明する問合せを実行すると、自動分割とマージ操作の情報のみが表示されます。これらの問合せでは、DBMS_STREAMS_ADM
パッケージのSPLIT_STREAMS
プロシージャを使用して手動でストリームを分割する操作に関する情報は表示されません。
関連項目:
-
分割とマージ操作の詳細は、『Oracle Streamsレプリケーション管理者ガイド』を参照
-
取得プロセス・パラメータの詳細は、『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』を参照
24.1.17.1 元およびクローニングされたOracle Streamsコンポーネントの名前の表示
この項で説明する問合せを実行すると、分割とマージ操作に関与するOracle Streamsコンポーネントに関する次の情報が表示されます。
-
宛先のストリームの分割元となった元の取得プロセスの名前
-
問題のある宛先に関する変更を取得する、クローニングされた取得プロセスの名前
-
分割されたストリームの一部となっていた元の伝播または適用プロセスの名前
複数データベース構成では、伝播によって取得プロセスのキューから適用プロセスのキューに変更が送信され、伝播がこの問合せで表示されます。単一データベース構成では、適用プロセスによって、取得プロセスが使用するキューから変更がデキューされ、適用プロセスがこの問合せで表示されます。
-
問題のある宛先に関する変更を処理する、クローニングされた伝播または適用プロセスの名前
-
取得プロセスから変更を受信するOracle Streamsコンポーネントのタイプ(
PROPAGATION
またはAPPLY
のいずれか)
次の問合せを実行すると、前述の情報が表示されます。
COLUMN ORIGINAL_CAPTURE_NAME HEADING 'Original|Capture|Process' FORMAT A15 COLUMN CLONED_CAPTURE_NAME HEADING 'Cloned|Capture|Process' FORMAT A15 COLUMN ORIGINAL_STREAMS_NAME HEADING 'Original|Streams|Name' FORMAT A15 COLUMN CLONED_STREAMS_NAME HEADING 'Cloned|Streams|Name' FORMAT A15 COLUMN STREAMS_TYPE HEADING 'Streams|Type' FORMAT A11 SELECT ORIGINAL_CAPTURE_NAME, CLONED_CAPTURE_NAME, ORIGINAL_STREAMS_NAME, CLONED_STREAMS_NAME, STREAMS_TYPE FROM DBA_STREAMS_SPLIT_MERGE;
出力は次のようになります。
Original Cloned Original Cloned Capture Capture Streams Streams Streams Process Process Name Name Type --------------- --------------- --------------- --------------- ----------- DB$CAP CLONED$_DB$CAP_ PROPAGATION$_17 CLONED$_PROPAGA PROPAGATION 1 TION$_17_2
関連項目:
分割とマージ操作の詳細は、『Oracle Streamsレプリケーション管理者ガイド』を参照
24.1.17.2 分割とマージ操作のアクションおよびしきい値の表示
この項で説明する問合せを実行すると、分割とマージ操作によって実行されるアクション、および問題のある宛先を分割およびマージするために設定されたしきい値に関する次の情報が表示されます。
-
宛先のストリームの分割元となった元の取得プロセスの名前
-
分割またはマージ・ジョブのスクリプト・ステータス(
GENERATING
、NOT
EXECUTED
、EXECUTING
、EXECUTED
またはERROR
のいずれか) -
ジョブによって実行されたアクションのタイプ(
SPLIT
、MERGE
またはMONITOR
のいずれか)分割の実行が必要であることが
SPLIT
ジョブによって判断された場合、SPLIT
アクション・タイプを持つ行がDBA_STREAMS_SPLIT_MERGE
ビューに挿入されます。分割操作が完了すると、
SPLIT
アクション・タイプ行がDBA_STREAMS_SPLIT_MERGE_HIST
ビューにコピーされ、MERGE
ジョブが作成されます。MERGE
アクション・タイプの行がDBA_STREAMS_SPLIT_MERGE
ビューに挿入されます。マージ操作が完了すると、MERGE
アクション・タイプ行がDBA_STREAMS_SPLIT_MERGE_HIST
ビューに移動し、SPLIT
アクション・タイプ行がDBA_STREAMS_SPLIT_MERGE
ビューから削除されます。SPLIT
アクション・タイプ行は以前にDBA_STREAMS_SPLIT_MERGE_HIST
ビューにコピーされています。元の各取得プロセスには、そのすべての宛先を監視する
SPLIT
ジョブがあります。このタイプのジョブでは、DBA_STREAMS_SPLIT_MERGE
ビュー内の行のMONITOR
アクション・タイプが表示されます。MONITOR
アクション・タイプ行は、SPLIT
ジョブが無効の場合にのみDBA_STREAMS_SPLIT_MERGE_HIST
ビューに移動します。SPLIT
ジョブは、split_threshold
取得プロセス・パラメータをINFINITE
に設定するか、または取得プロセスを削除することによって無効にできます。 -
操作に対して設定されている取得プロセス・パラメータのしきい値(秒単位)
SPLIT
ジョブの場合、しきい値はsplit_threshold
取得プロセス・パラメータで設定されます。MERGE
ジョブの場合、しきい値はmerge_threshold
取得プロセス・パラメータで設定されます。 -
アクションのステータス
SPLIT
アクションの場合、ステータスはSPLITTING
、SPLIT
DONE
またはERROR
のいずれかです。SPLITTING
ステータスは、分割操作が実行中であることを示します。SPLIT
DONE
ステータスは、分割操作が完了していることを示します。ERROR
ステータスは、分割操作中にエラーが返されたことを示します。MERGE
アクションの場合、ステータスはNOTHING
TO
MERGE
、MERGING
、MERGE
DONE
またはERROR
のいずれかです。NOTHING
TO
MERGE
ステータスは、分割は実行されたものの分割済ストリームのマージ準備がまだできていないことを示します。MERGING
ステータスは、マージ操作が実行中であることを示します。MERGE
DONE
ステータスは、マージ操作が完了していることを示します。ERROR
ステータスは、マージ操作中にエラーが返されたことを示します。MONITOR
アクションの場合、ステータスはSPLIT
およびMERGE
ステータス値のいずれかです。また、MONITOR
アクションでは、そのステータスに関してNOTHING
TO
SPLIT
またはNONSPLITTABLE
が表示されることがあります。NOTHING
TO
SPLIT
ステータスは、取得プロセスから送られるストリームがすべての宛先で処理中であり、分割できるストリームがないことを示します。NONSPLITTABLE
ステータスは、取得プロセスのストリームを分割できないことを示します。NONSPLITTABLE
ステータスが表示される可能性があるのは次の場合です。-
取得プロセスが無効または中断されています。
-
取得プロセスのキューに、取得プロセスに加えて少なくとも1つのパブリッシャがあります。追加のパブリッシャは、別の取得プロセスまたはメッセージをキューに送信する伝播であることがあります。
-
取得プロセスにある宛先が1つのみです。分割とマージ操作は、取得プロセスによって取得される変更に複数の宛先が存在する場合にのみ可能です。
-
-
ジョブ・ステータスが最後に更新されたときの日時
次の問合せを実行すると、前述の情報が表示されます。
COLUMN ORIGINAL_CAPTURE_NAME HEADING 'Original|Capture|Process' FORMAT A10 COLUMN SCRIPT_STATUS HEADING 'Script|Status' FORMAT A12 COLUMN ACTION_TYPE HEADING 'Action|Type' FORMAT A7 COLUMN ACTION_THRESHOLD HEADING 'Action|Threshold' FORMAT A15 COLUMN STATUS HEADING 'Status' FORMAT A16 COLUMN STATUS_UPDATE_TIME HEADING 'Status|Update|Time' FORMAT A15 SELECT ORIGINAL_CAPTURE_NAME, SCRIPT_STATUS, ACTION_TYPE, ACTION_THRESHOLD, STATUS, STATUS_UPDATE_TIME FROM DBA_STREAMS_SPLIT_MERGE ORDER BY STATUS_UPDATE_TIME DESC;
出力は次のようになります。
Original Status Capture Script Action Action Update Process Status Type Threshold Status Time ---------- ------------ ------- --------------- ---------------- --------------- DB$CAP EXECUTED SPLIT 1800 SPLIT DONE 31-MAR-09 01.31 .37.133788 PM
関連項目:
-
分割とマージ操作の詳細は、『Oracle Streamsレプリケーション管理者ガイド』を参照
-
取得プロセス・パラメータの詳細は、『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』を参照
24.1.17.3 クローニングされた取得プロセスのタイム・ラグの表示
問題のある宛先に関して、取得プロセスからストリームが分割された後、宛先での問題を修正し、クローニングされた取得プロセスが有効になっていることを確認する必要があります。クローニングされた取得プロセスが問題のある宛先に変更を送信しており、問題のある宛先で適用プロセスがこれらの変更を適用していると、Oracle Schedulerジョブはそのスケジュールに従ってMERGE_STREAMS_JOB
プロシージャを実行します。
MERGE_STREAMS_JOB
プロシージャはGV$STREAMS_CAPTURE
ビューのCAPTURE_MESSAGE_CREATE_TIME
を問い合せます。クローニングされた取得プロセスと元の取得プロセスのCAPTURE_MESSAGE_CREATE_TIME
での違いがmerge_threshold
取得プロセス・パラメータの値以下の場合、MERGE_STREAMS_JOB
プロシージャはストリームのマージ準備が整っていると判断します。MERGE_STREAMS_JOB
プロシージャは、自動的にMERGE_STREAMS
を実行し、ストリームをマージします。
DBA_STREAMS_SPLIT_MERGE
ビューのLAG
列では、クローニングされた取得プロセスが元の取得プロセスから遅延している時間を秒単位で追跡します。次の問合せでは、遅延時間が表示されます。
COLUMN ORIGINAL_CAPTURE_NAME HEADING 'Original Capture Process' FORMAT A25 COLUMN CLONED_CAPTURE_NAME HEADING 'Cloned Capture Process' FORMAT A25 COLUMN LAG HEADING 'Lag' FORMAT 999999999999999 SELECT ORIGINAL_CAPTURE_NAME, CLONED_CAPTURE_NAME, LAG FROM DBA_STREAMS_SPLIT_MERGE;
出力は次のようになります。
Original Capture Process Cloned Capture Process Lag ------------------------- ------------------------- ---------------- DB$CAP CLONED$_DB$CAP_1 526
MERGE_STREAMS_JOB
が実行され、タイム・ラグがmerge_threshold
取得プロセス・パラメータの値以下の場合は、マージ操作が開始されます。
関連項目:
分割とマージ操作の詳細は、『Oracle Streamsレプリケーション管理者ガイド』を参照
24.1.17.4 分割とマージ・ジョブに関する情報の表示
この項で説明する問合せを実行すると、分割とマージ・ジョブに関する次の情報が表示されます。
-
宛先のストリームの分割元となった元の取得プロセスの名前
-
ジョブの所有者
-
ジョブの名前
-
ジョブの現在の状態(
DISABLED
、RETRY
SCHEDULED
、SCHEDULED
、RUNNING
、COMPLETED
、BROKEN
、FAILED
、REMOTE
、SUCCEEDED
またはCHAIN_STALLED
のいずれか)これらのジョブの状態の詳細は、『Oracle Database管理者ガイド』を参照してください。
-
ジョブが次に実行される日時
次の問合せを実行すると、前述の情報が表示されます。
COLUMN ORIGINAL_CAPTURE_NAME HEADING 'Original|Capture|Process' FORMAT A10 COLUMN JOB_OWNER HEADING 'Job Owner' FORMAT A10 COLUMN JOB_NAME HEADING 'Job Name' FORMAT A15 COLUMN JOB_STATE HEADING 'Job State' FORMAT A15 COLUMN JOB_NEXT_RUN_DATE HEADING 'Job Next|Run Date' FORMAT A20 SELECT ORIGINAL_CAPTURE_NAME, JOB_OWNER, JOB_NAME, JOB_STATE, JOB_NEXT_RUN_DATE FROM DBA_STREAMS_SPLIT_MERGE;
出力は次のようになります。
Original Capture Job Next Process Job Owner Job Name Job State Run Date ---------- ---------- --------------- --------------- -------------------- DB$CAP SYS STREAMS_SPLITJO SCHEDULED 01-APR-09 01.14.55.0 B$_3 00000 PM -07:00 DB$CAP SYS STREAMS_MERGEJO SCHEDULED 01-APR-09 01.17.08.0 B$_6 00000 PM -07:00
関連項目:
分割とマージ操作の詳細は、『Oracle Streamsレプリケーション管理者ガイド』を参照
24.1.17.5 過去の分割とマージ操作に関する情報の表示
この項で説明する問合せを実行すると、過去に実行された分割とマージ操作に関する次の履歴情報が表示されます。
-
宛先のストリームの分割元となった元の取得プロセスの名前
-
分割またはマージ・ジョブのスクリプト・ステータス
-
ジョブによって実行されたアクションのタイプ(
SPLIT
またはMERGE
のいずれか) -
ジョブによって実行されたアクションのステータス
ステータス値の詳細は、「分割とマージ操作のアクションおよびしきい値の表示」を参照してください。
-
ジョブの所有者
-
ジョブの名前
-
リカバリ可能なスクリプトID
次の問合せを実行すると、前述の情報が表示されます。
COLUMN ORIGINAL_CAPTURE_NAME HEADING 'Original|Capture|Process' FORMAT A8 COLUMN SCRIPT_STATUS HEADING 'Script|Status' FORMAT A12 COLUMN ACTION_TYPE HEADING 'Action|Type' FORMAT A8 COLUMN STATUS HEADING 'Status' FORMAT A10 COLUMN JOB_OWNER HEADING 'Job Owner' FORMAT A10 COLUMN JOB_NAME HEADING 'Job Name' FORMAT A10 COLUMN RECOVERABLE_SCRIPT_ID HEADING 'Recoverable|Script ID' FORMAT A15 SELECT ORIGINAL_CAPTURE_NAME, SCRIPT_STATUS, ACTION_TYPE, STATUS, JOB_OWNER, JOB_NAME, RECOVERABLE_SCRIPT_ID FROM DBA_STREAMS_SPLIT_MERGE_HIST;
出力は次のようになります。
Original Capture Script Action Recoverable Process Status Type Status Job Owner Job Name Script ID -------- ------------ -------- ---------- ---------- ---------- --------------- DB1$CAP EXECUTED SPLIT SPLIT DONE SYS STREAMS_SP 6E5C6C49CDB5798 LITJOB$_9 3E040578C891704 87 DB1$CAP EXECUTED MERGE MERGE DONE SYS STREAMS_ME 6E5BA57554F1C4C RGEJOB$_12 3E040578C89170A 1F
関連項目:
分割とマージ操作の詳細は、『Oracle Streamsレプリケーション管理者ガイド』を参照
24.1.18 サプリメンタル・ロギングの監視
次の各項では、ソース・データベースでのサプリメンタル・ロギングを監視するために実行できる問合せについて説明します。
データベースでのサプリメンタル・ロギングの合計は、これらの項で説明する3つすべての問合せで表示される結果の組合せによって決定されます。たとえば、サプリメンタル・ロギングは、表に関して「ソース・データベースでのサプリメンタル・ログ・グループの表示」の項の問合せで結果がまったく返されない場合であっても、表内の列に対して有効にできます。つまり、データベース・サプリメンタル・ロギングが有効になっている場合、またはインスタンス化の準備中にサプリメンタル・ロギングが有効にされたスキーマ内に表がある場合は、表に対してサプリメンタル・ロギングを有効にできます。
サプリメンタル・ロギングでは、操作が実行されたときにREDOログに列データが配置されます。取得プロセスは、この追加情報を取得し、LCRに配置します。これらの取得LCRを適用する適用プロセスは、変更を正しくスケジュールまたは適用するためにこの追加情報を必要とする場合があります。
24.1.18.1 ソース・データベースでのサプリメンタル・ログ・グループの表示
ソース・データベースで表に対して1つ以上のログ・グループが指定されているかどうかをチェックするには、次の問合せを実行します。
COLUMN LOG_GROUP_NAME HEADING 'Log Group' FORMAT A20 COLUMN TABLE_NAME HEADING 'Table' FORMAT A15 COLUMN ALWAYS HEADING 'Conditional or|Unconditional' FORMAT A14 COLUMN LOG_GROUP_TYPE HEADING 'Type of Log Group' FORMAT A20 SELECT LOG_GROUP_NAME, TABLE_NAME, DECODE(ALWAYS, 'ALWAYS', 'Unconditional', 'CONDITIONAL', 'Conditional') ALWAYS, LOG_GROUP_TYPE FROM DBA_LOG_GROUPS;
出力は次のようになります。
Conditional or Log Group Table Unconditional Type of Log Group -------------------- --------------- -------------- -------------------- LOG_GROUP_DEP_PK DEPARTMENTS Unconditional USER LOG GROUP SYS_C002105 REGIONS Unconditional PRIMARY KEY LOGGING SYS_C002106 REGIONS Conditional FOREIGN KEY LOGGING SYS_C002110 LOCATIONS Unonditional ALL COLUMN LOGGING SYS_C002111 COUNTRIES Conditional ALL COLUMN LOGGING LOG_GROUP_JOBS_CR JOBS Conditional USER LOG GROUP
ログ・グループのタイプの出力で、ログ・グループの作成方法が表示される場合は、次のようになります。
-
出力が
USER
LOG
GROUP
の場合、ログ・グループはALTER
TABLE
文のADD
SUPPLEMENTAL
LOG
GROUP
句を使用して作成されました。 -
それ以外の場合、ログ・グループは、
ALTER
TABLE
文のADD
SUPPLEMENTAL
LOG
DATA
句を使用して作成されました。
ログ・グループのタイプがUSER
LOG
GROUP
の場合は、DBA_LOG_GROUP_COLUMNS
データ・ディクショナリ・ビューを問い合せることによって、ログ・グループ内の列をリストできます。
注意:
ログ・グループのタイプがUSER
LOG
GROUP
ではない場合、DBA_LOG_GROUP_COLUMNS
データ・ディクショナリ・ビューには、ログ・グループ内の列に関する情報は含まれません。かわりに、表に対して操作が実行されたときに正しい列が補足的にログに記録されます。たとえば、ログ・グループのタイプがPRIMARY
KEY
LOGGING
の場合、表に対して変更が実行されたときに現在の主キー列がログに記録されます。
24.1.18.2 データベース・サプリメンタル・ロギングの指定の表示
データベース・サプリメンタル・ロギングの指定を表示するには、次に示す例のように、V$DATABASE
動的パフォーマンス・ビューを問い合せます。
COLUMN log_min HEADING 'Minimum|Supplemental|Logging?' FORMAT A12 COLUMN log_pk HEADING 'Primary Key|Supplemental|Logging?' FORMAT A12 COLUMN log_fk HEADING 'Foreign Key|Supplemental|Logging?' FORMAT A12 COLUMN log_ui HEADING 'Unique|Supplemental|Logging?' FORMAT A12 COLUMN log_all HEADING 'All Columns|Supplemental|Logging?' FORMAT A12 SELECT SUPPLEMENTAL_LOG_DATA_MIN log_min, SUPPLEMENTAL_LOG_DATA_PK log_pk, SUPPLEMENTAL_LOG_DATA_FK log_fk, SUPPLEMENTAL_LOG_DATA_UI log_ui, SUPPLEMENTAL_LOG_DATA_ALL log_all FROM V$DATABASE;
出力は次のようになります。
Minimum Primary Key Foreign Key Unique All Columns Supplemental Supplemental Supplemental Supplemental Supplemental Logging? Logging? Logging? Logging? Logging? ------------ ------------ ------------ ------------- ------------ YES YES YES YES NO
これらの結果では、データベース内のすべての表に関して、最小列、主キー列、外部キー列および一意キー列が補足的にログに記録されていることが示されます。一意キー列は補足的にログに記録されるため、ビットマップ索引列も補足的にログに記録されます。ただし、すべての列が補足的にログに記録されるわけではありません。
24.1.18.3 インスタンス化の準備中に指定されたサプリメンタル・ロギングの表示
サプリメンタル・ロギングは、データベース・オブジェクトのインスタンス化の準備がDBMS_CAPTURE_ADM
パッケージの3つのプロシージャのうちの1つを使用して行われた場合に有効にできます。データ・ディクショナリ・ビューでは、PREPARE_TABLE_INSTANTIATION
、PREPARE_SCHEMA_INSTANTIATION
およびPREPARE_GLOBAL_INSTANTIATION
のプロシージャのいずれかによって有効にされたサプリメンタル・ロギングが表示されます。
-
DBA_CAPTURE_PREPARED_TABLES
ビューでは、PREPARE_TABLE_INSTANTIATION
プロシージャによって有効にされたサプリメンタル・ロギングが表示されます。 -
DBA_CAPTURE_PREPARED_SCHEMAS
ビューでは、PREPARE_SCHEMA_INSTANTIATION
プロシージャによって有効にされたサプリメンタル・ロギングが表示されます。 -
DBA_CAPTURE_PREPARED_DATABASE
ビューでは、PREPARE_GLOBAL_INSTANTIATION
プロシージャによって有効にされたサプリメンタル・ロギングが表示されます。
これらのビューにはそれぞれ次の列があります。
-
SUPPLEMENTAL_LOG_DATA_PK
では、主キーのサプリメンタル・ロギングがプロシージャによって有効にされたかどうかが表示されます。 -
SUPPLEMENTAL_LOG_DATA_UI
では、一意キーおよびビットマップ索引のサプリメンタル・ロギングがプロシージャによって有効にされたかどうかが表示されます。 -
SUPPLEMENTAL_LOG_DATA_FK
では、外部キーのサプリメンタル・ロギングがプロシージャによって有効にされたかどうかが表示されます。 -
SUPPLEMENTAL_LOG_DATA_ALL
では、すべての列のサプリメンタル・ロギングがプロシージャによって有効にされたかどうかが表示されます。
これらの列にはそれぞれ次の値のいずれかが表示されます。
-
IMPLICIT
は、関連プロシージャによって列のサプリメンタル・ロギングが有効にされたことを示します。 -
EXPLICIT
は、ALTER
TABLE
またはALTER
DATABASE
文でADD
SUPPLEMENTAL
LOG
DATA
句を使用して手動で列のサプリメンタル・ロギングが有効にされたことを示します。 -
NO
は、準備プロシージャ、またはALTER
TABLE
またはALTER
DATABASE
文でADD
SUPPLEMENTAL
LOG
DATA
句を使用して、列のサプリメンタル・ロギングが有効にされていないことを示します。列のサプリメンタル・ロギングが有効にされていない可能性があります。ただし、サプリメンタル・ロギングが、別のレベル(表、スキーマまたはデータベース)で有効にされているか、またはALTER
TABLE
文でADD
SUPPLEMENTAL
LOG
GROUP
句を使用して有効にされている場合があります。
次の各項では、これらのプロシージャで有効にされたサプリメンタル・ロギングを表示する問合せについて説明します。
24.1.18.3.1 PREPARE_TABLE_INSTANTIATIONにより有効にされたサプリメンタル・ロギングの表示
次の問合せを実行すると、hr
スキーマの表に対してPREPARE_TABLE_INSTANTIATION
プロシージャを使用して有効にされたサプリメンタル・ロギングが表示されます。
COLUMN TABLE_NAME HEADING 'Table Name' FORMAT A15 COLUMN log_pk HEADING 'Primary Key|Supplemental|Logging' FORMAT A12 COLUMN log_fk HEADING 'Foreign Key|Supplemental|Logging' FORMAT A12 COLUMN log_ui HEADING 'Unique|Supplemental|Logging' FORMAT A12 COLUMN log_all HEADING 'All Columns|Supplemental|Logging' FORMAT A12 SELECT TABLE_NAME, SUPPLEMENTAL_LOG_DATA_PK log_pk, SUPPLEMENTAL_LOG_DATA_FK log_fk, SUPPLEMENTAL_LOG_DATA_UI log_ui, SUPPLEMENTAL_LOG_DATA_ALL log_all FROM DBA_CAPTURE_PREPARED_TABLES WHERE TABLE_OWNER = 'HR';
出力は次のようになります。
Primary Key Foreign Key Unique All Columns Supplemental Supplemental Supplemental Supplemental Table Name Logging Logging Logging Logging --------------- ------------ ------------ -------------- ------------ COUNTRIES NO NO NO NO REGIONS IMPLICIT IMPLICIT IMPLICIT NO DEPARTMENTS IMPLICIT IMPLICIT IMPLICIT NO LOCATIONS EXPLICIT NO NO NO EMPLOYEES NO NO NO IMPLICIT JOB_HISTORY NO NO NO NO JOBS NO NO NO NO
これらの結果では次の内容が表示されます。
-
PREPARE_TABLE_INSTANTIATION
プロシージャによって、hr.regions
およびhr.departments
表の主キー、一意キー、ビットマップ索引および外部キーの列に対してサプリメンタル・ロギングが有効にされています。 -
PREPARE_TABLE_INSTANTIATION
プロシージャによって、hr.employees
表のすべての列に対してサプリメンタル・ロギングが有効にされています。 -
ALTER
TABLE
文でADD
SUPPLEMENTAL
LOG
DATA
句を使用して、hr.locations
表に対して主キーのサプリメンタル・ロギングが有効にされています。
注意:
問合せでWHERE
句を省略すると、データベース内のすべての表の情報がリストされます。
24.1.18.3.2 PREPARE_SCHEMA_INSTANTIATIONにより有効にされたサプリメンタル・ロギングの表示
次の問合せを実行すると、PREPARE_SCHEMA_INSTANTIATION
プロシージャによって有効にされたサプリメンタル・ロギングが表示されます。
COLUMN SCHEMA_NAME HEADING 'Schema Name' FORMAT A20 COLUMN log_pk HEADING 'Primary Key|Supplemental|Logging' FORMAT A12 COLUMN log_fk HEADING 'Foreign Key|Supplemental|Logging' FORMAT A12 COLUMN log_ui HEADING 'Unique|Supplemental|Logging' FORMAT A12 COLUMN log_all HEADING 'All Columns|Supplemental|Logging' FORMAT A12 SELECT SCHEMA_NAME, SUPPLEMENTAL_LOG_DATA_PK log_pk, SUPPLEMENTAL_LOG_DATA_FK log_fk, SUPPLEMENTAL_LOG_DATA_UI log_ui, SUPPLEMENTAL_LOG_DATA_ALL log_all FROM DBA_CAPTURE_PREPARED_SCHEMAS;
出力は次のようになります。
Primary Key Foreign Key Unique All Columns Supplemental Supplemental Supplemental Supplemental Schema Name Logging Logging Logging Logging -------------------- ------------ ------------ -------------- ------------ HR NO NO NO IMPLICIT OE IMPLICIT IMPLICIT IMPLICIT NO
これらの結果では次の内容が表示されます。
-
PREPARE_SCHEMA_INSTANTIATION
プロシージャによって、hr
スキーマ内の表のすべての列に対してサプリメンタル・ロギングが有効にされています。 -
PREPARE_SCHEMA_INSTANTIATION
プロシージャによって、oe
スキーマ内の表の主キー、一意キー、ビットマップ索引および外部キーの列に対してサプリメンタル・ロギングが有効にされています。
24.1.18.3.3 PREPARE_GLOBAL_INSTANTIATIONにより有効にされたサプリメンタル・ロギングの表示
次の問合せを実行すると、PREPARE_GLOBAL_INSTANTIATION
プロシージャによって有効にされたサプリメンタル・ロギングが表示されます。
COLUMN log_pk HEADING 'Primary Key|Supplemental|Logging' FORMAT A12 COLUMN log_fk HEADING 'Foreign Key|Supplemental|Logging' FORMAT A12 COLUMN log_ui HEADING 'Unique|Supplemental|Logging' FORMAT A12 COLUMN log_all HEADING 'All Columns|Supplemental|Logging' FORMAT A12 SELECT SUPPLEMENTAL_LOG_DATA_PK log_pk, SUPPLEMENTAL_LOG_DATA_FK log_fk, SUPPLEMENTAL_LOG_DATA_UI log_ui, SUPPLEMENTAL_LOG_DATA_ALL log_all FROM DBA_CAPTURE_PREPARED_DATABASE;
出力は次のようになります。
Primary Key Foreign Key Unique All Columns Supplemental Supplemental Supplemental Supplemental Logging Logging Logging Logging ------------ ------------ -------------- ------------ IMPLICIT IMPLICIT IMPLICIT NO
これらの結果では、PREPARE_GLOBAL_INSTANTIATION
プロシージャによって、データベース内のすべての表の主キー、一意キー、ビットマップ索引および外部キーの列に対してサプリメンタル・ロギングが有効にされていることが示されます。
24.2 同期取得の監視
この項では、Oracle Streamsの同期取得の監視に使用できる問合せの例を示します。
この項の内容は次のとおりです。
関連項目:
-
同期取得の構成の詳細は、『Oracle Streamsレプリケーション管理者ガイド』を参照
-
「同期取得の管理」
-
同期取得を使用するレプリケーション環境の構成例については、『Oracle Streamsレプリケーション管理者ガイド』を参照
24.2.1 各同期取得のキュー、ルール・セットおよび状態の表示
この項で説明する問合せを実行すると、データベース内の各同期取得に関する次の情報を表示できます。
-
同期取得の名前
-
同期取得で使用されるキューの名前
-
同期取得で使用されるポジティブ・ルール・セットの名前
-
同期取得の取得ユーザー
データベース内の各同期取得に関する一般情報を表示するには、次の問合せを実行します。
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
24.2.2 同期取得によって変更が取得される表の表示
ローカル・データベースの同期取得によって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
ビューに、スキーマおよびグローバル・ルールの結果は表示されません。
24.3 暗黙的取得によって取得された追加属性の表示
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
ビューを問い合せます。
関連項目:
-
INCLUDE_EXTRA_ATTRIBUTE
プロシージャの詳細は、『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』を参照