トランザクションは、ログ・レコードの形式でログに保存されます。ブックマークを使用して、マスター・データ・ストアがレプリケートしたログ・レコードまたはレプリケートしていないログ・レコードを検出できます。
ブックマークは、ログ順序番号(LSN)で構成されています。この番号は、レプリケーションのパフォーマンスを測定するために使用可能なトランザクション・ログ内の特定のレコードの位置を識別できます。ブックマークに関連付けられているLSNは、hold LSN、last written LSN およびlast LSN forced to disk です。hold LSN は、サブスクライバに送信できるようにログ内に保持されている最下位(最も古い)レコードを示します。hold LSN とlast written LSN を比較することによって、サブスクライバに送信されていないトランザクション・ログ内のレコードの数を確認できます。last LSN forced to disk は、ディスク上のログ・ファイルに書き込まれた最後のレコードを示します。
特定のサブスクライバへのレプリケーションをより正確に監視する方法として、サブスクライバのsend LSNを監視するという方法があります。send LSNは、TTREP.REPPEERS表のSENDLSNHIGHおよびSENDLSNLOWフィールドで構成されています。send LSN値とは対照的に、ブックマーク内に返されるhold LSNは、すべてのサブスクライバの最小のsend LSNを示すために10秒ごとに計算されます。このため、hold LSNは、レプリケーションの進行状況の概要を示します。個々のサブスクライバへのレプリケーションの進行状況は明示されません。send LSNは、レプリケーションの確認応答の非同期特性(主にパフォーマンスの向上を目的とする)のため、少し遅れる可能性もあります。ただし、サブスクライバのsend LSNは、使用できる最も正確な値であり、常にhold LSNに先行しています。
レプリケーション・ログ・レコードは、次の方法で表示できます。
ブックマークの位置をコマンドラインから表示するには、-bookmark
オプションを指定してttRepAdminユーティリティを使用します。
> ttRepAdmin -dsn masterds -bookmark
Replication hold LSN ...... 10/927692
Last written LSN .......... 10/928908
Last LSN forced to disk ... 10/280540
各LSNは、次の2つの値で定義されています。
Log file number / Offset in log file
ttRepAdmin -bookmark
のLSN出力は次のようになります。
行
|
説明
|
---|---|
Replication hold LSN | サブスクライバに送信するためにログ内に保持されている最下位(最も古い)レコードの場所。値が-1/-1の場合は、レプリケーションがすべてのサブスクライバに対してStop状態であること(または問い合されたデータ・ストアがマスター・データ・ストアではないこと)を示します。 |
Last written LSN | データ・ストアに対して最後に生成されたトランザクション・ログ・レコードの場所。 |
Last LSN forced to disk | ディスクに最後に書き込まれたトランザクション・ログ・レコードの場所。 |
ブックマークの位置をプログラムから表示するには、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が定義されます。