2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

SQL Server: トランザクションレプリケーションの情報を収集する

Posted at

SQL Serverのトランザクションレプリケーションに関連した情報の収集方法をまとめてみました。

1. perfmonのメトリクス

参考:システム モニターによるレプリケーションの監視

ログリーダーエージェントとディストリビューションエージェントに関して、遅延や配信コマンド数を確認できます。
image.png

image.png
また、「SQL Server:Databases\Repl. Pending Xacts」を確認することで、保留中のレプリケーショントランザクション数を確認できます。

これらの値をダッシュボード化しておけると、遅延の際にログリーダーエージェント起因なのか、ディストリビューションエージェント起因なのかの切り分けを行いやすいかと思います。

2. レプリ関連のシステムテーブル

ドキュメントにあるように、様々なレプリケーション関連のシステムテーブルが提供されています。
これらを組み合わせて、様々な情報を取得できます。

専用のテーブルを作成して定期的に情報をダンプしておくことで、例えば「〇月〇日〇時~〇時の間に、更新数が多かったレプリ対象テーブルは何か」といったことを後追いできるようになります。

githubでクエリを公開しています。

保存する情報は全部で5種類を整理しました。
image.png

特に、「アーティクルごとのレプリ対象コマンド数」は後追いにとても便利です。
perfmonのメトリクスで遅延に気づき、遅延の原因として「アーティクルごとのレプリ対象コマンド数」をみることで、例えば特定のテーブルのレコード更新が大量に実施されたことで遅延時間が伸びた、といった後追いが可能になります。

トランザクションレプリケーションをお使いの環境は現在ではあまり存在していないかもしれませんが、お使いの方がいればぜひ活用してみてください。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?