数据库备份还原时-Sql Server 检测到基于一致性的逻辑I/O错误解决方案
时间:2010-08-24 来源:leening
今天在做SharePoint迁移的时候,遇到了一个新问题,其中用到的自定义数据库(不是新建SharePoint网站时自动生成的数据库)
从生产环境中备份.BAK文件在新SharePoint服务器上还原一切OK,sql server 也提示全部还原成功。
没有想到的是,在做一些layouts页面功能测试的时候,其中一个记录Log的页面打不开,提示如下错误:
很明显这是数据库中的某个表结构被损坏了,数据的一致性和完整性被破坏,找到所在的数据表logs,执行
select * from logs
还真是,执行完后,同样报类似的错误,很明显,这个表还原后,有问题,所以数据库的备份还原机制并不一定能成功啊。
解决方法有两个,如下:
1: 执行如下sql语句
use RUM
go
ALTER DATABASE RUM SET SINGLE_USER
DBCC CHECKDB (RUM, repair_allow_data_loss) with NO_INFOMSGS
go
把其中的RUM换成自己的数据库执行成功后,结果如下:
可喜的是,我用这条命令就解决了问题,但是也有此命令执行不成功的情况,这时用办法2。
2: 删除出问题的表Log(生产环境中可不能这么干哈),然后参照生产环境,新建一个结构和名字一样的表Log,
并导入生产环境中Log表中的数据。OK,问题解决。
相关阅读 更多 +