イベントログに SQL Server 関連のパフォーマンス ライブラリで 警告 2003 が発生した場合の対処方法について

高原 伸城 Support Escalation Engineer   皆さん、こんにちは。 BI Data Platform サポートチームの 高原 です。 今回は、イベントログに SQL Server 関連のパフォーマンス ライブラリで 警告 2003 が発生した場合の対処方法について紹介します。   Microsoft-Windows-Perflib: 警告: 2003: “MSSQLSERVER” サービスのパフォーマンス ライブラリ “perf-MSSQLSERVER-sqlctr**.*.****.*.dll” の構成情報が、レジストリに保存されている信頼されたパフォーマンスライブラリの情報に一致しませんでした。このライブラリの関数は信頼されているものとして処理されません。   [原因] SQL Server のパフォーマンス ライブラリ “perf-MSSQLSERVER-sqlctr**.*.****.*.dll” のファイル作成時刻やファイルサイズが、レジストリに格納されている情報と一致していない場合に発生します。   [影響] 前述の通り、情報のズレを報告するために記録される警告ですが、実動作 (パフォーマンス カウンタの採取など) への影響はありません。   [対処方法] SQL Server のパフォーマンス ライブラリ を再登録することで、警告 2003 は解消します。   #…

0

Known Issue: Microsoft JDBC Driver for SQL Server を使った接続が「SQL Server が不完全な応答を返しました。」のエラーで失敗する。

  SQL Developer Support Escalation Engineer 高橋 理香   みなさん、こんにちは。 最近お問い合わせいただくことが多い事象がありますので、今回はその内容をご紹介したいと思います。   事象 Java アプリケーションから Microsoft JDBC Driver for SQL Server を使用して SQL Server に接続するアプリケーションがある。このアプリケーションからの接続時に以下のエラーが発生することがある。 com.microsoft.sqlserver.jdbc.SQLServerException: ドライバが SSL (Secure Sockets Layer) 暗号化による SQL Server への安全な接続を確立できませんでした。エラー: SQL Server が不完全な応答を返しました。接続が閉じられました。。   対象環境/アプリケーション 上記事象が発生する条件として以下の特徴があります。 Windows Server 2012 R2 に Windows Server 2012 R2 Update1 (2919355) をインストールした環境上で動作する Java アプリケーションから Microsoft…

0

Troubleshooting Connectivity #9 – ローカル接続でネットワーク エラーとはこれいかに?

  高橋 理香 SQL Developer Support Escalation Engineer みなさん、こんにちは。 皆さんの疑問にお答えするブログを書きたいと思い早数年、今回は時々お問い合わせされる方が声にされる「SQL Server が稼動している環境上のほかのアプリケーションやツールから接続した場合にもネットワーク エラーが発生するのはなぜ?」について、その接続の仕組みなどを説明したいと思います。 前提: ローカル接続でトランスポートネットワークエラーが発生する事象について疑問があるとはどういうこと? まず、以下の2つの図を比べてみましょう。 図1 ではクライアント マシン CLIENT01 上の SQL Server Management Studio (以降、SSMS) から物理的にネットワークの回線を介してリモート マシン SERVER01 上で動作する SQL Server に接続するイメージです。接続でエラーが発生するということは、接続のリクエストとその完了の通信経路上で遅延や障害があった場合に生ずるため、図1 のパターンにおいてネットワークに起因した問題があればネットワーク通信におけるエラーが返される可能性があるということは容易に想像できますね。 それでは図2 はいかがでしょう。サーバー マシン SERVER01 上で SSMS を起動し、同じ SERVER01 上で動作する SQL Server に接続するイメージです。この場合、物理ネットワーク回線を介さないはずです。それにもかかわらずネットワーク層のエラーが発生することがある、これが「ローカル接続なのにネットワーク エラーが発生するのはなぜ?」という疑問です。 実際にどちらの構成であっても次のようにネットワークに問題があるようにも見えるエラーが発生します。 SERVER01 に接続できません。 ADDITIONAL INFORMATION: SQL Server への接続を確立しているときにネットワーク関連またはインスタンス固有のエラーが発生しました。サーバーが見つからないかアクセスできません。インスタンス名が正しいこと、および SQL…

0

[Azure SQL Database] DTU使用率が100%になった時にやるべき事

    SQL Server/Microsoft Azure SQL Database サポート 田中 真人 皆さん、こんにちは。 Microsoft SQL Server/Microsoft Azure SQL Database サポートチーム です。 日ごろから、SQL Database をご愛顧頂き誠にありがとうございます。   今回は、日々のサポート業務において、比較的お問合せをいただく事象についてご紹介させていただきます。 SQL Database の DTU使用率が突然上がり、SQL Database に接続できない、クエリが失敗した、確認するとCPU使用率が100%に達していた。どのように対応すればよいか確認したい。というお問合せを頂く事があります。 この場合、CPU のリソース不足により要求が失敗している事が考えられるのですが、皆様はそのような経験はございますでしょうか。   リソース不足の原因は、一般的にその時実行されているクエリに原因があります。その為、CPUがリソース不足になった原因となっているクエリを特定し、クエリのチューニングを実施する事が一般的な対処法となります。 データI/Oにおける負荷も同様の事が言えます。   そこで今回は、SQL Database に負荷をかけているクエリの特定方法について紹介します。   SQL Database に負荷をかけているクエリは、クエリ ストアという機能を使用して特定する事ができます。 クエリ ストアのご利用方法につきまして、以下の順に記載致します。   +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1)クエリ ストア機能のご利用について 2)負荷をかけているクエリの特定方法 3)クエリ特定後の対応について ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1)クエリ ストア機能のご利用について…

0

Troubleshooting Connectivitiy #8 – エラー番号からわかる接続失敗原因 :エラー26

  高橋 理香 SQL Developer Support Escalation Engineer みなさん、こんにちは。 このシリーズの前回のポストから2年半以上経過してしまいましたが、まだ書きたいこともあり、終了はしていません!今回は接続時のエラーのうち、特徴的なエラーであるエラー番号 26 と出力されている場合のトラブルシューティングについて紹介したいと思います。 A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: SQL Network Interfaces,…

0

トラブルシューティング手法とサポートサービス

システムで何らかのエラーが発生したという場合や、やりたいことができないといった場合に、トラブルシューティングを行うことになりますが、その際の一般的なトラブルシューティングの流れについてご紹介します。私たちサポートチームもだいたいこのようなフローの考え方をもとに調査を行っています。また、テクニカルサポートでは、インシデント単位で承っているプロフェッショナルサービスと、時間単位で承っているプレミアサービスがあります。トラブルシューティング内容に応じた、それらのサポートサービスの違いについても、参考としてご案内します。 大きく、運用でのエラー発生、開発時の How-to では考え方も異なりますので、それぞれ分けて見ていきます。 エラー発生 A) いま事象が発生しているか これは一番重要なポイントになります。いま事象が発生している場合には、すぐに対処が必要なため緊急度は高くなり、できることも多くなります。復旧優先で対処となりそうな対応をすぐに行ったり、原因調査のためにいったん情報も採取してから対処を行うといった対応があります。 一方、いま発生していないけれども、過去発生していたエラーをさかのぼって調査することもあります。この場合には、どれだけ手掛かりとなる情報が残っているかが重要です。 B)エラーメッセージやログから調査 いま事象が発生している場合には、エラーメッセージやログを確認します。 SQL Server を例にとると、既定で出力されている情報として参考になるのは、下記があります。 既定の情報 SQL Server エラーログ (ERRORLOGファイルや、同じフォルダにあるデフォルトトレースやダンプファイル等) Reporting Services ログ (ログファイルや同じフォルダにあるダンプファイル、ExcecutionLog ビュー) Analysis Services ログ (msmdsrv.logやフライトレコーダー) イベントログ その他、事象に応じて、次のような情報を採取することもあります。 追加情報 ブロッキング情報 動的管理ビュー サーバートレース 拡張イベント パフォーマンス カウンター 問題ステップ記録ツール BID トレース ネットワークトレース ダンプファイル プロフェッショナルサービス、プレミアサービスのいずれでも、これらの情報からの調査は承っています。違いとしては、下記があります。 プロフェッショナルサービス これらの情報から、対処方法を調査してご案内します。 プレミアサービス これらの情報から、対処方法を調査してご案内します。また、必要に応じて原因追及の調査も行うことが可能です。 追加情報の中でも、BIDトレース、ネットワークトレース、ダンプファイルを採取する必要がある事象については、環境依存の問題の可能性が一般的には高いと言えます。その場合にはプレミアサービスでのみ調査可能です。   C) 発生状況の切り分け 事象によっては、情報採取よりも、事象が発生するパターン、発生しないパターンを切り分けることによって、問題点が特定できる場合があります。また、発生しないパターンが確認できると、それが対処方法に直結する場合もあります。例えば、次のような切り分けがあります。 特定の環境で発生する、もしくは複数の環境で発生する 特定のクライアントで発生する、複数のクライアントで発生する 特定のユーザーで発生する、複数のユーザーで発生する…

0

Microsoft Azure SQL Database パフォーマンス チューニング (第1回)

高原 伸城 Support Escalation Engineer 皆さん、こんにちは。 Microsoft SQL Server/Microsoft Azure SQL Database サポートチームの 高原 です。 今回は、Microsoft Azure SQL Database (以下 MASD) のパフォーマンス チューニング手法について紹介します。 MASD 上のデータベースに対して、アプリケーション から クエリを実行し、コマンドタイムアウトが発生したという現象についてお問い合わせを頂くことがあります。 コマンドタイムアウトが発生した場合は、一般的に、以下の項目について確認する必要があります。 [確認項目] 1) コマンドタイムアウトで失敗したクエリの特定 2) 該当クエリの実行プランの確認 3) ブロッキングの発生有無 4) リソースの使用状況 (パフォーマンス レベル (DTU) 以上の処理が実行されていないかの確認) そして、コマンドタイムアウトが発生している状況に応じた対処方法を検討する必要があります。 しかしながら、コマンドタイムアウトが発生したクエリを特定し、クエリのチューニングを実施することは、一般的に時間を要する作業となります。 そのため、今回のブログでは、コマンドタイムアウトが多発し、即座に問題を緩和させる必要がある場合 に、まずは試して欲しい対処方法を紹介します。 ※ 一般的に、データセンター側の問題でクエリの処理時間が著しく低下する現象は発生しないため、今回は確認項目から省いています。 [対処方法] 1) アプリケーション側で指定しているコマンドタイムアウト値を延ばす。 + 参考情報 SqlCommand クラス SqlCommand.CommandTimeout プロパティ…

0

Index Advisorを用いたパフォーマンス チューニング方法

Microsoft SQL Server/Microsoft Azure SQL Database サポートチー サポート エンジニア 清水 磨 [概要] Index Advisor はSQL Databaseに新しく追加された機能の1つで、SQL データベースの使用パターンを分析し、現在のクエリパフォーマンスを向上できる推奨インデックスを提供します。これにより、ユーザーはデーターベースに関する深い知識がなくとも、インデックスを用いたチューニングが可能になります。また、推奨インデックスを自動的に実装することも設定可能であり、V12サーバーをご利用のお客様は、Azureポータル上からインデックスの追加を数クリックで実現可能になりました。 今回はこの Index Advisor の使用方法についてご案内します。   [前提状況] ・V11サーバー、V12サーバーそれぞれで使用可能です。ただし、Azure ポータルサイトからのインデックス操作はV12でのみ、サポートされています。 ・推奨インデックスの自動作成、削除を有効化するためには、クエリストアを有効化しておく必要があります。 ・推奨インデックスを表示するには、リーダー権限と SQL DB の共同作成者権限が必要です。 ・インデックスの作成またはドロップおよびインデックス作成のキャンセルなどのアクションを実行するには、所有者権限と SQL DB の共同作成者権限が必要です。 ※権限の確認、設定は、Azure のロールベースのアクセス制御 の 「Azure ポータルを使用したアクセス権の管理」の手順で行います。   [設定方法] 1. Azure ポータルにサインインします。 2. [参照] – [SQL データベース] の順にクリックし、ご使用のデータベースを選択します。 3. 画面中段にある[インデックス アドバイザー]のアイコンを選択する、もしくは[すべての設定] – [Index…

0

[SQL Database] ”削除されたデータベース” の一覧に削除されたデータベースが存在しない

山崎 実久 SQL Server Developer/Microsoft Azure SQL Database Support 新しい Microsoft Azure Portal (https://portal.azure.com/) で利用可能な、”削除されたデータベース” に関する機能についての説明です。 ”削除されたデータベース” の一覧には、復元可能な削除されたデータベースの一覧が表示されます(図1)。 しかし、データベースを作成してから 10 分以内にデータベースを削除した場合、”削除されたデータベース” の一覧に削除されたデータベースが表示されない場合があります。 理由は、データベースが作成されてからバックアップファイルを生成し、データベースが復元可能になるまで 10 分程度時間を要するためです。 図1、 ”削除されたデータベース” に復元可能な削除されたデータベース testdb01 が表示されていることがわかります。   ※ 本ブログの内容は、2016年1月時点の情報です。

0

V12 の Azure SQL Database の sys.event_log に reconfiguration が記録されない (Document Version 1.0)

Note : 本トピックの扱いについて 本トピックは 2015/8/24 現在の最新情報であり、今後についてはアップデートを随時実施してまいります。速報としてのご案内となりますため、今後の内容が変更される場合があります。 Azure SQL Database のビュー sys.event_log は、データベースの再構成 (Reconfiguration) に関するログが出力されておりました。 しかし、アップデート後のAzure SQL Database v12 では、その結果が返されないというお問い合わせが多く寄せられております。 現時点(20/15/8/24)では、アップデート後の Azure SQL Database v12では データベースの再構成 (Reconfiguration) の発生状況を sys.event_log から、確認することが出来ません。米国開発部門とこの現象について協議した結果、以前のバージョンの Azure SQL Database と同様に Azure SQL Database v12においても sys.event_log から データベースの再構成 (Reconfiguration)の発生状況を 確認出来るよう、機能改善することの検討が進められています。 sys.event_log (SQL データベース) http://msdn.microsoft.com/ja-jp/jp-ja/library/dn270018.aspx [代替案] エラー 40613 がクライアントに返された場合、Reconfiguration である可能性が高いといえます。 SQL Azure Connection Management…

0