检测修复数据库(分配错误)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
检测数据库和修复数据库的方法
1、(所有操作前先将数据库备份)在SQL查询分析器中执行以下语句:(注以下所用的dbname 为数据库名称,请客户手工改为自己的数据库名)
use dbname
dbcc checkdb
2、查看查询结果,有很多红色字体显示,最后结果有这样的提示:
CHECKDB 发现了x个分配错误和x 个一致性错误(在数据库'dbname' 中)。
一般情况下,引起分配错误的原因是磁盘损坏或突然停电;一致性错误可能是数据库中的表或索引坏,一般都可修复。
3、查看红色字体,并把有错误的数据库表名记录下来,或把索引损坏的表名记录下来。
4、把数据库设置为单用户模式,直接在查询分析器中执行以下语句即可:
EXEC sp_dboption 'dbname', 'single user', 'TRUE'
5、进入查询分析器执行如下语句:(分别执行)
A.
use dbname
dbcc checkdb ('dbname',REPAIR_REBUILD)----------------修复数据库索引
B.
use dbname
dbcc checkdb('dbname',repair_allow_data_loss)-------修复数据库
-----注意:这里的A、B可以先执行B后执行A,也可以先执行A,后执行B
6、再执行:dbcc checkdb,检测数据库,出现结果为:
CHECKDB 发现了0个分配错误和0个一致性错误(在数据库'dbname' 中)。
数据库已经修复完毕。
7、取消单用户模式,即直接在查询分析器中执行以下语句即可:
EXEC sp_dboption 'dbname', 'single user','FALSE'
现在可以正常使用了!
8、再用语句
use dbname
dbcc checkdb
检查还是有问题(如:POS_t_daysum 还有问题)可以执行下面操作1.
2.在这里点击编辑
3.点机编辑SQL(E)
4.点击执行(E)
执行成功后,再使用
use dbname
dbcc checkdb
执行后看是否还有分配错误和一致性错误到这里应该是可以了的