• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

DBCC CHECKDB用法 手工修复数据库

mysql 搞代码 4年前 (2022-01-09) 24次浏览 已收录 0个评论

快速修复 DBCC CHECKDB (‘数据库名’, REPAIR_FAST) 重建索引并修复 DBCC CHECKDB (‘数据库名’, REPAIR_REBUILD) 如果必要允许丢失数据修复 DBCC CHECKDB (‘数据库名”, REPAIR_ALLOW_DATA_LOSS) 如果出现错误:未处理修复语句。数据库需处于单用户模式下。

快速修复
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

############################################################
##########################本文来源gaodai$ma#com搞$$代**码网$##################################

手工修复数据库试例

操作步骤:

———————————————————————————————-
进入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


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:DBCC CHECKDB用法 手工修复数据库

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址