「Microsoft SQL Server」が稼働するデータベースシステムを運用する管理者に向け、「動的管理ビュー」の活用を軸にしたトラブル対策のためのノウハウを紹介していきます。今回は、PolyBaseで発生したエラーに関する情報の出力について解説します。
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
本連載では、「Microsoft SQL Server(以下、SQL Server)」で使用可能な動的管理ビューについて、動作概要や出力内容などを紹介していきます。今回は動的管理ビュー「sys.dm_exec_compute_node_errors」における、PolyBaseで発生したエラーに関する情報の出力について解説します。対応バージョンは、SQL Server 2016以降です。
SQL Server 2016から、PolyBaseと呼ばれる外部ソースからデータを読み取る機能が実装されました。外部データには構造化されていないデータなども指定できるため、SQL Serverのデータと結合するには、データの取得前もしくは取得後に形式を合わせる必要がありました。PolyBaseでは外部データをTransact SQLで処理できるようになるため、SQL Serverとのデータ結合が容易になりました。「sys.dm_exec_compute_node_errors」を実行すると、PolyBaseで発生したエラーに関する情報を出力します。
列名 | データ型 | 説明 |
---|---|---|
error_id | nvarchar(36) | エラーに関連付けられているID |
source | nvarchar(255) | ソーススレッドまたはプロセスの説明 |
type | nvarchar(255) | エラーの種類 |
create_time | datetime | エラーの発生時間 |
compute_node_id | int | 計算ノードのID |
rexecution_id | nvarchar(36) | PolyBaseクエリのID |
spid | int | SQL ServerセッションのID |
thread_id | int | エラーが発生したスレッドのID |
details | nvarchar(4000) | エラーの詳細な説明 |
PolyBaseのスケールアウトグループを構成した環境で「sys.dm_exec_compute_node_errors」を実行すると、PolyBaseに関するエラーの情報が出力されました(図1)。なお、抜粋対象を調整するために「error_id」で並べ替えていますが、通常の確認であればこの並べ替えは必要ありません。
「source」列には「Dms」(Data Movement Service)や「DWEngine」(Data Warehouse Engine)など、サービスの種類が出力されており、「compute_node_id」列では1〜3など複数の値が出力されているため、構成した全てのノードのエラーメッセージが一覧表示できていることが確認できます。
「compute_node_id」列は、この後紹介する「sys.dm_exec_compute_notes」の動的管理ビューと結合することで、マシン名などを特定できます。「details」列には「System.IO.IOException: Unable to read data from the transport connection: An existing connection was forcibly closed by the remote host. ---> System.Net.Sockets.SocketException: An existing connection was forcibly closed by the remote host」などのエラーメッセージの詳細が記録されています。
なお、日本語環境で実行すると、ロケールIDが「1033」と「1041」で一致しないとのメッセージとともに、「sys.dm_exec_compute_node_errors」がエラー終了する場合があるため注意が必要です。
※本Tipsは、「Windows Server 2019」上に「SQL Server 2019 RC1」をインストールした環境を想定して解説しています。
日本ユニシス株式会社所属。Microsoft MVP for Data Platform(2017〜)。入社以来 SQL Serverの評価/設計/構築/教育などに携わりながらも、主にサポート業務に従事。SQL Serverのトラブル対応で社長賞の表彰を受けた経験も持つ。休日は学生時代の仲間と市民駅伝に参加し、銭湯で汗を流してから飲み会へと流れる。
日本ユニシス株式会社所属。入社以来SQL Server一筋で評価/設計/構築/教育などに携わりながらも、主にサポート業務に従事。社内のプログラミングコンテストで4回の優勝経験も持つ。趣味は輪行で週末は自転車を持っての旅行。目標は色々な日本百選を制覇すること。
Copyright © ITmedia, Inc. All Rights Reserved.