zoukankan      html  css  js  c++  java
  • 详解SQL Server数据修复命令DBCC的使用

    严重级别为 21 表示可能存在数据损坏。 可能的原因包括损坏的页链、损坏的 IAM 或该对象的 sys.objects目录视图中存在无效条目。 这些错误通常由硬件或磁盘设备驱动程序故障而引起。 

    MS Sql Server 提供了很多关于数据库修复的命令,当MS Sql Server 数据库遭到质疑或者是有的无法完成读取时可以尝试这些修复命令。

     1. DBCC CHECKDB

      重启服务器

        use master
        declare @databasename varchar(255)
        set @databasename=’需要修复的数据库实体的名称’
        exec sp_dboption @databasename, N’single’, N’true’ –将目标数据库置为单用户状态
        dbcc checkdb(@databasename,REPAIR_ALLOW_DATA_LOSS)
        dbcc checkdb(@databasename,REPAIR_REBUILD)
        exec sp_dboption @databasename, N’single’, N’false’–将目标数据库置为多用户状态

    sql2012将目标数据库修改单用户状态语句
    ALTER DATABASE DT_CMS_OJJ SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
    sql2012将目标数据库修改单用户状态语句
    Alter database DT_CMS_OJJ set multi_user

    然后执行 SQL Server数据修复命令DBCC CHECKDB(’需要修复的数据库实体的名称’) 检查数据库是否仍旧存在错误。注意:修复后可能会造成部分数据的丢失。

    2. DBCC CHECKTABLE

      如果DBCC CHECKDB 检查仍旧存在错误,可以使用DBCC CHECKTABLE来修复。

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

    3. 其他的一些常用的修复命令

      DBCC DBREINDEX 重建指定数据库中表的一个或多个索引

      用法:DBCC DBREINDEX (表名,’’) 修复此表所有的索引。

  • 相关阅读:
    Arctic Network POJ
    Journey CodeForces
    Free Goodies UVA
    MU Puzzle HDU
    Balance POJ
    1sting 大数 递推
    最大报销额 暴力。。
    洛谷P2826 LJJ的数学课
    2018年12月29日
    2018年12月28日
  • 原文地址:https://www.cnblogs.com/xuxiaoshuan/p/9565280.html
Copyright © 2011-2022 走看看