本系列文章是我在sqlskill.com的PAUL的博客看到的,很多误区都比较具有典型性和代表性,原文来自T-SQL Tuesday #11: Misconceptions about.... EVERYTHING!!,经过我们团队的翻译和整理发布在AgileSharp上。希望对大家有所帮助。
误区 #27:使用BACKUP ... WITH CHECKSUM可以替代DBCC CheckDB
错误
乍一看,由于BACKUP WITH CHECKSUM会检测所有分配出去的页的校验和的值,这个误区貌似是这么回事,但实际上并不是这么回事,原因如下:
由SQL Server 2000或是更早版本升上来的数据库page checksums必须开启,在开启后,并不是数据库中所有的页都会被叫上页校验和,当页损坏发生时,IO系统可不会区分损坏的页是有页校验和还是没有校验和的。所以使用BACKUP ... WITH CHECKSUM就有可能导致一些损坏页不被发现,造成的后果……
除此之外,还有一个问题是完整备份的时间间隔相对比较长,假如说一个月,而相对于DBCC CheckDB的最佳实践是一个礼拜,这导致WITH CHECKSUM不能替代CHECKDB。即使你每周都进行差异备份,但差异备份只会检测差异部分的页校验和。
最后一点,也是危害最大的一点,就是使用BACKUP WITH CHECKSUM选项不能发现内存中的页损坏。这是因为由于内存芯片或是WINDOWS进程导致内存中的页损坏,并且在这之后写回磁盘。这导致损坏页却有正常的校验和,只有使用DBCC CheckDB才能发现这类错误。
因此,说到底,你必须经常使用DBCC CHECKDB,如果对此你仍然心存疑问,请看我之前的一篇文章:CHECKDB From Every Angle: Consistency Checking Options for a VLDB。
扩展阅读:Search Engine Q&A #26: Myths around causing corruption
分类: SQL Server DBA误区
本文转自CareySon博客园博客,原文链接:http://www.cnblogs.com/CareySon/archive/2013/01/25/2876741.html,如需转载请自行联系原作者

SQL Server误区30日谈-Day27-使用BACKUP ... WITH CHECKSUM可以替代DBCC CheckDB相关推荐

  1. 【译】SQL Server误区30日谈-Day1-正在运行的事务在服务器故障转移后继续执行

    本系列文章是我在sqlskill.com的PAUL的博客看到的,很多误区都比较具有典型性和代表性,原文来自T-SQL Tuesday #11: Misconceptions about.... EVE ...

  2. SQL Server误区30日谈-Day21-数据损坏可以通过重启SQL Server来修复

    本系列文章是我在sqlskill.com的PAUL的博客看到的,很多误区都比较具有典型性和代表性,原文来自T-SQL Tuesday #11: Misconceptions about.... EVE ...

  3. SQL Server误区30日谈-Day26-SQL Server中存在真正的“事务嵌套”

    本系列文章是我在sqlskill.com的PAUL的博客看到的,很多误区都比较具有典型性和代表性,原文来自T-SQL Tuesday #11: Misconceptions about.... EVE ...

  4. 【译】SQL Server误区30日谈-Day7-一个实例多个镜像和日志传送延迟

    本系列文章是我在sqlskill.com的PAUL的博客看到的,很多误区都比较具有典型性和代表性,原文来自T-SQL Tuesday #11: Misconceptions about.... EVE ...

  5. 【译】SQL Server误区30日谈-Day2-DBCC CHECKDB会导致阻塞

    本系列文章是我在sqlskill.com的PAUL的博客看到的,很多误区都比较具有典型性和代表性,原文来自T-SQL Tuesday #11: Misconceptions about.... EVE ...

  6. 【译】SQL Server误区30日谈-Day8-有关对索引进行在线操作的误区

    本系列文章是我在sqlskill.com的PAUL的博客看到的,很多误区都比较具有典型性和代表性,原文来自T-SQL Tuesday #11: Misconceptions about.... EVE ...

  7. 误区30日谈16-20

    --17 a)页校验和(Page CheckSum)在从 SQL Server 2000或升级上来之后自动开启 --答案: 错误 --解释:SQL SERVER 2005 后的数据库默认使用 CHEC ...

  8. 误区30日谈21-24

    --误区#21: 数据库损坏可以通过重启 SQL Server或是Windows, 或是附加和分离数据库解决 --答案:错误 --解释:数据库损毁无任何操作可修复,但可以通过某些机制来修复页损坏 (还 ...

  9. SQL Pass北京举办1周年活动(本次活动特别邀请到了来自微软的SQL Server大师何雷谈数据库职业规划)...

    地点:北京微软(中国)有限公司[望京利星行],三层308室 时间:2013年 12 月28日 13:30-16:30 SQL PASS 北京QQ群号:2435349 新浪微群地址:http://q.w ...

最新文章

  1. 记一次Sonar执行失败的修复
  2. 单元格内容分列多行_姓名太多,放在一列打印时浪费纸张,可以分成多行多列打印...
  3. 前端对所有文件请求添加header_【前端面试必问】浏览器缓存原理?送你满分答案...
  4. CSS3 Flex布局弹性容器的属性
  5. CI/CD(持续集成构建/持续交付):如何测试/集成/交付项目代码?(Jenkins,TravisCI)
  6. 企业与黑客攻击 就是一场军备竞赛
  7. 字符编码 ASCII,Unicode和UTF-8的关系
  8. redis新数据类型-HyperLogLog
  9. php 打印所有常量,php中输出常量
  10. 黑客帝国屏保源码!快拿去试试吧!炫酷无比!
  11. Unity 移动摄像机到目标位置
  12. 程序员如何从零开始运营好一个公众号挣点零花钱之公众号定位
  13. linux mysql5.7 安装、 开机启动
  14. mac百度网盘加速下载
  15. java没有舞台_不会偷懒的程序员不是好程序员!
  16. 手把手教你使用Newstart HA
  17. Visual Effect Graph——块和操作符
  18. Maven仓库管理器Nexus的安装配置
  19. Android Studio 微信界面开发——主页面框架
  20. minmea——GPS NMEA 0183 协议解析库

热门文章

  1. boost::gregorian模块实现自出生以来的天数的测试程序
  2. GDCM:gdcm::MediaStorage的测试程序
  3. VTK:PolyData之DataSetSurfaceFilter
  4. VTK:PolyData之CombineImportedActors
  5. VTK:网格之HyperTreeGridSource
  6. OpenCV用thrust使用cv :: cuda :: GpuMat
  7. OpenGL point shadow点阴影的实例
  8. android中setdate不是静态,为什么当setData()和setType()不起作用时,android intent的setDataAndType()工作正常?...
  9. hive中存Array类型的数据的案例,将字符串的数组格式转成数组的字符串,自定义函数方式处理‘[12,23,23,34]‘字符串格式的数据为array<int>格式的数据。
  10. IntelliJ IDEA 2017.01配置jdk和tomcat