ITdaan
首页
最新
原创
最火
收藏夹
写博客
关于
搜索答案
搜索本文相关内容
DBCC CHECKDB用法 手工修复数据库
本文转载自
zhejingyuan
查看原文
2013/09/14
2
数据
/
用法
/
修复
/
数据库
收藏
0
0
快速修复
DBCC CHECKDB ('数据库名', REPAIR_FAST)
重建索引并修复
DBCC CHECKDB ('数据库名', REPAIR_REBUILD)
如果必要允许丢失数据修复
DBCC CHECKDB ('数据库名'', REPAIR_ALLOW_DATA_LOSS)
如果出现错误:未处理修复语句。数据库需处于单用户模式下。
可以先启用单用户模式,方法如下执行存储过程:
Use master
go
sp_dboption 数据库名, single, true
--更改成单用户
alter database ams2 set single_user with rollback immediate
--还原数据库为多用户模式
alter database ams2 set multi_user with rollback immediate
手工修复数据库试例
操作步骤:
----------------------------------------------------------------------------------------------
进入SQL查询分析器,执行语句:
--检查数据库完整性
dbcc checkdb('ams1')
执行结果:
---------------------------------------------------------------
CHECKDB 发现了 0 个分配错误和 11 个一致性错误(在数据库 'ams1' 中)。
repair_allow_data_loss 是最低的修复级别(对于由 DBCC CHECKDB (ams1 ) 发现的错误而言)。
DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。
说明数据库确实有问题,11个错误,找到错误地方:
-------------------------------------------------------------------------------
对象 'Tb_Archives_File_1' 有 3777 行,这些行位于 172 页中。
CHECKDB 发现了 0 个分配错误和 2 个一致性错误(在表 'Tb_Archives_File_1' 中,该表的对象 ID 为 907150277)。
表明 'Tb_Archives_File_1' 表确实有2个错误,难怪一查询就要死机,于是运行语句进行表修复:
--------------------------------------------------------------------------------------
--以repair_allow_data_loss级别修复表
dbcc checktable('Tb_Archives_File_1',repair_allow_data_loss)
go
执行结果:
服务器: 消息 7919,级别 16,状态 3,行 2
未处理修复语句。数据库需要处于单用户模式下。
DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。
---------------------------------------------------------------------------------------------------
需要将数据库改为"单用户模式",于是再执行:
--更改成单用户
alter database ams2 set single_user with rollback immediate
go
--已repair_allow_data_loss级别修复表
dbcc checktable('Tb_Archives_File_1',repair_allow_data_loss)
go
--若还有问题,修复索引表
DBCC DBREINDEX('Tb_Archives_File_1')
--再修复表
DBCC CHECKTABLE('Tb_Archives_File_1')
直到返回的结果没有错误!
--查询是否正常
select * from Tb_Archives_File_1
再查询那张错误表,不报错,也不死机了,数据也完好无损.....哈哈....
--还原数据库为多用户模式
alter database ams2 set multi_user with rollback immediate
智能推荐
×
注意!
本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。
猜您在找
DBCC CHECKDB用法 手工修复数据库
用DBCC CHECKDB修复数据库文件物理损坏
在用DBCC CHECKDB('bbs', REPAIR_REBUILD) 修复数据库过程中有如下info表的错误提示文字,请问该如何修复这个表呢?谢谢!
使用 DBCC 修复数据库表
手工创建数据库
【No41】让Oracle跑得更快2 基于海量数据的数据库设计与优化
【No52】动力节点MySQL数据库视频 86集下载
【No73】Mongodb/Redis/HBase NoSql视频教程2017数据库自学教程
赞助商链接
© 2014-2019 ITdaan.com
粤ICP备14056181号
×
收藏本文
添加到收藏夹 *
赞助商广告