千家信息网

数据库完整性检查

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,为了主动发现数据库侧页损坏,保证数据库逻辑和物理完整性,计划每周六上午6点,针对生产主库上的所有系统和用户数据库执行DBCC CHECKDB,将结果记录到表中。以下为理论依据:SQL Server数据
千家信息网最后更新 2026年11月02日数据库完整性检查

为了主动发现数据库侧页损坏,保证数据库逻辑和物理完整性,计划每周六上午6点,针对生产主库上的所有系统和用户数据库执行DBCC CHECKDB,将结果记录到表中。


以下为理论依据:


SQL Server数据库可以检测出页损坏,此时,具体的表现形式可能为下述三种错误的一种:

  • 823错误,也就是所谓的硬IO错误,可以理解为SQL Server希望读取页,而Windows告诉SQL Server,无法读取到该页。

  • 824错误,也就是所谓的软IO错误,可以理解为SQL Server已经读取到该页,但通过计算CheckSum等值发现不匹配,因此SQL Server认为该页已经被损坏。

  • 825错误,也就是所谓Retry错误。


SQL Server发现错误的方法有两种,分别为在读取页时和在备份时(本质上也是读取页)。但如果我们希望对于数据一致性的检查更加的全面,那我们应该定期使用CheckDB来检查数据的一致性,而不至于在生产时间数据被读取时才能发现错误。


CheckDB命令在企业版中会使用多线程来进行,会对整个数据库进行一致性检查,在该过程中,使用了内建数据库快照的方式进行,因此不会造成阻塞,但CheckDB会消耗大量的CPU、内存和IO。因此CheckDB要选择在维护窗口时间或是系统闲时进行。


实际上,CheckDB是一套命令的汇总,通过执行下列操作检查指定数据库中所有对象的逻辑和物理完整性:

  • 初次检查系统表

  • 分配单元检查(DBCC CHECKALLOC)

  • 完整检查系统表

  • 对所有表进行一致性逻辑检查(DBCC CHECKTABLE)

  • 元数据检查(DBCC CHECKCATALOG)

  • SSB检查

  • 索引视图、XML索引等检查


微软最佳实践建议


"建议您使用 PHYSICAL_ONLY 选项,以便可以频繁检查生产系统。 使用 PHYSICAL_ONLY 可以极大地缩短对大型数据库运行 DBCC CHECKDB 的运行时间。 同时建议您定期运行没有选项的 DBCC CHECKDB。 应当以什么频率执行这些运行任务将取决于各个企业及其生产环境。

"引用自:

https://docs.microsoft.com/zh-cn/sql/t-sql/database-console-commands/dbcc-checkdb-transact-sql


成熟的方案


可以使用 https://ola.hallengren.com/

实现备份、完整性检查、索引和统计信息维护整套方案。


检查 数据 错误 数据库 系统 一致 一致性 生产 运行 完整性 也就是 建议 时间 索引 逻辑 企业 命令 备份 方案 物理 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 A股互联网金融科技公司 互联网科技英文 世界互联网领先科技成果 沃里互联网科技 上海卓越科技 互联网 科技类的互联网平台 上海电发互联网科技有限公司 济南华为互联网科技产业总部基地 创业天下互联网科技有限公司 南山科技园互联网公司有哪些 武汉健翔互联网络科技有限公司 千方科技属于互联网企业吗 消费医药和互联网科技 互联网科技创新的路径 恒生互联网科技业指数调整周期 高科技互联网套路 2021世界互联网领先科技成果发布 互联网对科技影响 陕西彩京云互联网科技有限公司 互联网领先科技成果宣传视频 中关村互联网科技集团 互联网科技排名 丰台科技园 互联网 电子科技大学互联网 科技与互联网哪个更好 江阴互联网智能科技产品进口 怎样加入科技互联网 上海创道互联网络科技有限公司 互联网科技博主张洲 山东蛋芒互联网科技有限公司
0