数据库突然变成“置疑”?别慌,这种情况我也遇过不少次。说白了,就是数据库出问题了,系统一脸懵逼,不知道该不该继续用它。比较常见的是断电、硬盘抽风,或者数据库没好好关就被强退了。嗯,像.MDF 和.LDF 文件一损坏,SQL Server 立马给你整成置疑状态。
你可以先用 SSMS 看看状态是不是“置疑”,确认后就可以动手了。第一步,切成单用户模式,用这个命令:
ALTER DATABASE [数据库名] SET SINGLE_USER WITH ROLLBACK IMMEDIATE
就要开始排查物理文件了。.MDF 和 .LDF 有没丢?有没有损坏?有备份就赶紧用上,没备份就试试看第三方修复工具(下方我列了一堆靠谱的链接)。
接下来跑个 DBCC CHECKDB
,看能不能修一下逻辑错误:
DBCC CHECKDB (数据库名, REPAIR_ALLOW_DATA_LOSS)
记得这玩意儿会丢数据,先备份哈。
修完文件可以试试重新附加数据库。如果日志文件不行了,用:
CREATE DATABASE [数据库名] FOR ATTACH_REBUILD_LOG
再不行就换成简单恢复模式清下日志,或去操作系统日志看看有没有啥异常提示。
哦对了,如果你还有之前的完整备份,就别硬修了,直接恢复最快。如果你刚好在找修复工具,可以看看这些:
如果你做后端、运维或者数据库相关,平时真得养成定时备份的习惯。断电这种事,真是防不胜防啊。