検索
連載

Always On 可用性グループの変更データキャプチャーのエラー情報を出力するSQL Server動的管理ビューレファレンス(15)

「Microsoft SQL Server」が稼働するデータベースシステムを運用する管理者に向け、「動的管理ビュー」の活用を軸にしたトラブル対策のためのノウハウを紹介していきます。今回は、変更データキャプチャーのエラー情報の出力について解説します。

Share
Tweet
LINE
Hatena

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)。

図1
図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.

ページトップに戻る