• 如何修复数据库状态(转载)


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

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

    Author:黄山光明顶

    mail:leimin@jxfw.com

    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

  • 相关阅读:
    Spring Boot实现发送邮件
    IDEA thymeleaf ${xxx.xxx}表达式报错,红色波浪线
    解决springboot——集成 mybatis遇到的问题:No MyBatis mapper was found in '[com.example.demo]' package...
    解决Intellij IDEA中Mybatis Mapper自动注入警告
    System.gc()和Runtime.gc()的区别
    Java中定时器相关实现的介绍与对比之:Timer和TimerTask
    markdown语法介绍
    Java VisualVM使用
    Linux系统负载查询
    Kafka高性能吞吐关键技术分析
  • 原文地址:https://www.cnblogs.com/Ammy/p/1522574.html
Copyright © 2020-2023  润新知