最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網 會員登陸 & 注冊

Checkpoint的機制

2023-04-09 10:30 作者:Cpp程序員  | 我要投稿

一、Checkpoint機制

CheckPoint做了什么事情?將緩存池中的臟頁刷回磁盤。

checkpoint定期將db buffer的內容刷新到data file,當遇到內存不足、db buffer已滿等情況時,需要將db buffer中的內容/部分內容(特別是臟數據)轉儲到data file中。

?在轉儲時,會記錄checkpoint發(fā)生的位置,在故障回復時候,只需要redo/undo最近的一次checkpoint之后的操作。

?

?

?

二、CheckPoint作用

1、縮短數據庫的恢復時間

當數據庫宕機時,數據庫不需要重做所有日志,因為CheckPoint之前的頁都已經刷新回磁盤。只需對CheckPoint后的重做日志進行恢復,從而縮短恢復時間

?

2、緩沖池不夠用時,將臟頁刷新到磁盤

當緩存池不夠用時,LRU算法會溢出最近最少使用的頁,若此頁為臟頁,會強制執(zhí)行CheckPoint,將該臟頁刷回磁盤

?

3、Redo日志不可用時,刷新臟頁

不可用是因為對重做日志的設計是循環(huán)使用的。重做日志可以被重用的部分,是指當數據庫進行恢復操作時不需要的部分。若此時這部分重做日志還有用,將強制執(zhí)行CheckPoint,將緩沖池的頁至少刷新到當前重做日志的位置

?

三、CheckPoint種類

InnoDB存儲引擎內部,有兩種Checkpoint,分別為:Sharp Checkpoint、Fuzzy Checkpoint

?

1、Sharp CheckPoint

發(fā)生在數據庫關閉時,會將所有的臟頁刷回磁盤,這是默認的工作方式,即參數innodb_fast_shutdown=1。

但是若數據庫在運行時也使用Sharp Checkpoint,那么數據庫的可用性就會受到很大的影響。故在InnoDB存儲引擎內部使用Fuzzy Checkpoint進行頁的刷新,即只刷新一部分臟頁,而不是刷新所有的臟頁回磁盤。

?

2、Fuzzy CheckPoint

為提高性能,數據庫運行時使用Fuzzy CheckPoint進行頁的刷新,即只刷新一部分臟頁。

?

Fuzzy Checkpoint(模糊檢查點):

  • Master Thread Checkpoint;

  • FLUSH_LRU_LIST Checkpoint;

  • Async/Sync Flush Checkpoint;

  • Dirty Page too much Checkpoint

?

在Innodb事務日志中,采用了Fuzzy Checkpoint,Innodb每次取最老的modified page(last checkpoint)對應的LSN,再將此臟頁的LSN作為Checkpoint點記錄到日志文件,意思就是此LSN之前的LSN對應的日志和數據都已經flush到redo log。


Checkpoint的機制的評論 (共 條)

分享到微博請遵守國家法律
马鞍山市| 大英县| 成安县| 商水县| 巴林右旗| 肥城市| 华蓥市| 广宗县| 肥东县| 江陵县| 新闻| 阳原县| 榕江县| 高雄县| 高陵县| 浠水县| 霍林郭勒市| 儋州市| 延吉市| 天水市| 东平县| 招远市| 本溪| 永嘉县| 云龙县| 望江县| 广河县| 崇义县| 安康市| 双辽市| 化隆| 大悟县| 墨竹工卡县| 都兰县| 阳曲县| 光泽县| 长治县| 阜宁县| 镇平县| 巫山县| 永福县|