zoukankan      html  css  js  c++  java
  • SQL Server 2008 数据库可疑

    今天遇到数据库可疑,以前都是直接删了还原,这次没有最新的备份文件,一起看看脚本怎么解决

     1 --最好一句句执行,方便看到错误
     2 USE MASTER
     3 GO
     4 --开启数据库选项"允许更新"
     5 SP_CONFIGURE 'ALLOW UPDATES',1 RECONFIGURE WITH OVERRIDE
     6 GO
     7 --将数据库状态改为"紧急"
     8 ALTER DATABASE CEM2015 SET EMERGENCY
     9 GO
    10 USE CEM2015
    11 GO
    12 --将数据库设置为单用户模式,不能在 master 或 tempdb 数据库上使用 sp_dboption;   保证仅一个用户连接数据库在
    13 sp_dboption 'CEM2015', 'single user', 'true'
    14 GO
    15 --修复数据库存在的一致性错误与分配错误
    16 DBCC CHECKDB('CEM2015','REPAIR_ALLOW_DATA_LOSS')
    17 GO
    18 --将数据库状态改为"在线"
    19 ALTER DATABASE CEM2015 SET ONLINE
    20 GO
    21 --关闭数据库选项"允许更新"
    22 sp_configure 'allow updates', 0 reconfigure with override
    23 GO
    24 --将数据库设置为多用户模式
    25 sp_dboption 'CEM2015', 'single user', 'false'
    26 GO
    27 
    28 
    29 --以上是数据库可以修复脚本,下面附查询辅助脚本
    30 --查询指定数据库连接信息
    31 SELECT * FROM [Master].[dbo].[SYSPROCESSES] WHERE [DBID] IN (SELECT [DBID]FROM [Master].[dbo].[SYSDATABASES] WHERE NAME='CEM2015')
    32 --查询数据库状态
    33 SELECT state_desc FROM sys.databases WHERE  NAME='CEM2015'
    34 --将数据库设置为单用户模式
    35 USE master;
    36 GO
    37 ALTER DATABASE CEM2015
    38 SET SINGLE_USER
    39 WITH ROLLBACK IMMEDIATE;
    40 GO
    41 --将数据库设置为多用户模式
    42 ALTER DATABASE CEM2015
    43 SET MULTI_USER;
    44 GO

    官方数据库状态定义

    https://msdn.microsoft.com/zh-cn/library/ms190442(v=sql.100).aspx

    网上说的另一种方法:

    1:重新建立一个,一样的数据库,路径名称,文件都一样。

    2:关掉SQL Server服务;

    3:把源文件COPY过来;

    4:开启SQL Server服务,这样问题同样就解决了。

    这种方法不好使可能和环境或者版本有关系,我这试了是没效果的,重新copy之后启动,数据库前面的加号点开报错(数据库一致性之类的错),也就是数据库还是不能用。

    看这逻辑好像只是换了个马甲,实际问题并没修复,不知原理,有知道的网友麻烦科普一下.

  • 相关阅读:
    Cocon90.Db调用方法
    Hotmail Smtp邮箱发送的端口
    Nginx+Lua+Redis构建高并发应用
    Linux安装pear包
    Nginx中if语句中的判断条件
    SqlServer判断表、列不存在则创建
    Nginx配置参数详解
    Linux中在线安装Mysql和修改密码设置服务启动
    linux中fuser用法详解
    Java中创建访问HTTPS的自签名证书的方法
  • 原文地址:https://www.cnblogs.com/sky-gfan/p/4682773.html
Copyright © 2011-2022 走看看