详解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 (表名,’’) 修复此表所有的索引。

原文地址:https://www.cnblogs.com/xuxiaoshuan/p/9565280.html

时间: 2024-10-03 14:14:37

详解SQL Server数据修复命令DBCC的使用的相关文章

【转】pentaho 示例Cube配置详解(SQL Server版本)

1 首先下载SQL SERVER对应的JDBC driver.见如下链接地址: [1] http://msdn.microsoft.com/en-US/data/aa937724.aspx [2] Google 输入入sql server jdbc亦可. [3] 这里sqljdbc4.jar 是我们需要的Jar包 2 下载Pentaho的多维数据服务器 Mondrian和 [1] http://sourceforge.net/ → 输入Mondrian 下载{截至记者发稿时 最新版本为 Mond

详解SQL Server连接(内连接、外连接、交叉连接)

在查询多个表时,我们经常会用“连接查询”.连接是关系数据库模型的主要特点,也是它区别于其它类型数据库管理系统的一个标志. 什么是连接查询呢? 概念:根据两个表或多个表的列之间的关系,从这些表中查询数据. 目的:实现多个表查询操作. 知道了连接查询的概念之后,什么时候用连接查询呢? 一般是用作关联两张或两张以上的数据表时用的.看起来有点抽象,我们举个例子,做两张表:学生表(T_student)和班级表(T_class). T_student                            

MSSQL 详解SQL Server连接(内连接、外连接、交叉连接)

在查询多个表时,我们经常会用“连接查询”.连接是关系数据库模型的主要特点,也是它区别于其它类型数据库管理系统的一个标志. 什么是连接查询呢? 概念:根据两个表或多个表的列之间的关系,从这些表中查询数据. 目的:实现多个表查询操作. 知道了连接查询的概念之后,什么时候用连接查询呢? 一般是用作关联两张或两张以上的数据表时用的.看起来有点抽象,我们举个例子,做两张表:学生表(T_student)和班级表(T_class) 1 --创建DB 2 --filename修改为自己电脑上MSSQL存储的位置

SQL Server ->> 数据一致性检查命令 -- DBCC CHECKDB

Comming soon!!! 参考文献: CHECKDB From Every Angle: Complete description of all CHECKDB stages

ORACLE EXPDP IMPDP数据导入导出命令详解及同EXP IMP命令详细对比

ORACLE EXPDP IMPDP数据导入导出命令详解及同EXP IMP 命令详细对比 一.EXPDP IMPDP EXP IMP 可以实现 1.可以实现逻辑备份和逻辑恢复 2.可以在数据库用户之间移动对象 3.可以在数据库之间移动对象 4.可以实现表空间转移 二.EXPDP的命令详解 C:\Users\Administrator>20:42:32.90>expdp help=y Export: Release 11.2.0.1.0 - Production on 星期六 10月 10 09

[Android新手区] SQLite 操作详解--SQL语法

该文章完全摘自转自:北大青鸟[Android新手区] SQLite 操作详解--SQL语法  :http://home.bdqn.cn/thread-49363-1-1.html SQLite库可以解析大部分标准SQL语言.但它也省去了一些特性并且加入了一些自己的新特性.这篇文档就是试图描述那些SQLite支持/不支持的SQL语法的.查看关键字列表. 如下语法表格中,纯文本用蓝色粗体显示.非终极符号为斜体红色.作为语法一部分的运算符用黑色Roman字体表示. 这篇文档只是对SQLite实现的SQ

sql server数据同步方案-日志传送

1 功能描述 本方案采用日志传送模式,把核心数据库(主数据库)定期同步到灾备数据库(辅助服务器)及备份库(辅助服务器,便于其他系统使用,减轻主数据压力),期间,如果发生异常导致无法同步,将以电子邮件.短信方式通知管理人员. 2 系统环境 2.1硬件 主数据库: SQLHA 灾备库服务器:DisaterDBSVRA 备份库服务器:BackupDataSVR 2.2软件 主数据库: Win2008 x64 SQL2005 SP4 x64 灾备库: Win2008 x64 SQL2005 SP4 x6

Oracle DBLink跨数据库访问SQL server数据同步 踩坑实录

项目需求:这里暂且叫A公司吧,A公司有一套人事管理软件,需要与我们公司的软件做人员信息同步,A公司用的是SQL server数据库,我们公司用的Oracle,接口都不会开发(一万句"fuck you"),就单单给我们公司提供了一个SQL server的账户和密码,还有一个视图.后来百度一番,可以通过DBLink跨数据库访问,然后做数据信息同步功能. 安装过程中,踩了不少的坑,需要配置很多的东西,QQ群里也请教不少人,都很少人听说还有这玩意,现在做数据对接,都是走到接口,传JSON字符串

LigerUI之Grid使用详解(三)——字典数据展示

一.问题概述 在开发web信息管理系统时,使用Web前端框架可以帮助我们快速搭建一组风格统一的界面效果,而且能够解决大多数浏览器兼容问题,提升开发效率.在关于LigerGrid的前两篇的内容里,给大家介绍了表格的基本的展示数据用法.(传送门:LigerUI之Grid使用详解(一)--显示数据 .LigerUi之Grid使用详解(二)--数据编辑 ) 在实际应用开发中,我们会经常遇到这样的场景,在展示业务数据的时候需要把业务数据中的参数项或者字典项的编码转换成参数名称或者字典名称展示出来.在这里本