数据库备份还原时-Sql Server 检测到基于一致性的逻辑I/O错误解决方案
2010-08-24 23:36 Leason Li 阅读(2024) 评论(1) 编辑 收藏 举报今天在做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
ALTER DATABASE RUM SET MULTI_USER 设置为多用户
go
把其中的RUM换成自己的数据库执行成功后,结果如下:
可喜的是,我用这条命令就解决了问题,但是也有此命令执行不成功的情况,这时用办法2。
2: 删除出问题的表Log(生产环境中可不能这么干哈),然后参照生产环境,新建一个结构和名字一样的表Log,
并导入生产环境中Log表中的数据。OK,问题解决。
作者:leening_li
出处:http://www.cnblogs.com/leening/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。