数据库备份还原时-Sql Server 检测到基于一致性的逻辑I/O错误解决方案

今天在做SharePoint迁移的时候,遇到了一个新问题,其中用到的自定义数据库(不是新建SharePoint网站时自动生成的数据库)

从生产环境中备份.BAK文件在新SharePoint服务器上还原一切OK,sql server 也提示全部还原成功。

没有想到的是,在做一些layouts页面功能测试的时候,其中一个记录Log的页面打不开,提示如下错误:

截图01 

很明显这是数据库中的某个表结构被损坏了,数据的一致性和完整性被破坏,找到所在的数据表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换成自己的数据库执行成功后,结果如下:

截图00

可喜的是,我用这条命令就解决了问题,但是也有此命令执行不成功的情况,这时用办法2。

2: 删除出问题的表Log(生产环境中可不能这么干哈),然后参照生产环境,新建一个结构和名字一样的表Log,

并导入生产环境中Log表中的数据。OK,问题解决。

转载于:https://www.cnblogs.com/leening/archive/2010/08/24/1807700.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值