こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

データベースのアタッチができなくなりました

SQLServer2000

logデータを書き込む領域がなくなりましたというエラーメッセージが出ましたので、
logファイルを削除するためにデータベースをデタッチしました。
このときに何かのメッセージが出ましたが、強引にデタッチをしました。
logファイルを削除し、データベースをデタッチしようとしたところ、
「ログファイルとして指定したファイル名が間違っています。新しいログファイルが作成されます。続行しますか?」というメッセージが出ました。
「はい」を選択すると
「エラー 1813 新しいデータベース’データベース名’を開けませんでした。CREATE DATABASEは中断されます。デバイスアクティブ化エラー物理ファイル名’C:\Program Files\Microsoft SQL Server|MSSQL\Data\データベース名_log_LDFは正しくありません。’」
というメッセージが出て、アタッチに失敗してしまいます。

データベースを復元しましたが、logファイルが無いためか、一ヶ月以上前の時点までしか復元できません。

ldfファイルはありません。(ゴミ箱の中にも)
mdfファイルは残っていますので何とかなると期待しています。

大変困っています。
どなたか解決方法をご存知でしょうか。
ご教授よろしくお願いいたします

投稿日時 - 2011-03-09 12:46:52

QNo.6580953

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

2人が「このQ&Aが役に立った」と投票しています

回答(1)

ANo.1

1.SQL Serverのエンジンを停止する。(おそらく現時点ではしなくてもよい)
2.該当のmdfファイルをデータ格納場所以外のフォルダに移動する。
 例)「C:\Program Files\Microsoft SQL Server|MSSQL\Data\」が
  データ保存先である場合は「Dドライブ」の直下などに移動。
3.SQL Serverのエンジンを起動する。
4.1ヵ月前のデータベースを「mdf」、「ldf」共に
  「C:\Program Files\Microsoft SQL Server|MSSQL\Data\」
 へ復元する。
5.SQL Serverのエンジンを停止する。
6.「Dドライブ」に移動した「mdf」ファイルを
「C:\Program Files\Microsoft SQL Server|MSSQL\Data\」に複写する。
※ 上書きする。
7.SQL Serverのエンジンを起動する。
8.該当のDBにアクセスしてみる。

これで解決できると思います。

ちなみに「logデータを書き込む領域がなくなりました」というエラーメッセージ
が表示される原因は「復旧モデル」が「完全」になっているからと思われます。

差分バックアップを行わないDBであれば、「復旧モデル」は「単純」が最適とおもわれます。
 

 

投稿日時 - 2011-03-17 08:15:09

あなたにオススメの質問