精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

基于Redo Log和Undo Log的MySQL崩潰恢復流程

數據庫 MySQL
當我們查詢數據的時候,會先去Buffer Pool中查詢。如果Buffer Pool中不存在,存儲引擎會先將數據從磁盤加載到Buffer Pool中,然后將數據返回給客戶端;同理,當我們更新某個數據的時候,如果這個數據不存在于Buffer Pool,同樣會先數據加載進來,然后修改修改內存的數據。被修改過的數據會在之后統一刷入磁盤。

[[378480]]

本文轉載自微信公眾號「SH的全棧筆記」,作者SH 。轉載本文請聯系SH的全棧筆記公眾號。  

黑盒下的更新數據流程

當我們查詢數據的時候,會先去Buffer Pool中查詢。如果Buffer Pool中不存在,存儲引擎會先將數據從磁盤加載到Buffer Pool中,然后將數據返回給客戶端;同理,當我們更新某個數據的時候,如果這個數據不存在于Buffer Pool,同樣會先數據加載進來,然后修改修改內存的數據。被修改過的數據會在之后統一刷入磁盤。

MySQL 奔潰恢復

這個過程看似沒啥問題,實則不講武德。假設我們修改Buffer Pool中的數據成功,但是還沒來得及將數據刷入磁盤MySQL就掛了怎么辦?按照上圖的邏輯,此時更新之后的數據只存在于Buffer Pool中,如果此時MySQL宕機了,這部分數據將會永久的丟失;

再者,我更新到一半突然發生錯誤了,想要回滾到更新之前的版本,該怎么辦?那不完犢子嗎,連數據持久化的保證、事務回滾都做不到還談什么崩潰恢復?

Redo Log & Undo Log

而通過MySQL能夠實現崩潰恢復的事實來看,MySQL必定實現了某些騷操作。沒錯,這就是接下來我們要介紹的另外的兩個關鍵功能,Redo Log和Undo Log。

這兩種日志是屬于InnoDB存儲引擎的日志,和MySQL Server的Binlog不是一個維度的日志。

Redo Log 記錄了此次事務「完成后」的數據狀態,記錄的是更新之「后」的值

Undo Log 記錄了此次事務「開始前」的數據狀態,記錄的是更新之「前」的值

所以這兩種日志有明顯的區別,我用一種更加通俗的例子來解釋一下這兩種日志。

Redo Log就像你在命令行敲了很長的命令,敲回車執行,結果報錯了。此時我們只需要再敲個↑就會拿到上一條命令,再執行一遍即可。

Undo Log就像你剛剛在Git中Commit了一下,然后再做一個較為復雜的改動,但是改著改著你的心態崩了,不想要剛剛的改動了,于是直接git reset --hard $lastCommitId回到了上一個版本。

實現日志后的更新流程

有了Redo Log和Undo Log,我們再將上面的那張圖給完善一下。

MySQL 崩潰恢復

首先,更新數據還是會判斷數據是否存在于Buffer Pool中,不存在則加載。上面我們提到了回滾的問題,在更新Buffer Pool中的數據之前,我們需要先將該數據事務開始之前的狀態寫入Undo Log中。假設更新到一半出錯了,我們就可以通過Undo Log來回滾到事務開始前。

然后執行器會更新Buffer Pool中的數據,成功更新后會將數據最新狀態寫入Redo Log Buffer中。因為一個事務中可能涉及到多次讀寫操作,寫入Buffer中分組寫入,比起一條條的寫入磁盤文件,效率會高很多。

redo-log-buffer

那為什么Undo Log不也搞一個Undo Log Buffer,也給Undo Log提提速,雨露均沾?那我們假設有這個一個Buffer存在于InnoDB,將事務開始前的數據狀態寫入了Undo Log Buffer中,然后開始更新數據。

突然啪一下,很快啊,MySQL由于意外進程退出了,此時會發生一件很尷尬的事情,如果更新的數據一部分已經刷回磁盤了,但是此時事務沒有成功需要回滾,你發現Undo Log隨著進程退出一起沒了,此時就沒有辦法通過Undo Log去做回滾。

那如果剛剛更新完內存,MySQL就掛了呢?此時Redo Log Buffer甚至都可能沒有寫入,即使寫入了也沒有刷到磁盤,Redo Log也丟了。

其實無所謂,因為意外宕機,該事務沒有成功,既然事務事務沒有成功那就需要回滾,而MySQL重啟后會讀取磁盤上的Redo Log文件,將其狀態給加載到Buffer Pool中。而通過磁盤Redo Log文件恢復的狀態和宕機前事務開始前的狀態是一樣的,所以是沒有影響的。然后等待事務commit了之后就會將Redo Log和Binlog刷到磁盤。

流程中仍然存在的問題

你可能認為到這一步就完美了,事實上則不然。假設我們在將Redo Log刷入到磁盤之后MySQL突然宕機了,binlog還沒有來得及寫入。此時重啟,Redo Log所代表的狀態就和Binlog所代表的狀態不一致了。Redo Log恢復到Buffer Pool中的某行的A字段是3,但是任何監聽其Binlog的數據庫讀取出來的數據確是2。

即使Redo Log和Binlog都寫入文件了,但是這個時候MySQL所在的物理機活著VM宕機了,日志仍然會丟失。現在的OS在你寫入文件的時候,會先將改動的內容寫入的OS Cache中,以此來提高效率。然后根據策略(受你配置的參數的影響)來將OS Cache中的數據刷入磁盤。

基于2PC的一致性保障

從這你可以發現一個關鍵的問題,那就是必須保證Redo Log和Binlog在事務提交時的數據一致性,要么都存在,要么都不存在。MySQL是通過 **2PC(two-phase commit protocol)**來實現的。

MySQL 崩潰恢復

簡單介紹一下2PC,它是一種保證分布式事務數據一致性的協議,它中文名叫兩階段提交,它將分布式事務的提交拆分成了2個階段,分別是Prepare和Commit/Rollback。

就向兩個拳擊手開始比賽之前,裁判會在中間確認兩個選手的狀態,類似于問你準備好了嗎?得到確認之后,裁判才會說Fight。

裁判詢問選手的狀態,對應的是第一階段Prepare;得到了肯定的回答之后,裁判宣布比賽正式開始,對應的是第二階段Commit,但是如果有一方選手沒有準備好,裁判會宣布比賽暫停,此時對應的是第一階段失敗的情況,第二階段的狀態會變為Rollback。裁判就對應2PC中的協調者Coordinator,選手就對應參與者Participant。

下面我們通過一張圖來看一下整個流程。

2PC刷入磁盤

Prepare階段,將Redo Log寫入文件,并刷入磁盤,記錄上內部XA事務的ID,同時將Redo Log狀態設置為Prepare。Redo Log寫入成功后,再將Binlog同樣刷入磁盤,記錄XA事務ID。

Commit階段,向磁盤中的Redo Log寫入Commit標識,表示事務提交。然后執行器調用存儲引擎的接口提交事務。這就是整個過程。

驗證2PC機制的可用性

這就是2PC提交Redo Log和Binlog的過程,那在這個期間發生了異常,2PC這套機制真的能保證數據一致性嗎?

假設Redo Log刷入成功了,但是還沒來得及刷入Binlog MySQL就掛了。此時重啟之后會發現Redo Log并沒有Commit標識,此時根據記錄的XA事務找到這個事務,進行回滾。

如果Redo Log刷入成功,而且Binlog也刷入成功了,但是還沒有來的及將Redo Log從Prepare改成Commit MySQL就掛了,此時重啟會發現雖然Redo Log沒有Commit標識,但是通過XID查詢到的Binlog卻已經成功刷入磁盤了。

此時,雖然Redo Log沒有Commit標識,MySQL也要提交這個事務。因為Binlog一旦寫入,就可能會被從庫或者任何消費Binlog的消費者給消費。如果此時MySQL不提交事務,則可能造成數據不一致。而且目前Redo Log和Binlog從數據層面上,其實已經Ready了,只是差個標志位。

 

責任編輯:武曉燕 來源: SH的全棧筆記
相關推薦

2024-06-11 00:00:02

MySQL數據庫系統

2020-08-20 12:10:42

MySQL日志數據庫

2024-05-30 08:03:17

2023-11-23 13:17:39

MySQL?數據庫

2025-06-06 07:02:43

2024-05-28 00:10:00

JavaMySQL數據庫

2025-01-15 13:19:09

MySQL日志事務

2025-10-09 02:22:00

MySQLMVCC庫存數量

2025-01-20 08:20:00

redo logMySQL數據庫

2024-12-16 00:00:05

MySQL二進制數據

2025-08-11 09:08:41

2024-03-14 14:18:58

MySQL業務設計事務

2021-07-28 08:32:03

MySQLRedo存儲

2021-10-04 09:23:30

Redo日志內存

2021-05-28 11:18:50

MySQLbin logredo log

2010-01-06 09:30:51

Oracle Redo

2022-08-26 10:11:26

MySQL數據庫

2022-10-12 08:01:08

MySQL日志數據庫

2020-11-11 07:32:18

MySQL InnoDB 存儲

2011-08-30 10:30:50

OracleUNDO LOG日志回
點贊
收藏

51CTO技術棧公眾號

亚洲一区二区三区免费在线观看| 亚洲91网站| 国产精品三级久久久久三级| 亚洲综合自拍一区| 欧美亚洲精品天堂| 成人激情免费视频| 日韩欧美成人激情| 美女av免费在线观看| 麻豆影院在线| 91蝌蚪国产九色| 91免费精品视频| 日韩精品在线免费视频| 欧美福利影院| 尤物yw午夜国产精品视频| 国产黑丝在线视频| 另类专区亚洲| 午夜亚洲国产au精品一区二区| 欧洲精品国产| 欧美性受xxxx狂喷水| 美女国产一区二区| 91国自产精品中文字幕亚洲| 久久久久久久麻豆| 欧美日韩有码| 亚洲高清不卡av| 国产又粗又长又爽又黄的视频| 无遮挡在线观看| 一区二区三区.www| 综合久久国产| 国产对白叫床清晰在线播放| 成人黄页毛片网站| 999国产视频| 亚洲一区二区人妻| 青青草国产成人av片免费| 国内精品久久久久影院 日本资源| 韩国一级黄色录像| 精品一区二区三| 日韩免费电影一区| 亚洲成人av免费观看| 欧美亚洲二区| 欧美少妇bbb| 国产一级不卡毛片| www.成人爱| 欧美天堂在线观看| 日本韩国欧美在线观看| 国产盗摄一区二区| 亚洲在线中文字幕| 成人免费看片'免费看| 国产一区久久精品| 中文字幕一区二区三区在线不卡| 日本精品一区二区| 二人午夜免费观看在线视频| xnxx国产精品| 青青草久久网络| 欧美套图亚洲一区| 26uuu亚洲综合色| 欧美三级电影在线播放| 男女av在线| 久久亚洲综合色| 欧美日韩亚洲在线| 国产女主播在线直播| 国产网站一区二区三区| 日韩精品久久一区| 国产剧情在线观看| 国产精品美女久久久久高潮| 一区二区三区国产福利| 男人的天堂在线视频免费观看 | 久久综合九色综合欧美狠狠| 5566成人精品视频免费| 日韩综合在线观看| 日本不卡123| 国产日韩欧美在线| 午夜精品久久久久久久99热黄桃| 高清国产一区二区| 国严精品久久久久久亚洲影视| 色中色在线视频| 欧美极品美女视频| 中文字幕综合在线观看| 波多野结衣激情| 黄色片网站免费在线观看| 99亚偷拍自图区亚洲| 久久亚洲午夜电影| lutube成人福利在线观看| 中文字幕一区在线观看| 欧美一区二区三区综合| 美女搞黄视频在线观看| 色成年激情久久综合| 中文字幕视频三区| 国产女人18毛片水真多18精品| 日韩国产精品一区| 欧美成人短视频| 欧美日韩国产探花| 日本欧美一级片| 国产免费高清av| 99re8在线精品视频免费播放| 日韩国产精品一区二区| 久久久久黄久久免费漫画| 欧美日韩午夜视频在线观看| 污污网站免费看| 国产精品极品国产中出| 色综合伊人色综合网站| 国产网友自拍视频| 日本不卡一二三区黄网| 国产精品初高中精品久久| 嫩草研究院在线观看| 亚洲日本一区二区三区| 日本三级免费网站| 成人免费观看49www在线观看| 亚洲精品美女久久久| 天天操夜夜操av| 欧美专区18| 成人av播放| 91激情在线| 日韩欧美福利视频| 色哟哟在线观看视频| 欧美日韩激情| 97色伦亚洲国产| 精品国产av 无码一区二区三区| 97国产精品videossex| 桥本有菜av在线| 日韩av免费| 精品偷拍各种wc美女嘘嘘| 天天看片中文字幕| 青青青伊人色综合久久| 欧美视频免费在线| 日韩精品一区二区三区久久| 久久天堂久久| 中日韩美女免费视频网站在线观看| 久久一二三四区| 国产一区二区久久| 亚洲欧洲在线一区| 高清成人在线| 亚洲精品不卡在线| 久久国产精品二区| 国产一区二区伦理片| 伊人色综合久久天天五月婷| 美女写真久久影院| 亚洲免费视频在线观看| 五月婷婷激情网| www.在线欧美| 国产毛片视频网站| 国产精品tv| 亚洲18私人小影院| 蜜臀av午夜精品| 亚洲国产精品影院| 稀缺小u女呦精品呦| 中文不卡在线| 99高清视频有精品视频| av毛片在线播放| 欧美一三区三区四区免费在线看 | 日韩精品免费| 国产精品wwwwww| melody高清在线观看| 欧美伊人久久大香线蕉综合69| 好吊视频在线观看| 一本一本久久| 欧美lavv| 外国电影一区二区| 最新中文字幕亚洲| 国产乱淫片视频| 亚洲一线二线三线视频| 黄色国产在线视频| 蜜乳av另类精品一区二区| 日本在线播放不卡| 久久青草视频| 欧美xxxx14xxxxx性爽| 精品人妻一区二区三区三区四区| 一区二区高清视频在线观看| 日本少妇xxxx| 天堂在线亚洲视频| 精品毛片乱码1区2区3区| 在线免费观看日韩av| 久久在线精品| 中文字幕一区二区三区精彩视频| 日韩成人久久| 国产91精品视频在线观看| 国产小视频在线观看| 欧美日韩大陆一区二区| 九九九久久久久| 91在线视频播放| 亚洲成色www.777999| 91精品一区国产高清在线gif| aa日韩免费精品视频一| 自拍网站在线观看| 主播福利视频一区| 亚洲AV无码精品色毛片浪潮| 欧美日韩国产一区二区| 欧美aaa级片| 成人免费的视频| 蜜桃免费在线视频| 欧美特黄一级| 亚洲二区自拍| 懂色av一区二区| 国产精品美女www爽爽爽视频| 亚洲按摩av| 国产亚洲精品久久久久动| av免费在线观看不卡| 欧美午夜女人视频在线| 乱老熟女一区二区三区| 成人av片在线观看| 国产欧美激情视频| 久久国产精品亚洲77777| 中文字幕の友人北条麻妃| 久久最新网址| 国产精品二区二区三区| 国产成人福利夜色影视| 国内精品美女av在线播放| 免费人成在线观看播放视频 | 91视频九色网站| 亚洲综合电影| 色中色综合影院手机版在线观看| 国产免费永久在线观看| 亚洲成人性视频| 91九色蝌蚪91por成人| 大伊人狠狠躁夜夜躁av一区| 日韩在线中文字幕视频| 国产亚洲va综合人人澡精品| 免费不卡的av| 国产福利91精品一区二区三区| 久久婷婷国产91天堂综合精品| 伊人久久成人| 女同性恋一区二区| 久久香蕉精品视频| 成人动漫一区二区在线| 无尽裸体动漫2d在线观看| 国产欧美一区二区色老头| 青青草综合视频| 忘忧草精品久久久久久久高清| 欧美精品123| 欧美jizz19性欧美| 成人羞羞视频免费| 日本精品在线播放| 91免费版网站入口| 香蕉久久一区| 成人精品视频在线| jizz免费一区二区三区| 国产精品成人久久久久| 中文字幕色婷婷在线视频| 久久频这里精品99香蕉| 欧美1234区| 欧美国产日韩一区二区在线观看| 欧美成人三区| 久久久999精品| 国产黄色在线免费观看| 精品国产拍在线观看| 91这里只有精品| 色99之美女主播在线视频| 国产天堂在线| 中文字幕国产精品久久| 69视频在线| 久久天天躁狠狠躁夜夜躁| 久草免费在线观看| 久久成人在线视频| 日韩免费影院| 91av在线播放视频| 中国字幕a在线看韩国电影| 日本在线观看天堂男亚洲| 激情开心成人网| 国产精品27p| 99久久久国产精品免费调教网站| 国产精品久久久久久av| 台湾天天综合人成在线| 91gao视频| 日本久久成人网| 日产国产精品精品a∨| 日韩毛片视频| 欧美少妇一区二区三区| 精品成人一区| 麻豆av免费在线| 免费在线一区观看| 日本特黄在线观看| 26uuu国产电影一区二区| 国产精品1区2区3区4区| 亚洲欧美日韩一区二区 | 欧美日韩亚洲视频| 免费黄色小视频在线观看| 3d成人h动漫网站入口| 好吊视频一区二区三区| 日韩精品中文字幕有码专区| 97免费视频观看| 久久精品99久久无色码中文字幕| 宅男在线精品国产免费观看| 欧美日韩理论| 爱福利视频一区二区| 久久精品国内一区二区三区| 欧美性猛交乱大交| xnxx国产精品| 成人免费黄色小视频| 天天综合天天做天天综合| 中文字幕第一页在线播放| 日韩一区二区在线观看视频| 秋霞av在线| 久久亚洲精品成人| 亚洲一级少妇| 91亚洲精品久久久久久久久久久久| 韩国女主播一区二区三区| 日韩精品欧美专区| 欧美视频成人| wwwwwxxxx日本| 91在线观看视频| 全网免费在线播放视频入口| 色综合久久久久久久| 精品人妻一区二区三区含羞草| 亚洲欧美中文另类| 女人天堂av在线播放| 国产精品久久久久久av福利软件| 最新国产精品精品视频| 亚洲不卡一卡2卡三卡4卡5卡精品| 亚洲综合专区| 无需播放器的av| 99精品偷自拍| 久久精品一区二区三| 欧美在线一二三| 五月婷婷免费视频| 欧美高清自拍一区| 国产精品麻豆成人av电影艾秋| 精品国产乱码久久久久软件| 午夜性色一区二区三区免费视频| 五月婷婷六月合| 久久久久久久综合狠狠综合| 日韩久久精品视频| 欧美xxxxxxxxx| 黄网页在线观看| 国产精品一区二区三区久久久| 亚洲美女久久| 成人中文字幕+乱码+中文字幕| 蜜桃视频久久一区免费观看入口| 亚洲色图校园春色| 国产理论在线| 国产福利久久| 欧美三级不卡| 在线成人精品视频| 亚洲婷婷国产精品电影人久久| 中文天堂在线资源| 亚洲新声在线观看| 婷婷六月国产精品久久不卡| 久久久com| 亚洲欧美视频| 日本黄色网址大全| 疯狂蹂躏欧美一区二区精品| 手机看片福利在线| 久久久久久久91| 成人线上播放| 一区二区传媒有限公司| 不卡av在线免费观看| 日本少妇bbwbbw精品| 国产大陆精品国产| 视频在线99| 99riav1国产精品视频| 催眠调教后宫乱淫校园| 精品福利在线视频| 深夜福利在线看| 国产aaa精品| 日韩激情免费| www.久久av.com| 亚洲激情自拍视频| 亚洲成人一二三区| 91av网站在线播放| 啪啪亚洲精品| 手机看片一级片| 亚洲人成网站影音先锋播放| 99热这里只有精品9| 欧美激情在线狂野欧美精品| 麻豆一区二区麻豆免费观看| 国产免费成人在线| 国产精品网站在线观看| 国产精品毛片一区二区在线看舒淇 | 亚洲欧美另类在线| 性少妇videosexfreexxx片| 91av视频在线播放| 日韩中文在线电影| 亚洲国产精品第一页| 欧美日韩亚洲视频| h视频网站在线观看| 成人中文字幕+乱码+中文字幕| 国产一区视频在线观看免费| 久久偷拍免费视频| 欧美人牲a欧美精品| 丁香高清在线观看完整电影视频| 久精品国产欧美| 免费欧美日韩国产三级电影| 日本少妇高清视频| 亚洲精品网站在线播放gif| 精品福利在线| 超碰成人免费在线| 国产欧美日本一区视频| 国产99久一区二区三区a片| 5566日本婷婷色中文字幕97| 97精品视频在线看| 亚洲欧美在线不卡| 欧美日韩免费一区二区三区视频| 国产福利在线免费观看| 亚洲国产精品一区二区第四页av | 91沈先生作品| 久久精品电影| 欧美日韩综合一区二区| 国产午夜精品一区二区三区| 在线日韩成人| 亚洲免费黄色网| 大桥未久av一区二区三区| 菠萝蜜视频国产在线播放|