my05 mysql檢查點簡述

2021-08-29 00:02:33 字數 2030 閱讀 9761

簡單描述一下mysql 檢查點,對mysql資料庫恢復的理解有所幫助。

資料庫版本

mysql> select version();

+-----------+

| version() |

+-----------+

| 8.0.11 |

+-----------+

1 row in set (0.00 sec)

檢查點檢視

mysql> show engine innodb status\g;

---log

---log sequence number 25048841

log buffer assigned up to 25048841

log buffer completed up to 25048841

log written up to 25048841

log flushed up to 25048841

added dirty pages up to 25048841

pages flushed up to 25048841

last checkpoint at 25048841

35 log i/o『s done, 0.00 log i/o『s/second

----------------------

last checkpoint就是檢查點的位置,在資料庫並不繁忙的時候,可以看到log sequence number,log flushed,pages flushed的位置接近或相等。當資料庫dml操作較多時,它們的差值會變大。

相關引數

mysql資料庫將記憶體中髒頁重新整理到磁碟時,記錄一次檢查點,也這是檢查點的功能,重新整理記憶體髒頁到磁碟。innodb每秒或幾秒都會自動重新整理髒頁,除此之外,它還受以下兩個引數影響

mysql> show variables like 『%max_dirty_pages%『;

+--------------------------------+-----------+

| variable_name | value |

+--------------------------------+-----------+

| innodb_max_dirty_pages_pct | 50.000000 |

| innodb_max_dirty_pages_pct_lwm | 10.000000 |

+--------------------------------+-----------+

2 rows in set (0.00 sec)

當innodb髒頁使用率超過innodb_max_dirty_pages_pct_lwm的值時,除innodb本身的自動重新整理髒頁機制外,會開始加速刷髒頁,當髒頁使用率超過innodb_max_dirty_pages_pct的值時,會再次提高重新整理髒頁的速度。

innodb_max_dirty_pages_pct_lwm為0表示該引數不生效。

檢查點分類

sharp checkpoint(完全檢查點)

將記憶體中所有髒頁全部寫到磁碟就是完全檢查點,比如資料庫例項關閉時。

fuzzy checkpoint(模糊檢查點)

將部分髒頁重新整理到磁碟,就是模糊檢查點,資料庫例項執行過程產生的檢查基本上就是這種型別的檢查點。

檢查點作用

主要作用就是減少資料恢復時間 。因為檢查點位置之前的資料都寫到磁碟上了,資料恢復便不需要再關注這部分資料,所以它減少了恢復的時間 。

常說的crash崩潰恢復,恢復的是哪些資料? 恢復的是last checkpoint到log flushedup之間的資料。log flushedup是記憶體寫日誌的位置,也是日誌檔案最新的位置。再新的話就到記憶體中去了,還沒有寫入日誌檔案的資料是沒法恢復的。

mysql基線檢查 Mysql安全基線檢查

禁用local infile選項 訪問控制描述 禁用local infile選項會降低攻擊者通過sql注入漏洞器讀取敏感檔案的能力加固建議 local infile 0 確保配置了log error選項描述 啟用錯誤日誌可以提高檢測針對mysql和其他關鍵訊息的惡意嘗試的能力,例如,如果錯誤日誌未啟...

mysql使用規範 MySQL使用規範 MySQL

bitscn.com mysql使用規範 一 核心規範 1.不用資料庫做運營,如md5 order by rand 2.控制單錶資料量 a 單錶純int不超過1000w b 單錶含char不超過500w c 單庫不超過300 400個表 3.表字段數少而精 a 影響因素 i.io高效 ii.全表遍歷...

mysql部門分類 mysql部類參照 mysql

mysql資料庫內容總結 數字型別 tinyint m unsigned zerofull 1個位元組 預設的是有符號的 128 127 unsigned 無符號整數 範圍0 255 m 代表寬度 在zerofull時才有意義 只是乙個顯示效果,不會影響到實際的資料長度 zerofull 零填充 如...