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

レプリケーションはTimesTenトランザクション・ログを使用して、サブスクライバ・サイトに送信する必要がある情報を保持します。サブスクライバ・データベースとの通信が中断された場合、またはサブスクライバ・サイトが停止した場合、トランザクション・ログ・データが累積します。

この項で説明する問合せの出力の一部から、各サブスクライバ・データベースのために累積されたトランザクション・ログ・データの量、各サブスクライバ・データベースとの通信に最後に成功してから経過した時間を確認できます。

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

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

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

ttRepAdmin -dsn masterDSN -receiver -list

この例では、ttRepAdminユーティリティを使用して、「複数サブスクライバのクラシック・レプリケーション・スキーム」で説明されているサブスクライバに関する情報を表示します。

> 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つ以上のサブスクライバ・データベースのステータスを表示できます(レポートされるのは、この組込みプロシージャがコールされたマスター・データベースのサブスクライバのステータスのみです)。

次の例は、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です。

サブスクライバまたはサブスクライバのホスト名のいずれも提供しない場合、このマスターのすべてのサブスクライバに関するステータスが返されます。次の例では、このマスターに対してサブスクライバが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の場合は、マスターのレプリケーション・エージェントがそのサブスクライバ・レプリケーション・エージェントとの通信を確立していないか、またはデータをサブスクライバ・レプリケーション・エージェントに送信していないことを示します。