3

バックアップデータベースファイル(つまり、test.mdf)がありますが、LDFファイルがありません。SQL Server2008R2はLDFなしでMDFをロードできると言われました。

本当?

ありがとうございました

4

3 に答える 3

5

データベースが正常に切り離されていると仮定すると、 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;
于 2010-10-19T20:10:30.993 に答える
0

別のオプションsp_attach_single_file_dbは、FORATTACH_REBUILD_LOGオプションを指定したCREATEDATABASEコマンドです

于 2010-10-19T20:16:49.827 に答える
0

これは私のために働いています。データベースを表示するために緊急モードを使用しました。

http://forums.asp.net/t/1903548.aspx

2つのオプションがあります。

  1. 同じ名前と物理ファイルレイアウトで空のデータベースを作成し、サーバーをシャットダウンし、空のDBファイルの代わりに添付するファイルを交換して、サーバーを起動できます。データベースは疑わしいモードで起動するはずです。次に、ALTER DATABASE SET EMERGENCYを使用して緊急モードにしてから、DBCCCHECKDBREPAIR_ALLOW_DATA_LOSSを実行できます。これにより、データベースの整合性を保つためにログから可能な限り多くのデータが取得されますが、データベースの整合性を保つために一部のデータを削除する必要がある場合があります。これは、最大のデータを取り戻す可能性が最も高いオプションです。
  2. CREATE DATABASE FOR ATTACH_REBUILD_LOGを使用して、データベースが元に戻るかどうかを確認できます。データベースが正常にシャットダウンされた場合、成功する可能性があります。ロールバックできなかったトランザクションがある場合、データベースが不整合または破損する可能性もあります。いずれにしても、データベースの整合性を保つためにDBCCCHECKDBREPAIR_ALLOW_DATA_LOSSを実行する必要があります。この場合、SQLServerはログから情報をマイニングしようとはしません。ログの内容は無視されます。処理中のトランザクションがあった場合、ロールバックは不可能であるため、ALLOW_DATA_LOSSが必要になります。

詳細については、以下を参照してください。

http://blog.sqlauthority.com/2008/07/21/sql-server-fix-error-9004-an-error-occurred-while-processing-the-log-for-database-if-possible-restore- from-backup-if-a-backup-is-not-available-it-might-be-necessary-to-rebuild-the-log /

于 2014-01-22T08:51:24.663 に答える