我有一个备份数据库文件(即test.mdf),但是,我没有LDF文件。有人告诉我,SQL Server 2008 R2可以在没有LDF的情况下加载MDF。
这是真的吗?
谢谢
答案 0 :(得分:5)
假设数据库干净利落,您应该能够使用sp_attach_single_file_db或更新的CREATE DATABASE...FOR ATTACH语法。
EXEC sp_attach_single_file_db
@dbname = 'YourDB',
@physname = N'C:\YourFile.mdf';
OR
CREATE DATABASE YourDB
ON (FILENAME = 'c:\YourFile.mdf')
FOR ATTACH_REBUILD_LOG;
答案 1 :(得分:0)
sp_attach_single_file_db
的另一个选项是带有FOR ATTACH_REBUILD_LOG选项的CREATE DATABASE命令。
答案 2 :(得分:0)
这对我有用。我使用EMERGENCY模式查看数据库:
http://forums.asp.net/t/1903548.aspx
您有两种选择:
- 您可以使用相同的名称和物理文件布局创建一个空数据库,关闭服务器,交换您想要的文件 附加空DB文件,然后启动服务器。该 数据库应该以可疑模式出现。然后你可以ALTER DATABASE SET EMERGENCY将其置于紧急模式,然后运行DBCC CHECKDB REPAIR_ALLOW_DATA_LOSS。这将获取尽可能多的数据 可能在日志之外使数据库保持一致,但可能有 删除一些数据以使数据库保持一致。这是 最有可能获得最大数据的选项。
- 您可以尝试使用CREATE DATABASE FOR ATTACH_REBUILD_LOG查看是否会将其恢复。如果数据库干净利落 下来,你可能会成功。还有机会 如果有交易,数据库将不一致或损坏 无法回滚。你应该在任何情况下运行DBCC CHECKDB REPAIR_ALLOW_DATA_LOSS使数据库保持一致。在 此事件,SQL Server将不会尝试从中挖掘信息 日志。它将忽略日志的内容。如果有的话 进程中的事务没有回滚是可能的,所以 ALLOW_DATA_LOSS将是必需的。
醇>如需更多信息,请尝试参考: