SQLServer
DB
トラブルシューティング

SQLServerのトラブルシューティングフローを勝手に定義してみた

はじめに

みなさん、トラブルシューティングしてますか^^
簡単なもの、やっかいなもの、多々ありますが見るポイントを知っておくと
いざという時に役立ちます。
今回は私なりの
Windows + SQLServerに関するトラブルシューティングフローを情報提供したいと思います。

★DB接続出来ねぇ!!!

サービス起動してますか?

たまにOSの再起動時のスタートアップでタイムアウトしてしまう事があります。
まずは起動確認!

プロトコル有効ですか?

接続情報に沿ったプロトコルが有効か構成マネージャーなどで確認しましょう。

ポート番号あってますか?

動的ポート割り当ててると番号かわりますよね。

別名邪魔してませんか?

意図しない別名定義されていたりして邪魔してるケースがあります。
SQL クライアント設定ユーティリティ見てみましょう。
暗号化ON/OFFも一緒にチェック。

★なんか安定しない。。。

容量の空きありますか?

そもそもストレージ空いてますか?
無償版使っている場合はmdfのサイズ、上限付近でないかも確認したいですね。
<参考>
- 2016 = 10GB
- 2014 = 10GB
- 2012 = 10GB
- 2008R2 = 10GB
- 2008 = 4GB
- 2005 = 4GB
- 2000 = 2GB

エラー発生してないですか?

SQLServerのエラーログ見てみましょう。
Program Files\Microsoft SQL Server~\ERRORLOG を確認。
ついでにOSのログ(イベントビューワー)も見てみましょう。
DISKの不良ブロックエラーなど致命的なやつがあれば早めに交換検討を。

メモリ食いつぶしてないですか?

Webサーバーなんか一緒に起動してたりするとメモリの取り合いになりそうですね。
適切な上限値(max server memory)を設定してみてもよいかもです。

自動拡張サイズ適切ですか?

ある程度大きなトランザクションログが発生する処理で不安定な場合は、
自動拡張時にタイムアウトしているケースがあります。
拡張サイズの見直し(FILEGROWTH)をしてみてもよいかもです。

最後に

少しでも読んでくれた方の参考になればHAPPYです。
最後までお付き合い頂きありがとうございました!