12
返回列表 发新帖
楼主: guoyunzhi

[精华] 如何将置疑的数据库恢复啊?急

[复制链接]
论坛徽章:
0
11#
发表于 2004-9-27 15:11 | 只看该作者
参考这个做(转自CSDN):
1.设置数据库为紧急模式
       Use Master
       GO
       sp_configure 'allow updates', 1
       reconfigure with override
      GO
      UPDATE sysdatabases SET status = 32768 where name = 'DB_SUSPECT'
      GO

2.停掉SQL Server服务:
     NET STOP MSSQLSERVER

3.把原始数据库的数据文件DBNAME_DAT.MDF,DBNAME_LOG.LDF移走:

4.启动SQL Server服务:
      NET START MSSQLSERVER

5.重新建立一个同名的数据库DB_SUSPECT;

       USE master
       GO
       CREATE DATABASE DB_SUSPECT
        ON
         ( NAME = DBNAME_DAT,
           FILENAME = 'C:',
           SIZE = 10,
            FILEGROWTH = 5 )
           LOG ON
          ( NAME = 'DBNAME_LOG',
           FILENAME = 'g:',
           SIZE = 5MB,
           FILEGROWTH = 5MB )
           GO


6.设置数据库运行在单用户的模式:
         USE MASTER
        GO
        ALTER DATABASE DB_SUSPECT SET SINGLE_USER
        GO

7.停掉SQL服务:
     NET STOP MSSQLSERVER

8.把原来的数据文件再覆盖回来:


9.启动SQL Server服务:
      NET START MSSQLSERVER

10.重新设置SQLSERVER的状态:
         USE MASTER
        GO
        EXEC sp_resetstatus "DB_SUSPECT"

11.数据库完整性检测:
        DBCC CHECKDB('DB_SUSPECT')

12.恢复数据库为多用户模式:
        USE MASTER
        GO
        ALTER DATABASE DB_SUSPECT SET MULTI_USER
       GO

13.恢复SQLSERVER原始的配置:
      USE MATER

    GO      

    UPDATE sysdatabases SET status = 4194320 where name = 'DB_SUSPECT'
    GO

14.配置SQLSERVER不允许更新系统表:
      USE MASTER
     GO
      sp_configure 'allow updates', 0
      reconfigure with override
     GO

15.重新启动MSSQLSERVER服务:

     最好重新启动操作系统

16.备份数据库:

   可以通过SQLSERVER企业管理器或T-SQL.需要备份MASTER和DB_SUSPECT

使用道具 举报

回复
论坛徽章:
0
12#
发表于 2004-10-11 12:44 | 只看该作者

我的SQL6.5没有sp_resetstatus命令

怎末办?还有其他方法吗?

使用道具 举报

回复
论坛徽章:
14
会员2007贡献徽章
日期:2007-09-26 18:42:10生肖徽章2007版:鸡
日期:2009-10-29 16:15:30生肖徽章2007版:兔
日期:2009-04-14 19:32:34生肖徽章2007版:猴
日期:2008-11-28 10:39:32奥运会纪念徽章:摔跤
日期:2008-08-12 10:59:32奥运会纪念徽章:艺术体操
日期:2008-08-07 09:43:42奥运会纪念徽章:举重
日期:2008-05-04 17:12:35生肖徽章2007版:鼠
日期:2008-01-02 17:35:53生肖徽章2007版:牛
日期:2008-01-02 17:35:53生肖徽章2007版:虎
日期:2008-01-02 17:35:53
13#
发表于 2008-6-25 13:20 | 只看该作者
最终那个方法成功了啊?

使用道具 举报

回复
论坛徽章:
0
14#
发表于 2008-7-21 18:02 | 只看该作者

回复 #11 zonelive 的帖子

大哥,按你的方法,到10.重新设置SQLSERVER的状态:
         USE MASTER
        GO
        EXEC sp_resetstatus "DB_SUSPECT"
这一步,出现:
在 sysdatabases 中更新数据库 '20080721' 的条目之前,模式 = 0,状态 = 4112(状态 suspect_bit = 0),
没有更新 sysdatabases 中的任何行,因为已正确地重置了模式和状态。没有错误,未进行任何更改。
这样的错误啊!是什么原因啊?而且也不能恢复为多用户了!
急回啊!
Q:9689046

使用道具 举报

回复
论坛徽章:
0
15#
发表于 2008-7-22 08:24 | 只看该作者
不知道质疑情况下能不能备份尾部日志,可以尝试先,然后在SQL Server 2005下先将数据库置为单用户紧急模式,checkdb试试看,一般来说都可以恢复,如果发现是数据文件被破坏,最好加上REPAIR_ALLOW_DATA_LOSS,如果是日志文件被破坏,可以考虑重建。

使用道具 举报

回复
论坛徽章:
54
秀才
日期:2017-02-22 15:18:002015年新春福章
日期:2015-03-06 11:57:31懒羊羊
日期:2015-03-04 14:48:16马上有对象
日期:2014-10-24 17:37:552014年世界杯参赛球队: 比利时
日期:2014-08-05 11:35:382014年世界杯参赛球队: 阿根廷
日期:2014-07-15 10:49:33马上有车
日期:2014-02-18 16:41:112014年新春福章
日期:2014-02-18 16:41:11路虎
日期:2014-01-02 12:55:56ITPUB社区12周年站庆徽章
日期:2013-10-08 15:00:34
16#
发表于 2008-7-22 09:03 | 只看该作者
偶曾修复过6.5DB,发来试试

使用道具 举报

回复
论坛徽章:
1
设计板块每日发贴之星
日期:2008-10-20 01:01:02
17#
发表于 2008-12-17 17:31 | 只看该作者
多按照楼上的方式尝试一下,看运气如何吧!good luck

使用道具 举报

回复
论坛徽章:
0
18#
发表于 2017-11-6 16:14 | 只看该作者
如果是Mdf损坏,可以利用工具直接读取 DataPage .生成新database.再附加。就可以直接使用啦。QQ:80554803

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表