トップ回答者
SQLServer2008 で接続ができなくなります

質問
-
初めて投稿します。makai974と申します。
SQLServer2008 + Asp.net を使い社内向けのWebシステムを構築し運用しているのですが、昨日より以下の事象が発生し困っております。
解決に向けてアドバイスをいただけたら幸いです。
環境
OS:Windows2008 StandardEdition SP2
DB:SQLServer 2008
事象:SQLServerへの接続が一切できなくなる。
・前述のWebシステムからのアクセスはもとより、クライアントからのSQL実行や、SQLServerをインストールしているサーバ上で Management Studioでも動作しません。
尚、Management Studioへは、「サーバの接続」はできます。接続後、オブジェクトエクスプローラでのツリーの展開一つ一つが非常に遅く、テーブルのデザインを見ようとするとエラーとなります。(エラー内容は都度違う)
時間を置いて実行するとアクセスできるようになります。ただし一度繋がらなくなると、SQLServerの再起動、OSの再起動をしても改善されません。とにかく待つしかないのが現状です。
・以前にも同様の事象が起きたのですが、その時はネットで接続プールの枯渇が怪しいとふみ、ASP.netでDBへアクセスしている箇所で明示的にcloseを記述したところ改善されました。
改善後には新しいプログラムの追加などは行っておりません。また、Webシステム以外でDBにアクセスするのは私一人ですので上記対処以外が原因なのではないかと考えております。
以上、よろしくお願いします。
回答
-
管理用接続で接続し、利用状況等を確認してみるところからですね。管理用接続を行うためには、プロトコル admin またはポート番号 1434(だったか?)を指定して接続します。たとえば、Server1\SQL1 に接続されているのであれば、admin:Server1\SQL1 で接続します。tcp:Server1,1433等につながれている場合には、tcp:Server1,1434 ですかね。(ファイアウォール等で管理接続ができない場合もあるので、繋がらないようであればサーバ上で実行されるとよいでしょう)
# 時間をおいたらつながるようになるが、SQL Server を再起動してもつながらないというのは、ネットワーク等の障害も考えられますが
すべての返信
-
管理用接続で接続し、利用状況等を確認してみるところからですね。管理用接続を行うためには、プロトコル admin またはポート番号 1434(だったか?)を指定して接続します。たとえば、Server1\SQL1 に接続されているのであれば、admin:Server1\SQL1 で接続します。tcp:Server1,1433等につながれている場合には、tcp:Server1,1434 ですかね。(ファイアウォール等で管理接続ができない場合もあるので、繋がらないようであればサーバ上で実行されるとよいでしょう)
# 時間をおいたらつながるようになるが、SQL Server を再起動してもつながらないというのは、ネットワーク等の障害も考えられますが
-
佐祐理様
ご返信いただきありがとうございます。
利用状況モニターは使ってませんでしたので、早速開いてみました。開いてからも事象が既に何回か起きていますので監視していますが・・・
接続数⇒「プロセス」のセッションIDを見る限り、特に以上はなさそうです。
コストの高いクエリー⇒「Database Name」がtempdb か master の物がほとんどです。
tempdb をキーワードにして調べてみたら、tempdbのディスク領域不足でもトラブルが起きる場合があるとでていましたので、サイズを調べてみたら以下の通りでした。
情報ソース : http://msdn.microsoft.com/ja-jp/library/ms176029.aspx
実行したクエリ:
SELECT SUM(unallocated_extent_page_count) AS [free pages],
(SUM(unallocated_extent_page_count)*1.0/128) AS [free space in MB]
FROM sys.dm_db_file_space_usage;結果: free pages ・・・696、free space in MB・・・5.437500
このあたりも影響しますでしょうか?