我们的 SQL 服务器崩溃了,数据库处于不一致模式。我们丢失了事务日志文件,最后生成的备份太旧了。
我在 Google 上搜索了这个问题,但我看到的大多数相关文章都提到了 SQL 2000
我看到了这篇文章 https://stackoverflow.com/questions/773059/how-to-recover-database-from-mdf-in-sql-server-2005 并运行以下步骤:
- 分离数据库并将您的 mdf 移动到保存位置。
- 创建具有相同名称、相同文件、相同文件位置和相同文件大小的新数据库。
- 停止 SQL 服务器。
- 将刚刚创建的 DB 的 mdf 文件交换为您保存的文件。
- 启动 SQL。DB 将变为可疑。
- 更改数据库 yourdb 设置紧急状态
- 更改数据库 yourdb 设置 SINGLE_USER
- DBCC CHECKDB (你的数据库,REPAIR_ALLOW_DATA_LOSS)
- 更改数据库 yourdb 设置 MULTI_USER
- 更改数据库 yourdb 设置在线 "
我已经到了第 8 步 [DBCC CHECKDB (yourdb, REPAIR_ALLOW_DATA_LOSS)],但每次我重复该过程时“DBCC CHECKDB”似乎都无法完成工作。
我收到错误“查询完成但有错误”以及“数据库‘dbname’正在恢复。等待恢复完成。”
任何帮助都将不胜感激谢谢罗恩
答案1
请看这里:在没有 ldf 文件的情况下恢复数据库使用 SP_ATTACH_SINGLE_FILE_DB 过程
答案2
可以通过执行以下命令来完成
create database exampledb on
(filename=‘C:\ProgramFiles\Microsoft SQL Server\MSSQL.1\MSSQL\DATA\exampledb.mdf’)
For Attach_Rebuild_log
Go
或者.mdf
也可以不使用 SQL Server Management Studio 来附加文件.ldf
。请查看此博客http://www.sqlserverlogexplorer.com/how-to-attach-mdf-file-without-ldf-file/