「Microsoft SQL Server」が稼働するデータベースシステムを運用する管理者に向け、「動的管理ビュー」の活用を軸にしたトラブル対策のためのノウハウを紹介していきます。今回は、トランザクションログに関する使用情報の出力について解説します。
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
本連載では、「Microsoft SQL Server(以下、SQL Server)」で使用可能な動的管理ビューについて、動作概要や出力内容などを紹介していきます。今回は「sys.dm_db_log_space_usage」におけるトランザクションログの使用情報の出力について解説します。対応バージョンは、SQL Server 2012以降です。
処理を実行するとトランザクションログファイルに記録が蓄積されていきますが、トランザクションログファイルがいっぱいになるとファイルの自動拡張が発生して処理が遅延したり、拡張できずにエラーが発生したりする場合があります。
「sys.dm_db_log_space_usage」を実行すると、トランザクションログファイルのサイズやその中で実際に使用中であるサイズ、その割合などを確認できます。
列名 | データ型 | 説明 |
---|---|---|
database_id | smallint | データベースID |
total_log_size_in_bytes | bigint | ログのサイズ |
used_log_space_in_bytes | bigint | 使用中のログのサイズ |
used_log_space_in_percent | real | ログの合計サイズの割合で示した使用中のログのサイズ |
log_space_in_bytes_since_last_backup | bigint | 前回のログバックアップ以降に使用中のログのサイズ |
トランザクションログの自動拡張を無効にしている環境で処理を実行していると、「トランザクションログがいっぱいになっています」というメッセージとともにエラー9002が発生しました(図1)。
「sys.dm_db_log_space_usage」を実行すると、使用中のログ割合である「used_log_space_in_percent」列が99%以上の値を示しており、ほとんど空きがない状況が確認できました(図2)。
トランザクションログが再利用できない原因を解消し、再び「sys.dm_log_space_usages」を実行すると、「used_log_space_in_percent」列が約22%まで低下していたため、再度処理が実行できるようになりました(図3)。
※本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.