日期:2014-05-17  浏览次数:20622 次

请从数据库备份还原该数据库,或者修复它
无法在数据库 'zsx2010' (数据库 ID 为 18)的页 (1:103903) 上重做事务 ID (0:607799) 的日志记录 (4425:1263:2)。页: LSN = (4424:710:1),类型 = 1。日志: OpCode = 4,上下文 2,PrevPageLSN: (4424:1244:2)。请从数据库备份还原该数据库,或者修复它。


数据库zsx2010处在可疑状态,然后我停掉了数据库服务后备份数据库文件,然后删除,接着再拿备份文件附加,就附加不上去了。求解救,在线等……!

------解决方案--------------------
LZ可以私信找我,远程帮你看一下喔.
------解决方案--------------------
引用:
Quote: 引用:

现在数据库恢复了吗

已经恢复了,但是多出来了个不过不影响

我总结下吧,我按照下面的步骤恢复的
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
中间会报一些错误、
5、
alter database 数据库名 set multi_user


还有个问题最后提示:
警告 数据库 'xxx' 的日志已重新生成。已失去事务的一致性。RESTORE 链已断开,服务器不再有以前的日志文件的上下文,因此您需要了解它们的内容。应运行 DBCC CHECKDB 验证物理一致性。数据库已置于 dbo-only 模式。在准备使数据库可用时,需要重置数据库选项,并删除所有多余的日志文件。
还应该怎么处理下比较好,现在就是少了几十条数据。
感谢提供帮助的 阳泉酒家小当家 唐诗三百首 u012173239


接下来,最好是再做一个:

dbcc checkdb(数据库名称)

然后,马上做一个完整的数据库备份

由于这个问题可能是数据库页的损坏导致的,为了修复数据库用了:REPAIR_ALLOW_DATA_LOSS选项,所以在修复时丢失了少量的数据,这个几十条数据,很难再找回来。

以后建议你按时备份数据库,包括:完整备份、差异备份、日志备份,只要有了这些备份,就算是这种问题,也能完全修复的,不会出现数据丢失的情况