Always On 可用性グループの変更データキャプチャーのエラー情報を出力する:SQL Server動的管理ビューレファレンス(15)
「Microsoft SQL Server」が稼働するデータベースシステムを運用する管理者に向け、「動的管理ビュー」の活用を軸にしたトラブル対策のためのノウハウを紹介していきます。今回は、変更データキャプチャーのエラー情報の出力について解説します。
本連載では、「Microsoft SQL Server(以下、SQL Server)」で使用可能な動的管理ビューについて、動作概要や出力内容などを紹介していきます。今回は、変更データキャプチャーのエラー情報を出力する「sys.dm_cdc_errors」について解説します。対応バージョンは、SQL Server 2008以降です。
概要
SQL Serverに対してデータの更新や削除が実施された場合、最新のデータを参照することはできますが、既定では以前のデータについて確認する方法はありません。
SQL Server 2008から実装された変更データキャプチャーは挿入、更新、削除の操作を記録し、変更内容について別途参照できる機能になります。変更データキャプチャーはトランザクションログをもとに変更操作を記録しますが、トランザクションログを読み取る際などにエラーが発生していた場合、「sys.dm_cdc_errors」を使用することでエラーの内容などを確認できます。
出力内容
列名 | データ型 | 説明 |
---|---|---|
session_id | int | セッションのID |
phase_number | int | エラー発生時のセッションのフェーズを示す数値 |
entry_time | datetime | エラーが記録された日時 |
error_number | int | エラーメッセージのID |
error_severity | int | メッセージの重大度レベル |
error_state | int | エラーの状態を表す数値 |
error_message | nvarchar(1024) | エラーメッセージのテキスト |
start_lsn | nvarchar(23) | エラー発生時に処理されていた行の開始LSN値 |
begin_lsn | nvarchar(23) | エラー発生時に処理されていたトランザクションの先頭LSN値 |
sequence_value | nvarchar(23) | エラー発生時に処理されていた行のLSN値 |
動作例
まずは「sys.sp_cdc_enable_db」や「sys.sp_cdc_enable_table」を使用して、変更データキャプチャーの設定を有効にします。有効にするだけでは「sys.dm_cdc_errors」に何も出力されませんが、変更データキャプチャーによるトランザクションログの読み取りなどでエラーが発生すると、「sys.dm_cdc_errors」に「18773」などのエラー番号やエラーメッセージなどの情報が出力されます(図1)。
※本Tipsは、「Windows Server 2019」上に「SQL Server 2019 CTP2」をインストールした環境を想定して解説しています。
筆者紹介
椎名 武史(しいな たけし)
日本ユニシス株式会社所属。Microsoft MVP for Data Platform(2017〜)。入社以来 SQL Serverの評価/設計/構築/教育などに携わりながらも、主にサポート業務に従事。SQL Serverのトラブル対応で社長賞の表彰を受けた経験も持つ。休日は学生時代の仲間と市民駅伝に参加し、銭湯で汗を流してから飲み会へと流れる。
伊東 敏章(いとう としあき)
日本ユニシス株式会社所属。入社以来SQL Server一筋で評価/設計/構築/教育などに携わりながらも、主にサポート業務に従事。社内のプログラミングコンテストで4回の優勝経験も持つ。趣味は輪行で週末は自転車を持っての旅行。目標は色々な日本百選を制覇すること。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- SQL Serverの動的管理ビューとは?
「Microsoft SQL Server」が稼働するデータベースシステムを運用する管理者に向け、「動的管理ビュー」の活用を軸にしたトラブル対策のためのノウハウを紹介していきます。 - 「DMV(Dynamic Management View)」でパフォーマンス遅延の「原因」を調べる
本連載は、「Microsoft SQL Server」で発生するトラブルを「どんな方法で」「どのように」解決していくか、正しい対処のためのノウハウを紹介します。今回は、「処理遅延の原因を追求する“DMVの使い方”」を説明します。 - SQL Serverの動きを制御する「トレースフラグ」とは何か
「Microsoft SQL Server」が稼働するデータベースシステムを運用する管理者に向け、「トレースフラグ」の活用を軸にしたトラブル対策のためのノウハウを紹介していきます。初回は「トレースフラグとはそもそも何か」を解説します。