ヘッダーをスキップ
Oracle® TimesTen In-Memory Database開発者および管理者ガイド
11gリリース2 (11.2.2)
B66443-07
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

12 レプリケーションの監視

この章では、データベースのレプリケーション状態の監視に使用できるTimesTenユーティリティおよび組込みプロシージャの一部について説明します。

レプリケーションは、コマンドラインおよびプログラムの両方から監視できます。この章で説明するttStatusおよびttRepAdminユーティリティは、コマンドラインでの問合せに有効です。レプリケーションをプログラムによって監視するには、TimesTen組込みプロシージャ(『Oracle TimesTen In-Memory Databaseリファレンス』を参照)を使用するか、または独自のSQL SELECT文を作成してレプリケーション表(『Oracle TimesTen In-Memory Databaseシステム表およびビュー・リファレンス』を参照)を問い合せます。


注意:

TimesTen SYSおよびTTREP表には問合せのためにのみアクセスできます。これらの表の内容を変更しようとしないでください。

この章の内容は次のとおりです。

レプリケーション・エージェントの状態の表示

レプリケーション・エージェントの現在の状態についての情報を表示できます。

また、特定のレプリケーション・データベースの状態も取得できます(「サブスクライバ・データベース情報の表示」および「レプリケーション・データベースの構成の表示」を参照)。

ttStatusを使用したレプリケーション・エージェントのステータスの取得

マスター・データベースのレプリケーション・エージェントが起動されていることを確認するには、ttStatusユーティリティを使用します。

例12-1 ttStatusを使用したレプリケーション・エージェントのステータスの取得

> ttStatus
TimesTen status report as of Thu Aug 11 17:05:23 2011
Daemon pid 18373 port 4134 instance ttuser
TimesTen server pid 18381 started on port 4136
------------------------------------------------------------------------
Data store /tmp/masterds
There are 16 connections to the data store
Shared Memory KEY 0x0201ab43 ID 5242889
PL/SQL Memory KEY 0x0301ab43 ID 5275658 Address 0x10000000
Type            PID     Context     Connection Name              ConnID
Process         20564   0x081338c0  masterds                          1
Replication     20676   0x08996738  LOGFORCE                          5
Replication     20676   0x089b69a0  REPHOLD                           2
Replication     20676   0x08a11a58  FAILOVER                          3
Replication     20676   0x08a7cd70  REPLISTENER                       4
Replication     20676   0x08ad7e28  TRANSMITTER                       6
Subdaemon       18379   0x080a11f0  Manager                        2032
Subdaemon       18379   0x080fe258  Rollback                       2033
Subdaemon       18379   0x081cb818  Checkpoint                     2036
Subdaemon       18379   0x081e6940  Log Marker                     2035
Subdaemon       18379   0x08261e70  Deadlock Detector              2038
Subdaemon       18379   0xae100470  AsyncMV                        2040
Subdaemon       18379   0xae11b508  HistGC                         2041
Subdaemon       18379   0xae300470  Aging                          2039
Subdaemon       18379   0xae500470  Flusher                        2034
Subdaemon       18379   0xae55b738  Monitor                        2037
Replication policy  : Manual
Replication agent is running.
Cache Agent policy  : Manual
PL/SQL enabled.

ttAdmin -queryを使用したポリシー設定の確認

データベースに対するポリシー設定(「レプリケーション・エージェントの起動および停止」で説明されているレプリケーション再起動ポリシーを含む)を確認するには、-queryオプションを指定してttAdminユーティリティを使用します。

例12-2 ttAdminを使用したポリシー設定の確認

> ttAdmin -query masterDSN
RAM Residence Policy : inUse
Manually Loaded In Ram : False
Replication Agent Policy : manual
Replication Manually Started : True
Cache Agent Policy : manual
Cache Agent Manually Started : False

ttDataStoreStatusを使用したレプリケーション・エージェントのステータスの取得

レプリケーション・エージェントの状態をプログラムから取得するには、ttDataStoreStatus組込みプロシージャを使用します。

例12-3 ttDataStoreStatusのコール

masterdsデータベースのレプリケーション・エージェントの状態を取得するには、ttDataStoreStatus組込みプロシージャをコールします。

> ttIsql masterds
Command> CALL ttDataStoreStatus('/tmp/masterds');
< /tmp/masterds, 964, 00000000005D8150, subdaemon, Global\DBI3b3234c0.0.SHM.35 >
< /tmp/masterds, 1712, 00000000016A72E0, replication, Global\DBI3b3234c0.0.SHM.35 >
< /tmp/masterds, 1712, 0000000001683DE8, replication, Global\DBI3b3234c0.0.SHM.35 >
< /tmp/masterds, 1620, 0000000000608128, application, Global\DBI3b3234c0.0.SHM.35 >
4 rows found.

ttDataStoreStatusの出力は、「ttStatusを使用したレプリケーション・エージェントのステータスの取得」ttStatusユーティリティの出力に類似しています。

マスター・データベース情報の表示

マスター・データベースに関する情報を表示できます。

ttRepAdminを使用したマスター・データベースに関する情報の表示

マスター・データベースに関する情報を表示するには、-self -listオプションを指定してttRepAdminユーティリティを使用します。

ttRepAdmin -dsn masterDSN -self -list

例12-4 ttRepAdminを使用したマスター・データベースに関する情報の表示

この例では、「RETURNサービスとログ障害しきい値を使用する複数サブスクライバ・クラシック・レプリケーション・スキーム」で説明されているマスター・データベースの出力を示します。

> ttRepAdmin -dsn masterds -self -list
Self host "server1", port auto, name "masterds", LSN 0/2114272

次の表に、フィールドの説明を示します。

フィールド 説明
host データベースのホストの名前。
port このデータベースからの更新を受信する別のデータベースのレプリケーション・エージェントで使用されるTCP/IPポート。値が0(ゼロ)の場合は、レプリケーションでポートが自動的に割り当てられたことを示します。
name データベースの名前。
Log file / Replication hold LSN サブスクライバに送信するために保持されているトランザクション・ログ内の最も古い場所を示します。値が-1/-1の場合は、レプリケーションがすべてのサブスクライバに対してstop状態であることを示します。

レプリケーション表の問合せによるマスター・データベースに関する情報の取得

マスター・データベースに関する情報を取得するには、次のSELECT文を使用して、TTREP.TTSTORESおよびTTREP.REPSTORESレプリケーション表を問い合せます。

SELECT t.host_name, t.rep_port_number, t.tt_store_name
  FROM ttrep.ttstores t, ttrep.repstores s
    WHERE t.is_local_store = 0x01
      AND t.tt_store_id = s.tt_store_id;

次に、マスター・データベースに対するSELECT文(「RETURNサービスとログ障害しきい値を使用する複数サブスクライバ・クラシック・レプリケーション・スキーム」を参照)の結果を示します。フィールドは、ホスト名、レプリケーション・ポート番号およびデータベース名です。

< server1, 0, masterds>

サブスクライバ・データベース情報の表示

レプリケーションはTimesTenトランザクション・ログを使用して、サブスクライバ・サイトに送信する必要がある情報を保持します。サブスクライバ・データベースとの通信が中断された場合、またはサブスクライバ・サイトが停止した場合、トランザクション・ログ・データが累積します。この項で説明する問合せの出力の一部から、各サブスクライバ・データベースのために累積されたトランザクション・ログ・データの量、各サブスクライバ・データベースとの通信に最後に成功してから経過した時間を確認できます。

次の方法を使用して、サブスクライバ・データベースに関する情報を表示します。

ttRepAdminユーティリティによるサブスクライバ・ステータスの表示

サブスクライバに関する情報を表示するには、-receiver -listオプションを指定してttRepAdminユーティリティを使用します。

ttRepAdmin -dsn masterDSN -receiver -list

例12-5 ttRepAdminを使用したサブスクライバに関する情報の表示

この例では、「RETURNサービスとログ障害しきい値を使用する複数サブスクライバ・クラシック・レプリケーション・スキーム」で説明されているサブスクライバの出力を示します。

> ttRepAdmin -dsn masterds -receiver -list
Peer name        Host name                Port   State   Proto
---------------- ------------------------ ------ ------- -----
subscriber1ds    server2                  Auto   Start      10

Last Msg Sent Last Msg Recv Latency TPS     RecordsPS Logs
------------- ------------- ------- ------- --------- ----
0:01:12       -             19.41 5       5        52    2

Peer name        Host name                Port   State   Proto
---------------- ------------------------ ------ ------- -----
subscriber2ds    server3                  Auto   Start      10

Last Msg Sent Last Msg Recv Latency TPS     RecordsPS Logs
------------- ------------- ------- ------- --------- ----
0:01:04       -             20.94         4        48    2

最初の行には、サブスクライバの定義が表示されます。その次の行には、このサブスクライバのために保持されているトランザクション・ログ・ファイルの数とともに、待機時間および速度の情報が表示されます。subscriber1dsの待機時間は19.41秒で、マスターよりログ2つ分遅れています。この待機時間は高い値で、待機時間の値が高いままでログの数が増え続ける場合、問題が発生していることを示します。


注意:

表示されるサブスクライバ情報の詳細は、「サブスクライバ情報」を参照してください。

TTREP.REPLICATIONS表に指定したスキームが複数ある場合は、-schemeオプションを使用して、リストするスキームを指定する必要があります。そうしない場合、次のエラーを受信します。

Must specify -scheme to identify which replication scheme to use

詳細は、『Oracle TimesTen In-Memory Databaseリファレンス』の「ttRepAdmin」を参照してください。

ttReplicationStatus組込みプロシージャによるサブスクライバ・ステータスの表示

ttIsql内でttReplicationStatus組込みプロシージャを使用することにより、1つ以上のサブスクライバ・データベースのステータスを表示できます(レポートされるのは、この組込みプロシージャがコールされたマスター・データベースのサブスクライバのステータスのみです)。

例12-6 このマスターの単一サブスクライバに関するステータスの表示

次の例は、host1に配置されているサブスクライバmaster2のステータスを取得します。ホスト名が除外されている場合、サブスクライバは、その名前のホストのみに配置されています。

Command> call ttReplicationStatus('master2', 'host1');
< MASTER2, HOST1, 0, start, 1, 26, _ACTIVESTANDBY , TTREP >
1 row found. 

表示される情報は、host1に配置されており、自動的に割り当てられたポートでリスニングしているサブスクライバmaster2に関するステータスです。TCP/IPポートは、マスターからの更新を受信するサブスクライバ・エージェントで使用されます。ただし、値が0 (ゼロ)の場合は、レプリケーションでポートが自動的に割り当てられたことを示します。

このサブスクライバは、起動状態です。このピアに対しては1つのトランザクション・ログのみが保持されており、最後のレプリケーションから26秒が経過しています。レプリケーション・スキームの名前は_ACTIVESTANDBY、所有者はTTREPです。

例12-7 このマスターのすべてのサブスクライバに関するステータスの表示

サブスクライバまたはサブスクライバのホスト名のいずれも提供しない場合、このマスターのすべてのサブスクライバに関するステータスが返されます。次の例では、このマスターに対してサブスクライバが1つのみ設定されているので、前述と同じステータスが示されます。

Command> call ttReplicationStatus();
< MASTER2, HOST1, 0, start, 1, 26, _ACTIVESTANDBY , TTREP >
1 row found. 

詳細は、『Oracle TimesTen In-Memory Databaseリファレンス』のttReplicationStatusに関する説明を参照してください。

レプリケーション表の問合せによるサブスクライバに関する情報の表示

次のSELECT文を使用してTTREP.REPPEERS表、TTREP.TTSTORES表およびSYS.MONITOR表を問い合せることにより、マスターのサブスクライバに関する同じ情報をプログラムから取得できます。

SELECT t1.tt_store_name, t1.host_name, t1.rep_port_number,
p.state, p.protocol, p.timesend, p.timerecv, p.latency,
p.tps, p.recspersec, t3.last_log_file - p.sendlsnhigh + 1
  FROM ttrep.reppeers p, ttrep.ttstores t1, ttrep.ttstores t2, sys.monitor t3
  WHERE p.tt_store_id = t1.tt_store_id
    AND t2.is_local_store = 0X01
    AND p.subscriber_id = t2.tt_store_id
    AND p.replication_name = 'repscheme'
    AND p.replication_owner = 'repl'
    AND (p.state = 0 OR p.state = 1);

次に、前述の3つの文の出力例を示します。

< subscriber1ds, server2, 0, 0, 7, 1003941635, 0, -1.00000000000000, -1, -1, 1 >
< subscriber2ds, server3, 0, 0, 7, 1003941635, 0, -1.00000000000000, -1, -1, 1 >

表示されるサブスクライバ情報の詳細は、「サブスクライバ情報」を参照してください。

サブスクライバ情報

ttRepAdminユーティリティまたはSELECT文の出力には、次のフィールドが含まれます。

フィールド 説明
Peer name サブスクライバ・データベースの名前
Host name サブスクライバをホスティングするマシンの名前
Port マスターからの更新を受信するサブスクライバ・エージェントで使用されるTCP/IPポート。値が0(ゼロ)の場合は、レプリケーションでポートが自動的に割り当てられたことを示します。
State マスター・データベースに対するサブスクライバの現在のレプリケーション状態(詳細は、「サブスクライバ・データベース情報の表示」を参照)。
Protocol このマスターとマスターに対応するサブスクライバ間で通信するレプリケーションで使用される内部プロトコル。この値は無視できます。
Last message sent マスターがサブスクライバに最後にメッセージを送信してから経過した時間(秒)。このようなメッセージには、データベース間で送信されたハートビート・メッセージが含まれます。
Last message received このサブスクライバがマスターから最後のメッセージを受信してから経過した時間(秒)。
Latency マスターがメッセージを送信してからサブスクライバから最後の確認応答を受信するまでの平均待機時間(秒)。(「注意」を参照。)
Transactions per second マスターでコミットされ、サブスクライバで処理される、1秒当たりの平均トランザクション数。(「注意」を参照。)
Records per second 1秒当たりに送信される平均レコード数。(「注意」を参照。)
Logs マスター・データベースがサブスクライバのために保持しているトランザクション・ログ・ファイルの数。


注意:

LatencyTPSおよびRecordsPSは、レコードのバッチのレプリケート中に検出された平均値をレポートします。これらの値は、ワークロードが比較的一定でない場合、不安定になる可能性があります。値が-1の場合は、マスターのレプリケーション・エージェントがそのサブスクライバ・レプリケーション・エージェントとの通信を確立していないか、またはデータをサブスクライバ・レプリケーション・エージェントに送信していないことを示します。

レプリケート・データベースの構成の表示

レプリケート・データベースの構成を表示できます。

ttIsql repschemesコマンドによる構成情報の表示

レプリケート・データベースの構成をttIsqlプロンプトから表示するには、repschemesコマンドを使用します。

Command> repschemes;

例12-8に、「伝播スキーム」で説明されているレプリケーション・スキームからの構成出力を示します。

例12-8 ttIsql repschemesコマンドからの出力

Replication Scheme PROPAGATOR:

  Element: A
    Type: Table TAB
    Master Store: CENTRALDS on FINANCE Transmit Durable
    Subscriber Store: PROPDS on NETHANDLER

  Element: B
    Type: Table TAB
    Propagator Store: PROPDS on NETHANDLER Transmit Durable
    Subscriber Store: BACKUP1DS on BACKUPSYSTEM1
    Subscriber Store: BACKUP2DS on BACKUPSYSTEM2

Store: BACKUP1DS on BACKUPSYSTEM1
  Port: (auto)
  Log Fail Threshold: (none)
  Retry Timeout: 120 seconds
  Compress Traffic: Disabled

Store: BACKUP2DS on BACKUPSYSTEM2
  Port: (auto)
  Log Fail Threshold: (none)
  Retry Timeout: 120 seconds
  Compress Traffic: Disabled

Store: CENTRALDS on FINANCE
  Port: (auto)
  Log Fail Threshold: (none)
  Retry Timeout: 120 seconds
  Compress Traffic: Disabled

Store: PROPDS on NETHANDLER
  Port: (auto)
  Log Fail Threshold: (none)
  Retry Timeout: 120 seconds
  Compress Traffic: Disabled

ttRepAdminユーティリティによる構成情報の表示

レプリケート・データベースの構成を表示するには、-showconfigオプションを指定してttRepAdminユーティリティを使用します。

ttRepAdmin -showconfig -dsn masterDSN

例12-9に、「伝播スキーム」で説明されているレプリケーション・スキームによって構成された伝播済データベースからの構成出力を示します。propdsプロパゲータの待機時間は19.41秒で、マスターよりログ2つ分遅れています。

例12-9 ttRepAdmin出力

> ttRepAdmin -showconfig -dsn centralds
Self host "finance", port auto, name "centralds", LSN 0/155656, timeout 120, 
threshold 0

List of subscribers
-----------------
Peer name        Host name                Port   State   Proto
---------------- ------------------------ ------ ------- -----
propds           nethandler               Auto   Start      10

Last Msg Sent Last Msg Recv Latency TPS     RecordsPS Logs
------------- ------------- ------- ------- --------- ----
0:01:12       -             19.41         5        52    2

List of tables and subscriptions
--------------------------------
Table details
-------------
Table : tab          Timestamp updates : -

Master Name                 Subscriber Name
-----------                 -------------
centralds                   propds

Table details
-------------
Table : tab          Timestamp updates : -

Master Name                 Subscriber name
-----------                 -------------
propds                      backup1ds
propds                      backup2ds

「List of subscribers」フィールドの意味は、「レプリケーション表の問合せによるサブスクライバに関する情報の表示」を参照してください。Table detailsフィールドには、表およびそのマスター(送信者)とサブスクライバのデータベースの名前が表示されます。

レプリケーション表の問合せによる構成情報の表示

構成情報を表示するには、次のSELECT文を使用して、TTREP.TTSTORESTTREP.REPSTORESTTREP.REPPEERSSYS.MONITORTTREP.REPELEMENTSおよびTTREP.REPSUBSCRIPTIONS表を問い合せます。

SELECT t.host_name, t.rep_port_number, t.tt_store_name, s.peer_timeout, 
s.fail_threshold
  FROM ttrep.ttstores t, ttrep.repstores s
    WHERE t.is_local_store = 0X01
      AND t.tt_store_id = s.tt_store_id;

SELECT t1.tt_store_name, t1.host_name, t1.rep_port_number,
       p.state, p.protocol, p.timesend, p.timerecv, p.latency,
       p.tps, p.recspersec, t3.last_log_file - p.sendlsnhigh + 1
  FROM ttrep.reppeers p, ttrep.ttstores t1, ttrep.ttstores t2, sys.monitor t3
    WHERE p.tt_store_id = t2.tt_store_id
      AND t2.is_local_store = 0X01
      AND p.subscriber_id = t1.tt_store_id
      AND (p.state = 0 OR p.states = 1);

SELECT ds_obj_owner, DS_OBJ_NAME, t1.tt_store_name,t2.tt_store_name
  FROM ttrep.repelements e, ttrep.repsubscriptions s, 
      ttrep.ttstores t1, ttrep.ttstores t2
    WHERE s.element_name = e.element_name
      AND e.master_id = t1.tt_store_id
      AND s.subscriber_id = t2.tt_store_id
    ORDER BY ds_obj_owner, ds_obj_name;

例12-10 問合せの出力

問合せの出力例は、「伝播スキーム」で説明されているレプリケーション・スキームによって構成されたデータベースに対するものです。

最初の問合せの出力は次のようになります。

< finance, 0, centralds, 120, 0 >

これには、ホスト名、ポート番号およびデータベース名が表示されます。4番目の値(120)は、データベースがメッセージを送信する前に別のデータベースからのレスポンスを待機する時間を定義するTIMEOUT値です。最後の値(0)は、ログ障害しきい値(「トランザクション・ログ障害しきい値の設定」を参照)です。

2番目の問合せの出力は次のようになります。

< propds, nethandler, 0, 0, 7, 1004378953, 0, -1.00000000000000, -1, -1, 1 >

フィールドの説明は、「レプリケーション表の問合せによるサブスクライバに関する情報の表示」を参照してください。

最後の問合せの出力は次のようになります。

< repl, tab, centralds, propds >
< repl, tab, propds, backup1ds >
< repl, tab, propds, backup2ds >

これらの行には、レプリケート表およびそのマスター(送信者)とサブスクライバ(受信者)のデータベースの名前が表示されます。

レプリケート・ログ・レコードの表示

レプリケート・データベースでは、トランザクションがサブスクライバで完全に処理されたことをマスター・レプリケーション・エージェントが確認するまで、トランザクションはトランザクション・ログ・バッファおよびトランザクション・ログ・ファイルに保持されます。サブスクライバが含まれるアクティブ・スタンバイ・ペアのレプリケーション・スキームでは、トランザクションがスタンバイ・マスターとすべてのサブスクライバの両方で処理されたとアクティブ・マスターにより確認されるまで、トランザクションはトランザクション・ログに残ります。アクティブ・マスターは、これを確認した時点でのみ、ログ・バッファおよびトランザクション・ログ・ファイルからのパージが必要であると認識します。ログ領域を使い果たすと、マスター・データベースでの後続の更新が強制終了されます。


注意:

トランザクション・ログの増大の詳細は、『Oracle TimesTen In-Memory Databaseオペレーション・ガイド』のトランザクション・ログ・ファイルの蓄積の監視に関する説明を参照してください。

トランザクションは、ログ・レコードの形式でログに保存されます。ブックマークを使用して、マスター・データベースがレプリケートしたログ・レコードまたはレプリケートしていないログ・レコードを検出できます。ブックマークは、ログ順序番号(LSN)で構成されており、この番号は、レプリケーションのパフォーマンスを測定するために使用可能なトランザクション・ログ内の特定のレコードの位置を識別できます。ブックマークに関連付けられているLSNは、hold LSNlast written LSNおよびlast LSN forced to diskです。hold LSNは、サブスクライバに送信できるようにログ内に保持されている最下位(最も古い)レコードの場所を示します。hold LSNとlast written LSNを比較することによって、サブスクライバに送信されていないトランザクション・ログ内のデータの量を確認できます。last LSN forced to diskは、ディスク上のトランザクション・ログ・ファイルに保存された最後のレコードを示します。

ユーザーは次のツールを使って、ブックマークとログの順序番号でレプリケーションを監視できます。

TTREP.REPPEERS表を使ったレプリケーションの監視

特定のサブスクライバへのレプリケーションを正確に監視する方法として、サブスクライバのsend LSNを監視するという方法があり、send LSNは、TTREP.REPPEERS表のSENDLSNHIGHおよびSENDLSNLOWフィールドで構成されています。send LSN値とは対照的に、ブックマーク内に返されるhold LSNは、すべてのサブスクライバの最小のsend LSNを示すために10秒ごとに計算されるため、hold LSNは、レプリケーションの進行状況の概要を示し、個々のサブスクライバへのレプリケーションの進行状況は明示されません。レプリケーションの確認応答はパフォーマンスを向上させるために非同期であるため、send LSNは少し遅れる可能性もあります。ただし、サブスクライバのsend LSNは、使用できる最も正確な値であり、常にhold LSNに先行しています。

ttLogHolds組込みプロシージャを使ったレプリケーションの監視

ttLogHolds組込みプロシージャを使用して、レプリケーション・ログに関する情報を保持します。

次の例は、アクティブ・スタンバイ・ペアのレプリケーション・スキームに対するttLogHolds組込みプロシージャの出力を示しています(アクティブ・マスターはmaster1、スタンバイ・マスターはmaster2、単一のサブスクライバはsubscriber1)。すべてのトランザクションはまずアクティブ・マスターからスタンバイ・マスターにレプリケートされ、それからスタンバイ・マスターによりトランザクションがサブスクライバに伝播されます。したがって、サブスクライバの進捗状況はスタンバイ・マスターの進捗状況から少し遅れます。

アクティブ・マスターはスタンバイ・マスターとサブスクライバの進捗状況の両方を監視するので、スタンバイ・マスターがなんらかの理由で停止した場合は、サブスクライバへのレプリケーションをアクティブ・マスターが引き受けます。アクティブ・マスターは、トランザクションがサブスクライバに適用されると確認を受け取るので、アクティブ・マスターはスタンバイ・マスターに障害が発生した場合に必要となる可能性がある関連のログ・レコードをいつリリースできるかがわかります(スタンバイ・マスターに障害が発生すると、アクティブ・マスターが直接サブスクライバにレプリケートするように切り替えられます)。トランザクションはスタンバイ・マスターとサブスクライバの両方で処理されるまで、トランザクション・ログに残ります。

Command> call ttLogHolds;
< 0, 3569664, Checkpoint                    , master1.ds0 >
< 0, 15742976, Checkpoint                    , master1.ds1 >
< 0, 16351496, Replication                   , ADC6160529:SUBSCRIBER1 >
< 0, 16351640, Replication                   , ADC6160529:MASTER2 >
4 rows found.

AWTキャッシュ・グループを使用している場合は、レプリケーション・エージェントを使用してトランザクションをOracle Databaseに非同期で伝播します。ttLogHolds組込みプロシージャをコールすると、説明フィールドに「_ORACLE」と表示され、AWTキャッシュ・グループの伝播のためにトランザクション・ログが保留されていることが示されます。

Command> call ttLogHolds();
< 0, 18958336, Checkpoint                    , cachealone1.ds0 >
< 0, 19048448, Checkpoint                    , cachealone1.ds1 >
< 0, 19050904, Replication                   , ADC6160529:_ORACLE >
3 rows found.

ttLogHolds組込みプロシージャの詳細は、『Oracle TimesTen In-Memory Databaseリファレンス』の「ttLogHolds」を参照してください。

ttRepAdminユーティリティを使ったレプリケーションの監視

ブックマークの位置を表示するには、-bookmarkオプションを指定してttRepAdminユーティリティを使用します。

> ttRepAdmin -dsn masterds -bookmark
Replication hold LSN ...... 10/927692
Last written LSN .......... 10/928908
Last LSN forced to disk ... 10/280540
Each LSN is defined by two values:
Log file number / Offset in log file

ttRepAdmin -bookmarkのLSN出力は次のようになります。

説明
Replication hold LSN サブスクライバに送信できるようにログ内に保持されている最下位(最も古い)レコードの場所。値が-1/-1の場合は、レプリケーションがすべてのサブスクライバに対してstop状態であること(または問い合されたデータベースがマスター・データベースではないこと)を示します。

1つ以上のサブスクライバを持つアクティブ・スタンバイ・ペアを監視している場合は、この値がレプリケーション・スキームに含まれるすべてのノードに対して保管されている、最も古いレコードを示します。たとえば、サブスクライバを持つアクティブ・スタンバイ・ペアでは、最も古いレコードがスタンバイ・マスターまたはいずれかのサブスクライバ用のログに保管される可能性があります。

Last written LSN データベースに対して最後に生成されたトランザクション・ログ・レコードの場所。
Last LSN forced to disk ディスクに最後に書き込まれたトランザクション・ログ・レコードの場所。

ttBookMark組込みプロシージャを使ったレプリケーションの監視

ブックマークの位置を表示するには、ttBookmark組込みプロシージャを使用します。

例12-11 ttBookmarkを使用したブックマーク位置の表示

> ttIsql masterds

Command> call ttBookMark();
< 10, 928908, 10, 280540, 10, 927692 >
1 row found.

返された行内の最初の2列で、Last written LSNが、次の2列でLast LSN forced to diskが、最後の2列でReplication hold LSNが定義されます。

1つ以上のサブスクライバを持つアクティブ・スタンバイ・ペアを監視している場合は、「Replication hold LSN」がレプリケーション・スキームに含まれるすべてのノードに対して保管されている、最も古いレコードを示します。たとえば、サブスクライバを持つアクティブ・スタンバイ・ペアでは、最も古いレコードがスタンバイ・マスターまたはいずれかのサブスクライバ用のログに保管される可能性があります。

ttRepAdminを使用したレプリケーション・ステータスの表示

-showstatusオプションを指定してttRepAdminユーティリティを使用すると、レプリケーション・エージェントの現在のステータスを表示できます。ステータス出力には、問い合されたデータベースのレプリケーション・エージェントで使用されるブックマークの位置、ポート番号および通信プロトコルが含まれます。

ttRepAdmin -showstatusの出力には、レプリケーション・エージェントで使用されるメイン・スレッド、TRANSMITTERスレッドおよびRECEIVERスレッドのステータスが含まれます。マスター・データベースにはTRANSMITTERスレッド、サブスクライバ・データベースにはRECEIVERスレッドがあります。双方向レプリケーション・スキームでマスター/サブスクライバとしての機能するデータベースには、TRANSMITTERスレッドおよびRECEIVERスレッドの両方があります。

各レプリケーション・エージェントには、ポートでピア接続をリスニングする単一のREPLISTENERスレッドがあります。マスター・データベースでは、REPLISTENERスレッドがサブスクライバ・データベースごとに個別のTRANSMITTERスレッドを開始します。サブスクライバ・データベースでは、REPLISTENERスレッドがマスターからの接続のたびに個別のRECEIVERスレッドを開始します。

TimesTenデーモンがレプリケーション・エージェントの停止を要求した場合、またはレプリケーション・エージェントで使用されている他のいずれかのスレッドで致命的なエラーが発生した場合、メイン・スレッドは他のすべてのスレッドが正常に終了するまで待機します。TimesTenデーモンは、致命的なエラーの種類に応じて、レプリケーション・エージェントを再起動する場合もしない場合もあります。REPLISTENERスレッドは、レプリケーション・エージェントの存続期間中には終了しません。TRANSMITTERまたはRECEIVERスレッドは停止する場合がありますが、レプリケーション・エージェントによって再起動されます。RECEIVERスレッドは、リカバリ不可能なエラーが発生した場合、またはマスターが接続を切断した場合に終了します。

例12-11に、rep1データベースがマスターで、rep2データベースがサブスクライバである単方向レプリケーション・スキームのttRepAdmin -showstatus出力を示します。最初のttRepAdmin -showstatus出力は、rep1データベースおよびそのTRANSMITTERスレッドのステータスを示します。2つ目の出力はrep2データベースおよびそのRECEIVERスレッドのステータスを示します。

例の後の項では、ttRepAdmin -showstatus出力の各フィールドの意味について説明します。

例12-12 単方向レプリケーション・スキーム

rep1データベースからrep2データベースへの単方向レプリケーション・スキームについて考えてみます。

CREATE REPLICATION r
ELEMENT e1 TABLE t
  MASTER rep1
  SUBSCRIBER rep2;

rep1データベースのレプリケーション・ステータスは、次のようになります。

> ttRepAdmin -showstatus rep1

DSN                      : rep1
Process ID               : 1980
Replication Agent Policy : MANUAL
Host                     : MYHOST
RepListener Port         : 1113 (AUTO)
Last write LSN           : 0.1487928
Last LSN forced to disk  : 0.1487928
Replication hold LSN     : 0.1486640

Replication Peers:
  Name                   : rep2
  Host                   : MYHOST
  Port                   : 1154 (AUTO)
  Replication State      : STARTED
  Communication Protocol : 12

TRANSMITTER thread(s):
  For                     : rep2
    Start/Restart count   : 2
    Send LSN              : 0.1485960
    Transactions sent     : 3
    Total packets sent    : 10
    Tick packets sent     : 3
    MIN sent packet size  : 48
    MAX sent packet size  : 460
    AVG sent packet size  : 167
    Last packet sent at   : 17:41:05
    Total Packets received: 9
    MIN rcvd packet size  : 48
    MAX rcvd packet size  : 68
    AVG rcvd packet size  : 59
    Last packet rcvd'd at : 17:41:05
    Earlier errors (max 5):
    TT16060 in transmitter.c (line 3590) at 17:40:41 on 08-25-2004
    TT16122 in transmitter.c (line 2424) at 17:40:41 on 08-25-2004

Replication hold LSNLast write LSNおよびLast LSN forced to diskが非常に近いため、レプリケーションは適切に実行されていることがわかります。Replication hold LSNLast write LSNおよびLast LSNより遅れる場合、レプリケーションはマスターの更新に追い付いていません。

rep2データベースのレプリケーション・ステータスは、次のようになります。

> ttRepAdmin -showstatus rep2

DSN                      : rep2
Process ID               : 2192
Replication Agent Policy : MANUAL
Host                     : MYHOST
RepListener Port         : 1154 (AUTO)
Last write LSN           : 0.416464
Last LSN forced to disk  : 0.416464
Replication hold LSN     : -1.-1

Replication Peers:
  Name              : rep1
  Host              : MYHOST
  Port              : 0 (AUTO)
  Replication State : STARTED
  Communication Protocol : 12

RECEIVER thread(s):
  For                   : rep1
  Start/Restart count   : 1
  Transactions received : 0
  Total packets sent    : 20
  Tick packets sent     : 0
  MIN sent packet size  : 48
  MAX sent packet size  : 68
  AVG sent packet size  : 66
  Last packet sent at   : 17:49:51
  Total Packets received: 20
  MIN rcvd packet size  : 48
  MAX rcvd packet size  : 125
  AVG rcvd packet size  : 52
  Last packet rcvd'd at : 17:49:51

MAINスレッド・ステータス・フィールド

次のフィールドは、問い合されたデータベースのレプリケーション・エージェント内のMAINスレッドの出力です。

MAINスレッド 説明
DSN 問合せ対象のデータベースの名前。
Process ID レプリケーション・エージェントのプロセスID。
Replication Agent Policy 再起動ポリシー(「レプリケーション・エージェントの起動および停止」を参照)。
Host このデータベースをホスティングするマシンの名前。
RepListener Port レプリケーション・エージェントがリモート・レプリケーション・エージェントのTRANSMITTERスレッドからの接続をリスニングするために使用するTCP/IPポート。値が0(ゼロ)の場合は、このポートがレプリケーション・スキームの一部として指定されているのでなく、レプリケーション・エージェントに自動的に割り当てられている(デフォルト)ことを示します。
Last write LSN データベースに対して最後に生成されたトランザクション・ログ・レコードの場所。詳細は、「レプリケート・ログ・レコードの表示」を参照してください。
Last LSN forced to disk ディスクに最後に書き込まれたトランザクション・ログ・レコードの場所。詳細は、「レプリケート・ログ・レコードの表示」を参照してください。
Replication hold LSN サブスクライバに送信できるようにログ内に保持されている最下位(最も古い)レコードの場所。値が-1/-1の場合は、レプリケーションがすべてのサブスクライバに対してstop状態であることを示します。詳細は、「レプリケート・ログ・レコードの表示」を参照してください。

レプリケーション・ピア・ステータス・フィールド

次のフィールドは、問い合されたデータベースのレプリケーション・スキームに関連している各レプリケーション・ピアの出力です。ピアは、マスター、サブスクライバ、プロパゲータ、または双方向レプリケーション・スキームではマスターとサブスクライバの両方の役割を果たすことができます。

レプリケーション・ピア 説明
Name このデータベースのレプリケーション・ピアであるデータベースの名前。
Host ピア・データベースのホスト。
Port ピア・データベースのレプリケーション・エージェントが使用するTCP/IPポート。値が0(ゼロ)の場合は、このポートがレプリケーション・スキームの一部として指定されているのでなく、レプリケーション・エージェントに自動的に割り当てられている(デフォルト)ことを示します。
Replication State 問い合されたデータベースに対するレプリケーション・ピアの現在のレプリケーション状態(詳細は、「サブスクライバ・データベース情報の表示」を参照)。
Communication Protocol レプリケーションがピア間で通信を行うために使用する内部プロトコル。(内部使用専用。)

TRANSMITTERスレッド・ステータス・フィールド

次のフィールドは、マスター・レプリケーション・エージェントがトランザクション更新をサブスクライバに送信するために使用する各TRANSMITTERスレッドの出力です。対応する複数のサブスクライバがあるマスターは、複数のTRANSMITTERスレッドを持つことになります。


注意:

TRANSMITTER出力のカウントは、レプリケーション・エージェントを起動すると、累積し始めます。これらのカウントは、レプリケーション・エージェントを起動または再起動した場合にのみ0(ゼロ)にリセットされます。

TRANSMITTERスレッド 説明
For レプリケート・データをこのデータベースから受信するサブスクライバ・データベースの名前。
Start/Restart count 処理のタイムアウトやネットワーク障害などの一時エラーが発生したため、レプリケーション・エージェントによってこのTRANSMITTERスレッドが起動または再起動された回数。
Send LSN このピアに最後に送信されたLSN。詳細は、「レプリケート・ログ・レコードの表示」を参照してください。
Transactions sent サブスクライバに送信されたトランザクションの合計数。
Total packets sent サブスクライバに送信されたパケットの合計数(ティック・パケットを含む)。
Tick packets sent 送信されたティック・パケットの合計数。ティック・パケットは、マスターとサブスクライバの間のハートビートを維持するために使用されます。この値を使用すると、レプリケート・データと関連していない「Total packets sent」パケットの数を確認できます。
MIN sent packet size サブスクライバに送信された最小パケットのサイズ。
MAX sent packet size サブスクライバに送信された最大パケットのサイズ。
AVG sent packet size サブスクライバに送信されたパケットの平均サイズ。
Last packet sent at パケットが最後に送信された時刻(24時間制の時刻)。
Total packets received サブスクライバから受信したパケットの合計数(ティック・パケットおよび確認応答データ)。
MIN rcvd packet size 受信した最小パケットのサイズ。
MAX rcvd packet size 受信した最大パケットのサイズ。
AVG rcvd packet size 受信したパケットの平均サイズ。
Last packet rcvd at パケットを最後に受信した時刻(24時間制の時刻)。
Earlier errors (max 5) このスレッドによって最後に生成された5つのエラー。

RECEIVERスレッド・ステータス・フィールド

次のフィールドは、サブスクライバ・レプリケーション・エージェントがマスターからトランザクション更新を受信するために使用する各RECEIVERスレッドの出力です。複数のマスターによって更新されるサブスクライバは、複数のRECEIVERスレッドを持つことになります。


注意:

RECEIVER出力のカウントは、レプリケーション・エージェントを起動すると、累積し始めます。これらのカウントは、レプリケーション・エージェントを起動または再起動した場合にのみ0(ゼロ)にリセットされます。

RECEIVERスレッド 説明
For レプリケート・データをこのデータベースから送信するマスター・データベースの名前。
Start/Restart count 処理のタイムアウトやネットワーク障害などの一時エラーが発生したため、レプリケーション・エージェントによってこのRECEIVERスレッドが起動または再起動された回数。
Transactions received マスターから受信したトランザクションの合計数。
Total packets sent マスターに送信されたパケットの合計数(ティック・パケットおよび確認応答データ)。
Tick packets sent マスターに送信されたティック・パケットの合計数。ティック・パケットは、マスターとサブスクライバの間のハートビートを維持するために使用されます。この値を使用すると、確認応答データと関連していない「Total packets sent」パケットの数を確認できます。
MIN sent packet size マスターに送信された最小パケットのサイズ。
MAX sent packet size マスターに送信された最大パケットのサイズ。
AVG sent packet size マスターに送信されたパケットの平均サイズ。
Last packet sent at パケットがマスターに最後に送信された時刻(24時間制の時刻)。
Total packets received マスターから受信した確認応答データのパケットの合計数。
MIN rcvd packet size 受信した最小パケットのサイズ。
MAX rcvd packet size 受信した最大パケットのサイズ。
AVG rcvd packet size 受信したパケットの平均サイズ。
Last packet rcvd at パケットを最後に受信した時刻(24時間制の時刻)。

RETURNサービス・トランザクションのステータスの確認

次の項では、RETURNサービスのステータスを確認する方法および最後に返されたステータスを確認する方法を説明します。

RETURNサービスが無効にされているかどうかの確認

特定のサブスクライバに対するRETURNサービスがDISABLE RETURN障害ポリシーによって無効にされているかどうかを確認するには、ttRepSyncSubscriberStatus組込みプロシージャをコールするか、またはSNMPトラップであるttRepReturnTransitionTrapを使用します。ttRepSyncSubscriberStatus組込みプロシージャで返される値が1の場合は、RETURNサービスがサブスクライバに対して無効になっていることを示し、0(ゼロ)の場合は、RETURNサービスが有効であることを示します。

例12-13 ttRepSyncSubscriberStatusを使用したRETURN RECEIPTのステータスの取得

ttRepSyncSubscriberStatusを使用して、マスター・データベースmasterDSNに対するデータベースsubscriberdsのRETURN RECEIPTのステータスを取得するには、次のように入力します。

> ttIsql masterDSN

Command> CALL ttRepSyncSubscriberStatus ('subscriberds');
< 0 >
1 row found.

この結果は、RETURNサービスが有効であることを示しています。

RETURNサービスを有効化または無効化する方法の詳細は、「RETURNサービス・タイムアウト・エラーおよびレプリケーションの状態変化の管理」を参照してください。

RETURNサービスの最後に返されたステータスの確認

接続ハンドルで最後に実行されたRETURN RECEIPTトランザクションまたはRETURN TWOSAFEトランザクションのステータスは、ttRepXactTokenGetおよびttRepXactStatusプロシージャをコールして確認できます。

まず、ttRepXactTokenGet組込みプロシージャをコールして、最後のRETURNサービス・トランザクションの固有トークンを取得します。RETURN RECEIPTを使用している場合は、マスター・データベースで最後にコミットされたRETURN RECEIPTトランザクションがトークンによって識別されます。RETURN TWOSAFEを使用している場合は、サブスクライバでのコミットが成功した場合に、マスターのレプリケーション・エージェントによってコミットされる、マスター上の最後のRETURN TWOSAFEトランザクションがトークンによって識別されます。ただし、タイムアウトなどのエラーが発生した場合、トークンによって識別されたTWOSAFEトランザクションはマスターのレプリケーション・エージェントによってはコミットされません。

次に、ttRepXactTokenGetによって返されたトークンをttRepXactStatus組込みプロシージャに渡して、RETURNサービスのステータスを取得します。ttRepXactStatus組込みプロシージャの出力は、レプリケート・データを受信するように構成されているサブスクライバ、および各サブスクライバに対してトランザクションの現在のステータス(未送信、受信済、コミット済)をレポートします。サブスクライバ・レプリケーション・エージェントがサブスクライバ・データベースへのトランザクションの適用時に問題を検出した場合、ttRepXactStatus組込みプロシージャにはエラー文字列も含まれます。RETURN TWOSAFEの使用時にタイムアウトなどのエラーを受信した場合は、無条件にコミットするか、コミットを再試行するかを決定できます。これは、「RETURNサービスの使用」で説明されます。


注意:

ttRepXactTokenGetで取得したトークンを使用せずにttRepXactStatusをコールすると、接続上でRETURN RECEIPTまたはRETURN TWOSAFEレプリケーション・サービスによって最後にコミットされたトランザクションの状態が返されます。

ttRepXactStatus組込みプロシージャは、各サブスクライバのRETURNサービスのステータスを、次のように書式設定された行セットとして返します。

subscriberName, status, error

例12-14 各サブスクライバのステータスのレポート

GetRSXactStatus関数でttRepXactTokenGetおよびttRepXactStatus組込みプロシージャをコールすると、レプリケート・システムの各サブスクライバのステータスをレポートできます。

SQLRETURN GetRSXactStatus (HDBC hdbc)
{
  SQLRETURN rc = SQL_SUCCESS;
  HSTMT hstmt = SQL_NULL_HSTMT;
  char xactId [4001] = "";
  char subscriber [62] = "";
  char state [3] = "";

  /* get the last RS xact id executed on this connection */
  SQLAllocStmt (hdbc, &hstmt);
  SQLExecDirect (hstmt, "CALL ttRepXactTokenGet ('R2')", SQL_NTS);

  /* bind the xact id result as a null terminated hex string */
  SQLBindCol (hstmt, 1, SQL_C_CHAR, (SQLPOINTER) xactId,
    sizeof (xactId), NULL);

  /* fetch the first and only row */
  rc = SQLFetch (hstmt);

  /* close the cursor */
  SQLFreeStmt (hstmt, SQL_CLOSE);

  if (rc != SQL_ERROR && rc != SQL_NO_DATA_FOUND)
  {
    /* display the xact id */
    printf ("\nRS Xact ID: 0x%s\n\n", xactId);

    /* get the status of this xact id for every subscriber */
    SQLBindParameter (hstmt, 1, SQL_PARAM_INPUT, SQL_C_CHAR,
      SQL_VARBINARY, 0, 0,
     (SQLPOINTER) xactId, strlen (xactId), NULL);

    /* execute */
    SQLExecDirect (hstmt, "CALL ttRepXactStatus (?)", SQL_NTS);

   /* bind the result columns */
   SQLBindCol (hstmt, 1, SQL_C_CHAR, (SQLPOINTER) subscriber,
     sizeof (subscriber), NULL);

   SQLBindCol (hstmt, 2, SQL_C_CHAR, (SQLPOINTER) state,
     sizeof (state), NULL);

   /* fetch the first row */
   rc = SQLFetch (hstmt);

   while (rc != SQL_ERROR && rc != SQL_NO_DATA_FOUND)
   {
     /* report the status of this subscriber */
     printf ("\n\nSubscriber: %s", subscriber);
     printf ("\nState: %s", state);

     /* are there more rows to fetch? */
     rc = SQLFetch (hstmt);
     }
  }

  /* close the statement */
  SQLFreeStmt (hstmt, SQL_DROP);

  return rc;
}

レプリケーション・ログの未処理トランザクションの分析

ttXactLogユーティリティで-logAnalyzeコマンドを使用すると、レプリケーション・ログを分析し、次のことを確認できます。

  • 現時点でどれだけマスターからサブスクライバにレプリケートされずに残っているか。レプリケーションにかかっている時間が想定以上に長い場合は、レプリケートするトランザクションがどれだけ残っているか、またはレプリケーションが長時間実行トランザクションを実行しているかどうかを確認できます。

  • 現在の構成で、パラレル・レプリケーション用に手動トラックおよび自動トラック全体に適切に負荷を分散させられるか。

特定のデータ・ストアにログ分析コマンドを実行し、次の情報を生成します。

  • レプリケートされるのを待機しているトランザクションの数。レプリケートされていないトランザクションごとに、収集された情報には、各トランザクションの操作の数、各トランザクションの合計サイズ(部分ロールバックを含む)が含まれます。

  • 特定のタイプ(DDLまたはDML)を含む各トランザクションに残されている操作の量、および各トランザクションの各文タイプの数。ツールでも、レプリケートされずに残っているすべての操作の合計サイズが生成されます。

  • ワークロードがどのようにトラック全体に分散されるかに関する情報を取得します。手動パラレル・レプリケーションを使用する場合は、-logAnalyzeを使用して、アプリケーションがレプリケーション・トラック全体に均等に作業を分散しているかどうかを監視できます。

  • レプリケートされずに残っている最も大きいトランザクションを返します。

  • 開始および終了のLSNを返します。開始LSNは、トランザクション・ログでトランスミッタが読取りを開始する箇所であり、終了LSNは、トランザクション・ログの末尾です。


注意:

トランザクション・ログの分析出力では、トランザクションはコミット順に表示されます。

冗長コマンドで表示される情報の量を指定できます。たとえば、冗長を1に設定すると、次のように表示されます。

$ ttXactLog -v1 -logAnalyze rep1
Summary:
Total transactions left to replicate: 4
Total rows left to replicate: 4
Size of transactions left to replicate: 1.86 KiB
Size of rows left to replicate: 488.00 B
Total inserts remaining: 4
Total partial rollbacks: 5
Total rollbacks: 3

Start LSN = 0.3793736
End LSN = 0.18769920 

サブスクライバを指定すると、そのサブスクライバのサマリーのみが表示されます。ただし、デフォルトではすべてのサブスクライバのサマリーが表示されます。

冗長を2に設定すると、全体のサマリー情報に加え、各パラレル・トラックのサマリーが表示されます。

$ ttXactLog -v2 -logAnalyze rep1

Track analysis for track number: 0
Transactions left to replicate: 2
Rows left to replicate: 2
Size of transactions left to replicate: 880.00 B
Size of rows left to replicate: 312.00 B
Total inserts remaining: 1
Total partial rollbacks: 4

Track analysis for track number: 1
Transactions left to replicate: 2
Rows left to replicate: 2
Size of transactions left to replicate: 1.14 KiB
Size of rows left to replicate: 244.00 B
Total inserts remaining: 2
Total partial rollbacks: 1
Total rollbacks: 3

Summary:
Total transactions left to replicate: 4
Total rows left to replicate: 4
Size of transactions left to replicate: 2.00 KiB
Size of rows left to replicate: 556.00 B
Total inserts remaining: 3
Total partial rollbacks: 5
Total rollbacks: 3

Start LSN = 0.3793736
End LSN = 0.20506624

冗長レベル3を指定すると、生成される情報には、すべてのトラックにおけるすべてのトランザクションの内容に関する説明を含むトランザクション分析が含まれるようになります。

$ ttXactLog -v3 -logAnalyze rep1

Transaction id:    3.10
Track for this xid: 1
Logmarker before this xid: 275
Rows left to replicate: 1
Transaction size: 800.00 B
Size of rows left: 122.00 B
Total inserts remaining: 1
 
Transaction id:    2.1
Track for this xid: 0
Logmarker before this xid: 276
Rows left to replicate: 1
Transaction size: 368.00 B
Size of rows left: 122.00 B
Total inserts remaining: 1
 
Transaction id:    2.19
Track for this xid: 1
Logmarker before this xid: 823
Rows left to replicate: 1
Transaction size: 368.00 B
Size of rows left: 122.00 B
Total inserts remaining: 1
 
Transaction id:    3.2
Track for this xid: 0
Logmarker before this xid: 842
Rows left to replicate: 1
Transaction size: 368.00 B
Size of rows left: 122.00 B
Total inserts remaining: 1
 
Track analysis for track number: 0
Transactions left to replicate: 2
Rows left to replicate: 2
Size of transactions left to replicate: 736.00 B
Size of rows left to replicate: 244.00 B
Total inserts remaining: 2
Total partial rollbacks: 4
 
Track analysis for track number: 1
Transactions left to replicate: 2
Rows left to replicate: 2
Size of transactions left to replicate: 1.14 KiB
Size of rows left to replicate: 244.00 B
Total inserts remaining: 2
Total partial rollbacks: 1
Total rollbacks: 3
 
Summary:
Total transactions left to replicate: 4
Total rows left to replicate: 4
Size of transactions left to replicate: 1.86 KiB
Size of rows left to replicate: 488.00 B
Total inserts remaining: 4
Total partial rollbacks: 5
Total rollbacks: 3
 
Start LSN = 0.3793736
End LSN = 0.21444608

XIDを指定すると、トランザクション分析がXIDに基づく冗長レベル3の出力が表示されます。2つの別々のトランザクションで1つのXIDが使用されると、レポートには、LogMarkerエントリとともに、各トランザクションの開始直前のトランザクション・ログ内で最も近い箇所が表示されます。

$ ttXactLog -logAnalyze -xid 2.19 rep1;

Transaction id:    2.19
Track for this xid: 1
Logmarker before this xid: 823
Rows left to replicate: 1
Transaction size: 368.00 B
Size of rows left: 122.00 B
Total inserts remaining: 1
 
Track analysis for track number: 0
Transactions left to replicate: 0
Rows left to replicate: 0
Size of transactions left to replicate: 0.00 B
Size of rows left to replicate: 0.00 B
 
Track analysis for track number: 1
Transactions left to replicate: 1
Rows left to replicate: 1
Size of transactions left to replicate: 368.00 B
Size of rows left to replicate: 122.00 B
Total inserts remaining: 1
 
Summary:
Total transactions left to replicate: 1
Total rows left to replicate: 1
Size of transactions left to replicate: 368.00 B
Size of rows left to replicate: 122.00 B
Total inserts remaining: 1
 
Start LSN = 0.3793736
End LSN = 0.20514816 

注意:

詳細は、『Oracle TimesTen In-Memory Databaseリファレンス』のttXactLogに関する説明を参照してください。