バックアップデータベースファイル(つまり、test.mdf)がありますが、LDFファイルがありません。SQL Server2008R2はLDFなしでMDFをロードできると言われました。
本当?
ありがとうございました
バックアップデータベースファイル(つまり、test.mdf)がありますが、LDFファイルがありません。SQL Server2008R2はLDFなしでMDFをロードできると言われました。
本当?
ありがとうございました
データベースが正常に切り離されていると仮定すると、 sp_attach_single_file_dbまたは新しいCREATE DATABASE ... FORATTACH構文を使用できるはずです。
EXEC sp_attach_single_file_db
@dbname = 'YourDB',
@physname = N'C:\YourFile.mdf';
また
CREATE DATABASE YourDB
ON (FILENAME = 'c:\YourFile.mdf')
FOR ATTACH_REBUILD_LOG;
別のオプションsp_attach_single_file_db
は、FORATTACH_REBUILD_LOGオプションを指定したCREATEDATABASEコマンドです。
これは私のために働いています。データベースを表示するために緊急モードを使用しました。
http://forums.asp.net/t/1903548.aspx
2つのオプションがあります。
- 同じ名前と物理ファイルレイアウトで空のデータベースを作成し、サーバーをシャットダウンし、空のDBファイルの代わりに添付するファイルを交換して、サーバーを起動できます。データベースは疑わしいモードで起動するはずです。次に、ALTER DATABASE SET EMERGENCYを使用して緊急モードにしてから、DBCCCHECKDBREPAIR_ALLOW_DATA_LOSSを実行できます。これにより、データベースの整合性を保つためにログから可能な限り多くのデータが取得されますが、データベースの整合性を保つために一部のデータを削除する必要がある場合があります。これは、最大のデータを取り戻す可能性が最も高いオプションです。
- CREATE DATABASE FOR ATTACH_REBUILD_LOGを使用して、データベースが元に戻るかどうかを確認できます。データベースが正常にシャットダウンされた場合、成功する可能性があります。ロールバックできなかったトランザクションがある場合、データベースが不整合または破損する可能性もあります。いずれにしても、データベースの整合性を保つためにDBCCCHECKDBREPAIR_ALLOW_DATA_LOSSを実行する必要があります。この場合、SQLServerはログから情報をマイニングしようとはしません。ログの内容は無視されます。処理中のトランザクションがあった場合、ロールバックは不可能であるため、ALLOW_DATA_LOSSが必要になります。
詳細については、以下を参照してください。