SQL Serverの起動ログ「ERRORLOG」には、何が記録されているのか?:SQL Serverトラブルシューティング(5)(1/2 ページ)
本連載は、「Microsoft SQL Server」で発生するトラブルを「どんな方法で」「どのように」解決していくか、正しい対処のためのノウハウを紹介します。今回は、「起動ログ“ERRORLOG”の見方」を解説します。
本連載では、「Microsoft SQL Server(以下、SQL Server)」で発生するトラブルについて、「なぜ起こったか」の理由を理解し、正しく対処するためのノウハウを紹介していきます。今回より数回にわたって、「SQL Serverは、起動時にどんな動きをしているのか」の理解を深めていきましょう。
まず、「ログを確認して、正しく対処する」の基礎を踏まえ、SQL Serverの起動ログ「ERRORLOG」の見方を解説します。
SQL Serverは起動時にどのような動きをしているのか
- 起動から、利用可能になるまでの流れをログから理解する
- SQL Serverの動きが変わる、サービス起動アカウントに実行権限を付与する方法
- SQL Serverが起動後に行っている、重要な処理「復旧処理」について
- アプリケーションが、どのプロトコルで接続しているのかを確認する
【1】起動から、利用可能になるまでの流れをログから理解する
SQL Serverは、規定値のままインストールするとOSの起動と共にサービスが起動し、クライアントから利用可能になります。起動時のトラブルは、ユーザーまたはアプリケーションから見て「つながらない」という1つの現象に見えることがほとんどです。
SQL ServerはWindowsから見ると、「サービスアプリケーション(以下、サービスと呼びます)」として動作します。ここでは「Windowsにおけるサービス」を「Windows上で動作し、ユーザーに対して何らかの機能を長時間提供し続けるプログラム」と定義します。Windowsのサービスの画面からは、以下のようにSQL Serverのサービスが見えています(図1)。
ずらりと並ぶサービスのうち、「SQL Full-text Filter Daemon Launcher」から「SQL Server エージェント(MSSQLSERVER)」までがSQL Serverに関連しています。ただしこの画面は、Windows上でプログラムが実行されている/登録されていることを示すもので、実際にサービスが正しく動作しているかは別の話です。このことを理解すれば、「なぜつながらないのか」の解決策を導けます。
SQL Serverは、起動後におおよそ以下の順序でクライアントから接続できるまでの準備をします。厳密には、複数のスレッドが動作し、平行して処理を進めますが、ここでは、実際に何をしているのかを理解すれば大丈夫です。このときに起動したSQL Serverのプロセスとメモリ空間を、「インスタンス」と呼びます。
(1)Windowsからサービスが起動される
(2)レジストリ(*1)から必要な情報を取得してプロセスを起動する
(3)「masterデータベース」(*2)を起動し、必要な情報を読み取る
(4)クライアント接続できるようにTCP/IPや「名前付きパイプ」(*3)の待ち受けを開始する
(5)一部のシステムデータベースとユーザーデータベースを並列に起動する
(6)データ整合性を保つためにデータベースのリカバリーを行う
(7)TEMPDBデータベースの再作成とMODELデータベースの起動を行う
*1:レジストリは、OSが持つ設定情報を格納する仕組みです。SQL Serverはレジストリから起動に必要なmasterデータベースの場所やインスタンス名などを読み込みます
*2:masterデータベースにはインスタンスに含まれる各データベースの内容や設定値が入っています
*3:TCP/IPや名前付きパイプは、SQL Serverとアプリケーションが通信するためのプロトコルです
SQL Serverには、起動してから停止するまでの動作を記録している「ERRORLOG」というログがあります。そのログの内容と、上記の起動までの流れを見比べてみましょう。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- マイクロソフト、「SQL Server 2016」正式版を2016年6月1日リリース
マイクロソフトは、データベースソフトウェアの最新版「SQL Server 2016」を6月1日より一般向けに出荷開始すると発表した。 - 「SQL Server 2016」に搭載される新たなセキュリティ対策を追う
パブリックプレビューが公開されているマイクロソフトのRDB次期版「SQL Server 2016」。特徴の1つとするセキュリティ対策機能のポイントと目指すところをキーパーソンに聞いた。 - クエリストアって何だ? SQL Server 2016のパフォーマンス向上に注目
2015年6月に開催されたイベント「DB tech showcase」の講演の中から、2016年にも正式版がリリースされる次期SQL Serverの目玉機能をウオッチ。 - Oracleから「SQL Server 2016」へ、マイクロソフトが移行支援策を展開
日本マイクロソフトが「SQL Server 2016」の導入支援策を発表。Oracle Databaseからの乗り換えで、ライセンスを特別価格で提供する。