单文件恢复数据库,dbcc checkdb发现8956错误,使用REPAIR_REBUILD无法修复?如何解决!

blactte 2003-07-22 01:58:48
日志文件被删除
采用单文件mdf修复数据库后
用dbcc检查数据库
发现8956等索引损坏错误,采用dbcc checkdb('db',REPAIR_REBUILD)无法修复
如何解决

修复方法如下
----------------------------------
新建一同名数据库(文件名,文件组都和原来的一样),然后停止数据库服务,用原来文件替换新建的数

据库文件,启动数据库,该数据库被设未suspect

然后把数据库改成紧急模式:
sp_configure 'allow', 1
reconfigure with override
update sysdatabases set status = 32768 where name = '数据库名'

把LDF文件改名,再执行
DBCC REBUILD_LOG ('数据库名', 'E:\fdzz\database\fdzz1204_Log.LDF' )

恢复数据库紧急模式
update sysdatabases set status = 0 where name = '数据库名'
执行
restore database 数据库名 WITH RECOVERY
sp_configure 'allow', 0
reconfigure with override
...全文
336 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
blactte 2003-07-23
  • 打赏
  • 举报
回复
up
blactte 2003-07-23
  • 打赏
  • 举报
回复
不好意思,昨天忙了一天没来看帖子
我听人说可以在将mdf文件拷贝到其他数据库上进行附加,然后再移植回来就可以了。
我试了一下,做了一个测试数据库也可以
但是我有时候也遇到过只有mdf文件不能附加的情况,不知什么时候会出现这种情况,上面的那种方法是否安全,请大家帮忙。
hjb111 2003-07-22
  • 打赏
  • 举报
回复
up
handsomeduke 2003-07-22
  • 打赏
  • 举报
回复
学习学习!
jy2004 2003-07-22
  • 打赏
  • 举报
回复
进入紧急恢复模式
blactte 2003-07-22
  • 打赏
  • 举报
回复
up
pengdali 2003-07-22
  • 打赏
  • 举报
回复
数据库日志文件丢失时的恢复步骤

设置数据库为紧急模式
ü 停掉SQL Server服务;

ü 把应用数据库的数据文件XXX_Data.mdf移走;

ü 重新建立一个同名的数据库XXX;

ü 停掉SQL服务;

ü 把原来的数据文件再覆盖回来;

ü 运行以下语句,把该数据库设置为紧急模式;

运行“Use Master

Go

sp_configure 'allow updates', 1

reconfigure with override

Go”

执行结果:

DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。

已将配置选项 'allow updates' 从 0 改为 1。请运行 RECONFIGURE 语句以安装。



接着运行“update sysdatabases set status = 32768 where name = 'XXX'”

执行结果:

(所影响的行数为 1 行)



ü 重启SQL Server服务;

ü 运行以下语句,把应用数据库设置为Single User模式;

运行“sp_dboption 'XXX', 'single user', 'true'”

执行结果:

命令已成功完成。



ü 做DBCC CHECKDB;

运行“DBCC CHECKDB('XXX')”

执行结果:

'XXX' 的 DBCC 结果。

'sysobjects' 的 DBCC 结果。

对象 'sysobjects' 有 273 行,这些行位于 5 页中。

'sysindexes' 的 DBCC 结果。

对象 'sysindexes' 有 202 行,这些行位于 7 页中。

'syscolumns' 的 DBCC 结果。

………



ü 运行以下语句把系统表的修改选项关掉;

运行“sp_resetstatus "XXX"

go

sp_configure 'allow updates', 0

reconfigure with override

Go”

执行结果:

在 sysdatabases 中更新数据库 'XXX' 的条目之前,模式 = 0,状态 = 28(状态 suspect_bit = 0),

没有更新 sysdatabases 中的任何行,因为已正确地重置了模式和状态。没有错误,未进行任何更改。

DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。

已将配置选项 'allow updates' 从 1 改为 0。请运行 RECONFIGURE 语句以安装
caiyunxia 2003-07-22
  • 打赏
  • 举报
回复
sp_resetstatus

34,597

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧