婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > MySQL 主從同步,事務回滾的實現原理

MySQL 主從同步,事務回滾的實現原理

熱門標簽:地圖標注被騙三百怎么辦 沃克斯電梯外呼線路圖 房產智能外呼系統品牌 常州電銷外呼系統一般多少錢 福州呼叫中心外呼系統哪家好 北京人工外呼系統價錢 天智外呼系統 云南語音外呼系統平臺 400電話鄭州申請

BinLog

BinLog是記錄所有數據庫表結構變更(例如create、alter table)以及表數據修改(insert、update、delete)的二進制日志,主從數據庫同步用到的都是BinLog文件。BinLog日志文件有三種模式。

STATEMENT 模式

內容:binlog 只會記錄引起數據變更的 sql 語句

優勢:該模式下,因為沒有記錄實際的數據,所以日志量和 IO 都消耗很低,性能是最優的

劣勢:但有些操作并不是確定的,比如 uuid() 函數會隨機產生唯一標識,當依賴 binlog 回放時,該操作生成的數據與原數據必然是不同的,此時可能造成無法預料的后果。

ROW 模式

內容:在該模式下,binlog 會記錄每次操作的源數據與修改后的目標數據,StreamSets就要求該模式。

優勢:可以絕對精準的還原,從而保證了數據的安全與可靠,并且復制和數據恢復過程可以是并發進行的

劣勢:缺點在于 binlog 體積會非常大,同時,對于修改記錄多、字段長度大的操作來說,記錄時性能消耗會很嚴重。閱讀的時候也需要特殊指令來進行讀取數據。

MIXED 模式

內容:是對上述STATEMENT 跟 ROW 兩種模式的混合使用。

細節:對于絕大部分操作,都使用 STATEMENT 來進行 binlog 的記錄,只有以下操作使用 ROW 來實現:表的存儲引擎為 NDB,使用了uuid() 等不確定函數,使用了 insert delay 語句,使用了臨時表

主從同步流程:

1、主節點必須啟用二進制日志,記錄任何修改了數據庫數據的事件。

2、從節點開啟一個線程(I/O Thread)把自己扮演成 mysql 的客戶端,通過 mysql 協議,請求主節點的二進制日志文件中的事件 。

3、主節點啟動一個線程(dump Thread),檢查自己二進制日志中的事件,跟對方請求的位置對比,如果不帶請求位置參數,則主節點就會從第一個日志文件中的第一個事件一個一個發送給從節點。

4、從節點接收到主節點發送過來的數據把它放置到中繼日志(Relay log)文件中。并記錄該次請求到主節點的具體哪一個二進制日志文件內部的哪一個位置(主節點中的二進制文件會有多個)。

5、從節點啟動另外一個線程(sql Thread ),把 Relay log 中的事件讀取出來,并在本地再執行一次。

mysql默認的復制方式是異步的,并且復制的時候是有并行復制能力的。主庫把日志發送給從庫后不管了,這樣會產生一個問題就是假設主庫掛了,從庫處理失敗了,這時候從庫升為主庫后,日志就丟失了。由此產生兩個概念。

  • 全同步復制

主庫寫入binlog后強制同步日志到從庫,所有的從庫都執行完成后才返回給客戶端,但是很顯然這個方式的話性能會受到嚴重影響。

  • 半同步復制

半同步復制的邏輯是這樣,從庫寫入日志成功后返回ACK確認給主庫,主庫收到至少一個從庫的確認就認為寫操作完成。

RedoLog

binlog跟redolog區別:

  • redo log是InnoDB引擎特有的;binlog是MySQL的Server層實現的,所有引擎都可以使用。
  • redo log是物理日志,記錄的是在某個數據頁上做了什么修改;binlog是邏輯日志,記錄的是這個語句的原始邏輯,比如給ID=2這一行的c字段加1。
  • redo log是循環寫的,空間固定會用完;binlog是可以追加寫入的。追加寫是指binlog文件寫到一定大小后會切換到下一個,并不會覆蓋以前的日志。

在MySQL中如果每一次的更新操作都需要寫進磁盤,然后磁盤也要找到對應的那條記錄,然后再更新,整個過程IO成本、查找成本都很高。先寫日志,再寫磁盤BinLog,RedoLog。

1、 記錄更新時,InnoDB引擎就會先把記錄寫到RedoLog(里面,并更新內存。同時,InnoDB引擎會在空閑時將這個操作記錄更新到磁盤里面。

2、 如果更新太多RedoLog處理不了的時候,需先將RedoLog部分數據寫到磁盤,然后擦除RedoLog部分數據。

RedoLog的write pos 跟checkpoint

RedoLog有write pos 跟checkpoint

write pos :是當前記錄的位置,一邊寫一邊后移,寫到第3號文件末尾后就回到0號文件開頭。

check point:縮短數據庫的恢復時間,buffer pool空間不夠用時,將臟頁刷新到磁盤,redolog不可用時,刷新臟頁

redo log順序寫實際上是循環寫固定幾個文件,寫滿一輪就要從頭開始覆蓋。它包括兩個位點,check point和write pos,write pos是寫到那個位置了,循環往后遞增,check point是當前要擦除的位置。二者中間的空間是可寫入的,當write pos追上check point時,就會先停下更新,覆蓋掉一些記錄,然后繼續寫入redo log。

redo log 的crash-safe

MySQL支持用戶自定義在commit時如何將log buffer中的日志刷log file中。這種控制通過變量 innodb_flush_log_at_trx_commit 的值來決定。該變量有3種值:0、1、2,默認為1。但注意,這個變量只是控制commit動作是否刷新log buffer到磁盤。

  • 當設置為1的時候,事務每次提交都會將log buffer中的日志寫入os buffer并調用fsync()刷到log file on disk中。這種方式即使系統崩潰也不會丟失任何數據,但是因為每次提交都寫入磁盤,IO的性能較差。
  • 當設置為0的時候,事務提交時不會將log buffer中日志寫入到os buffer,而是每秒寫入os buffer并調用fsync()寫入到log file on disk中。也就是說設置為0時是(大約)每秒刷新寫入到磁盤中的,當系統崩潰,會丟失1秒鐘的數據。
  • 當設置為2的時候,每次提交都僅寫入到os buffer,然后是每秒調用fsync()將os buffer中的日志寫入到log file on disk。

在主從復制結構中,要保證事務的持久性和一致性,需要對日志相關變量設置為如下:

  • 如果啟用了二進制日志,則設置sync_binlog=1,即每提交一次事務同步寫到磁盤中。
  • 總是設置innodb_flush_log_at_trx_commit=1,即每提交一次事務都寫到磁盤中。

上述兩項變量的設置保證了:每次提交事務都寫入二進制日志和事務日志,并在提交時將它們刷新到磁盤中。

有了redo log,InnoDB就可以保證即使數據庫發生異常重啟,之前提交的記錄都不會丟失,這個能力稱為crash-safe。redolog兩階段提交`:為了讓binlog跟redolog兩份日志之間的邏輯一致。提交流程大致如下:

1 prepare階段 --> 2 寫binlog --> 3 commit

1.當在2之前崩潰時,重啟恢復后發現沒有commit,回滾。備份恢復:沒有binlog 。一致
2.當在3之前崩潰時,重啟恢復發現雖沒有commit,但滿足prepare和binlog完整,所以重啟后會自動commit。備份:有binlog. 一致

UndoLog

undo log有兩個作用:提供回滾和多個行版本控制(MVCC).主要分為兩種

在數據修改的時候,不僅記錄了redo,還記錄了相對應的undo,如果因為某些原因導致事務失敗或回滾了,可以借助該undo進行回滾。當delete一條記錄時,undo log中會記錄一條對應的insert記錄,反之亦然,當update一條記錄時,它記錄一條對應相反的update記錄。

當執行rollback時,就可以從undo log中的邏輯記錄讀取到相應的內容并進行回滾

  • insert undo log

代表事務在insert新記錄時產生的undo log, 只在事務回滾時需要,并且在事務提交后可以被立即丟棄

  • update undo log

事務在進行update或delete時產生的undo log; 不僅在事務回滾時需要,在快照讀時也需要;所以不能隨便刪除,只有在快速讀或事務回滾不涉及該日志時,對應的日志才會被purge線程統一清除

以上就是MySQL 主從同步,事務回滾的實現原理的詳細內容,更多關于MySQL 主從同步,事務回滾的資料請關注腳本之家其它相關文章!

您可能感興趣的文章:
  • 解決MySQL主從數據庫沒有同步的兩種方法
  • Mysql數據庫的主從同步配置
  • 一文帶你了解Mysql主從同步原理
  • Docker 環境運行 Mysql 和開啟 Binlog 配置主從同步的設置方法
  • MySQL數據庫主從同步實戰過程詳解
  • MySQL主從同步中的server-id示例詳解
  • MySQL數據庫的主從同步配置與讀寫分離
  • MySQL主從同步原理及應用

標簽:沈陽 拉薩 黔東 鹽城 徐州 沈陽 珠海 移動

巨人網絡通訊聲明:本文標題《MySQL 主從同步,事務回滾的實現原理》,本文關鍵詞  MySQL,主從,同步,事務,回滾,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《MySQL 主從同步,事務回滾的實現原理》相關的同類信息!
  • 本頁收集關于MySQL 主從同步,事務回滾的實現原理的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    亚洲欧美日本韩国| 精品欧美一区二区久久 | 久久国产视频网| 国产日本一区二区| 欧美一卡2卡3卡4卡| 亚洲va国产天堂va久久en| 中文字幕视频一区二区三区久| 在线观看免费亚洲| 美腿丝袜亚洲一区| 中文字幕精品综合| 日韩三级免费观看| 欧美高清在线视频| 亚洲精品在线观看网站| 678五月天丁香亚洲综合网| 亚洲综合一区二区精品导航| 欧美日本韩国一区二区三区视频| 一本色道久久综合狠狠躁的推荐 | www..com久久爱| 一区二区三区久久| 4438亚洲最大| 欧美日本一区二区三区| 在线欧美一区二区| 成人福利在线看| 国产精品18久久久久久久久久久久| 欧美激情一区二区三区全黄| 日韩欧美一区二区在线视频| 91热门视频在线观看| 国产成人在线观看免费网站| 日韩经典一区二区| 国产在线精品免费av| 不卡视频免费播放| 成人午夜在线视频| 精品久久一二三区| 一区在线观看免费| 亚洲人成网站精品片在线观看| 欧美日韩亚洲高清一区二区| 精品一区二区久久久| 99精品热视频| 在线区一区二视频| 日本高清成人免费播放| 日本aⅴ亚洲精品中文乱码| 91久久一区二区| 精品国产乱子伦一区| 亚洲国产色一区| 欧美xxxxx牲另类人与| 欧美精品日韩一本| 色婷婷综合五月| 在线亚洲精品福利网址导航| 色综合天天做天天爱| 青椒成人免费视频| 视频一区国产视频| 青青国产91久久久久久| 久久精品国产精品亚洲精品 | 欧美一区二区三区成人| 日韩欧美在线综合网| 中文字幕av一区 二区| 一区二区三区不卡视频在线观看| 污片在线观看一区二区| 国产综合色精品一区二区三区| 国产成都精品91一区二区三| 色婷婷一区二区| 精品国产自在久精品国产| 亚洲欧美日韩系列| 久久99久久99| 精品视频123区在线观看| 欧美极品xxx| 视频在线观看一区二区三区| 大白屁股一区二区视频| 91精品国产色综合久久不卡电影 | 欧美老女人第四色| 中文字幕av资源一区| 秋霞电影网一区二区| 9久草视频在线视频精品| 日韩美一区二区三区| 亚洲一区二区在线免费观看视频| 国产盗摄视频一区二区三区| 欧美日韩国产大片| 中文字幕一区二区三区精华液| 青娱乐精品视频| 色综合久久99| 中日韩免费视频中文字幕| 日韩主播视频在线| 日本韩国精品在线| 亚洲欧洲综合另类| 岛国av在线一区| 久久久电影一区二区三区| 日韩av中文在线观看| 欧美私人免费视频| 国产精品大尺度| 成人免费的视频| 国产精品久久福利| 成人精品鲁一区一区二区| 久久综合久久久久88| 蜜桃91丨九色丨蝌蚪91桃色| 欧美吻胸吃奶大尺度电影| 亚洲在线观看免费| 欧美在线你懂的| 亚洲国产精品人人做人人爽| 在线视频欧美区| 亚洲第一激情av| 3d动漫精品啪啪1区2区免费| 日韩精品欧美成人高清一区二区| 欧美日韩在线不卡| 秋霞av亚洲一区二区三| 欧美mv日韩mv国产网站| 捆绑紧缚一区二区三区视频| 日韩精品一区二区三区老鸭窝| 另类的小说在线视频另类成人小视频在线| 欧美三级三级三级| 丝袜亚洲另类丝袜在线| 欧美一区二区免费视频| 精品在线你懂的| 国产婷婷一区二区| av不卡免费电影| 一区二区三区免费在线观看| 在线免费观看不卡av| 亚洲大片在线观看| xvideos.蜜桃一区二区| 不卡一区二区中文字幕| 亚洲一区日韩精品中文字幕| 制服丝袜亚洲精品中文字幕| 激情深爱一区二区| 亚洲色大成网站www久久九九| 色悠久久久久综合欧美99| 午夜精品一区二区三区电影天堂| 日韩一区二区精品在线观看| 激情综合色综合久久| 国产精品传媒在线| 欧美精品在线视频| 成人永久免费视频| 日本午夜精品一区二区三区电影| 欧美成人高清电影在线| www.视频一区| 国产成人在线网站| 欧美日韩精品一区二区三区 | 久久精品夜色噜噜亚洲aⅴ| 色一情一伦一子一伦一区| 亚洲欧美日韩中文播放| 美日韩一级片在线观看| 视频一区二区三区入口| 国产在线一区二区| 亚洲欧美电影院| 日韩一区二区三区在线视频| 国产精品成人免费精品自在线观看| 国产欧美一区二区三区在线看蜜臀| 国产精品久久一卡二卡| 强制捆绑调教一区二区| 激情伊人五月天久久综合| 日韩av成人高清| 老司机精品视频在线| 一区二区三区在线播放| 免费在线观看一区| 成人精品一区二区三区四区| 欧美日本一区二区三区| 久久九九久精品国产免费直播| 欧美日韩成人在线| 亚洲视频免费看| 蜜臀精品一区二区三区在线观看| 成人一区在线观看| 久久久久久97三级| 国内久久精品视频| 26uuu国产电影一区二区| 日本成人在线看| 日韩欧美国产成人一区二区| 91行情网站电视在线观看高清版| 午夜成人免费视频| 久久久久久久久久久久久女国产乱 | 青青青爽久久午夜综合久久午夜| 欧美本精品男人aⅴ天堂| 亚洲一区二区三区三| 欧美精品一区二区在线观看| 欧美亚洲自拍偷拍| 中文字幕免费一区| 国产精品一区二区在线观看网站| 日韩欧美第一区| 欧美日韩aaaaaa| 国产精品一区三区| 国产精品国产精品国产专区不蜜 | 日韩视频免费直播| 欧美国产国产综合| 精品理论电影在线| 91免费视频观看| 欧美日韩国产电影| 精品国产成人在线影院 | 蜜臀国产一区二区三区在线播放| 欧美精品一二三区| 国产成人小视频| 日本乱码高清不卡字幕| 国产成人精品aa毛片| 欧亚洲嫩模精品一区三区| 日本不卡一区二区三区高清视频| 亚洲一区二区三区四区五区黄| 欧美一区二区三区视频在线| 色狠狠综合天天综合综合| av激情综合网| 99re热视频精品| 在线观看亚洲一区| 欧美日韩亚洲综合在线| 欧美人体做爰大胆视频| 国产精品免费视频观看|