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

詳解 MySQL 重做日志 redolog

數(shù)據(jù)庫 MySQL
redo log是InnoDB存儲引擎獨有的日志,用于MySQL工作過程中崩潰或者宕機時進行數(shù)據(jù)恢復的文件,從而保證數(shù)據(jù)的持久性以及完整性。

redo log也就是所謂的重做日志,是innoDb存儲引擎獨有的日志,它使得MySQL在宕機情況下依舊可以redo log完成數(shù)據(jù)具備恢復能力, 從而保證數(shù)據(jù)完整性,本文將針對該日志進行分析講解,希望對你有幫助。

redolog的作用

redo log是InnoDB存儲引擎獨有的日志,用于MySQL工作過程中崩潰或者宕機時進行數(shù)據(jù)恢復的文件,從而保證數(shù)據(jù)的持久性以及完整性。

redolog是如何運行工作的

我們都知道數(shù)據(jù)庫數(shù)據(jù)基本單位也是和操作系統(tǒng)一致的,都是以頁為單位,我們以MySQL數(shù)據(jù)查詢?yōu)槔瑸榱吮M可能減少IO次數(shù),MySQL在進行數(shù)據(jù)查詢會優(yōu)先將數(shù)據(jù)查詢并存儲到buffer Pool中,在事務提交后將修改操作按照配置的刷盤機制寫回磁盤中。

例如當我們需要對數(shù)據(jù)修改(update)操作時,基于buffer pool完成高效的數(shù)據(jù)更新操作后將事務提交,此時我們的redo日志數(shù)據(jù)就會按照innodb_flush_log_at_trx_commit指定的刷盤機制叫redolog緩存數(shù)據(jù)刷盤:

默認情況下redo日志對應的緩沖區(qū)大小為16M,該變量我們可以通過如下語句查看:

SHOW VARIABLES LIKE 'innodb_log_buffer_size';

對應查詢結果如下:

Variable_name         |Value   |
----------------------+--------+
innodb_log_buffer_size|16777216|

redolog幾個刷盤時機

上文圖解的第四步提到了redo log刷盤的操作,當符合以下幾種條件時,對應redo log buffer會被刷盤持久化到磁盤中:

  • 事務提交:當事務提交時,log buffer里redo log會按照innodb_flush_log_at_trx_commit的刷盤時機將數(shù)據(jù)持久化到磁盤中。
  • redo log buffer空間不足:log buffer中的redo log已經(jīng)占滿該緩沖區(qū)一半時,緩沖區(qū)數(shù)據(jù)就會被刷到磁盤中。
  • 事務日志緩沖區(qū)已滿:InnoDB使用一個事務日志緩沖區(qū)(transaction log buffer)存儲事務redo log的日志條目,當該緩存區(qū)已滿時,就會觸發(fā)日志刷新將日志寫入磁盤中。
  • 后臺線程定時刷盤:innodb后臺線程會每隔1s調用操作系統(tǒng)fsync函數(shù)將redolog數(shù)據(jù)刷盤。
  • checkpoint:線程會定時執(zhí)行一個checkpoint,將buffer pool已經(jīng)刷盤持久化到物理文件的數(shù)據(jù)對應的redo log設置為可被覆蓋(保證日志空間可以循環(huán)復用),這期間對應的redo log數(shù)據(jù)就會被寫入磁盤中。
  • 服務器關閉:MySQL服務正常關閉時,這些緩沖區(qū)的數(shù)據(jù)就會寫入到磁盤中。

redo log的刷盤策略

上文事務提交時提到一個刷盤策略的概念,實際上寫入磁盤的時機是由MySQL系統(tǒng)參數(shù)設置決定的,我們可以鍵入下面這條SQL查看innodb_flush_log_at_trx_commit這個參數(shù)的設定值:

SHOW VARIABLES LIKE 'innodb_flush_log_at_trx_commit';

以筆者的MySQL8為例,默認情況下這個參數(shù)值為1:

當這個值為0時,每次進行修改寫入到redo log buffer,然后redo log buffer會將數(shù)據(jù)寫到page cache中,由log thread每個1s調用操作系統(tǒng)函數(shù)fsync將數(shù)據(jù)寫入到redo.file中。很可能因為服務器崩潰或者宕機導致丟失1s的數(shù)據(jù)。

1為默認值,當參數(shù)值設置為1時, 每次進行修改操作后將數(shù)據(jù)寫入到redo log buffer中,一旦事務被提交,就會自動調用操作系統(tǒng)函數(shù)fsync將數(shù)據(jù)寫入的磁盤中的redo.file文件中。若設置為這個級別,當服務器宕機,若當前事務沒有提交,這部分數(shù)據(jù)丟失也無妨,事務提交的話,那么這個操作就會被寫到磁盤中,照樣可以恢復。

配置為2時,每當事務提交后,redo log就會刷入內核緩沖區(qū),這些數(shù)據(jù)具體何時刷盤則交由操作系統(tǒng)決定,這種情況在MySQL宕機情況下不會造成數(shù)據(jù)丟失,一旦操作系統(tǒng)崩潰則可能會造成內核緩沖區(qū)的redo log數(shù)據(jù)丟失,導致進行數(shù)據(jù)備份還原時丟失一部分數(shù)據(jù):

redo log的日志文件組

redo log并不是單指一個文件,它是由一組日志文件構成的,如下圖所示,這些文件大小都是一樣的,寫入操作時依次從從1開始寫,文件1寫滿了,就將數(shù)據(jù)寫到文件2,最后寫到文件4。

redolog通過write pos標記當前寫入的位置,每次完成寫入write pos標志位后移,一旦write pos和checkpoint相遇時就說明文件滿了,此時innodb就會通過讓checkpoint往后移進行一些空間數(shù)據(jù)擦除,以此來保證一個足夠空間容納新數(shù)據(jù)。

為什么InnoDB不直接將數(shù)據(jù)寫入磁盤

頁是操作系統(tǒng)的基本單位,一頁差不多16kb,而我們每次操作的數(shù)據(jù)可能也就x byte,為了x byte的數(shù)據(jù)操作將一頁的數(shù)據(jù)進行同步持久化實在有些大材小用了,所以通過redo log buffer記錄修改內容,通過刷盤策略進行數(shù)據(jù)刷盤更新,由此提升數(shù)據(jù)庫的并發(fā)能力:

bin.log和redo.log對應的二階段提交

經(jīng)常有讀者面試被問道的為什么我有了redo.log,你還需要bin log呢?而且這兩個日志我到底要先寫哪個才能保證主從數(shù)據(jù)庫的一致性呢?

對此我們不妨用反正法來說明:

  • 假設我們先寫bin.log,當事務提交后bin.log寫入成功,結果再寫redo.log期間,數(shù)據(jù)庫掛了。重啟恢復后,主數(shù)據(jù)庫根據(jù)早期redo.log(我們的redo.log沒寫入)恢復到bin log寫入前的樣子,而從數(shù)據(jù)庫已經(jīng)根據(jù)bin.log同步到了一份數(shù)據(jù),最終從數(shù)據(jù)庫比主數(shù)據(jù)庫多了一條數(shù)據(jù)。

  • 我們再假設寫redo log,假設事務執(zhí)行期間我們就寫了redo log,在事務提交之后寫bin log數(shù)據(jù)庫掛了,我們重啟數(shù)據(jù)庫后主主庫恢復。主庫根據(jù)redo log進行災備恢復,將我們更新的數(shù)據(jù)同時恢復回來,而從庫根據(jù)bin log進行數(shù)據(jù)同步時,并沒有察覺到主庫剛剛寫入的數(shù)據(jù),這就導致了從庫比主庫少了一條數(shù)據(jù)。

所以MySQL設計者提出了二階段提交的概念,整體步驟為:

  • 在事務開始時,先寫redo-log(prepare)。
  • 事務提交時,再寫bin log。
  • 事務提交成功,再寫redo-log(commit)。

有了這樣一個整體步驟我們不妨用兩種情況來舉個例子演示一下二階段提交如何保證數(shù)據(jù)一致性。

假設我們有一張user表,這張表只有id、name兩個字段。我們執(zhí)行如下SQL:

update user set name='aa' where id=1;

假如我們在redo.log提交時數(shù)據(jù)庫宕機,二階段是如何保證數(shù)據(jù)一致性的呢?

首先數(shù)據(jù)庫重啟恢復,然后主庫發(fā)現(xiàn)redo.log日志處于prepare而且bin.log也沒有寫入,所以一切恢復到之前的樣子(事務回滾),而從庫對此無感,同步時也是同步成操作失敗之前的樣子,一切風平浪靜:

假如我們bin.log進行commit成功之后數(shù)據(jù)庫宕機,二階段提交是如何保證數(shù)據(jù)庫一致性的呢?還是老規(guī)矩:

  • 數(shù)據(jù)庫重啟恢復,然后主庫發(fā)現(xiàn)bin.log有個commit成功的數(shù)據(jù)(事務是完整的)
  • 然redo.log處于prepare階段,但是我們還是可以根據(jù)情況推斷出有個當前主庫有個commit成功的事務,所以redo.log會根據(jù)bin.log將redo.log設置為commit
  • 從庫已根據(jù)主庫的bin.log發(fā)現(xiàn)有新增一條新數(shù)據(jù),由此同步一條更新數(shù)據(jù),雙方都有了一條新數(shù)據(jù),數(shù)據(jù)庫一致性由此保證:

責任編輯:趙寧寧 來源: 寫代碼的SharkChili
相關推薦

2010-10-29 14:29:55

Oracle移動重做日

2021-09-07 11:20:02

binlogMySQL數(shù)據(jù)庫

2009-11-16 17:33:21

重做Oracle日志文

2018-03-12 14:33:49

數(shù)據(jù)庫MySQL日志

2018-06-14 21:03:41

數(shù)據(jù)庫MySQL日志類型

2025-01-20 08:20:00

redo logMySQL數(shù)據(jù)庫

2020-11-11 07:32:18

MySQL InnoDB 存儲

2021-08-03 17:15:19

SQL 慢 SQL

2021-07-28 08:32:03

MySQLRedo存儲

2023-03-31 17:33:06

Oracle數(shù)據(jù)庫

2010-11-19 13:42:38

2010-10-29 15:26:29

Oracle日志文件

2011-04-12 10:42:41

Oracle日志文件管理

2024-09-09 08:15:20

2010-04-19 15:53:20

Oracle重做日志

2021-02-19 18:06:57

Oracle日志聯(lián)機

2011-05-18 14:33:20

MySQL

2022-05-24 07:39:09

MySQL數(shù)據(jù)庫日志

2025-11-13 09:48:57

2024-12-30 13:58:14

點贊
收藏

51CTO技術棧公眾號

国产视频在线播放| 日韩 国产 欧美| 日本波多野结衣在线| 伊甸园亚洲一区| 在线国产电影不卡| 国产日韩视频在线播放| 亚洲欧美激情另类| 巨乳诱惑日韩免费av| 欧美成人综合网站| 国产不卡一区二区视频| 国产黄在线播放| 国产麻豆精品theporn| 2019日本中文字幕| 在线观看av网页| av网站免费在线观看| 99久久精品国产麻豆演员表| 国产精品稀缺呦系列在线| 免费无码毛片一区二区app| 欧美人与动xxxxz0oz| 欧美精品九九99久久| 久激情内射婷内射蜜桃| 日日夜夜精品一区| 91丨九色丨蝌蚪丨老版| 99re国产视频| 小泽玛利亚一区二区三区视频| 国产精品豆花视频| 伊人久久久久久久久久| 国产精品成人无码专区| 成人精品视频在线观看| 91福利在线观看| 无码人妻少妇伦在线电影| av中文字幕在线| 91在线小视频| 国产欧美韩日| 精品免费久久久| 一级成人免费视频| japanese国产精品| 亚洲成人黄色在线| 韩国一区二区在线播放| 国产高清一级毛片在线不卡| 成人综合在线观看| 成人美女av在线直播| 免费精品一区二区| 国产一区二区你懂的| 欧美大片在线看免费观看| 99国产精品无码| 欧洲福利电影| 国产性猛交xxxx免费看久久| 熟女丰满老熟女熟妇| 成人av地址| 日韩精品一区二区三区在线播放 | 亚洲av熟女国产一区二区性色| 丁香婷婷成人| 亚洲成人a**站| 无码人妻一区二区三区一| 91麻豆精品一二三区在线| 欧美日韩一区三区四区| 天天操天天爽天天射| 大地资源中文在线观看免费版| av不卡在线播放| 国产精品一区二区欧美| 亚洲精品综合网| 懂色av一区二区三区蜜臀| 99精品国产高清一区二区| 国产av精国产传媒| 国产成人精品影院| 成人91视频| 欧日韩在线视频| 成人aa视频在线观看| 国产另类第一区| 神马久久高清| 国产欧美日韩另类视频免费观看| 日本精品一区二区三区视频| melody高清在线观看| 中文字幕精品一区二区精品绿巨人| 欧洲视频一区二区三区| 99中文字幕一区| 综合在线观看色| 国产一区精品视频| 婷婷在线免费观看| 美女网站一区二区| 成人乱色短篇合集| 亚洲美女福利视频| 26uuu另类欧美| 色女孩综合网| 91亚洲天堂| 亚洲mv大片欧洲mv大片精品| 熟妇人妻va精品中文字幕| 国产成人精选| 欧美xxxxx牲另类人与| 人妻丰满熟妇aⅴ无码| 精品国产精品| 欧美精品在线看| 男女啊啊啊视频| 麻豆免费看一区二区三区| 91在线色戒在线| 香港一级纯黄大片| 日韩美女视频19| 欧美大片在线播放| 涩涩涩久久久成人精品| 亚洲的天堂在线中文字幕| 日韩乱码人妻无码中文字幕久久| 97精品国产| 17婷婷久久www| 国产精品自偷自拍| 美女尤物国产一区| 国产欧美日韩一区| 亚洲视频tv| 午夜精品成人在线视频| 岛国av在线免费| 美女视频亚洲色图| 精品国产美女在线| 青青青视频在线播放| 欧美私人啪啪vps| 国产精品福利久久久| 色婷婷av一区二区三区之红樱桃| 国产精品久久久久久久久免费樱桃 | av五月天在线| 高清精品视频| 久久国产色av| 在线免费观看av片| 2023国产精品视频| 精品999在线观看| 免费**毛片在线| 欧美丝袜第一区| 蜜桃色一区二区三区| 亚洲电影在线一区二区三区| 久久久www成人免费精品| 91免费在线看片| 在线一区免费观看| 成人欧美一区二区| 欧美性猛交 xxxx| 日韩毛片一二三区| 九九热在线免费| 在线日韩一区| 欧美一区第一页| 少妇又色又爽又黄的视频| 亚洲视频在线观看三级| 国产欧美一区二| 成人直播大秀| 国产精品免费福利| 高h视频在线| 在线观看日产精品| 欧美特级黄色录像| 欧美亚洲专区| 久久人人九九| 伊人久久视频| 精品视频在线导航| 亚欧精品视频一区二区三区| 美女精品网站| 日本成人三级| 中文字幕系列一区| 中文字幕日韩欧美在线| 中文字幕乱码视频| 国产精品欧美经典| 在线观看国产一级片| 日韩一区自拍| 成人av色在线观看| av在线免费网站| 日韩精品一区二区三区在线观看 | 午夜激情久久久| www.17c.com喷水少妇| 亚洲裸体俱乐部裸体舞表演av| 国产精品一区二区av| 末成年女av片一区二区下载| 日韩精品高清在线观看| 久草手机视频在线观看| 久久国产精品99久久人人澡| 一级黄色录像免费看| 我要色综合中文字幕| 国产69精品久久久| av女名字大全列表| 欧美影视一区二区三区| 成人午夜免费影院| 国产最新精品精品你懂的| 久久亚洲国产成人精品无码区| 美女午夜精品| 国产精品免费电影| 牛牛在线精品视频| 亚洲精品天天看| 国产精品欧美综合亚洲| 亚洲一区二区三区免费视频| 中文字幕被公侵犯的漂亮人妻| 蜜桃免费网站一区二区三区| 久草免费福利在线| 欧美美乳视频| 91高跟黑色丝袜呻吟在线观看| 国产粉嫩在线观看| 色狠狠久久aa北条麻妃| 丁香社区五月天| 亚洲天堂a在线| 第四色在线视频| 国产精品大片免费观看| 欧美lavv| 综合伊人久久| 国产伦精品一区二区三区精品视频| 欧洲精品二区| 伊是香蕉大人久久| 国模私拍视频在线| 欧美日韩国产高清一区二区三区 | 色天天综合久久久久综合片| 性欧美videos| 国产视频一区在线播放| 国产又粗又猛又爽又黄| 日精品一区二区三区| 精品国产乱码一区二区三区四区| 亚洲黄色免费看| 亚洲精品中文字幕av| 国产精品久久婷婷| 性做久久久久久免费观看欧美| www.99re6| 99精品视频在线观看| 午夜激情av在线| 伊人久久亚洲美女图片| 日本特级黄色大片| 欧美黄色网视频| 国产精品美女网站| xxxcom在线观看| 色偷偷偷亚洲综合网另类| 人妻无码中文字幕免费视频蜜桃| 欧美日韩日日摸| 天天综合网入口| 亚洲桃色在线一区| 国产成人无码一区二区在线观看 | 国产精品欧美日韩| 人妖欧美1区| 中国人与牲禽动交精品| 久草福利在线| 狠狠躁夜夜躁人人爽天天天天97 | 国产又爽又黄又嫩又猛又粗| 欧美日韩裸体免费视频| 国产97免费视频| 亚洲日本在线观看| 日本一区二区视频在线播放| 成人自拍视频在线| 中文字幕在线观看日 | 九九热这里只有精品免费看| 六十路在线观看| 亚洲精品久久久一区二区三区| 一级爱爱免费视频| 日韩人在线观看| www五月天com| 精品久久久香蕉免费精品视频| 182在线观看视频| 久久精品一区二区三区四区| 日韩毛片在线免费看| 国产一区亚洲| 国产大尺度在线观看| 亚洲网色网站| 一本—道久久a久久精品蜜桃| 加勒比久久综合| 精品国产一区二区三区麻豆免费观看完整版| 久久伦理中文字幕| 91天堂在线视频| 在线视频成人| 国产成人精品免费视频大全最热 | 欧美性猛交xxxx黑人交| 亚洲精品男人的天堂| 欧美日韩国产精品一区二区三区四区 | 中国a一片一级一片| 一本色道久久综合亚洲91| 日韩三级视频在线播放| 欧美色图在线视频| 91视频免费网址| 欧美日韩亚洲视频| 国产精品久久久久久99| 精品视频一区三区九区| 中文字幕日日夜夜| 欧美色图免费看| 无码任你躁久久久久久久| 欧美视频不卡中文| 蜜臀精品一区二区三区| 欧美午夜宅男影院| 国产精品久久久久久久久久久久久久久久久久 | 在线亚洲国产精品网站| 国产免费黄色小视频| 日韩精彩视频在线观看| 邪恶网站在线观看| 激情综合网激情| 国产黑丝在线观看| 久久久国产一区二区三区四区小说| 90岁老太婆乱淫| 亚洲免费观看在线观看| 久久免费小视频| 岛国视频午夜一区免费在线观看| 草久久免费视频| 欧美一区二区黄| 欧美自拍第一页| 亚洲视频第一页| 欧美性受ⅹ╳╳╳黑人a性爽| 国内精久久久久久久久久人| 欧美电影h版| 国产成人亚洲欧美| 日韩美女视频网站| 国产欧美精品国产国产专区 | 精品人妻午夜一区二区三区四区 | 精品国产乱码久久久久久蜜坠欲下| 色噜噜一区二区| 欧美亚韩一区| 日韩手机在线观看视频| 国产在线精品免费| 男女一区二区三区| **性色生活片久久毛片| 国产精品第56页| 欧美视频精品在线观看| 日韩在线视频第一页| 在线成人中文字幕| 国产羞羞视频在线播放| 日韩免费观看视频| 日本亚州欧洲精品不卡| 欧美在线一二三区| 伊人久久综合| 污色网站在线观看| 成年人国产精品| 婷婷丁香综合网| 色一情一伦一子一伦一区| 国产又粗又猛视频免费| 亚洲精品久久久久久下一站| 污污在线观看| 国产精品视频一区国模私拍| 高潮按摩久久久久久av免费| 黄色一级视频播放| 久久九九99| www.四虎精品| 亚洲综合色婷婷| 一二三四区在线| 亚洲人成免费电影| 成人性生活av| 国产 高清 精品 在线 a| 日韩欧美午夜| 免费涩涩18网站入口| 99精品1区2区| 麻豆影视在线播放| 欧美成人综合网站| 伊人免费在线| 国产成人一区二区在线| 91在线三级| 国产精品无av码在线观看| 少妇精品久久久一区二区三区| 9色porny| 青青草国产成人99久久| 国产又粗又长又大的视频| 成人午夜电影网站| 一区二区三区四区五区| 欧美日韩小视频| 电影av一区| 日本免费久久高清视频| 国产欧美日韩一区二区三区四区| 国产精品久久久久久久乖乖| 国产麻豆精品久久一二三| 欧美日韩国产精品一区二区三区| 欧美高清激情brazzers| 成人在线播放视频| 国产精品亚洲精品| 欧美日一区二区| 精品久久久噜噜噜噜久久图片| 国产欧美精品日韩区二区麻豆天美 | 国产欧美日韩视频在线| 波多野结衣50连登视频| 91免费小视频| www.国产高清| 日韩精品一区二区视频| 日韩精品第一| 亚洲日本精品| 蜜臀精品久久久久久蜜臀| 很污很黄的网站| 欧美老女人在线| 最新日本在线观看| 久久艹中文字幕| 国产精品一卡| 中文字幕乱视频| 亚洲一线二线三线久久久| 深夜福利视频网站| 欧美在线视频网站| 日韩在线精品| 色91精品久久久久久久久| 欧美激情在线看| 国内毛片毛片毛片毛片| 久久久久久久久久国产| 亚洲成人一品| 亚洲综合在线网站| 国产精品全国免费观看高清| www.蜜桃av.com| 97国产精品久久| 久草精品在线| 日韩久久久久久久久久久| 亚洲二区在线视频| 欧美 日韩 综合| 日韩美女视频免费看| 久久精品国产68国产精品亚洲| 日韩女优在线视频| 日韩欧美视频一区二区三区| 91在线视频| 久久国产精品精品国产色婷婷 | 日本 片 成人 在线| 精品成人av一区| 色老头视频在线观看| 国产精品一区二区免费看| 精品一区二区三区在线观看| 久久这里只有精品国产|