トップ回答者
SQLSERVERが止まっている

質問
-
お世話になります。
先日、SQLSERVER2005を使ったプログラムをSQLSERVER+C#で作成しました。)
SQLSERVER2005 EXPRESSをPCにインストールしスタンドアロンで使用しています。
リリースしてまもなく、エラーがでて使用できないとのことで見てみると、
SQLSERVERが停止状態になっていました。
使用者はSQLSERVERの停止方法などは知りませんし、プログラム上サーバを止めるような事はしていません。
開始の方法も手動ではなく、自動を選択しています。
色々、考えましたがSQLSERVERが止まっていた理由が思いつきませんでした。
何かSQLSERVERを止めてしまうような、事例があれば教えて頂けないでしょうか。
よろしく御願いします。
回答
-
SQL Server Express Edition の場合は、該当のインスタンスに対する接続(Connection)が無くなった後、規定の時間 アイドル状態となった場合に、スタンバイ状態となると思うのですが、その後 ユーザーから該当のインスタンスへ接続要求を行った場合、自動的に該当のインスタンスは再開されると思うのですが。。。
イベントログには以下のようなメッセージが出力されており、17401 はユーザーによるスタンバイ状態である該当インスタンスに対して接続を行った場合に出力されるメッセージで、17403 は、SQL Server 内部のタイマにて、規定の時間を過ぎた際に、該当のインスタンスを再開させられた場合に出力されるメッセージです。
17401 %1! 秒間のアイドル状態の後、サーバーの実行が再開されました。サーバーはユーザー操作により起動されました。このメッセージは情報提供だけを目的としています。ユーザー操作は不要です。17403 %1! 秒間のアイドル状態の後、サーバーの実行が再開されました。理由: タイマ イベント。
停止状態の際、SQL Server エラーログには、どのような出力がされていますか?- 回答としてマーク sk7474 2009年4月30日 8:18
-
お世話になります。
ウインドウズのイベントビューアの件ですが、まだ、エラーが発生してから見れていないので、明日にでも確認してみます。
リリースとされて一日は動いていました、
他にテスト環境があるのですが、そちらは問題なく動いています。
一日、経ったら止まっていたと言う感じです。
その後、再起動したら正常に動きはじめました。
その日、やったことといえば、パソコンを付けっぱなしで帰ったと言うこと位でしょうか・・・
自分のかかわった案件であった事例ですが、サーバーとクライアントの電源は入っていましたが、お客様で最後に帰社する人がブレーカーの電源を切るのですが、その場合HUBの電源も連動していたためConnection Errorとなってしまった事がありました。
その時のアブリレーションはVB6で作成されたプログラムでDBとは常に接続している状態なのでエラーになりましたが、.NETで作成された非接続型接続の場合は何とも言えません。
(もしかしたら、コネクションプールでサーバー側で記憶しているかも)
今回の事例の原因と合致するかわかりませんが、こういった事もあったと思って頂ければ幸いです。- 回答としてマーク sk7474 2009年4月30日 8:19
すべての返信
-
お世話になります。
先日、SQLSERVER2005を使ったプログラムをSQLSERVER+C#で作成しました。)
SQLSERVER2005 EXPRESSをPCにインストールしスタンドアロンで使用しています。
リリースしてまもなく、エラーがでて使用できないとのことで見てみると、
SQLSERVERが停止状態になっていました。
使用者はSQLSERVERの停止方法などは知りませんし、プログラム上サーバを止めるような事はしていません。
開始の方法も手動ではなく、自動を選択しています。
色々、考えましたがSQLSERVERが止まっていた理由が思いつきませんでした。
何かSQLSERVERを止めてしまうような、事例があれば教えて頂けないでしょうか。
よろしく御願いします。
この情報だけでは何が原因かわかりませんので、イベントビューアに何か記録されていませんか?
もしくは、SQL Server Management Studio Express(インストールされていなければ、MSのダウンロードセンターからダウンロードできるのでダウンロード後、インストールしてください)の[管理]-[SQL Server ログ]に何か記録されていないでしょうか?
あと、「リリースしてまもなく、エラーがでて使用できない」との事ですが、リリース後に動いていて、急に動かなくなったのでしょうか? -
お世話になります。
ウインドウズのイベントビューアの件ですが、まだ、エラーが発生してから見れていないので、明日にでも確認してみます。
リリースとされて一日は動いていました、
他にテスト環境があるのですが、そちらは問題なく動いています。
一日、経ったら止まっていたと言う感じです。
その後、再起動したら正常に動きはじめました。
その日、やったことといえば、パソコンを付けっぱなしで帰ったと言うこと位でしょうか・・・
ところで、
SQL Server Management Studio では
SQL Server Logはクリックすれば内容がみれるのですが、
SQL Server Management Studio Expressで
SQL Server Log は見ることが出来るのでしょうか?
記録はされているものの、開く方法がわからなかったので、話は違いますが開き方を教えて頂けないでしょうか?
よろしく御願いします。 -
確認ですが、SQL Server 2005で動いているのではなく、SQL Server 2005 Expressで動いているということでよろしいでしょうか? であれば、SQL Server 2005 Expressのインスタンスは自動で起動し停止します。停止することは不思議なことではありません。最後の接続が閉じてから既定では60分で停止します。しかし、ふたたび接続に行けば自動的にインスタンスが開始になるはずですが、どのようなエラーが出ているのか気になるところですね。
★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://blogs.wankuma.com/trapemiya/ -
確認ですが、SQL Server 2005で動いているのではなく、SQL Server 2005 Expressで動いているということでよろしいでしょうか? であれば、SQL Server 2005 Expressのインスタンスは自動で起動し停止します。停止することは不思議なことではありません。最後の接続が閉じてから既定では60分で停止します。しかし、ふたたび接続に行けば自動的にインスタンスが開始になるはずですが、どのようなエラーが出ているのか気になるところですね。
★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://blogs.wankuma.com/trapemiya/
Expressで、最後の接続から60分接続がなければインスタンスが停止されるというのは初耳だったので調べてみました。
MSDN(http://msdn.microsoft.com/ja-jp/library/ms254504.aspx)の「ユーザー インスタンスの接続の有効期間」の部分ですね。
ユーザーインスタンスだから、SQL Server 2005 Expressのサービスとは管内ないかなと思いましたが、M1685さんがC#で開発されているということだから、関係はあるかもしれないです。 -
MSDN(http://msdn.microsoft.com/ja-jp/library/ms254504.aspx)の「ユーザー インスタンスの接続の有効期間」の部分ですね。
その通りです。フォローありがとうございます。ユーザーインスタンスだから、SQL Server 2005 Expressのサービスとは管内ないかなと思いましたが、M1685さんがC#で開発されているということだから、関係はあるかもしれないです。
私が勘違いしていたようです。停止というのはSQL Server 2005 Expressのサービス自体が停止していたということのようですね。私はてっきりC#から接続しに行ったときに、そのデータベースが動作していないためにエラーになっているのかと勝手に思い込んでいました。すみません。
★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://blogs.wankuma.com/trapemiya/ -
ただ、自分のパソコンでは、停止状態になったのを見たことが無いのですが、気のせいでしょうか?
この、インスタンスの停止と言うのは、ウインドウズのサービスの状態を見たときに停止状態になると言うことなのでしょうか?
ごめんなさい。私が勘違いしていたようです。60分で停止になるのはユーザーインスタンスです。SQL Server 2005 Expressのサービス自体が60分で停止するわけではありません。つまり、通常のSQL Serverですと、.mdfをデータベースとして使えるようにするためにはアタッチを行わなければなりません。しかも一度アタッチしてしまえば、デタッチを行わなければふたたびアタッチすることはできません。ユーザーに配布した.mdfを、ユーザーのPCでアタッチしたりデタッチしたりしなければならないわけです。これでは不便ですので、SQL Server 2005 Expressではユーザーインスタンスというものが導入され、言わば自動的にアタッチしたりデタッチしたりできるようになったわけです。接続が無くなった時に、この自動的にデタッチされるまでの時間が、既定で60分ということです。
★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://blogs.wankuma.com/trapemiya/ -
お世話になります。
ウインドウズのイベントビューアの件ですが、まだ、エラーが発生してから見れていないので、明日にでも確認してみます。
リリースとされて一日は動いていました、
他にテスト環境があるのですが、そちらは問題なく動いています。
一日、経ったら止まっていたと言う感じです。
その後、再起動したら正常に動きはじめました。
その日、やったことといえば、パソコンを付けっぱなしで帰ったと言うこと位でしょうか・・・
自分のかかわった案件であった事例ですが、サーバーとクライアントの電源は入っていましたが、お客様で最後に帰社する人がブレーカーの電源を切るのですが、その場合HUBの電源も連動していたためConnection Errorとなってしまった事がありました。
その時のアブリレーションはVB6で作成されたプログラムでDBとは常に接続している状態なのでエラーになりましたが、.NETで作成された非接続型接続の場合は何とも言えません。
(もしかしたら、コネクションプールでサーバー側で記憶しているかも)
今回の事例の原因と合致するかわかりませんが、こういった事もあったと思って頂ければ幸いです。- 回答としてマーク sk7474 2009年4月30日 8:19
-
SQL Server Express Edition の場合は、該当のインスタンスに対する接続(Connection)が無くなった後、規定の時間 アイドル状態となった場合に、スタンバイ状態となると思うのですが、その後 ユーザーから該当のインスタンスへ接続要求を行った場合、自動的に該当のインスタンスは再開されると思うのですが。。。
イベントログには以下のようなメッセージが出力されており、17401 はユーザーによるスタンバイ状態である該当インスタンスに対して接続を行った場合に出力されるメッセージで、17403 は、SQL Server 内部のタイマにて、規定の時間を過ぎた際に、該当のインスタンスを再開させられた場合に出力されるメッセージです。
17401 %1! 秒間のアイドル状態の後、サーバーの実行が再開されました。サーバーはユーザー操作により起動されました。このメッセージは情報提供だけを目的としています。ユーザー操作は不要です。17403 %1! 秒間のアイドル状態の後、サーバーの実行が再開されました。理由: タイマ イベント。
停止状態の際、SQL Server エラーログには、どのような出力がされていますか?- 回答としてマーク sk7474 2009年4月30日 8:18
-
こんにちは。中川俊輔です。
皆様、回答ありがとうございます。
M1685さん、フォーラムのご利用ありがとうございます。
その後いかがでしょうか?
勝手ながら、有用な情報と思われる回答へ回答マークをつけさせていただきました。
まだ解決していないようでしたら、SQL Server エラー ログやアプリケーションログにサービスが止まった原因を知る手がかりが残されていると思います。
ログの内容でわからないことがありましたら、ぜひまた質問してみてください。
今後ともフォーラムをよろしくお願いします。
それでは!
マイクロソフト株式会社 フォーラム オペレータ 中川 俊輔