ここに私が調査するいくつかの道があります。これらのすべてを実行することはしないでください(一部は同じ目的を達成するための異なる手法です)。ただし、検討する価値があります。
1. SQLエラーログを直接調べる
SQLエラーログを含むフォルダーを直接参照し、最新のものERRORLOG
をメモ帳に読み込んで、SQLインスタンスが起動しない理由の詳細を取得します。おそらく、問題はmasterデータベースにまったくないことがわかります。
2.シングルユーザーモードでインスタンスを起動してみます
(シングルユーザーモード)と(最小構成モード)を含むSQLサーバーの起動オプションの完全なリストを次に示します。他のオプションを使用すると、masterデータベースのパスを指定できます(問題がある場合)。-m
-f
インスタンスを起動できる場合は、マスターデータベースを復元するためにリンクしたMSDNの記事の手順、またはThomas LaRockによるこの詳細なウォークスルーに従ってください。
別のアプリケーションが常にシングルユーザー接続を取得する前に取得できる場合は、最初にSQLエージェントを無効にして、起動しないようにします。次に、パラメーターを使用してアプリケーション名を指定することについて、この質問に関するアイデアを参照してください-m"Application Name"
。
3. master
別のインスタンスに復元し、そのファイルをコピーします
この文書化されていない手法については、もう1つだけ言及しましたが、この週末はうまく使用できたので、試してみる価値はあります。
シングルユーザーモードでインスタンスを起動できないが、まったく同じリリースとビルドを実行している別のSQLインスタンスがある場合は、最後の既知の正常なマスターデータベースのバックアップを停止したサーバーから他のインスタンスに復元してみます。
- もちろん、別の名前で復元する(
master_please_god_let_this_work
)WITH MOVE
のでmaster
、適切なサーバーで上書きしないでください。
- 復元し
WITH NORECOVERY
ます。これが必要かどうかはわかりませんが、復元されたマスターで他のサーバーが何も変更しないことを知っていたので気分がよくなりました
- オフラインに設定します。
ALTER DATABASE [master_please_god_let_this_work] SET OFFLINE
- 正常なサーバーから停止したサーバーに、復元されたMDFおよびLDFファイルをコピーします。
- 必要に応じて
master.mdf
およびmastlog.ldf
ファイルの名前を変更し、不良マスターファイルを復元したバージョンに置き換えます
- 指を交差させてインスタンスを開始します
- オプション:復活したサーバーでマスターの新しい復元を実行します。変更しないようにかなり注意していたので、これが必要かどうかはわかりません
master
。
4.システムデータベースを再構築する
同じバージョンを実行している別のインスタンスがない場合、または#3に記載されている文書化されていない手順の使用に慣れていない場合、またはバックアップがない場合master
(なぜバックアップがないのですか?)元のインストールディスクからSQLシステムデータベースを再構築できます。
Setup.exe /ACTION=REBUILDDATABASE /...
これが完了したら、前にリンクされた手順に従って、master
最後の適切なバックアップから復元できます。msdb
すべてのジョブ、ジョブスケジュール、およびジョブ履歴を保持するために、の最近のバックアップを復元する必要もあります。
5.すべてのUSERデータベースを新しい(または既存の)SQLインスタンスに復元する
別の既存のインスタンスが既に実行されている場合(適切なSQLバージョン、十分なディスク領域)、おそらく必要に応じて、上記の他のトラブルシューティング手順を実行している間、おそらく最新のバックアップからデータベースの復元を開始します。
新しい(または再インストールされた)インスタンスが同じディスクにアクセスできる場合、それらを新しいデータベースとして接続する方がはるかに高速です。
CREATE DATABASE foo
ON (FILENAME = 'D:\data\foo.mdf'),
(FILENAME = 'D:\data\foo_log.ldf')
FOR ATTACH;
6.変更をやり直します master
master
(上記の手法のいずれかを使用して)正常に復元したら、復元したばかりのバックアップの後に行われた変更が失われた可能性がある場合は、変更を調査する必要があります。
- セキュリティの変更
- 新しいデータベース(ファイルはディスク上に残りますが、添付するだけです)
- サーバー全体の設定
これらを見つけるための魔法の方法はありません。これらの種類の変更がある場合は、自社のドキュメントトレイルに戻ってこれらの種類の変更を行う必要があります。