SQL SERVER数据库修复
来源:互联网 发布:苏州seo关键词优化 编辑:程序博客网 时间:2024/04/29 11:04
数据库错误如下:
消息 824,级别 24,状态 2,第 2 行
SQL Server 检测到基于一致性的逻辑 I/O 错误 pageid 不正确(应为 1:143744,但实际为 24490:1539394346)。在文件 'E:\数据库\ET.mdf' 中、偏移量为 0x00000046300000 的位置对数据库 ID 14 中的页 (1:143744) 执行 读取 期间,发生了该错误。SQL Server 错误日志或系统事件日志中的其他消息可能提供了更详细信息。这是一个威胁数据库完整性的严重错误条件,必须立即纠正。请执行完整的数据库一致性检查(DBCC CHECKDB)。此错误可以由许多因素导致;有关详细信息,请参阅 SQL Server 联机丛书
解决方式如下:
出现上述问题的原因大致为高速读写的时候出现了中断等现象导致的一致性问题,最直接的做法就是忽略此不一致,当然修复后会有少数数据丢失。修复基本步骤为三个环节,第一是将对应的数据库改为单用户,第二步是通过DBCC CHECKDB忽略不一致,第三步则修改数据库为多用户。基本没有问题,可是仍然会有意外,所以在操作之前自己做好打算。
第一步:使用ManagementStudio连接数据库将其改为单用户;
执行查询语句
ALTER DATABASE database_name SET SINGLE_USER如果此时有很多连接,那么此操作异常慢,有的人则写存储过程将连接都关闭,确实可行,可是有最简便的方式,如下图:
找到如下图位置:
确定之后就会弹出框让你确定是否关闭所有连接,如下:
确定即可,很快就好了。
第二步:执行检查,下面的SQL是本人常用的,目前没有问题,可能不同的场景用法不一样。
DBCC CHECKDB ('database_name', repair_allow_data_loss) with NO_INFOMSGS
操作完成后即可恢复多用户操作了。
第三步:恢复为多用户
ALTER DATABASE database_name SET MULTI_USER这一步基本没有问题,因为前面是单用户访问,如果有另外一个连接不小心连接进来,那么你就无法操作了,因为已经有一个连接。常用的做法是强制杀掉那个连接,同样有部分人可能会写存储过程,然而我不想在生成环境做过多的尝试,所以用ManagementStudio自带的活动和监视器去做。打开ManagementStudio操作如下:
点开活动和监视器后进入:
选中对应的数据库,右键出现如下:
终止进程就杀死了那个单用户的占用了,后就可以执行你的多用户修改语句了。
到此为止操作成功,不过不同的环境和出错的原因不一致,如要操作还是要慎重的。祝好运
- SQL SERVER数据库修复
- SQL SERVER数据库修复经验
- 用SQL语句修复SQL Server数据库
- SQL SERVER 2005 数据库置疑修复
- 管家婆SQL SERVER数据库修复案例
- sql server数据库 18456错误修复
- 如何用SQL语句完成SQL Server数据库的修复
- 【数据库SQL】SQL Server 200520082008R2修复步骤
- Sql Server 2005 数据库的检查与修复
- 修复数据库(sql server)方法及步骤 (通用)
- 如何在SQL Server 2005中修复损坏的数据库
- sql server 2008 数据库置疑的修复方法
- 如何在SQL Server 2005中修复损坏的数据库
- 修复被SQL Server 2005置疑的数据库
- MS SQL Server 2005数据库可疑、置疑修复方法
- MS SQL Server MSDB等系统数据库损坏的修复
- SQL Server数据库损坏、检测以及简单的修复办法
- SQL Server 2008 系统数据库master 修复 还原
- JQuery获取radio中值的办法
- java 自定义注解
- 查看ORC锁
- 互联网协议入门(二)
- 持久化存储解决方案MagicalRecord使用入门
- SQL SERVER数据库修复
- HTML/CSS中有序<ol>、无序<ul>、定义列表用法详解
- OC中的可变字典
- 频繁模式挖掘
- 算法【6】:堆排序
- 运维开发工程师技能修炼
- android 设置边框只显示部分线条
- 文章标题
- iOS 推送响应