連載
» 2017年07月24日 05時00分 UPDATE

SQL Serverトラブルシューティング(54):ドメイン参加後、SQL Serverが起動しなくなった(起動トラブル) (1/2)

本連載は、「Microsoft SQL Server」で発生するトラブルを「どんな方法で」「どのように」解決していくか、正しい対処のためのノウハウを紹介します。今回は、「ドメイン参加後にSQL Serverが起動しなくなった場合の対処方法」を解説します。

[椎名武史,ユニアデックス株式会社]

連載バックナンバー

 本連載では、「Microsoft SQL Server(以下、SQL Server)」で発生するトラブルについて、「なぜ起こったか」の理由とともに具体的な対処方法を紹介していきます。

トラブル 41(カテゴリー:起動トラブル):ドメイン参加後、SQL Serverが起動しなくなった

 「Windows Server 2012 R2」上に「SQL Server 2016 RTM」をインストールした環境を想定して解説します。

トラブルの実例:新規でSQL Serverを採用したシステムを構築中。現地での実作業時間を短縮するために、事前に設置予定のサーバへSQL Serverをインストールしておき、現地へ運んでからドメインに参加させることにした。

 現地でドメインに参加させ、初回の起動は完了した。しかしサーバを再起動すると、SQL Serverの起動段階でエラーが発生し、それ以降、SQL Serverが起動しなくなってしまった。

トラブルの原因を探る

 今回はシステム構築時において、初回は正常に起動したのに、なぜか2回目からSQL Serverが起動しなくなってしまったトラブル事例です。

 まずは、Windowsのイベントログを確認しましょう。Windowsイベントビューアーで、OSログの「システム」項目を確認すると、「エラー7000」が記録されていました(図1)。

photo 図1 Windowsイベントビューアーに「エラー7000」が出力されていた

 この「エラー7000」には、「SQL Server (MSSQLSERVER) サービスを、次のエラーが原因で開始できませんでした: ログオンに失敗したため、サービスを開始できませんでした」と記載されていました。また、その直前のログ「エラー7041」にも、「MSSQLSERVER サービスで、現在構成されているパスワードで NT Service\MSSQLSERVER としてログオンできませんでした。次のエラーが原因です: ログオンの失敗: このユーザーには、要求されたログオンの種類がこのコンピューター上で許可されていません。サービス アカウントに、必要なユーザー権限である "サービスとしてログオン" がありません」と記載されていました(図2)。

photo 図2 直前のログには、「エラー7041」も出力されていた

 これら2つのアラートログから、SQL Serverの起動アカウントである「NT Service\MSSQLSERVER」にサービスとしてログオンする権限がなかったために、サービスを起動できなかったと推定できます。

 SQL Serverをインストールすれば、原則としてそのシステムでの起動に必要な権限も自動的に付与されます(*1)。アラートログにあった「サービスとしてログオン」の権限も自動で付与される権限の1つです(図3)。


photo 図3 SQL Serverインストール直後の設定(サービスとしてログオンが許可されたアカウント)

 では今回の事例では、なぜその必要な権限が付与されていなかったのでしょう。実は、前もってインストール作業したサーバは、適当なワークグループ環境のネットワーク下で行われていました。

 サーバを新たにドメインに参加させる場合、ドメインで設定したポリシーが既に存在する場合には「既存のポリシーが上書き」されます。もっとも、既定の作業においてはサービスとしてログオンのポリシーが未定義であるために、ドメインに参加したとしてもポリシーが上書きされることはありません。しかし今回の場合は、サービスとしてログオンのポリシーが事前作業によって既に定義されていました。このことから、ドメインに参加したマシンに対して権限の足りないポリシーが適用されてしまったことになります(図4)。

photo 図4 ドメイン参加後の設定では、サービスとしてログオンを許可するアカウントが変わっていた

 なお「最初だけ」起動したのは、ドメイン参加後の最初の起動において、“ドメインのポリシーが適用される前”にSQL Serverが起動したためと推定されます。しかしどちらにせよ、ドメインのポリシーが適用された2回目以降の起動時には、そのポリシーにSQL Serverの起動アカウントが含まれていないことから、「起動できない」となってしまいます。

       1|2 次のページへ

Copyright© 2017 ITmedia, Inc. All Rights Reserved.

@IT Special

- PR -

TechTargetジャパン

この記事に関連するホワイトペーパー

Focus

- PR -

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。