找回密码
 注册账号

QQ登录

只需一步,快速开始

手机号码,快捷登录

手机号码,快捷登录

初学者课程:T3自学|T6自学|U8自学软件下载课件下载工具下载资料:通资料|U8资料|NC|培训|年结积分规则 | 使用常见问题Q&A
知识库:U8 | | NC | U9 | OA | 政务U8|U9|NCC|NC65|NC65客开|NCC客开新手必读 | 任务 | 快速增金币用友QQ群[微信群]
查看: 8957|回复: 27

[数据库知识] 自己手动修复“置疑”的数据库

  [复制链接]
发表于 2009-3-10 14:38:25 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册账号

×
SQLSERVER数据库"置疑"的原因大致上为以下3点:
   1.错误的删除日志;
   2.硬件(HD)损坏,造成日志和数据文件写错误;
   3.硬盘的空间不够,比如日志文件过大;
如果没有数据库的完全备份,可以通过以下步骤来进行“置疑”数据的修复:
 楼主| 发表于 2009-3-10 14:39:59 | 显示全部楼层
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
发表于 2009-3-11 10:44:42 | 显示全部楼层
{:3_47:}2楼高手!
发表于 2009-3-17 23:06:45 | 显示全部楼层
真是高手,但不知如果操作不好,对数据库有没有影响呀
发表于 2009-3-18 13:03:15 | 显示全部楼层
搞不懂啊,头都大了
发表于 2009-3-19 10:41:11 | 显示全部楼层
不懂啊,头都大了
发表于 2009-3-20 12:15:10 | 显示全部楼层
不管三七二十一 收藏线··
曾经这样修复过··
发表于 2009-4-4 18:01:26 | 显示全部楼层
貌似很复杂
发表于 2009-4-6 11:37:39 | 显示全部楼层
有时候置疑后,通过分离附加操作就行,不行的话就要用脚本刷了
发表于 2009-9-8 15:31:04 | 显示全部楼层
回去试一试
发表于 2009-9-18 16:21:47 | 显示全部楼层
相当地专业,专业意味复杂、精密
发表于 2009-12-15 11:20:06 | 显示全部楼层
太复杂了,换个简单的嘛
发表于 2009-12-15 13:58:39 | 显示全部楼层
高手。收藏此贴。
发表于 2010-1-12 10:08:42 | 显示全部楼层
太复杂了,但明白的话做起来很简单,就是不知道能用不!!!!!
发表于 2010-1-17 11:13:12 | 显示全部楼层
过于复杂,全命令行操作,
您需要登录后才可以回帖 登录 | 注册账号

本版积分规则

QQ|站长微信|Archiver|手机版|小黑屋|用友之家 ( 蜀ICP备07505338号|51072502110008 )

GMT+8, 2024-11-26 19:26 , Processed in 0.086483 second(s), 12 queries , Gzip On, Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表