我的数据库突然停止工作,从检查错误日志中它说主数据库已损坏。
所以我尝试使用以下命令重建系统数据库:
setup /ACTION=REBUILDDATABASE /QUIET
/INSTANCENAME=<instance name> /SQLSYSADMINACCOUNTS=<accounts>
运行命令后,数据库服务器又开始工作了,但是我所有的数据库都找不到了。我真的需要一些关于我没有备份数据库的想法。
我认为数据库文件(mdf、ldf、ndf)仍在我的本地驱动器上,因此是否可以将这些文件重新链接到数据库?
更新
我尝试在实例上创建一个同名的数据库并收到错误
Create failed for Database 'db'. (Microsoft.SqlServer.Smo)
Cannot create file 'D:\Program Files\Microsoft SQL Server\MSSQL10_50.db\MSSQL\DATA\db.mdf' because it already exists. Change the file path or the file name, and retry the operation.
CREATE DATABASE failed. Some file names listed could not be created. Check related errors. (Microsoft SQL Server, Error: 5170)
这证明了我认为文件仍然存在的想法。那么如何将其重建/恢复到我的数据库中呢?
您可以尝试使用这些文件附加丢失的数据库。您可以右键单击 Management Studio 中的数据库文件夹并选择“附加”。
另一种选择,也是我通常会选择的选择,是使用您拥有的任何备份。但是,您会遇到一些数据丢失。如果您对数据库使用完全恢复模式,您应该能够恢复到上次的事务日志备份。否则,如果您使用的是简单恢复模式,您只能从最新的完整备份中恢复。
3.点击添加
4.转到D:\Program Files\Microsoft SQL Server\MSSQL10_50.db\MSSQL\DATA 5.选择db.mdf 会自动添加对应的ldf文件
如果由于 mdf 文件损坏而失败,您可以尝试使用读取损坏的 mdf 文件的工具,例如ApexSQL Recover