zoukankan      html  css  js  c++  java
  • sqlserver 调优(三)

    用户数据库质疑状态处理(可能由于机房断电,数据库服务器异常重启后,导致个别数据库状态质疑):

    --修复数据库(置疑)
    -- xxxDB 为需要修复的数据库的名称
    ALTER DATABASE xxxDB SET EMERGENCY
    ALTER DATABASE xxxDB SET SINGLE_USER
    DBCC CheckDB (xxxDB, REPAIR_ALLOW_DATA_LOSS)
    ALTER DATABASE xxxDB SET MULTI_USER

     当初修复完数据库出现库中个别表出现问题时:

    use 需要修复的数据库实体的名称    
    declare @dbname varchar(255)    
    set @dbname='需要修复的数据库的名称'    
    exec sp_dboption @dbname,'single user','true'    
    dbcc checktable('需要修复的数据表的名称',REPAIR_ALLOW_DATA_LOSS)    
    dbcc checktable('需要修复的数据表的名称',REPAIR_REBUILD)    
    ------把’ 需要修复的数据表的名称’更改为执行DBCC CHECKDB时报错的数据表的名称    
    exec sp_dboption @dbname,'single user','false'  

     如果质疑状态的是系统数据库msdb:

    方法一、 风险: 丢失原msdb上所有的数据。

    A服务器为被“置疑”的服务器;B服务器上装有和A服务器相同版本的数据库软件。
    
    步骤1、停止B服务器上的SQL SERVER 服务,拷贝出“msdbdata.mdf”和“msdblog.ldf”文件。
    
    步骤2、停止A服务器上的SQL SERVER 服务,将从B服务器上拷贝出的“msdbdata.mdf”和“msdblog.ldf”文件覆盖掉A服务器上的这两个文件。 3、重新启动A服务器上的SQL SERVER服务。

     方法二 、 风险:丢失原msdb上部分的数据

    若是损坏的是日志文件,则可以通过以下步骤恢复(损坏的是数据文件同理恢复Rebuild Log  需要更改):
    1)停止sqlsever实例,将msdb的数据文件和日志文件拷贝到其他地方 ,删除原来的数据和日志文件
    2)在新服务器上的新实例上新建一个数据库msdbold(用户数据库 ,并且数据文件指定为MSDBData.mdf,日志文件指定为MSDBLog.ldf)
    3)关闭新的数据库实例,删除msdbold的数据和日志文件,将1)步骤拷贝的数据文件MSDBData.mdf放到msdbold的数据文件路径下
    4)开启新的数据库实例则发现msdbold处于质疑状态,之后通过以下步骤恢复msdbold
    use master
    go
    
    alter database msdbold set emergency
    alter database msdbold set single_user with rollback immediate
    
    alter database msdbold Rebuild Log on (name=msdbold_log,filename='E:databaseMSDBLog.ldf')
    go
    
    alter database msdbold set multi_user with rollback immediate
    
    5)之后将新的msdbold的数据文件和日志文件替换掉有问题的数据库实例下的msdb的数据和日志文件即可恢复。
  • 相关阅读:
    java工程文件路径的问题
    to_char
    tnsname.ora
    Linux(Centos)快速搭建SVN
    /etc/profile不生效问题
    不同servlet版本的web.xml的头部信息
    The serializable class XXX does not declare a static final serialVersionUID field of type long的警告
    面试:第六章:面试题收集
    面试:第一章:java基础各种区别
    面试:第二章:各种框架和中间件以及缓存数据库
  • 原文地址:https://www.cnblogs.com/lx823706/p/6897409.html
Copyright © 2011-2022 走看看