トラブルが発生したので、「原因を特定し、解決しよう」と対策するとしましょう。このとき、SQL Serverシステムを運用する現場では以下の課題がよく発生します。
WindowsおよびSQL Serverの情報収集の仕組みでは、トラブルが起きている瞬間に、明示的にログ取得のプロセスを動かしておかなければ情報が取れないものがあります。つまり、ログが取得できていない状況では、「トラブルが発生しても、何も分からない」ということが起こり得ます。実は、意外と多いことです。
ログの取得においては、ディスク領域を消費するログの管理(残しておく日数やサイズの制御)やスループット低下の可能性なども考えます。どんなログをどれだけ取得するか、といったログ採取の設定や手段で考慮すべきことが、想像以上に多いと驚かれる例も多々見受けられます。やみくもに全てのログを保存するわけにもいきませんから。
しかしこの作業は、本来は「“設計段階”で、トラブルが起きることを前提」に考慮しておくべきものです。
また、エラーメッセージについても、真の原因は別の根深いところに潜んでおり、他のログや状況を統合して判断しなければならないこともあります。「エラーが発生していることだけは分かった」だけですと、この先、対策のしようがありません。
続いて、トラブルの原因が分かったならば、対処を施します。対処することで、“その問題”はひとまず解決するでしょう。しかし、実際の運用においては、コストや設定による他への影響など、さまざまな項目への考慮も忘れてはなりません。
例えば、システムの物理メモリが不足しているのが原因ならば、まずメモリの増設が思い浮かびます。これに応じて、メモリモジュールの購入コストや仕様を考察する/現行サーバのスロット数に空きはあるのかを調べる/稟議書や発注書を提出する/増設作業のためのサーバメンテナンスを時期を調整するといった、実対策以前の多くの準備が必要です。サーバを一時停止したことによって、あるサービスが起動できなくなる事態も考えられます。このように、複数人の担当者を組織して、何段階ものチェック項目を経ながら入念に実行することが必要になることでしょう。
……もちろん、「そんなことは分かっているよ」と思われるかもしれません。しかし、これらの基本/基礎と思える対策やプロセスも、実際の運用の現場では忘れられてしまうことが多々あるのです。
SQL Serverに限らず、ITシステム全般にいえることですが、「トラブルが起きるパターンを把握」して、「その仕組みも理解」し、そして「効果的な対処方法を、体系的に整理する」ことが、早期の解決につながります。
そこで本連載では、「よく起こるトラブル」を分かりやすく用例としていくために、SQL Serverで発生するトラブルを5つのカテゴリーに分類して紹介します。
カテゴリー | 説明 | 影響 |
---|---|---|
(1)インストール | SQL Serverのインストールに起因するトラブル | インストールが失敗することによってプロジェクト工程に遅延が発生してしまう |
(2)起動 | SQL Server起動時に起きる、あるいは判明するトラブル | アプリケーションがSQL Serverへ接続できない、データが見えないといった現象が発生し、業務に支障が出てしまう |
(3)ファイル管理 | データファイルやログファイルの管理システムに起きるトラブル | 場合によっては業務を続行ができない状態になってしまう。現象の起き始めは気が付きにくく、致命的になったときに初めて認識されることが多い |
(4)フェイルオーバー | システムトラブルによって、可用性を確保した別のシステムへの切り替えが発生したケース | フェイルオーバーしたことは仕様通りの動作だが、メインシステムに何らかのトラブルが発生したことを示す。再起動によって解決しない場合は、再度同じ問題が起きてしまう |
(5)処理遅延 | アプリケーションの挙動が遅くなるトラブル | さまざまな理由によってアプリケーションが遅くなってしまうので、ユーザーへの影響が大きい。一定時間経過後に現象が消失するケース、あるいはシステム全体がハングアップしたようになるケースなどがあり、一般的に原因追究が他のトラブルよりも難しい |
SQL Serverに起き得る全てのトラブルをカバーできるものではないかもしれませんが、これまで筆者が実践してきたトラブル対策の経験から、多くのケースがどれかに当てはまると考えています。次回より紹介するトラブルシューティングノウハウは、このカテゴリーに沿いながら、原因の追及方法と具体的な解決策を示していきます。
今回は「トラブルへの備え」として、トラブルシューティングのための心得を紹介しました。ポイントは以下の通りです。
次回は、具体的な対策ノウハウとなる「インストールに失敗した場合」を紹介します。
2016年6月1日、マイクロソフトが提供するリレーショナルデータベース管理システム(RDBMS)の最新バージョン「Microsoft SQL Server 2016(以下、SQL Server 2016)」が正式リリースされました。
SQL Server 2016は、新たなパフォーマンス管理機能、セキュリティ機能、マイクロソフトのパブリッククラウドサービス「Microsoft Azure」との密な連携、統計処理言語である「R」の統合、既存機能であるインメモリデータベースのさらなる刷新など、クラウド、ビッグデータ、IoTを有効に活用して「ビジネスの躍進」を図る“今どき”のエンタープライズ需要に沿った多くの機能強化がなされます。
2016年4月にサポートが終了した「Microsoft SQL Server 2005」からの刷新機会も含めた「新バージョンへのリプレース」、あるいは「他社RDBMSからの乗り換え」、クラウドの活用を見越した「新規導入」など、今後大きな変化が予測されるデータベースプロダクトの市況において、「Microsoft SQL Server(以下、SQL Server)」の需要も一層活発になると筆者は考えています。
ユニアデックス株式会社所属。Microsoft MVP Data Platform(2011〜 )。OracleやSQL Serverなど商用データベースの重大障害や大型案件の設計構築、プリセールス、社内外の教育、新技術評価を行っていた。2016年4月よりIoTビジネス開発の担当となり、新しい仕事に奮闘中。ストレッチをして柔らかい身体を手に入れるのが当面の目標。
ユニアデックス株式会社所属。入社以来 SQL Serverの評価/設計/構築/教育などに携わりながらも、主にサポート業務に従事。SQL Serverのトラブル対応で社長賞の表彰を受けた経験も持つ。休日は学生時代の仲間と市民駅伝に参加し、銭湯で汗を流してから飲み会へと流れる。
Copyright © ITmedia, Inc. All Rights Reserved.