• Inondb中的checkpoint


    checkpoint主要是为了解决一下问题:

    1.缩短数据库的恢复时间

    2.缓冲池不够用时,将脏页刷新到磁盘

    3.重做日志不可用时,刷新脏页

    Innodb引擎使用LSN(log sequence number)来标记日志版本。 LSN是占8个字节的数字。每个页都有LSN、重做日志也有LSN、Checkpoint也有LSN。

    Innodb存储引擎内部有两种checkpoint:

    1.sharp checkpoint

    发生在数据库关闭时。将所有脏页刷新到磁盘。这是默认的方式,即innodb_fast_shutdown=1

    mysql> show variables like 'innodb_fast_shutdown';
    +----------------------+-------+
    | Variable_name        | Value |
    +----------------------+-------+
    | innodb_fast_shutdown | 1     |
    +----------------------+-------+
    1 row in set (0.00 sec)
    
    mysql> 
    

     2.fuzzy checkpoint
    数据库运行时,使用sharp checkpoint会影响数据库的可用性。
    所以运行时,使用fuzzy checkpoint进行页刷新(只刷新一部分脏页,而不是刷新所有的脏页)。


    Innodb中存在以下几种情况的fuzzy checkpoint:
    -master thread checkpoint:

      (差不多每秒或每十秒)异步地从缓冲池的脏页列表中刷新一定比例的页到磁盘

    -flush_lru_list checkpoint:

       将LRU列表尾端的页移除,Innodb要保证LRU列表中有足够的可用空闲页。在5.6中通过参数innodb_lru_depth来控制LRU列表中可用页的数量,默认是1024

    mysql> show variables like 'innodb_lru_scan_depth';
    +-----------------------+-------+
    | Variable_name         | Value |
    +-----------------------+-------+
    | innodb_lru_scan_depth | 1024  |
    +-----------------------+-------+
    1 row in set (0.00 sec)
    
    mysql> 
    

    -async/sync flush checkpoint

      重做日志不可用时,需要强制将一些页刷新到磁盘。

    -dirty page too much checkpoint

      脏页太多,强制发生的检查点

    mysql> show variables like 'innodb_max_dirty_pages_pct';
    +----------------------------+-------+
    | Variable_name              | Value |
    +----------------------------+-------+
    | innodb_max_dirty_pages_pct | 75    |
    +----------------------------+-------+
    1 row in set (0.00 sec)
    
    mysql> 
    

    脏页占75%时,强制刷新。

  • 相关阅读:
    VSCode settings.json的配置样例
    用css让div高度自动撑满屏幕
    C# 后端接受前端上传的文件
    netcode 控制台项目生成exe文件
    C# UDP发送和接收
    C# 直播录制视频
    Vs2017 FrameWork EF Mysql Mvc 三层整合1
    Vs2017 FrameWork EF Mysql 控制台应用
    Vs2017 NetCode EF Mysql 控制台应用
    Vs2017 NetCode Mvc EF Mysql 整合2
  • 原文地址:https://www.cnblogs.com/abclife/p/5065165.html
Copyright © 2020-2023  润新知