ヘッダーをスキップ
Oracle® Databaseアドバンスト・レプリケーション・マネージメントAPIリファレンス
12cリリース1 (12.1)
E52979-02
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

10 レプリケーション環境の監視

この章では、データ・ディクショナリを使用してレプリケーション環境を監視する方法を説明します。

この章には、次の項が含まれます。


注意:

Oracle Enterprise Manager Cloud ControlのAdvanced Replicationインタフェースも、レプリケーション環境を監視するための優れた手段です。この章の問合せで得られる情報のほとんどは、Advanced Replicationインタフェースを使用して検索できます。詳細は、Advanced Replicationインタフェースのオンライン・ヘルプを参照してください。

マスター・レプリケーション環境の監視

この項では、マスター・レプリケーション環境の情報を表示するために実行できる問合せを示します。レプリケーション環境には、マルチマスター環境、マスター・マテリアライズド・ビュー環境、および複数のマスター・サイトとマテリアライズド・ビューを含むハイブリッド環境があります。

この項には、次の項目が含まれます。

マスター・サイトの監視

この項では、マスター・サイトの情報を表示するために実行できる問合せを示します。

マスター・サイトの一般情報のリスト表示

この項の問合せを実行することにより、マスター・サイトに関する次の一般情報を検索できます。

  • 管理要求の数。

  • 管理要求エラーの数。

  • 伝播されていない遅延トランザクションと接続先のペアの数。各遅延トランザクションは伝播される接続先を複数持つ場合があり、また各接続先は、1つの遅延トランザクションと接続先のペアです。

たとえば、遅延トランザクションが10あり、各トランザクションが3つのサイトに伝播される必要がある場合、この問合せで戻される遅延トランザクションのペアは30あります。しばらくして、最初の遅延トランザクションが3つの接続先サイトのうちの2つに伝播された場合、まだ10の遅延トランザクションがありますが、遅延トランザクションのペアは2つ減り、この問合せで戻される伝播されていない遅延トランザクションのペアは28になります。この場合、最初の遅延トランザクションに残されているトランザクションのペアは1つのみです。

  • 遅延トランザクション・エラー(エラー・トランザクション)の数。

  • まだキューにある正常に伝播されたトランザクションの数。このトランザクションはキューからパージする必要があります。

次の問合せを実行して、カレント・マスター・サイトに関するこの情報をリストします。

COLUMN GLOBAL_NAME HEADING 'Database' FORMAT A25
COLUMN ADMIN_REQUESTS HEADING 'Admin|Reqests' FORMAT 9999
COLUMN STATUS HEADING 'Admin|Errors' FORMAT 9999
COLUMN TRAN HEADING 'Def|Trans|Pairs' FORMAT 9999
COLUMN ERRORS HEADING 'Def|Trans|Errors' FORMAT 9999
COLUMN COMPLETE HEADING 'Propagated|Trans' FORMAT 9999

SELECT G.GLOBAL_NAME, D.ADMIN_REQUESTS, E.STATUS, DT.TRAN, DE.ERRORS, C.COMPLETE  
    FROM (SELECT GLOBAL_NAME FROM GLOBAL_NAME) G, 
      (SELECT COUNT(ID) ADMIN_REQUESTS FROM DBA_REPCATLOG) D, 
      (SELECT COUNT(STATUS) STATUS FROM DBA_REPCATLOG WHERE STATUS = 'ERROR') E,     
      (SELECT COUNT(*) TRAN FROM DEFTRANDEST) DT, 
      (SELECT COUNT(*) ERRORS FROM DEFERROR) DE,      
      (SELECT COUNT(A.DEFERRED_TRAN_ID) COMPLETE FROM DEFTRAN A         
    WHERE A.DEFERRED_TRAN_ID NOT IN (
      SELECT B.DEFERRED_TRAN_ID FROM DEFTRANDEST B)) C; 

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

                                           Def    Def
                            Admin  Admin Trans  Trans Propagated
Database                  Reqests Errors Pairs Errors      Trans
------------------------- ------- ------ ----- ------ ----------
ORC1.EXAMPLE.COM                5      0    37      0         53

注意:

遅延トランザクション・キューに多数のトランザクションがある場合、この問合せは高コストになる場合があります。

マスター・グループの監視

この項では、レプリケーション・サイトにあるマスター・グループの情報を表示するために実行できる問合せを示します。

マスター・グループに関係するマスター・サイトのリスト表示

次の問合せを実行して、レプリケーション・サイトの各マスター・グループのマスター・サイトをリストし、各マスター・グループのマスター定義サイトを指定します。

COLUMN GNAME HEADING 'Master Group' FORMAT A20
COLUMN DBLINK HEADING 'Sites' FORMAT A25
COLUMN MASTERDEF HEADING 'Master|Definition|Site?' FORMAT A10

SELECT GNAME, DBLINK, MASTERDEF
    FROM DBA_REPSITES 
    WHERE MASTER = 'Y' 
    AND GNAME NOT IN (SELECT GNAME FROM DBA_REPSITES WHERE SNAPMASTER = 'Y')    
    ORDER BY GNAME;

SELECT文の副問合せは、マテリアライズド・ビュー・グループが出力されないようにします。出力は次のようになります。

                                               Master
                                               Definition
Master Group         Sites                     Site?
-------------------- ------------------------- ----------
HR_REPG              ORC1.EXAMPLE.COM          Y
HR_REPG              ORC2.EXAMPLE.COM          N
HR_REPG              ORC3.EXAMPLE.COM          N

このリストは、orc1.example.comhr_repgマスター・グループのマスター定義サイトであることを示します。また、このリストには、マスター・サイトorc2.example.comおよびorc3.example.comも含まれます。

マスター・グループの一般情報のリスト表示

この項の問合せを使用して、マスター・サイトにあるマスター・グループに関する次の一般情報をリストできます。

  • 各マスター・グループの名前。

  • 伝播されていない遅延トランザクションと接続先のペアの数。各遅延トランザクションは伝播される接続先を複数持つ場合があり、また各接続先は、1つの遅延トランザクションと接続先のペアです。

たとえば、遅延トランザクションが10あり、各トランザクションが3つのサイトに伝播される必要がある場合、この問合せで戻される遅延トランザクションのペアは30あります。しばらくして、最初の遅延トランザクションが3つの接続先サイトのうちの2つに伝播された場合、まだ10の遅延トランザクションがありますが、遅延トランザクションのペアは2つ減り、この問合せで戻される伝播されていない遅延トランザクションのペアは28になります。この場合、最初の遅延トランザクションに残されているトランザクションのペアは1つのみです。

  • 各マスター・グループの遅延トランザクション・エラー(エラー・トランザクション)の数。

  • 各マスター・グループの管理要求の数。

  • 各マスター・グループの管理要求エラーの数。

次の問合せを実行し、この情報をリストします。

COLUMN GNAME HEADING 'Master Group' FORMAT A15
COLUMN deftran HEADING 'Number of|Deferred|Transaction|Pairs' FORMAT 9999
COLUMN deftranerror HEADING 'Number of|Deferred|Transaction|Errors' FORMAT 9999
COLUMN adminreq HEADING 'Number of|Administrative|Requests' FORMAT 9999
COLUMN adminreqerror HEADING 'Number of|Administrative|Request|Errors' 
COLUMN adminreqerror FORMAT 9999

SELECT G.GNAME, 
       NVL(T.CNT1, 0) deftran, 
       NVL(IE.CNT2, 0) deftranerror, 
       NVL(A.CNT3, 0) adminreq, 
       NVL(B.CNT4, 0) adminreqerror
    FROM 
    (SELECT DISTINCT GNAME FROM DBA_REPGROUP WHERE MASTER='Y') G, 
    (SELECT DISTINCT RO.GNAME, COUNT(DISTINCT D.DEFERRED_TRAN_ID) CNT1 
        FROM  DBA_REPOBJECT RO, DEFCALL D, DEFTRANDEST TD   
        WHERE RO.SNAME = D.SCHEMANAME 
        AND RO.ONAME = D.PACKAGENAME 
        AND RO.TYPE IN ('TABLE', 'PACKAGE', 'MATERIALIZED VIEW')
        AND TD.DEFERRED_TRAN_ID = D.DEFERRED_TRAN_ID    
        GROUP BY RO.GNAME ) T, 
    (SELECT DISTINCT RO.GNAME, COUNT(DISTINCT E.DEFERRED_TRAN_ID) CNT2 
        FROM DBA_REPOBJECT RO, DEFCALL D, DEFERROR E   
        WHERE RO.SNAME = D.SCHEMANAME 
        AND RO.ONAME = D.PACKAGENAME    
        AND RO.TYPE IN ('TABLE', 'PACKAGE', 'MATERIALIZED VIEW') 
        AND E.DEFERRED_TRAN_ID = D.DEFERRED_TRAN_ID     
        AND E.CALLNO = D.CALLNO   
        GROUP BY RO.GNAME ) IE, 
    (SELECT GNAME, COUNT(*) CNT3 FROM DBA_REPCATLOG GROUP BY GNAME) A, 
    (SELECT GNAME, COUNT(*) CNT4 FROM DBA_REPCATLOG 
        WHERE STATUS = 'ERROR'
        GROUP BY GNAME) B WHERE G.GNAME = IE.GNAME (+) 
        AND G.GNAME = T.GNAME (+) 
        AND G.GNAME = A.GNAME (+) 
        AND G.GNAME = B.GNAME (+) ORDER BY G.GNAME; 

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

                  Number of   Number of                     Number of
                   Deferred    Deferred      Number of Administrative
                Transaction Transaction Administrative        Request
Master Group          Pairs      Errors       Requests         Errors
--------------- ----------- ----------- -------------- --------------
HR_REPG                  54           0              0              0
OE_RG                    33           1              5              0

注意:

伝播されるのを待っているトランザクションが多数ある場合、この問合せは高コストになる場合があります。

マスターの監視

マスターには、マスター・サイトとマスター・マテリアライズド・ビュー・サイトがあります。この項では、マスターの情報を表示するために実行できる問合せを示します。

マスターでのマテリアライズド・ビューの情報のリスト表示

マスターをベースとするマテリアライズド・ビュー・サイトがある場合は、この項の問合せを使用して、マスターに関する次の情報をリストできます。

  • マスターにあるレプリケーション・グループの数。レプリケーション・グループには、マスター・グループとマテリアライズド・ビュー・グループがあります。

  • マスターにあるレプリケーション・グループをベースとする、登録済のマテリアライズド・ビュー・グループの数。

  • マスターにあるオブジェクトをベースとする、登録済のマテリアライズド・ビューの数。オブジェクトには、マスター表とマスター・マテリアライズド・ビューがあります。

  • マスターにあるマテリアライズド・ビュー・ログの数。

  • マスターにあるデプロイメント・テンプレートの数。

次の問合せを実行し、この情報をリストします。

COLUMN repgroup HEADING 'Number of|Replication|Groups' FORMAT 9999
COLUMN mvgroup HEADING 'Number of|Registered|MV Groups' FORMAT 9999
COLUMN mv HEADING 'Number of|Registered MVs' FORMAT 9999
COLUMN mvlog HEADING 'Number of|MV Logs' FORMAT 9999
COLUMN template HEADING 'Number of|Templates' FORMAT 9999

SELECT A.REPGROUP repgroup, 
       B.MVGROUP mvgroup, 
       C.MV mv, 
       D.MVLOG mvlog, 
       E.TEMPLATE template
    FROM (SELECT COUNT(G.GNAME) REPGROUP 
             FROM DBA_REPGROUP G, DBA_REPSITES S 
             WHERE G.MASTER = 'Y' 
             AND S.MASTER = 'Y' 
             AND G.GNAME = S.GNAME 
             AND S.MY_DBLINK = 'Y') A, 
         (SELECT COUNT(*) MVGROUP 
             FROM DBA_REGISTERED_MVIEW_GROUPS) B, 
         (SELECT COUNT(*) MV 
             FROM DBA_REGISTERED_MVIEWS) C,  
         (SELECT COUNT(*) MVLOG 
             FROM (SELECT 1 FROM DBA_MVIEW_LOGS
             GROUP BY LOG_OWNER, LOG_TABLE)) D,
         (SELECT COUNT(*) TEMPLATE FROM DBA_REPCAT_REFRESH_TEMPLATES) E;

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

  Number of  Number of
Replication Registered      Number of Number of Number of
     Groups  MV Groups Registered MVs   MV Logs Templates
----------- ---------- -------------- --------- ---------
          1          5             27         6         3

マスターにあるマテリアライズド・ビュー・ログの情報のリスト表示

マテリアライズド・ビュー・ログにより、マスターをベースとするマテリアライズド・ビューで高速リフレッシュを実行できます。マスターには、マスター表とマスター・マテリアライズド・ビューがあります。マスターをベースとするマテリアライズド・ビュー・ログがある場合は、この項の問合せを使用して、このログに関する次の情報をリストできます。

  • マテリアライズド・ビュー・ログ・データが格納される各ログ表の名前

  • 各マテリアライズド・ビュー・ログの所有者

  • 各マテリアライズド・ビュー・ログがベースとするマスター

  • マテリアライズド・ビュー・ログが行IDマテリアライズド・ビュー・ログかどうか

  • マテリアライズド・ビュー・ログが主キー・マテリアライズド・ビュー・ログかどうか

  • マテリアライズド・ビュー・ログがオブジェクトIDマテリアライズド・ビュー・ログかどうか

  • マテリアライズド・ビュー・ログにフィルタ列があるかどうか

次の問合せを実行し、この情報をリストします。

COLUMN LOG_TABLE HEADING 'Log Table' FORMAT A20
COLUMN LOG_OWNER HEADING 'Log|Owner' FORMAT A5
COLUMN MASTER HEADING 'Master' FORMAT A15
COLUMN ROWIDS HEADING 'Row|ID?' FORMAT A3
COLUMN PRIMARY_KEY HEADING 'Primary|Key?' FORMAT A7
COLUMN OBJECT_ID HEADING 'Object|ID?' FORMAT A6
COLUMN FILTER_COLUMNS HEADING 'Filter|Columns?' FORMAT A8

SELECT DISTINCT LOG_TABLE, 
       LOG_OWNER, 
       MASTER, 
       ROWIDS, 
       PRIMARY_KEY, 
       OBJECT_ID,
       FILTER_COLUMNS 
    FROM DBA_MVIEW_LOGS 
    ORDER BY 1;

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

                     Log                   Row Primary Object Filter
Log Table            Owner Master          ID? Key?    ID?    Columns?
-------------------- ----- --------------- --- ------- ------ --------
MLOG$_COUNTRIES      HR    COUNTRIES       NO  YES     NO     NO
MLOG$_DEPARTMENTS    HR    DEPARTMENTS     NO  YES     NO     NO
MLOG$_EMPLOYEES      HR    EMPLOYEES       NO  YES     NO     NO
MLOG$_JOBS           HR    JOBS            NO  YES     NO     NO
MLOG$_JOB_HISTORY    HR    JOB_HISTORY     NO  YES     NO     NO
MLOG$_LOCATIONS      HR    LOCATIONS       NO  YES     NO     NO
MLOG$_REGIONS        HR    REGIONS         NO  YES     NO     NO

関連項目:

マテリアライズド・ビュー・ログの詳細は、『Oracle Databaseアドバンスト・レプリケーション』を参照してください。

マテリアライズド・ビュー・ログを使用するマテリアライズド・ビューのリスト表示

あるマテリアライズド・ビュー・ログを複数のマテリアライズド・ビューが使用する場合があります。マスターをベースとするマテリアライズド・ビュー・ログがある場合は、この項の問合せを使用して、各ログを使用するマテリアライズド・ビューに関する次の情報をリストできます。

  • マテリアライズド・ビュー・ログ・データが格納される各ログ表の名前

  • 各マテリアライズド・ビュー・ログの所有者

  • 各マテリアライズド・ビュー・ログがベースとするマスター

  • マテリアライズド・ビュー・ログを使用する各マテリアライズド・ビューの、マテリアライズド・ビュー識別番号

  • マテリアライズド・ビュー・ログを使用する各マテリアライズド・ビューの名前

次の問合せを実行し、この情報をリストします。

COLUMN LOG_TABLE HEADING 'Mview|Log Table' FORMAT A20
COLUMN LOG_OWNER HEADING 'Mview|Log Owner' FORMAT A10
COLUMN MASTER HEADING 'Master' FORMAT A20
COLUMN MVIEW_ID HEADING 'Mview|ID' FORMAT 9999
COLUMN NAME HEADING 'Mview Name' FORMAT A20

SELECT L.LOG_TABLE, L.LOG_OWNER, B.MASTER, B.MVIEW_ID, R.NAME  
FROM ALL_MVIEW_LOGS L, ALL_BASE_TABLE_MVIEWS B, ALL_REGISTERED_MVIEWS R
WHERE B.MVIEW_ID = R.MVIEW_ID
AND B.OWNER = L.LOG_OWNER
AND B.MASTER = L.MASTER;

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

Mview                Mview                           Mview
Log Table            Log Owner  Master                  ID Mview Name
-------------------- ---------- -------------------- ----- --------------------
MLOG$_COUNTRIES      HR         COUNTRIES               21 COUNTRIES_MV1
MLOG$_DEPARTMENTS    HR         DEPARTMENTS             22 DEPARTMENTS_MV1
MLOG$_EMPLOYEES      HR         EMPLOYEES               23 EMPLOYEES_MV1
MLOG$_JOBS           HR         JOBS                    24 JOBS_MV1
MLOG$_JOB_HISTORY    HR         JOB_HISTORY             25 JOB_HISTORY_MV1
MLOG$_LOCATIONS      HR         LOCATIONS               26 LOCATIONS_MV1
MLOG$_REGIONS        HR         REGIONS                 27 REGIONS_MV1

マスターにあるデプロイメント・テンプレートの情報のリスト表示

デプロイメント・テンプレートにより、複数のマテリアライズド・ビュー環境をすばやく作成できます。また、変数を使用して、各マテリアライズド・ビュー環境を個別の必要に応じてカスタマイズすることもできます。この項の問合せを使用して、マスターにあるデプロイメント・テンプレートに関する次の情報をリストできます。

  • 各デプロイメント・テンプレートの名前

  • 各デプロイメント・テンプレートの所有者

  • デプロイメント・テンプレートがパブリックかどうか

  • 各デプロイメント・テンプレートをベースとする、インスタンス化されたマテリアライズド・ビュー・サイトの数

  • 各デプロイメント・テンプレートに対応付けられたコメント

次の問合せを実行し、この情報をリストします。

COLUMN REFRESH_TEMPLATE_NAME HEADING 'Template|Name' FORMAT A10
COLUMN OWNER HEADING 'Owner' FORMAT A10
COLUMN PUBLIC_TEMPLATE HEADING 'Public?' FORMAT A7
COLUMN INSTANTIATED HEADING 'Number of|Instantiated|Sites' FORMAT 9999
COLUMN TEMPLATE_COMMENT HEADING 'Comment' FORMAT A35

SELECT DISTINCT RT.REFRESH_TEMPLATE_NAME, 
       OWNER,
       PUBLIC_TEMPLATE, 
       RS.INSTANTIATED, 
       RT.TEMPLATE_COMMENT 
    FROM DBA_REPCAT_REFRESH_TEMPLATES RT,  
    (SELECT Y.REFRESH_TEMPLATE_NAME, COUNT(X.STATUS) INSTANTIATED  
        FROM DBA_REPCAT_TEMPLATE_SITES X, DBA_REPCAT_REFRESH_TEMPLATES Y 
        WHERE X.REFRESH_TEMPLATE_NAME(+) = Y.REFRESH_TEMPLATE_NAME 
        GROUP BY Y.REFRESH_TEMPLATE_NAME) RS 
        WHERE RT.REFRESH_TEMPLATE_NAME(+) = RS.REFRESH_TEMPLATE_NAME 
        ORDER BY 1;

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

                                 Number of
Template                      Instantiated
Name       Owner      Public?        Sites Comment
---------- ---------- ------- ------------ -----------------------------------
HR_REFG_DT HR         N                  2 Human Resources Deployment Template

Public?列のNは、デプロイメント・テンプレートがプライベートであることを意味します。したがって、認証ユーザーのみがこのテンプレートをインスタンス化できます。この列のYは、デプロイメント・テンプレートがパブリックであることを意味します。パブリック・デプロイメント・テンプレートはすべてのユーザーがインスタンス化できます。

マテリアライズド・ビュー・サイトの監視

この項では、マテリアライズド・ビュー・サイトの情報を表示するために実行できる問合せを示します。この項には、次の項目が含まれます。

マテリアライズド・ビュー・サイトの一般情報のリスト表示

この項の問合せを使用して、カレント・マテリアライズド・ビュー・サイトに関する次の一般情報をリストできます。

  • サイトにあるマテリアライズド・ビュー・グループの数

  • サイトにあるマテリアライズド・ビューの数

  • サイトにあるリフレッシュ・グループの数

次の問合せを実行し、この情報をリストします。

COLUMN MVGROUP HEADING 'Number of|Materialized|View Groups' FORMAT 9999
COLUMN MV HEADING 'Number of|Materialized|Views' FORMAT 9999
COLUMN RGROUP HEADING 'Number of|Refresh Groups' FORMAT 9999

SELECT A.MVGROUP, B.MV, C.RGROUP 
    FROM 
    (SELECT COUNT(S.GNAME) MVGROUP 
        FROM DBA_REPSITES S
        WHERE S.SNAPMASTER = 'Y') A, 
     (SELECT COUNT(*) MV 
        FROM DBA_MVIEWS) B, 
     (SELECT COUNT(*) RGROUP 
        FROM DBA_REFRESH) C;

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

   Number of    Number of
Materialized Materialized      Number of
 View Groups        Views Refresh Groups
------------ ------------ --------------
           5           25              5

マテリアライズド・ビュー・グループの一般情報のリスト表示

この項の問合せを使用して、カレント・マテリアライズド・ビュー・サイトにあるマテリアライズド・ビュー・グループに関する次の一般情報をリストできます。

  • 各マテリアライズド・ビュー・グループの名前

  • 各マテリアライズド・ビュー・グループのマスター

  • マテリアライズド・ビュー・グループのマスターへの伝播方法(非同期または同期)

  • 各マテリアライズド・ビュー・グループに対応付けられたコメント

次の問合せを実行し、この情報をリストします。

COLUMN GNAME HEADING 'Group Name' FORMAT A10
COLUMN DBLINK HEADING 'Master' FORMAT A25
COLUMN Propagation HEADING 'Propagation|Method' FORMAT A12
COLUMN SCHEMA_COMMENT HEADING 'Comment' FORMAT A30

SELECT S.GNAME, 
       S.DBLINK, 
       DECODE(S.PROP_UPDATES, 
              0, 'ASYNCHRONOUS', 
              1, 'SYNCHRONOUS') Propagation,
       G.SCHEMA_COMMENT 
    FROM DBA_REPSITES S, DBA_REPGROUP G
    WHERE S.GNAME = G.GNAME
    AND S.SNAPMASTER = 'Y';

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

                                     Propagation
Group Name Master                    Method       Comment
---------- ------------------------- ------------ ------------------------------
HR_REPG    ORC1.EXAMPLE.COM          ASYNCHRONOUS

マテリアライズド・ビューの情報のリスト表示

この項では、レプリケーション・サイトにあるマテリアライズド・ビューの情報を表示するために実行できる問合せを示します。

マテリアライズド・ビューのマスター情報のリスト表示

次の問合せは、レプリケーション・サイトにある各マテリアライズド・ビューのマスターを示し、かつマテリアライズド・ビューの高速リフレッシュが可能かどうかを示します。

COLUMN MVIEW_NAME HEADING 'Materialized|View Name' FORMAT A15
COLUMN OWNER HEADING 'Owner' FORMAT A10
COLUMN MASTER_LINK HEADING 'Master Link' FORMAT A30
COLUMN Fast_Refresh HEADING 'Fast|Refreshable?' FORMAT A16

SELECT MVIEW_NAME, 
       OWNER, 
       MASTER_LINK,  
       DECODE(FAST_REFRESHABLE, 
              'NO', 'NO',
              'DML', 'YES',    
              'DIRLOAD', 'DIRECT LOAD ONLY',
              'DIRLOAD_DML', 'YES',
              'DIRLOAD_LIMITEDDML', 'LIMITED') Fast_Refresh
    FROM DBA_MVIEWS;

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

Materialized                                              Fast
View Name       Owner      Master Link                    Refreshable?
--------------- ---------- ------------------------------ ----------------
COUNTRIES_MV1   HR         @ORC1.EXAMPLE.COM              YES
DEPARTMENTS_MV1 HR         @ORC1.EXAMPLE.COM              YES
EMPLOYEES_MV1   HR         @ORC1.EXAMPLE.COM              YES
JOBS_MV1        HR         @ORC1.EXAMPLE.COM              YES
JOB_HISTORY_MV1 HR         @ORC1.EXAMPLE.COM              YES
LOCATIONS_MV1   HR         @ORC1.EXAMPLE.COM              YES
REGIONS_MV1     HR         @ORC1.EXAMPLE.COM              YES

マテリアライズド・ビューのプロパティのリスト表示

この項の問合せを使用して、カレント・レプリケーション・サイトにあるマテリアライズド・ビューに関する次の情報をリストできます。

  • 各マテリアライズド・ビューの名前

  • 各マテリアライズド・ビューの所有者

  • 各マテリアライズド・ビューが使用するリフレッシュ方法がCOMPLETEFORCEFASTまたはNEVERのいずれであるか

  • マテリアライズド・ビューが更新可能かどうか

  • 各マテリアライズド・ビューがリフレッシュされた最後の日付

次の問合せを実行し、この情報をリストします。

COLUMN MVIEW_NAME HEADING 'Materialized|View Name' FORMAT A15
COLUMN OWNER HEADING 'Owner' FORMAT A10
COLUMN REFRESH_METHOD HEADING 'Refresh|Method' FORMAT A10
COLUMN UPDATABLE HEADING 'Updatable?' FORMAT A10
COLUMN LAST_REFRESH_DATE HEADING 'Last|Refresh|Date'
COLUMN LAST_REFRESH_TYPE HEADING 'Last|Refresh|Type' FORMAT A15

SELECT MVIEW_NAME, 
       OWNER,
       REFRESH_METHOD, 
       UPDATABLE, 
       LAST_REFRESH_DATE, 
       LAST_REFRESH_TYPE
    FROM DBA_MVIEWS; 

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

                                                 Last      Last
Materialized               Refresh               Refresh   Refresh
View Name       Owner      Method     Updatable? Date      Type
--------------- ---------- ---------- ---------- --------- ---------------
COUNTRIES_MV1   HR         FAST       Y          21-OCT-03 FAST
DEPARTMENTS_MV1 HR         FAST       Y          21-OCT-03 FAST
EMPLOYEES_MV1   HR         FAST       Y          21-OCT-03 FAST
JOBS_MV1        HR         FAST       Y          21-OCT-03 FAST
JOB_HISTORY_MV1 HR         FAST       Y          21-OCT-03 FAST
LOCATIONS_MV1   HR         FAST       Y          21-OCT-03 FAST
REGIONS_MV1     HR         FAST       Y          21-OCT-03 FAST

マテリアライズド・ビュー・サイトにあるリフレッシュ・グループの情報のリスト表示

マテリアライズド・ビュー・サイトにある各リフレッシュ・グループには、設定された間隔でリフレッシュ・グループのマテリアライズド・ビューをリフレッシュする、リフレッシュ・ジョブが対応付けられています。DBA_REFRESHデータ・ディクショナリ・ビューの問合せにより、マテリアライズド・ビュー・サイトにあるリフレッシュ・ジョブに関する次の情報をリストできます。

  • リフレッシュ・グループの名前。

  • リフレッシュ・グループの所有者。

  • リフレッシュ・ジョブが中断されているかどうか。

  • 次回リフレッシュ・ジョブが実行される日付および時刻。

  • リフレッシュ・ジョブの現在の間隔設定。間隔設定では、ジョブの開始と同じジョブの次回の開始の間の、時間の長さを指定します。

次の問合せでこの情報が表示されます。

COLUMN RNAME HEADING 'Refresh|Group|Name' FORMAT A10
COLUMN ROWNER HEADING 'Refresh|Group|Owner' FORMAT A10
COLUMN BROKEN HEADING 'Broken?' FORMAT A7
COLUMN next_refresh HEADING 'Next Refresh'
COLUMN INTERVAL HEADING 'Interval' FORMAT A20

SELECT RNAME, 
               ROWNER, 
       BROKEN, 
       TO_CHAR(NEXT_DATE, 'DD-MON-YYYY HH:MI:SS AM') next_refresh, 
       INTERVAL 
    FROM DBA_REFRESH 
    ORDER BY 1;

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

Refresh    Refresh
Group      Group
Name       Owner      Broken? Next Refresh            Interval
---------- ---------- ------- ----------------------- --------------------
HR_REFG    MVIEWADMIN N       24-OCT-2003 07:18:44 AM SYSDATE + 1/24

Broken?列のNは、ジョブが中断されていないことを意味します。したがって、リフレッシュ・ジョブは次回開始時刻に実行されます。この列のYは、ジョブが中断されていることを意味します。

マテリアライズド・ビュー・サイトにある各リフレッシュ・ジョブのジョブIDの判定

この項の問合せを使用して、マテリアライズド・ビュー・サイトにあるリフレッシュ・ジョブに関する次の情報をリストできます。

  • 各リフレッシュ・ジョブのジョブ識別番号。DBMS_JOBパッケージで作成された各ジョブには、一意の識別番号が割り当てられます。

  • 権限スキーマ。権限スキーマとは、ジョブに適用されるデフォルトの権限を所有するスキーマです。

  • 各リフレッシュ・ジョブを所有するスキーマ。通常は、マテリアライズド・ビュー管理者がリフレッシュ・ジョブを所有します。マテリアライズド・ビュー管理者の共通ユーザー名はmviewadminです。

  • ジョブがリフレッシュするリフレッシュ・グループの名前。

  • リフレッシュ・ジョブのステータスが通常か中断か。

次の問合せでこの情報が表示されます。

COLUMN JOB HEADING 'Job ID' FORMAT 999999
COLUMN PRIV_USER HEADING 'Privilege|Schema' FORMAT A10
COLUMN RNAME HEADING 'Refresh|Group|Name' FORMAT A10
COLUMN ROWNER HEADING 'Refresh|Group|Owner' FORMAT A10
COLUMN BROKEN HEADING 'Broken?' FORMAT A7

SELECT J.JOB, 
       J.PRIV_USER, 
       R.ROWNER, 
       R.RNAME, 
       J.BROKEN
    FROM DBA_REFRESH R, DBA_JOBS J 
    WHERE R.JOB = J.JOB
    ORDER BY 1;

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

                   Refresh    Refresh
        Privilege  Group      Group
 Job ID Schema     Owner      Name       Broken?
------- ---------- ---------- ---------- -------
     21 MVIEWADMIN MVIEWADMIN HR_REFG    N

Broken?列のNは、ジョブが中断されていないことを意味します。したがって、ジョブは次回開始時刻に実行されます。この列のYは、ジョブが中断されていることを意味します。

現在リフレッシュしているマテリアライズド・ビューの判定

次の問合せは、現在リフレッシュしているマテリアライズド・ビューを示します。

COLUMN SID HEADING 'Session|Identifier' FORMAT 9999
COLUMN SERIAL# HEADING 'Serial|Number' FORMAT 999999
COLUMN CURRMVOWNER HEADING 'Owner' FORMAT A15
COLUMN CURRMVNAME HEADING 'Materialized|View' FORMAT A25

SELECT * FROM V$MVREFRESH;

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

   Session  Serial                 Materialized
Identifier  Number Owner           View
---------- ------- --------------- -------------------------
        19     233 HR              COUNTRIES_MV
         5     647 HR              EMPLOYEES_MV

注意:

マテリアライズド・ビューの遅延トランザクションがマスターにプッシュされているときは、V$MVREFRESH動的パフォーマンス・ビューに、更新可能なマテリアライズド・ビューの情報は含まれません。

管理要求の監視

この項では、マスター・サイトにある管理要求の情報を表示するために実行できる問合せを示します。この項には、次の項目が含まれます。

管理要求の一般情報のリスト表示

この項の問合せを使用して、マスター・サイトにある管理要求に関する次の一般情報をリストできます。

  • 各管理要求の識別番号

  • 各管理要求が要求するアクション

  • 各要求のステータス

  • 要求が実行されるマスター・サイト

次の問合せでこの情報が表示されます。

COLUMN ID HEADING 'Admin|Request|ID' FORMAT 999999
COLUMN REQUEST HEADING 'Request' FORMAT A25
COLUMN STATUS HEADING 'Status' FORMAT A15
COLUMN MASTER HEADING 'Master|Site' FORMAT A25

SELECT ID, REQUEST, STATUS, MASTER FROM DBA_REPCATLOG;

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

  Admin
Request                                           Master
     ID Request                   Status          Site
------- ------------------------- --------------- -------------------------
     44 RESUME_MASTER_ACTIVITY    AWAIT_CALLBACK  ORC3.EXAMPLE.COM

DBMS_REPCATパッケージのDO_DEFERRED_REPCAT_ADMINプロシージャを使用して、管理要求を実行できます。

管理要求エラーの原因の判定

管理要求エラーの原因を、エラー・メッセージを表示して判定できます。次の問合せは、エラーとなった各管理要求に関するエラー・メッセージを表示します。

COLUMN ID HEADING 'Admin|Request|ID' FORMAT 999999
COLUMN REQUEST HEADING 'Request' FORMAT A30
COLUMN ERRNUM HEADING 'Error|Number' FORMAT 999999
COLUMN MESSAGE HEADING 'Error|Message' FORMAT A32

SELECT ID, REQUEST, ERRNUM, MESSAGE 
    FROM DBA_REPCATLOG WHERE STATUS = 'ERROR';

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

  Admin
Request                                  Error Error
     ID Request                         Number Message
------- ------------------------------ ------- ------------------------------
     70 CREATE_MASTER_REPOBJECT          -2292 ORA-02292: integrity constrain
                                               t (HR.DEPT_LOC_FK) violated -
                                               child record found
                                               ORA-02266: unique/primary keys
                                                in table referenced by enable
                                               d foreign keys

     71 GENERATE_INTERNAL_PKG_SUPPORT   -23308 ORA-23308: object HR.LOCATIONS
                                                does not exist or is invalid

管理要求を実行するジョブの一般情報のリスト表示

各マスター・グループには、管理要求を実行するdo_deferred_repcat_adminジョブが対応付けられています。DBA_JOBSデータ・ディクショナリ・ビューの問合せにより、レプリケーション・サイトにあるこのジョブに関する次の情報をリストできます。

  • do_deferred_repcat_adminジョブのジョブ識別番号。DBMS_JOBパッケージで作成された各ジョブには、一意の識別番号が割り当てられます。

  • 権限スキーマ。権限スキーマとは、ジョブに適用されるデフォルトの権限を所有するスキーマです。

  • do_deferred_repcat_adminジョブのステータスが通常か中断か。

  • 次回各do_deferred_repcat_adminジョブが実行される日付および時刻。

  • do_deferred_repcat_adminジョブの現在の間隔設定。間隔設定では、ジョブの開始と同じジョブの次回の開始の間の、時間の長さを指定します。

次の問合せでこの情報が表示されます。

COLUMN JOB HEADING 'Job ID' FORMAT 999999
COLUMN PRIV_USER HEADING 'Privilege|Schema' FORMAT A10
COLUMN BROKEN HEADING 'Broken?' FORMAT A7
COLUMN next_start HEADING 'Next Start'
COLUMN INTERVAL HEADING 'Interval' FORMAT A20

SELECT JOB, 
       PRIV_USER, 
       BROKEN, 
       TO_CHAR(NEXT_DATE,'DD-MON-YYYY HH:MI:SS AM') next_start, 
       INTERVAL 
    FROM DBA_JOBS 
    WHERE WHAT LIKE '%dbms_repcat.do_deferred_repcat_admin%' 
    ORDER BY 1; 

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

        Privilege
 Job ID Schema     Broken? Next Start              Interval
------- ---------- ------- ----------------------- --------------------
     24 REPADMIN   N       24-OCT-2003 07:23:48 AM SYSDATE + (1/144)

Broken?列のNは、ジョブが中断されていないことを意味します。したがって、ジョブは次回開始時刻に実行されます。この列のYは、ジョブが中断されていることを意味します。

各do_deferred_repcat_adminジョブの定義のチェック

DBA_JOBSデータ・ディクショナリ・ビューの問合せにより、レプリケーション・サイトにある各do_deferred_repcat_adminジョブの定義を表示できます。次の問合せで定義が表示されます。

COLUMN JOB HEADING 'Job ID' FORMAT 999999
COLUMN WHAT HEADING 'Definitions of Admin Req Jobs' FORMAT A70

SELECT JOB, WHAT 
  FROM DBA_JOBS 
  WHERE WHAT LIKE '%dbms_repcat.do_deferred_repcat_admin%' 
  ORDER BY 1;

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

 Job ID Definitions of Admin Req Jobs
------- ----------------------------------------------------------------------
    321 dbms_repcat.do_deferred_repcat_admin('"HR_REPG"', FALSE);
    342 dbms_repcat.do_deferred_repcat_admin('"OE_RG"', FALSE);

遅延トランザクション・キューの監視

この項では、レプリケーション・サイトにある遅延トランザクション・キューの情報を表示するために実行できる問合せを示します。この項には、次の項目が含まれます。

トランザクション伝播の監視

この項では、遅延トランザクション・キューにあるトランザクションの伝播の情報を表示するために実行できる問合せを示します。

各接続先マスター・サイトの遅延トランザクションの数のリスト表示

この項の問合せを実行することにより、各接続先マスター・サイトの伝播されていない遅延トランザクションの数がわかります。この問合せは、カレント・マスター・サイトが遅延トランザクションを伝播している各マスター・サイトを示し、かつ各接続先サイトに伝播される遅延トランザクションの数を示します。

次の問合せを実行し、遅延トランザクションおよびエラー・トランザクションの数を確認します。

COLUMN DEST HEADING 'Destination' FORMAT A45
COLUMN TRANS HEADING 'Def Trans' FORMAT 9999
      
SELECT DBLINK DEST, COUNT(*) TRANS
    FROM DEFTRANDEST D 
    GROUP BY DBLINK;  

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

Destination                                   Def Trans
--------------------------------------------- ---------
ORC2.EXAMPLE.COM                                      1
ORC3.EXAMPLE.COM                                      1

注意:

伝播されるのを待っているトランザクションが多数ある場合、この問合せは高コストになる場合があります。

レプリケーション・サイトにあるプッシュ・ジョブの一般情報のリスト表示

レプリケーション・サイトにある各スケジュール・リンクには、遅延トランザクション・キューにある遅延トランザクションを接続先サイトに伝播する、プッシュ・ジョブが対応付けられています。この項の問合せを使用して、レプリケーション・サイトにあるプッシュ・ジョブに関する次の情報をリストできます。

  • 各プッシュ・ジョブのジョブ識別番号。DBMS_JOBパッケージで作成された各ジョブには、一意の識別番号が割り当てられます。

  • 権限スキーマ。権限スキーマとは、ジョブに適用されるデフォルトの権限を所有するスキーマです。

  • 遅延トランザクションがプッシュされる接続先サイト。

  • プッシュ・ジョブのステータスが通常か中断か。

次の問合せでこの情報が表示されます。

COLUMN JOB HEADING 'Job ID' FORMAT 999999
COLUMN PRIV_USER HEADING 'Privilege|Schema' FORMAT A10
COLUMN DBLINK HEADING 'Destination' FORMAT A40
COLUMN BROKEN HEADING 'Broken?' FORMAT A7

SELECT J.JOB, 
       J.PRIV_USER, 
       S.DBLINK,
       J.BROKEN      
    FROM DEFSCHEDULE S, DBA_JOBS J 
    WHERE S.DBLINK != (SELECT GLOBAL_NAME FROM GLOBAL_NAME)
    AND S.JOB = J.JOB 
    ORDER BY 1; 

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

        Privilege
 Job ID Schema     Destination                              Broken?
------- ---------- ---------------------------------------- -------
     22 REPADMIN   ORC2.EXAMPLE.COM                         N
     23 REPADMIN   ORC3.EXAMPLE.COM                         N

Broken?列のNは、ジョブが中断されていないことを意味します。したがって、ジョブは次回開始時刻に実行されます。この列のYは、ジョブが中断されていることを意味します。

プッシュ・ジョブの次回開始時刻および間隔の判定

レプリケーション・サイトにある各スケジュール・リンクには、遅延トランザクション・キューにある遅延トランザクションを接続先サイトに伝播する、プッシュ・ジョブが対応付けられています。DEFSCHEDULEおよびDBA_JOBSデータ・ディクショナリ・ビューの問合せにより、レプリケーション・サイトにあるプッシュ・ジョブに関する次の情報をリストできます。

  • 各プッシュ・ジョブのジョブ識別番号。DBMS_JOBパッケージで作成された各ジョブには、一意の識別番号が割り当てられます。

  • 遅延トランザクションがプッシュされる接続先サイト。

  • 次回プッシュ・ジョブが実行される日付および時刻。

  • プッシュ・ジョブの現在の間隔設定。間隔設定では、ジョブの開始と同じジョブの次回の開始の間の、時間の長さを指定します。

次の問合せでこの情報が表示されます。

COLUMN JOB HEADING 'Job ID' FORMAT 999999
COLUMN DBLINK HEADING 'Destination' FORMAT A22
COLUMN next_start HEADING 'Next Start'
COLUMN INTERVAL HEADING 'Interval' FORMAT A25

SELECT JOB, 
       DBLINK,
       TO_CHAR(NEXT_DATE, 'DD-MON-YYYY HH:MI:SS AM') next_start, 
       INTERVAL       
    FROM DEFSCHEDULE
    WHERE DBLINK != (SELECT GLOBAL_NAME FROM GLOBAL_NAME)
    AND JOB IS NOT NULL 
    ORDER BY 1; 

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

 Job ID Destination            Next Start              Interval
------- ---------------------- ----------------------- -------------------------
     22 ORC2.EXAMPLE.COM       24-OCT-2003 07:23:48 AM SYSDATE + (1/144)
     23 ORC3.EXAMPLE.COM       24-OCT-2003 07:23:48 AM SYSDATE + (1/144)

伝播のためにキューに入れられているトランザクションの合計数の判定

次の問合せを実行して、遅延トランザクション・キューで伝播されるのを待っているトランザクションの合計数を表示します。

SELECT COUNT(DISTINCT DEFERRED_TRAN_ID) "Transactions Queued" 
    FROM DEFTRANDEST;

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

Transactions Queued
-------------------
                 37

注意:

伝播されるのを待っているトランザクションが多数ある場合、この問合せは高コストになる場合があります。

正常に伝播されたトランザクションのパージの監視

この項では、遅延トランザクション・キューから正常に伝播されたトランザクションの、パージの情報を表示するために実行できる問合せを示します。

パージ・ジョブの一般情報のリスト表示

レプリケーション・サイトの標準設定の途中でパージ・ジョブを構成して、正常に伝播されたトランザクションを遅延トランザクション・キューから削除します。DBA_JOBSデータ・ディクショナリ・ビューの問合せにより、レプリケーション・サイトにあるパージ・ジョブに関する次の情報をリストできます。

  • パージ・ジョブのジョブ識別番号。DBMS_JOBパッケージで作成された各ジョブには、一意の識別番号が割り当てられます。

  • 権限スキーマ。権限スキーマとは、ジョブに適用されるデフォルトの権限を所有するスキーマです。

  • ジョブのステータスが通常か中断か。

  • 次回パージ・ジョブが実行される日付および時刻。

  • パージ・ジョブの現在の間隔設定。間隔設定では、ジョブの開始と同じジョブの次回の開始の間の、時間の長さを指定します。

次の問合せでこの情報が表示されます。

COLUMN JOB HEADING 'Job ID' FORMAT 999999
COLUMN PRIV_USER HEADING 'Privilege|Schema' FORMAT A10
COLUMN BROKEN HEADING 'Broken?' FORMAT A7
COLUMN next_start HEADING 'Next Start'
COLUMN INTERVAL HEADING 'Interval' FORMAT A25

SELECT JOB, 
       PRIV_USER, 
       BROKEN, 
       TO_CHAR(NEXT_DATE, 'DD-MON-YYYY HH:MI:SS AM') next_start, 
       INTERVAL
    FROM DBA_JOBS 
    WHERE WHAT LIKE '%dbms_defer_sys.purge%' 
    ORDER BY 1;

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

        Privilege
 Job ID Schema     Broken? Next Start              Interval
------- ---------- ------- ----------------------- -------------------------
     21 REPADMIN   N       24-OCT-2003 07:42:18 AM SYSDATE + 1/24

Broken?列のNは、ジョブが中断されていないことを意味します。したがって、ジョブは次回開始時刻に実行されます。この列のYは、ジョブが中断されていることを意味します。

パージ・ジョブの定義のチェック

DBA_JOBSデータ・ディクショナリ・ビューの問合せにより、レプリケーション・サイトにあるパージ・ジョブの定義を表示できます。次の問合せで定義が表示されます。

SELECT WHAT "Definition of the Purge Job" 
    FROM DBA_JOBS 
    WHERE WHAT LIKE '%dbms_defer_sys.purge%' ORDER BY 1;

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

Definition of the Purge Job
--------------------------------------------------------------------------------
declare rc binary_integer; begin rc := sys.dbms_defer_sys.purge( delay_seconds=>
0); end;

最後の削除以降の時間の長さの判定

次の問合せは、正常に伝播されたトランザクションが遅延トランザクション・キューからパージされて以降の、時間の長さの合計を分単位で示します。

SELECT ((SYSDATE - LAST_PURGE_TIME) / 60) "Minutes Since Last Purge" 
    FROM V$REPLQUEUE; 

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

Minutes Since Last Purge
------------------------
              13.43333

パージされたトランザクションの合計数の判定

次の問合せは、インスタンスが最後に開始されて以降遅延トランザクション・キューからパージされた、正常に伝播されたトランザクションの合計数を示します。

SELECT TXNS_PURGED "Transactions Purged" 
    FROM V$REPLQUEUE; 

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

Transactions Purged
-------------------
               6541

エラー・キューの監視

この項では、レプリケーション・サイトにあるエラー・キューの情報を表示するために実行できる問合せを示します。エラー・キューには接続先サイトでエラーになった遅延トランザクションが含まれます。このエラー・トランザクションは接続先サイトでエラー・キューに入れられます。

この項には、次の項目が含まれます。

レプリケーション・サイトにあるエラー・トランザクションの一般情報のリスト表示

次の問合せは、レプリケーション・サイトにあるエラー・トランザクションの一般情報をリストします。

COLUMN DEFERRED_TRAN_ID HEADING 'Deferred|Transaction|ID' FORMAT A11
COLUMN ORIGIN_TRAN_DB HEADING 'Origin|Database' FORMAT A15
COLUMN DESTINATION HEADING 'Destination|Database' FORMAT A15
COLUMN TIME_OF_ERROR HEADING 'Time of|Error' FORMAT A22
COLUMN ERROR_NUMBER HEADING 'Oracle|Error|Number' FORMAT 999999

SELECT DEFERRED_TRAN_ID, 
       ORIGIN_TRAN_DB, 
       DESTINATION,
       TO_CHAR(START_TIME, 'DD-Mon-YYYY hh24:mi:ss') TIME_OF_ERROR,
       ERROR_NUMBER 
    FROM DEFERROR ORDER BY START_TIME;

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

Deferred                                                            Oracle
Transaction Origin           Destination      Time of                  Error
ID          Database         Database         Error                   Number
----------- ---------------- ---------------- ---------------------- -------
1.8.2470    ORC2.EXAMPLE.COM ORC1.EXAMPLE.COM 22-Oct-2003 07:19:14      1403

遅延トランザクションIDと接続先データベースを使用して、エラー原因となったトランザクションの再実行またはエラーの削除ができます。

たとえば、前の例のトランザクションを再実行するには、次のように入力します。

EXECUTE DBMS_DEFER_SYS.EXECUTE_ERROR('1.8.2470', 'ORC1.EXAMPLE.COM');

前の例のエラーを削除するには、次のように入力します。

EXECUTE DBMS_DEFER_SYS.DELETE_ERROR('1.8.2470', 'ORC1.EXAMPLE.COM');

通常は、エラーを手動で解決した場合のみ、エラーを削除します。

エラー・トランザクションの割合の判定

トランザクションをリモート・マスター・サイトに伝播するとき、正常に伝播されて適用されるトランザクションがある一方、リモート・マスター・サイトでエラーになるトランザクションがある場合があります。エラーになるトランザクションはエラー・トランザクションと呼ばれます。

次の問合せを実行して、リモート・マスター・サイトorc2.example.comへの伝播から発生したエラー・トランザクションの割合を表示します。

SELECT DECODE(TOTAL_TXN_COUNT, 0, 'No Transactions', 
       (TOTAL_ERROR_COUNT/TOTAL_TXN_COUNT)*100) "ERROR PERCENTAGE" 
  FROM DEFSCHEDULE 
  WHERE DBLINK = 'ORC2.EXAMPLE.COM';

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

Error Percentage
----------------
           3.265

注意:

この問合せが'No transactions'を戻す場合は、統計が最後に消去されて以降、指定されたリモート・サイトに伝播されたトランザクションはありません。

各起点マスター・サイトからのエラー・トランザクションの数のリスト表示

この項の問合せを実行することにより、各起点マスター・サイトによるプッシュから発生したトランザクション・エラーの数を検索できます。

次の問合せを実行し、遅延トランザクションおよびエラー・トランザクションの数を確認します。

COLUMN SOURCE HEADING 'Origin' FORMAT A45
COLUMN ERRORS HEADING 'Def Trans Errors' FORMAT 9999

SELECT E.ORIGIN_TRAN_DB SOURCE, COUNT(*) ERRORS 
    FROM DEFERROR E 
    GROUP BY E.ORIGIN_TRAN_DB;

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

Origin                                        Def Trans Errors
--------------------------------------------- ----------------
ORC2.EXAMPLE.COM                                             1
ORC3.EXAMPLE.COM                                             3

レプリケーション・サイトのエラー・トランザクションに関するエラー・メッセージのリスト表示

次の問合せは、レプリケーション・サイトにあるエラー・トランザクションに関するエラー・メッセージをリストします。

COLUMN DEFERRED_TRAN_ID HEADING 'Deferred|Transaction|ID' FORMAT A11
COLUMN ERROR_MSG HEADING 'Error Messages' FORMAT A68

SELECT DEFERRED_TRAN_ID, ERROR_MSG 
    FROM DEFERROR;

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

Deferred
Transaction
ID          Error Messages
----------- --------------------------------------------------------------------
1.8.2470    ORA-01403: no data found

レプリケーション・サイトのエラー操作の判定

次の問合せは、レプリケーション・サイトでエラー原因となった各コールに関して試みられた操作のタイプをリストします。

COLUMN CALLNO HEADING 'Call|Number' FORMAT 9999
COLUMN DEFERRED_TRAN_ID HEADING 'Deferred|Transaction|ID' FORMAT A11
COLUMN PACKAGENAME HEADING 'Package|Name' FORMAT A20
COLUMN PROCNAME HEADING 'Operation' FORMAT A15
COLUMN ORIGIN_TRAN_DB HEADING 'Origin|Database' FORMAT A16

SELECT /*+ ORDERED */ 
       C.CALLNO, 
       C.DEFERRED_TRAN_ID, 
       C.PACKAGENAME,
       C.PROCNAME, E.ORIGIN_TRAN_DB
    FROM DEFERROR E, DEFCALL C
    WHERE C.DEFERRED_TRAN_ID = E.DEFERRED_TRAN_ID
    AND C.CALLNO = E.CALLNO
    ORDER BY E.START_TIME;

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

       Deferred
  Call Transaction Package                              Origin
Number ID          Name                 Operation       Database
------ ----------- -------------------- --------------- ----------------
     0 1.8.2470    EMPLOYEES$RP         REP_UPDATE      ORC2.EXAMPLE.COM

レプリケーション環境のパフォーマンスの監視

この項では、マスター・レプリケーション環境のパフォーマンスを監視するために実行できる問合せを示します。この項には、次の項目が含まれます。

レプリケーション・トランザクションの行変更の平均数の追跡

次の問合せは、インスタンス起動以降のレプリケーション・トランザクションの行変更の平均数を示します。

SELECT DECODE(TXNS_ENQUEUED, 0, 'No Transactions Enqueued',
       (CALLS_ENQUEUED / TXNS_ENQUEUED)) "Average Number of Row Changes" 
  FROM V$REPLQUEUE;

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

Average Number of Row Changes
-----------------------------
                        56.16

注意:

この問合せが'No Transactions Enqueued'を戻す場合は、インスタンスの開始以降エンキューされたトランザクションはありません。

遅延トランザクション・キューに入るトランザクションの率の追跡

次の問合せは、インスタンス起動以降、現在のサイトで遅延トランザクション・キューに入るトランザクションの1秒ごとの平均数を示します。

SELECT (R.TXNS_ENQUEUED / ((SYSDATE - I.STARTUP_TIME)*24*60*60)) "Average TPS" 
    FROM V$REPLQUEUE R, V$INSTANCE I;

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

Average TPS
-----------
        150

トランザクションの伝播のために作成されるネットワークの平均通信量の判定

遅延トランザクションの伝播は、ネットワークに一定の通信量を発生させます。ここでトランザクションにより発生するネットワークの通信量とは、送受信されるバイト数と、トランザクションの伝播に必要なネットワーク・ラウンドトリップの数です。

ラウンドトリップとは、連続して受信される1つ以上のメッセージが後に続く、連続して送信される1つ以上のメッセージです。たとえば、次の場合はどちらも1つのラウンドトリップです。

  • サイトAがサイトBに1つのメッセージを送信し、次にサイトBがサイトAに1つのメッセージを送信します。

  • サイトAがサイトBに20のメッセージを送信し、次にサイトBがサイトAに20つのメッセージを送信します。

これは、ラウンドトリップの数とはサイト間の往復通信の数であり、ラウンドトリップの数を評価するときは、メッセージの数は無関係であることを示しています。

次の問合せは、トランザクションをorc2.example.comリモート・マスター・サイトに伝播するときに発生するネットワークの平均通信量を示します。

COLUMN AV_BYTES HEADING 'Average Bytes' FORMAT 999999999
COLUMN AV_TRIPS HEADING 'Average Round Trips' FORMAT 9999999

SELECT  
 DECODE(TOTAL_TXN_COUNT, 0, 'No Transactions',
 ((TOTAL_BYTES_SENT + TOTAL_BYTES_RECEIVED) / TOTAL_TXN_COUNT)) AV_BYTES, 
 DECODE(TOTAL_TXN_COUNT, 0, 'No Transactions', 
 (TOTAL_ROUND_TRIPS / TOTAL_TXN_COUNT)) AV_TRIPS 
 FROM DEFSCHEDULE WHERE DBLINK = 'ORC2.EXAMPLE.COM';

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

Average Bytes          Average Round Trips
---------------------- -------------------
69621.5                5

注意:

  • この問合せが両方の列で'No transactions'を戻す場合は、統計が最後に消去されて以降、指定されたリモート・サイトに伝播されたトランザクションはありません。

  • この問合せでは、指定されたデータベース・リンクでパラレル伝播を使用する場合にのみ結果が戻されます。パラレル伝播を使用するには、DBMS_DEFER_SYSパッケージのSCHEDULE_PUSHプロシージャを実行する際に、parallelismパラメータを1以上に設定します。



関連項目:


リモート・サイトでトランザクションを適用するための平均時間の判定

平均待機時間とは、現在のサイトでのトランザクションの最初のコールと、リモート・サイトでトランザクションが適用されたことの確認の間の、平均秒数です。最初のコールはトランザクションがコミットされた時点ではなく、ユーザーが最初にデータ操作言語(DML)に変更を加えた時点から開始されます。

次の問合せは、トランザクションをリモート・マスター・サイトorc2.example.comで適用するための平均待機時間を示します。

SELECT AVG_LATENCY "Average Latency" 
    FROM DEFSCHEDULE 
    WHERE DBLINK='ORC2.EXAMPLE.COM'; 

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

Average Latency
---------------
           25.5

パラレル伝播ジョブがスリープに費やす時間の割合の判定

パラレル伝播コーディネータがアクティブでないことを、スリープしているといいます。伝播コーディネータがスリープ状態になる時間の長さは、DBMS_DEFER_SYS.PUSHプロシージャのdelay_secondsパラメータを使用して制御します。

次の問合せは、トランザクションをorc2.example.comリモート・マスター・サイトに伝播するとき、パラレル伝播コーディネータがスリープに費やす時間の割合を示します。

SELECT DECODE(AVG_THROUGHPUT, 0, NULL, 
       ((TOTAL_SLEEP_TIME / (TOTAL_TXN_COUNT / AVG_THROUGHPUT)) * 100)) 
       "Percent Sleep Time" 
  FROM DEFSCHEDULE WHERE DBLINK = 'ORC2.EXAMPLE.COM'; 

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

Percent Sleep Time
------------------
                 2

この場合では、パラレル伝播コーディネータは98%の時間アクティブです。


注意:

この問合せがNULLを戻す場合は、統計が最後に消去されて以降、または最後のデータベース起動以降、指定されたリモート・サイトに伝播されたトランザクションはありません。

DEFSCHEDULEビューのリモート・マスター・サイトに関する統計の消去

特定のリモート・マスター・サイトに関するDEFSCHEDULEビューの伝播統計を消去するには、DBMS_DEFER_SYSパッケージのCLEAR_PROP_STATISTICSプロシージャを使用します。たとえば、orc2.example.comリモート・マスター・サイトに関する伝播統計を消去するには、次のプロシージャを実行します。

BEGIN
  DBMS_DEFER_SYS.CLEAR_PROP_STATISTICS (
   dblink => 'ORC2.EXAMPLE.COM');
END;
/

V$REPLPROPを使用した遅延トランザクションのパラレル伝播の監視

V$REPLPROP動的パフォーマンス・ビューは、現在のパラレル伝播セッションの情報を提供します。


注意:

V$REPLPROP動的パフォーマンス・ビューは、遅延トランザクションのパラレル伝播を使用している場合にのみ関係します。シリアル伝播を使用している場合は、このビューは空です。

遅延トランザクションを伝播するデータベースの判定

次の問合せを実行して、現在パラレル伝播を使用して遅延トランザクションを伝播している各データベースの、データベース・リンクをリストします。

SELECT DBLINK "Database Link"
    FROM V$REPLPROP 
    WHERE NAME LIKE '%Coordinator%';

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

Database Link
-----------------
ORC2.EXAMPLE.COM
ORC3.EXAMPLE.COM

現在リモート・マスターに伝播されているトランザクションの判定

現在パラレル伝播を使用して特定のリモート・マスター・サイトに伝播されているトランザクションの情報に関しては、次の情報をリストできます。

  • 各トランザクションのトランザクション識別番号。

  • 各トランザクションのコールの数。

  • 各トランザクションの処理済のコールの割合。この列の数値は、トランザクションのコールが処理されるに従って増加します。数値が100になったときは、すべてのコールが処理済です。

次の問合せでこの情報が表示されます。

SELECT /*+ ORDERED */ P.XID "Tran Being Propagated",
       (MAX(C.CALLNO) + 1) "Number of Calls in Tran",
       (P.SEQUENCE/MAX(C.CALLNO) + 1) * 100 "% Processed Calls"
   FROM V$REPLPROP P, DEFCALL C
   WHERE P.NAME LIKE '%SLAVE%'
   AND P.DBLINK = 'mv4.example.com'
   AND C.DEFERRED_TRAN_ID = P.XID
   GROUP BY P.XID, P.SEQUENCE;

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

Tran Being Propagated  Number of Calls in Tran % Processed Calls
---------------------- ----------------------- -----------------
1.11.4264                                43357               78
1.15.4256                                23554               49

既存のトランザクションがプッシュされて新しいトランザクションが処理されると同時に、トランザクション識別番号は変更される必要があります。この問合せは、レプリケーション環境に次の条件のいずれかが該当する場合に特に役立ちます。

  • 多数のトランザクションを定期的にプッシュする場合。

  • 非常に大きなトランザクションがいくつかある場合。

  • 非同期伝播を使用した連続的なプッシュのシミュレーションを行う場合。

レプリケーション環境に最初の2つの条件が該当する場合は、この問合せを実行して、プロセスがトランザクションをプッシュしているかどうかをチェックできます。このタイプの環境では、トランザクションをプッシュしていないときはプロセスが存在しません。

連続的な送信のシミュレーションを行っているレプリケーション環境では、遅延トランザクション・キューにプッシュすべきトランザクションがあるときは必ずプロセスが存在します。プッシュすべきトランザクションが存在しないときは、プロセスが存在しない場合があります。このため、プッシュすべきトランザクションがあるときは、この問合せを実行して、プロセスが存在してトランザクションを処理しているかどうかを確認できます。


関連項目:

レプリケーション環境での連続的なプッシュのスケジューリングの詳細は、『Oracle Databaseアドバンスト・レプリケーション』を参照してください。