システムデータベースが破損して起動しない(起動トラブル):SQL Serverトラブルシューティング(13)
本連載は、「Microsoft SQL Server」で発生するトラブルを「どんな方法で」「どのように」解決していくか、正しい対処のためのノウハウを紹介します。今回は「システムデータベースが破損して起動しなくなった場合の対処方法」を解説します。
本連載では、「Microsoft SQL Server(以下、SQL Server)」で発生するトラブルについて、「なぜ起こったか」の理由とともに具体的な対処方法を紹介していきます。
トラブル 08(カテゴリー:起動):システムデータベースが破損して起動しない
第5回「SQL Serverの起動ログ“ERRORLOG”には、何が記録されているのか?」で、SQL Serverの起動から、使用可能になるまでのプロセスとして、まず「masterデータベース」を起動し、masterデータベースの起動が完了してから個別の「ユーザーデータベース」を起動していくことを解説しました。今回は、システムデータベースの根本となる「masterデータベース」が起動しなくなってしまった場合の事例を紹介します。
トラブルの原因を探る
エラーログを確認すると、「masterデータベースの開始に失敗」しているようです(図8-2)。
エラーログには、「指定されたファイル(=master.mdf)が見つかりません」と記述されています。masterデータベースの実体ファイルである「master.mdf」というファイルがなくなってしまったようです。
BSODが発生し、OSのファイルシステムに不整合が起きました。ただしこの時点では、不整合のあるセクターに「master.mdf」の断片が“まだ”残っていたと想定されます。そのために、起動だけはできたのでしょう。
その後、CHKDSKを行いました。CHKDSKは、ファイルシステムの整合性を保つために修復する機能を持つツールですが、不整合の状況と修復オプションによって、ファイルが消失してしまうことがあります。今回のトラブル事例では、CHKDSKを不整合を修正する「修復オプション」付きで実行した結果、master.mdfは断片しかないので不要と判断されて、消失してしまった──。SQL Serverの起動に必要なファイルである「master.mdf」が存在しないので、結果として起動できなくなってしまったということになります。
解決方法
SQL Serverのデータファイルに致命的なエラーが発生したら、バックアップからリストアする作業が必要となります。
今回のトラブル事例では、インスタンスの起動ができないので、その前処理として「システムデータベースの再構築」を行います。手順は以下の通りです。
- SQL Serverのセットアップを使って、「システムデータベースの再構築」を行う(*1)
- SQL Serverをシングルユーザモードで起動する(図8-3)
- masterデータベースのリストアを行う(*2)
- SQL Serverを再起動し、ユーザデータベースへのアクセスを確認する
- masterデータベースのバックアップ後に加えたシステム変更を再実行する
このときに必要なのが、「masterデータベース」を含むシステムデータベースのバックアップです。
データベースのバックアップとして、ユーザデータベースのみを残しているケースを時々見受けます。しかし、今回の事例のような障害が起きたら、かなり大変な事態に陥ります。もしmasterデータベースのバックアップがなかったら、ログイン情報やアタッチされていたデータベース、サーバ構成オプションなどの情報が失われてしまいます。ログインの手動再作成、ユーザデータベースのアタッチなどの復旧手順が極めて煩雑になります。このため筆者は、システムデータベースのバックアップも取ること強く推奨します。
「システムデータベースが破損して起動しない」場合の解決手順
- (普段から)「システムデータベースのバックアップ」も取るようにしておく
- エラーログを確認して、どのファイルが障害の原因か特定する
- (本例の場合は)システムデータベースの再作成を行う
- masterデータベースのバックアップをリストアする
筆者紹介
内ヶ島 暢之(うちがしま のぶゆき)
ユニアデックス株式会社所属。Microsoft MVP Data Platform(2011〜 )。OracleやSQL Serverなど商用データベースの重大障害や大型案件の設計構築、プリセールス、社内外の教育、新技術評価を行っていた。2016年4月よりIoTビジネス開発の担当となり、新しい仕事に奮闘中。ストレッチをして柔らかい身体を手に入れるのが当面の目標。
椎名 武史(しいな たけし)
ユニアデックス株式会社所属。入社以来 SQL Serverの評価/設計/構築/教育などに携わりながらも、主にサポート業務に従事。SQL Serverのトラブル対応で社長賞の表彰を受けた経験も持つ。休日は学生時代の仲間と市民駅伝に参加し、銭湯で汗を流してから飲み会へと流れる。
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からの乗り換えで、ライセンスを特別価格で提供する。


