舉例說明 機制
資料頁a的lsn為100,資料頁b的lsn為200,checkpoint lsn為150,系統lsn為300,表示當前系統已經更新到300,小於150的資料頁已經被刷到磁碟上,因此資料頁a的最新資料一定在磁碟上,而資料頁b則不一定,有可能還在記憶體中。
lsn本身你可以理解為不同時間點的不同操作
page lsn(修改後的頁就是髒頁,會記錄lsn)
page lsn 定位找 redo lsn
只有page lsn < redo lsn的情況下 才可以應用redo日誌,因為如果page lsn大於 redo lsn的話,就證明頁修改了,但是沒找到redo日誌
lsn生成(1 分配當前最大lsn號 2 redo重新整理到磁碟上(redo lsn) 3 髒頁重新整理到磁碟上(page lsn) 4 binlog buffer 5 重新整理生成 checkpoint lsn),
存在2種情況
1 redo丟失
2 dirty page丟失
3 binlog buffer丟失
先redo 後 undo
Mysql恢復 InnoDB 資料表
問題背景 因資料庫中存在乙份公司應用桌面管理表,只在測試資料庫中存在,在生產環境不存在,而測試環境的資料庫.每次新版本迭代,都會同步一下正式庫,有天運維在同步時,對之前的資料庫複製備份直接進行了覆蓋,導致對應的資料表資料的不匹配 解決方法 2.新建資料庫xwan test 最好和需要找回的資料庫名稱...
MySQL原理 InnoDB表的限制
本文基於mysql 5.7 目前oltp業務的表如果是使用mysql一般都會使用innodb引擎,這也是預設的表引擎。那麼這種引擎有什麼限制呢?根據官方文件總結下 參考 參考 關於innodb page size這個資料庫例項初始化配置 innodb page size是乙個初始化資料庫例項的引數,...
學習筆記 mysql索引原理之InnoDB
innodb是事務安全的mysql儲存引擎,在oltp的應用中,innodb應該作為核心應用表的首選儲存引擎。1 執行緒 後台的執行緒主要負責 重新整理記憶體池中的資料,保證緩衝池中的記憶體快取的是最近的資料 將已修改的資料檔案重新整理到磁碟檔案 保證在資料庫發生異常情況下innodb能恢復到正常狀...