masterデータベースを復元するということは、そのmasterデータベースをバックアップしたデータベースサーバーの環境と同じ環境が必要になります(ドライブ名やフォルダ名などの完全一致)。
masterデータベースの中には、そのデータベースサーバーで運用している個々のデータベースのファイル名が、完全パスの形式で記録されています。 例えば、あるデータベースの物理ファイルは、ドライブE:の、あるディレクトリの中の、あるファイルだというような情報です。
そのファイルが存在しないと、masterデータベースを復元した後に、様々なトラブルが発生します。
データベースサービスを立ち上げたとき、masterデータベースの中に記録されているこれらの物理ファイルの情報を参照して、該当するデータベースを開きます。 もし、一般ユーザが作成したデータベースを構成する物理ファイルが見つからない場合は、そのデータベースは利用できないと判断して、そのデータベースをスキップします。 ところが、システムデータベースであるmsdbとmodelを構成する物理ファイルが見つからないと、事情が異なります。致命的なエラーが発生したと判断し、データベースサービスは起動しません。
ここで、問題があります。masterデータベースをバックアップしたSQL Server上にある、msdbとmodelシステムデータベースの物理ファイルと同じファイルが、復元を行うMSDEのコンピュータ上に存在しますか?(物理的なパスが一致しますか?)
一般的には、SQL Server では、システムデータベースの記憶場所を、既定のフォルダ位置からその場所を変更したりします。例えば、D:\DATABASE\MSSQL\Data に変更するなど。
このように、システムデータベースを既定の位置から変更している場合は、その変更された位置と同じ場所に、システムデータベース(msdbとmodel)の物理ファイルを置いておく必要があります。
もしMSDE側で、その位置に物理ファイルを置いておくのに何か支障がある場合は、データベースサービスを起動した後に、物理ファイル位置の変更を行なうことができます。しかし、データベースサービスそのものが起動しなければ、何の操作をすることもできませんので、masterデータベースを復元した直後のデータベースサービスの起動では、支障のある位置に、物理ファイルを置いて下さい。
どうしても、同じ位置に、物理ファイルを置くことができない場合(例えばドライブ名が存在しないなど)は、トレースフラグ3608番を付けて、データベースサービスを起動することができます。
マイクロソフトサポート文書番号224071
|