中文字幕av高清_国产视频一二区_男女羞羞羞视频午夜视频_成人精品一区_欧美色视_在线视频这里只有精品

千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機(jī)構(gòu)

手機(jī)站
千鋒教育

千鋒學(xué)習(xí)站 | 隨時(shí)隨地免費(fèi)學(xué)

千鋒教育

掃一掃進(jìn)入千鋒手機(jī)站

領(lǐng)取全套視頻
千鋒教育

關(guān)注千鋒學(xué)習(xí)站小程序
隨時(shí)隨地免費(fèi)學(xué)習(xí)課程

當(dāng)前位置:首頁  >  技術(shù)干貨  > mysql group commit為什么要保證binlog和redo log提交的順序一致?

mysql group commit為什么要保證binlog和redo log提交的順序一致?

來源:千鋒教育
發(fā)布人:xqq
時(shí)間: 2023-10-13 08:25:24 1697156724

一、為什么要保證binlog和redo log提交的順序一致

MySQL為了保證master和slave的數(shù)據(jù)一致性,就必須保證binlog和InnoDB redo日志的一致性(因?yàn)閭鋷焱ㄟ^二進(jìn)制日志重放主庫提交的事務(wù),而主庫binlog寫入在commit之前,如果寫完binlog主庫crash,再次啟動(dòng)時(shí)會(huì)回滾事務(wù)。但此時(shí)從庫已經(jīng)執(zhí)行,則會(huì)造成主備數(shù)據(jù)不一致)。所以在開啟Binlog后,如何保證binlog和InnoDB redo日志的一致性呢?為此,MySQL引入二階段提交(two phase commit or 2pc),MySQL內(nèi)部會(huì)自動(dòng)將普通事務(wù)當(dāng)做一個(gè)XA事務(wù)(內(nèi)部分布式事物)來處理:

– 自動(dòng)為每個(gè)事務(wù)分配一個(gè)少數(shù)的ID(XID)。

– COMMIT會(huì)被自動(dòng)的分成Prepare和Commit兩個(gè)階段。

– Binlog會(huì)被當(dāng)做事務(wù)協(xié)調(diào)者(Transaction Coordinator),Binlog Event會(huì)被當(dāng)做協(xié)調(diào)者日志。

Binlog在2PC中充當(dāng)了事務(wù)的協(xié)調(diào)者(Transaction Coordinator)。由Binlog來通知InnoDB引擎來執(zhí)行prepare,commit或者rollback的步驟。

事務(wù)的提交主要分為兩個(gè)主要步驟:

1. 準(zhǔn)備階段(Storage Engine(InnoDB) Transaction Prepare Phase)

此時(shí)SQL已經(jīng)成功執(zhí)行,并生成xid信息及redo和undo的內(nèi)存日志。然后調(diào)用prepare方法完成名列前茅階段,papare方法實(shí)際上什么也沒做,將事務(wù)狀態(tài)設(shè)為TRX_PREPARED,并將redo log刷磁盤。

2. 提交階段(Storage Engine(InnoDB)Commit Phase)

2.1 記錄協(xié)調(diào)者日志,即Binlog日志。

如果事務(wù)涉及的所有存儲(chǔ)引擎的prepare都執(zhí)行成功,則調(diào)用TC_LOG_BINLOG::log_xid方法將SQL語句寫到binlog(write()將binary log內(nèi)存日志數(shù)據(jù)寫入文件系統(tǒng)緩存,fsync()將binary log文件系統(tǒng)緩存日志數(shù)據(jù)永久寫入磁盤)。此時(shí),事務(wù)已經(jīng)鐵定要提交了。否則,調(diào)用ha_rollback_trans方法回滾事務(wù),而SQL語句實(shí)際上也不會(huì)寫到binlog。

2.2 告訴引擎做commit。

最后,調(diào)用引擎的commit完成事務(wù)的提交。會(huì)清除undo信息,刷redo日志,將事務(wù)設(shè)為TRX_NOT_STARTED狀態(tài)。

PS:記錄Binlog是在InnoDB引擎Prepare(即Redo Log寫入磁盤)之后,這點(diǎn)至關(guān)重要。

由上面的二階段提交流程可以看出,一旦步驟2中的操作完成,就確保了事務(wù)的提交,即使在執(zhí)行步驟3時(shí)數(shù)據(jù)庫發(fā)送了宕機(jī)。此外需要注意的是,每個(gè)步驟都需要進(jìn)行一次fsync操作才能保證上下兩層數(shù)據(jù)的一致性。步驟2的fsync參數(shù)由sync_binlog=1控制,步驟3的fsync由參數(shù)innodb_flush_log_at_trx_commit=1控制,俗稱“雙1”,是保證CrashSAFe的根本。

延伸閱讀:

二、關(guān)系型數(shù)據(jù)庫中的數(shù)據(jù)組織

關(guān)系型數(shù)據(jù)庫中,數(shù)據(jù)組織涉及到兩個(gè)最基本的結(jié)構(gòu):表與索引。表中存儲(chǔ)的是完整記錄,一般有兩種組織形式:堆表(所有的記錄無序存儲(chǔ)),或者是聚簇索引表(所有的記錄,按照記錄主鍵進(jìn)行排序存儲(chǔ))。索引中存儲(chǔ)的是完整記錄的一個(gè)子集,用于加速記錄的查詢速度,索引的組織形式,一般均為B+樹結(jié)構(gòu)。

聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
10年以上業(yè)內(nèi)強(qiáng)師集結(jié),手把手帶你蛻變精英
請您保持通訊暢通,專屬學(xué)習(xí)老師24小時(shí)內(nèi)將與您1V1溝通
免費(fèi)領(lǐng)取
今日已有369人領(lǐng)取成功
劉同學(xué) 138****2860 剛剛成功領(lǐng)取
王同學(xué) 131****2015 剛剛成功領(lǐng)取
張同學(xué) 133****4652 剛剛成功領(lǐng)取
李同學(xué) 135****8607 剛剛成功領(lǐng)取
楊同學(xué) 132****5667 剛剛成功領(lǐng)取
岳同學(xué) 134****6652 剛剛成功領(lǐng)取
梁同學(xué) 157****2950 剛剛成功領(lǐng)取
劉同學(xué) 189****1015 剛剛成功領(lǐng)取
張同學(xué) 155****4678 剛剛成功領(lǐng)取
鄒同學(xué) 139****2907 剛剛成功領(lǐng)取
董同學(xué) 138****2867 剛剛成功領(lǐng)取
周同學(xué) 136****3602 剛剛成功領(lǐng)取
相關(guān)推薦HOT
app的啟動(dòng)流程都包括哪些步驟?

一、app的啟動(dòng)流程包括的步驟1、創(chuàng)建進(jìn)程App發(fā)起進(jìn)程:當(dāng)從桌面啟動(dòng)應(yīng)用,則發(fā)起進(jìn)程便是Launcher所在進(jìn)程;當(dāng)從某App內(nèi)啟動(dòng)遠(yuǎn)程進(jìn)程,則發(fā)送進(jìn)...詳情>>

2023-10-13 10:03:27
怎么理解Mongodb是介于關(guān)系型和非關(guān)系型的數(shù)據(jù)庫?

一、怎么理解Mongodb是介于關(guān)系型和非關(guān)系型的數(shù)據(jù)庫MongoDB被稱為介于關(guān)系型數(shù)據(jù)庫(RDBMS)和非關(guān)系型數(shù)據(jù)庫(NoSQL)之間,這是因?yàn)樗谝韵?..詳情>>

2023-10-13 09:55:50
DBeaver怎么保持?jǐn)?shù)據(jù)庫連接?

一、DBeaver保持?jǐn)?shù)據(jù)庫連接的方法1、連接到數(shù)據(jù)庫打開DBeaver并選擇連接到您的目標(biāo)數(shù)據(jù)庫。選擇適當(dāng)?shù)臄?shù)據(jù)庫類型,輸入必要的連接信息,如主機(jī)...詳情>>

2023-10-13 09:05:04
Kettle連接MySQL為什么會(huì)報(bào)錯(cuò)?

一、Kettle連接MySQL會(huì)報(bào)錯(cuò)的原因1、驅(qū)動(dòng)程序缺失Kettle需要使用MySQL的JDBC驅(qū)動(dòng)程序來連接MySQL數(shù)據(jù)庫。如果沒有正確配置或提供JDBC驅(qū)動(dòng)程序,...詳情>>

2023-10-13 08:53:41
wait()、sleep()、join()和yield()區(qū)別是什么?

一、wait()wait()方法是Object類中的方法,主要用于線程間的同步和協(xié)作。當(dāng)一個(gè)線程調(diào)用某個(gè)對象的wait()方法時(shí),它會(huì)釋放該對象的鎖,并進(jìn)入等...詳情>>

2023-10-13 08:45:29
快速通道
主站蜘蛛池模板: 久久综合狠狠综合久久综合88 | 成年人av网站 | 中文字幕欧美日韩一区 | 亚洲毛片 | 欧美性猛交xxxx免费看漫画 | 国产男人的天堂 | 性色av一二三杏吧传媒 | 五月婷婷综合激情 | 日韩日韩日韩日韩日韩日韩日韩 | 国产精品成人免费视频 | 亚洲精品亚洲人成人网 | 亚洲人成人一区二区在线观看 | 成人国产网站 | 在线日韩 | 色婷婷综合久久久中文字幕 | 欧美一区二区三区在线观看 | 欧美日本一区 | 国产日本亚洲欧美 | 亚洲一区二区三区视频 | 国产精品一区二 | 国内精品视频 | 午夜激情综合 | 少妇一区二区三区免费观看 | 美女吊逼 | 亚洲一区二区高清视频 | 一级在线免费视频 | 国产永久免费 | 中文日韩在线 | 欧美激情一区二区三区四区 | 日本三级网址 | 免费的黄色影片 | 日本一区二区不卡视频 | 欧美色图在线观看 | 欧美精品一区二区三区在线 | 中文字幕免费在线 | 美日韩一区 | 国产福利精品在线 | 精品一区二区三区在线观看 | 一区二区国产在线 | 色久天堂| 黄av在线播放 |