执行Transact-SQL语句或批处理是发生了异常。(micorsoft.Sqlserver.Smo)
无法在数据库'xxx'(数据库ID为161)的页(1:1277)上重做事务ID(0:442789)的日志记录(1541:517:2)。页:LSN=(1541:479:2),类型=1.日志:opcode=4,上下文2,prevpageLSN:(1541:506:2)。请从数据库备份还原该数据库,或者修复它。
今天遇到了一个sqlserver数据库质疑的问题,先尝试了分离重新附加,发现无法附加,出现了错误,看提醒可能跟日志有关系,尝试附加时去除日志文件,也仍然不能附加。于是又新建同名数据库,只替换数据库文件,仍然无法正常使用,于是只有尝试修复了。
总结操作步骤。
1、分离数据库。将数据库文件和日志都单独拷贝一份,然后删除。如果无法分离就只能停止数据库服务。
2、创建同名数据库,数据库和日志的逻辑文件名与原有一致。
3、脱机数据库,用之前的数据库文件和日志替换掉。
4、联机,然后打开查询分析器进行修复。
alter database 数据库名 set emergency go alter database 数据库名 set single_user go --修复 dbcc checkdb(数据库名,REPAIR_ALLOW_DATA_LOSS) go dbcc checkdb(数据库,REPAIR_REBUILD) go
这期间可能会报一些错误,执行完以后再将数据库恢复正常模式,并做一次完整备份。
alter database 数据库名 set multi_user
后话:如果数据非常重要,要经常备份数据库,包括:完整备份、差异备份、日志备份,只要有了这些备份,就算是这种问题,也能完全修复的,不会出现数据丢失的情况。
» 本文链接地址:https://blog.mydns.vip/1619.html
最新评论
我的站目前每天120个IP,其中刷的是100个。 不知道为什么升级到4H8G5M的标准服务器还是偶尔会崩,CPU占满,但是内存一般这种时候只占50%左右,这是为什么呢?max_children我也设
麻烦发下检测工具
让我下载