連載
レプリケートされたトランザクションや変更データキャプチャートランザクションの情報を出力する:SQL Server動的管理ビューレファレンス(148)
「Microsoft SQL Server」が稼働するデータベースシステムを運用する管理者に向け、「動的管理ビュー」の活用を軸にしたトラブル対策のためのノウハウを紹介していきます。今回は、レプリケートされたトランザクションや変更データキャプチャートランザクションの情報の出力について解説します。
本連載では、「Microsoft SQL Server(以下、SQL Server)」で使用可能な動的管理ビューについて、動作概要や出力内容などを紹介していきます。今回は動的管理ビュー「sys.dm_repl_traninfo」における、レプリケートされたトランザクションや変更データキャプチャートランザクションの情報の出力について解説します。対応バージョンは、SQL Server(サポートされている全てのバージョン)です。
概要
SQL Serverでは、レプリケーション機能を使用することで、データベースから別のデータベースにデータやデータベースオブジェクトをコピーして配布し、データベースを同期させることが可能です。
変更データキャプチャー機能を使用することで、テーブルに対して適用された挿入、更新、削除の各アクティビティーを記録し、利用できます。
「sys.dm_repl_traninfo」動的管理ビューを使用することで、レプリケーション機能でレプリケートされたトランザクションと変更データキャプチャー機能でキャプチャーされたトランザクションについて、トランザクションに関する一覧情報を出力できます。
出力内容
列名 | データ型 | 説明 |
---|---|---|
fp2p_pub_exists | tinyint | トランザクションがピアツーピアトランザクションレプリケーションを使用してパブリッシュされたデータベース内にある場合は「1」 それ以外の場合は「0」 |
db_ver | int | データベースのバージョン |
comp_range_address | varbinary(8) | スキップする必要がある部分ロールバック範囲 |
textinfo_address | varbinary(8) | キャッシュされたテキスト情報の構造体のメモリ内アドレス |
fsinfo_address | varbinary(8) | キャッシュされたファイルストリーム情報構造のメモリ内アドレス |
begin_lsn | nvarchar(64) | トランザクションの開始ログレコードのログシーケンス番号(LSN) |
commit_lsn | nvarchar(64) | トランザクションのコミットログレコードのLSN |
dbid | smallint | データベースID |
rows | int | トランザクション内のレプリケートされたコマンドのID |
xdesid | nvarchar(64) | トランザクションID |
artcache_table_address | varbinary(8) | このトランザクションに最後に使用された、キャッシュされたアーティクルテーブル構造のメモリ内アドレス |
server | nvarchar(514) | サーバ名 |
server_len_in_bytes | smallint | サーバ名の文字長(バイト単位) |
database | nvarchar(514) | データベース名 |
db_len_in_bytes | smallint | データベース名の文字長(バイト単位) |
originator | nvarchar(514) | トランザクションが発生したサーバの名前 |
originator_len_in_bytes | smallint | トランザクションが発生したサーバの文字長(バイト単位) |
orig_db | nvarchar(514) | トランザクションが発生したデータベースの名前 |
orig_db_len_in_bytes | smallint | トランザクションが発生したデータベースの文字長(バイト単位) |
cmds_in_tran | int | 現在のトランザクションでレプリケートされたコマンドの数 |
is_boundedupdate_singleton | tinyint | 一意の列の更新が単一行に影響するかどうか |
begin_update_lsn | nvarchar(64) | 一意の列更新で使用されるLSN |
delete_lsn | nvarchar(64) | 更新の一部として削除するLSN |
last_end_lsn | nvarchar(64) | 論理トランザクションの最後のLSN |
fcomplete | tinyint | コマンドが部分的な更新かどうか |
fcompensated | tinyint | トランザクションが部分ロールバックに含まれるかどうか |
fprocessingtext | tinyint | トランザクションにバイナリラージデータ型列が含まれるかどうか |
max_cmds_in_tran | int | ログリーダーエージェントによって指定された、論理トランザクション内のコマンドの最大数 |
begin_time | datetime | トランザクションが開始された時刻 |
commit_time | datetime | トランザクションがコミットされた時刻 |
session_id | int | 変更データキャプチャーのログスキャンセッションのID 「sys.dm_cdc_logscan_sessions」の「session_id」列にマップされる |
session_phase | int | エラー発生時のセッションのフェーズを示す数値 「sys.dm_cdc_errors」の「phase_number」列にマップされる |
is_known_cdc_tran | bit | トランザクションが変更データキャプチャーによって追跡されることを示す 「0」=トランザクションレプリケーショントランザクション 「1」=変更データキャプチャートランザクション |
error_count | int | 発生したエラーの数 |
動作例
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- SQL Serverの動的管理ビューとは?
「Microsoft SQL Server」が稼働するデータベースシステムを運用する管理者に向け、「動的管理ビュー」の活用を軸にしたトラブル対策のためのノウハウを紹介していきます。 - 「DMV(Dynamic Management View)」でパフォーマンス遅延の「原因」を調べる
本連載は、「Microsoft SQL Server」で発生するトラブルを「どんな方法で」「どのように」解決していくか、正しい対処のためのノウハウを紹介します。今回は、「処理遅延の原因を追求する“DMVの使い方”」を説明します。 - SQL Serverの動きを制御する「トレースフラグ」とは何か
「Microsoft SQL Server」が稼働するデータベースシステムを運用する管理者に向け、「トレースフラグ」の活用を軸にしたトラブル対策のためのノウハウを紹介していきます。初回は「トレースフラグとはそもそも何か」を解説します。