dbcc checkdb 用法
dbcc checkdb 用法
dbcc checkdb 用法
DBCC CHECKDB用于检查指定数据库中的所有对象的分配和结构完整性。
一、语法
dbcc CHECKDB
(
{ 'database_name' | database_id | 0 }
[ , NOINDEX
| { REPAIR_ALLOW_DATA_LOSS
| REPAIR_FAST
| REPAIR_REBUILD
} ]
)
[ WITH
{
[ ALL_ERRORMSGS ]
[ , [ NO_INFOMSGS ] ]
[ , [ TABLOCK ] ]
[ , [ ESTIMATEONLY ] ]
[ , [ PHYSICAL_ONLY ] ]
[ , [ DATA_PURITY ] ]
[ , [ EXTENDED_LOGICAL_CHECKS ] ]
}
]
参数说明
database_name
是要对其中的所有对象分配和结构完整性进行检查的数据库。如果未指定,则默认为当前数据库。数据库名称必须符合标识符的规则。
NOINDEX
指定不检查非系统表的非聚集索引。NOINDEX 减少执行总时间,因为它不对用户定义的表的非聚集索引进行检查。NOINDEX 对系统表没有影响,因为 DBCC CHECKDB 总是对所有系统表索引进行检查。
REPAIR_ALLOW_DATA_LOSS
会尝试修复报告中所有错误,包括对行和页进行分配和取消分配以改正分配错误、结构行或页的错误,以及删除已损坏的文本对象。这些修复可能会导致一些数据丢失。
REPAIR_FAST
进行小的、不耗时的修复操作,如修复非聚集索引中的附加键。这些修复可以很快完成,并且不会有丢失数据的危险。
REPAIR_REBUILD
执行由 REPAIR_FAST 完成的所有修复,包括需要较长时间的修复(如重建索引)。执行这些修复时不会有丢失数据的危险。
ESTIMATEONLY
预估修复所需要的tempdb空间
NO_INFOMSGS
取消显示所有信息性消息。
ALL_ERRORMSGS
显示针对每个对象报告的所有错误。如果未指定 ALL_ERRORMSGS,则只为每个对象显示前 200 条错误消息。按对象 ID 对错误信息进行排序(从 tempdb 中生成的消息除外)。
PHYSICAL_ONLY
将检查限制为页和记录标头的物理结构完整性、B 树的物理结构以及数据库的分配一致性。设计该检查是为了以较小的开销检查数据库的物理一致性,但它还可以检测会危及用户数据安全的残缺页、校验和错误以及常见的硬件故障。
TABLOCK
使 DBCC CHECKDB 获取锁,而不使用内部数据库快照。这包括一个短期数据库排他 (X) 锁。TABLOCK 可使 DBCC CHECKDB 在负荷较重的数据库上运行得更快,但 DBCC CHECKDB 运行时会减少数据库上可获得的并发性。
EXTENDED_LOGICAL_CHECKS
如果兼容级别为 100 (SQL Server 2008) 或更高,则对索引视图、XML 索引和空间索引(如果存在)执行逻辑一致性检查。
DATA_PURITY
使 DBCC CHECKDB 检查数据库中是否存在无效或越界的列值。例如,DBCC CHECKDB 检测日期和时间值大于或小于 datetime 数据类型的可接受范围的列。
二、DBCC CHECKDB执行流程
1、检查关键系统表
2、对数据库运行DBCC CHECKALLOC
3、对数据库中每个表或试图运行DBCC CHECKTABLE
4、对数据库运行DBCC CHECKCATLOG
5、验证数据库中每个索引试图的内容
6、验证数据库中Service Broker数据
三、对于数据库中每个表,DBCC CHECKDB 检查的方面
1、索引和数据页是否已正确链接。
2、索引是否按照正确的顺序排列。
3、各指针是否一致。
4、每页上的数据是否均合理。
5、页面偏移量是否合理。
四、DBCC CHECKDB 修复步骤
1、修改数据库为紧急模式 ALTER DATABASE 库名 SET EMERGENCY 2、使数据库变为单用户模式 ALTER DATABASE 库名 SET SINGLE_USER 3、修复数据库日志重新生成,此命令检查的分配,结构,逻辑完整性和所有数据库中的对象错误 当您指定“REPAIR_ALLOW_DATA_LOSS”作为DBCC CHECKDB命令参数,该程序将检查和修复报告的错误。但是,这些修复可能会导致一些数据丢失。 DBCC CheckDB (库名 , REPAIR_ALLOW_DATA_LOSS) 命令执行完成后可能会出现以下警告: 警告: 数据库 '库名' 的日志已重新生成。已失去事务的一致性。RESTORE 链已断开,服务器不再有以前的日志文件的上下文,因此您需要了解它们的内容。应运行 DBCC CHECKDB 验证物理一致性。数据库已置于 dbo-only 模式。在准备使数据库可用时,需要重置数据库选项,并删除所有多余的日志文件。 此时可以不用理会此警告,关闭Microsoft SQL Server Management Studio。 4、重新打开Microsoft SQL Server Management Studio,使数据库变回为多用户模式 ALTER DATABASE 库名 SET MULTI_USER 5、重新启动sqlserver
五、要获得好的 DBCC 性能的一些建议
1、在系统使用率较低时运行 CHECKDB。
2、请确保未同时执行其它磁盘 I/O 操作,例如磁盘备份。
3、将 tempdb 放到单独的磁盘系统或快速磁盘子系统中。
4、允许 tempdb 在驱动器上有足够的扩展空间。使用带有 ESTIMATE ONLY 的 DBCC 估计 tempdb 将需要多少空间。
5、避免运行占用大量 CPU 的查询或批处理作业。
6、在 DBCC 命令运行时,减少活动事务。
7、使用 NO_INFOMSGS 选项显著减少处理和 tempdb 的使用。
8、考虑使用带有 PHYSICAL_ONLY 选项的 DBCC CHECKDB 来检查页和记录首部的物理结构。当硬件导致的错误被置疑时,这个操作将执行快速检查。
六、DBCC CHECKDB 在使用时的建议
1、DBCC CHECKDB实际是对当前数据库进行快照,在快照上执行检查,因此防止对当前用户执行出现阻塞和并发问题,CHCEKDB可以在多用户模式下执行
2、DBCC CHECKDB默认使用多线程并行检查,可以使用SP_CONFIGURE 'max degree of parallelism'来设置最大并行度
3、使用WITH PHYSICAL_ONLY以较小开销检查数据库物理一致性
4、使用WITH NO_INDEX来避免检查索引
5、可以使用
SELECT
R.session_id,
R.request_id,
R.percent_complete,
R.start_time,
R.estimated_completion_time,
R.status,
R.command
FROM sys.dm_exec_requests R
WHERE command LIKE '%DBCC CHECK%'
来估算出执行DBCC还需要多长时间完成,该值可能不太准
6、将CHECKDB拆分成多个步骤完成,CHECKFILEGROUP CHECKALLOC CHECKTABLE
7、在备份机上测试
标签:SQL SERVER您可能感兴趣
- sqlserver2000显示无服务器(SQL SERVER 2000 9003错误的解决方法只适用于SQL2000)
- sqlserver代理无法启动错误1607(SQL Server代理:理解SQL代理错误日志处理方法)
- sqlserver数据库备份怎么还原(SQL Server2012数据库备份和还原的教程)
- 查询SQL SERVER中某个数据库的每个表的数据量和每行记录所占用空间
- 修改sqlserver数据库名称步骤(SQL server数据库创建代码 filegroup文件组修改的示例代码)
- sqlserver2000升级教程(MSSQL 2000 使用帮助sql server简明教程)
- zabbix监控sql server集群(zabbix 监控mysql的方法)
- sqlserver游标使用场景(解析SQL Server聚焦移除Bookmark Lookup、RID Lookup、Key Lookup)
- sql server 2012 错误5123(SQL SERVER 9003错误解决方法)
- SQL Server表分区
- SQL Server中的临时表的用法
- sqlserver常用配置调整(sql server性能调优 I/O开销的深入解析)
- sqlserver新建连接服务器卡住(SQL Server成功与服务器建立连接但是在登录过程中发生错误的快速解决方案)
- 2015-10-1
- sql server 判断 null
- sqlserver附加数据库时出错(SQL Server数据库附加失败的解决办法)
- 2020年大众7.5代高尔夫R终结特别版 最后的呐喊(2020年大众7.5代高尔夫R终结特别版)
- 七年前的这部剧有毒,全剧只有女主红到发紫,男主至今无人认识(七年前的这部剧有毒)
- 宋轶除了演过于曼丽,原来还演过一个青楼女子(宋轶除了演过于曼丽)
- 赵丽颖第一部当女主的戏,主角配角个个都是实力演员(赵丽颖第一部当女主的戏)
- 乾隆为何这么喜爱白塔原因是什么(乾隆为何这么喜爱白塔原因是什么)
- 逐渐消失的东北八大怪现象,进步的社会里我们遗失的是什么(逐渐消失的东北八大怪现象)
热门推荐
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9