发布网友 发布时间:2022-04-23 06:20
共1个回答
热心网友 时间:2022-04-09 11:12
在工作中,遇到过一次sql数据库状态"置疑"........ 造成置疑的原因,很可能是因为当时还有节点连接到服务器上, 在断开的瞬间,导致了数据文件的操作和 日至文件的纪录不匹配,不对应.............由于,以前遇到过这样的问题,那时候数据库还不时很大,就使用了数据检查的工具,一条一条纪录的恢复,尽最大可能的恢复数据记录,但是,肯定是会丢失部分数据的......而经过一年的数据海量的增加.sql数据库已经增加到了尽15G,使用数据检查工具恢复起来很慢,就是恢复一晚上,也不已经能够完全恢复.........情急之下,1: 想其他方式,恢复置疑的数据库.....2: 如果1不行,那就,将最近备份的数据库恢复/*解决过程:1.建一个新库newdb2.停掉数据库。删除新库的log文件,讲metadb.mdf覆盖newdb.mdf。3.启动数据库服务器。数据库newdb的状态为“置疑”。4. 允许对系统目录直接修改*/use mastergosp_configure 'allow updates',1go reconfigure with overridegoupdate sysdatabases set status=-32768 where dbid=DB_ID('DB_name')/*5.重建log*/dbcc rebuild_log('DB_name','C:\Program Files\Microsoft SQL Server\MSSQL\Data\DB_name_log.ldf')/*6.dbcc检查 */dbcc checkdb('DB_name')/* 7.设置数据库为正常状态 */sp_dboption 'DB_name','dbo use only','false'/* 8 不允许对系统目录直接修改 */sp_configure 'allow updates',0go reconfigure with overridego如果 SQL Server 因为磁盘可用空间不足,而不能完成数据库的恢复,那么 SQL Server 2000 会返回错误 1105 并且将 sysdatabases 中的 status 列设为置疑。