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

如何修复数据库状态_sqlserver

sqlserver 搞代码 3年前 (2018-06-16) 73次浏览 已收录 0个评论

HOW TO FIX sqlserver DATABASE SUSPECT?
如何修复数据库状态”置疑”?

**********************************************************

http://www.gaodaima.com/35820.html如何修复数据库状态_sqlserver

Author:黄山光明顶

mail:[email protected]

version:1.0.0

date:2004-1-30

(如需转载,请注明出处!,如果有问题请发MAIL给我:-))

***********************************************************
在MS SQLSERVER中一直有这样的问题,SQLSERVER的状态”置疑”,我们先来分析一下SQLSERVER数据库“置疑”的原因:
   1.错误的删除日志;
   2.硬件(HD)损坏,造成日志和数据文件写错误;
   3.硬盘的空间不够,比如日志文件过大;

解决办法:

这是最简单的办法是有数据库的全备份,然后恢复即可.
步骤:

1. 删除原始的数据库:
     USE MASTER
     GO 
     DROP DATABASE DB_SUEPECT
    

2.建立同名的数据库:
        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
    

3.恢复数据库:
      RESTORE DATABASE DB_SUSPECT
     FROM DBNAME_BACKUP.DAT
  

4.数据库完整性检测:
       DBCC CHECKDB(‘DB_SUSPECT’)

5.重新启动MSSQLSERVER服务.

如果没有全备份,那就要用一些特殊的方法:

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

欢迎大家阅读《如何修复数据库状态_sqlserver,跪求各位点评,若觉得好的话请收藏本文,by 搞代码


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

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

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

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