• 02-SQLServer数据库页校验(IO校验)的几种方式


    一、总结

    1、SQLServer数据库的页校验(IO校验)方式有三种:CHECKSUM(默认)、TORN_PAGE_DETECTION、NONE。

    2、SQLServer数据库的页校验机制对数据文件(mdf)和日志文件(ldf)都生效。

    3、数据库查看方式

    4、三种校验方式的原理和区别

    CHECKSUM(默认):

      在向磁盘中写入页面时,对整个页面做checksum,也就是计算整个页面的校验和值,返回值是int类型,并将该值保存在页眉中。在读取页面时重新计算校验和值与页眉中保存的值进行比较,如果2个值不匹配,将同时在SQLServer错误日志和windows事件日志中报告错误消息824(校验和失败,即存在I/O问题)。

     TORN_PAGE_DETECTION:

      在向磁盘中写入页面时,将每个512字节扇区的特定2位模式保存在页头中,也就是页头中的残缺位。当从磁盘中读取页面时,页头中存储的残缺位与实际扇区信息进行比较,如果值不匹配,表明只有页面的一部分写入磁盘。这时SQLServer错误日志和Windows事件日志也会报错误消息824(这种叫页撕裂错误)。

    NONE:

      该种模式下,数据页写入不会生成CHECKSUM或TORN_PAGE_DETECTION值。在读取过程中,即便页面中保存有这2个值,SQLServer也不会校验。

    5、SQLServer将对因校验和值、页撕裂或其他IO错误而失败的任何读取都重试四次。如果其中的一次重试成功,则会向错误日志写入一条消息,读取的命令继续执行;如果重试失败,则读取的命令失败,错误日志里写入824错误消息。

    6、TORN_PAGE_DETECTION使用的资源少,保护级别低,CHECKSUM使用的资源多,但是提供更多的保护。

    7、设置数据库的页校验模式时,无需使数据库脱机、锁定数据库或阻止其他方式访问数据库,即可修改PAGE_VERIFY的值。

    8、修改页校验的脚本

    (1).设置页校验(IO校验)为CHECKSUM
    alter database payment set page_verify checksum

    (2).设置页校验(IO校验)为TORN_PAGE_DETECTION
    alter database payment set page_verify torn_page_detection

    (3).设置页校验(IO校验)为NONE
    alter database payment set page_verify none

  • 相关阅读:
    zookeeper集群搭建
    kafka集群安装与配置
    Spring Task 定时任务配置与使用
    6.Spark SQL 及其DataFrame的基本操作
    10 期末大作业
    09 spark连接mysql数据库
    08 学生课程分数的Spark SQL分析
    从RDD创建DataFrame 07
    RDD 编程5
    05 RDD练习:词频统计
  • 原文地址:https://www.cnblogs.com/jialanyu/p/12987511.html
Copyright © 2020-2023  润新知