Mysql基礎知識點《二》

重做日志文件(redo log)和二進制文件(bin log)

bin logrhino文件的歷史要比redo log日志文件的歷史久捅彻,因為bin log是server層的日志文件,而server層是所有存儲引擎共享的,其記錄的是邏輯日志腥放,簡單的說就是具體的sql输枯,但不是所有的sql都會記錄,而是所有的數據庫表結構和表數據變更,而redo log是innodb才有的克饶,是存儲引擎層的日志,記錄的是物理日志誊辉,即數據的變化矾湃。

為什么bin log無法保證crach-safe?

bin log記錄的是邏輯日志堕澄,也就是具體的操作邀跃,為什么無法保證呢?因為記錄日志和執(zhí)行操作是兩個操作蛙紫,不是原子操作拍屑。假如在期間什么時候出現(xiàn)了宕機都會出現(xiàn)數據不一致的問題。

redo log如何保證crach-safe坑傅?

同樣是日志文件僵驰,為什么redo log就可以保證crach-safe呢?因為redo log記錄的是物理日志唁毒,其記錄的時間不是在事務執(zhí)行之前或者之后蒜茴,而是在事務執(zhí)行中就記錄了redo log,通過事務來控制原子性浆西。并且粉私,redo log可以保證之前還未提交的操作被記錄了,數據可以恢復近零,所以保證了crach-safe诺核。

那bin log的用途是什么?

bin log是用于主從數據同步的久信。

mysql的主從復制

mysql的slave模式中窖杀,為了減緩主數據庫的訪問壓力,通過添加從數據庫來減少對主數據庫的訪問入篮,但是如何保證主從數據庫數據的一致呢陈瘦?


image.png

主庫將更新操作保存在bin log 中,從庫的IO線程從主庫的bin log中讀取到relay log中,sql thread 從relay log 中執(zhí)行sql痊项。

bin log 和redo log的一致性問題锅风?

bin log用來實現(xiàn)主從復制,那么bin log也需要保證記錄的數據的有效性鞍泉,我們知道redo log中的數據是有效的皱埠,所以我們就需要同步兩者之間的數據就行了。那如何實現(xiàn)兩者之間的數據一致性呢咖驮?這里mysql通過兩階段提交來實現(xiàn)边器。

兩階段提交
  1. prepare階段:innodb prepare,執(zhí)行操作托修,寫入redo log忘巧;
  2. commit階段:寫入bin log innodb commit(內存操作)。
    兩階段提交中睦刃,當已經記錄到bin log 中之后砚嘴,就可以認為數據已經持久化了,數據可以傳給從數據庫了涩拙。
開啟bin log

log-bin=ON
binlog-format=row//選擇row模式
server_id=1//配置mysql replaction需要定義际长,不能和canal和slaved重復
參數:
binlog_cache_size:日志緩存大小,默認3MB兴泥。
sync_binlog:設置多少次事務刷盤工育,默認1,建議設置成0搓彻。

總結:redo log能實現(xiàn)crach-safe主要還是因為事務的原子性如绸,還有就是redo log是物理日志。bin log不能實現(xiàn)crach-safe的主要原因還是bin log是server層的日志好唯,沒有事務的特點竭沫,導致數據的不一致。但是bin log的用處在于主從復制骑篙,而又引發(fā)的一個問題就是bin log 和redo log數據一致性的問題蜕提,而兩階段提交就完美的解決了這個問題。
參考文章:https://blog.csdn.net/lzhcoder/article/details/88814364

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末靶端,一起剝皮案震驚了整個濱河市谎势,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌杨名,老刑警劉巖脏榆,帶你破解...
    沈念sama閱讀 211,348評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異台谍,居然都是意外死亡须喂,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,122評論 2 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來坞生,“玉大人仔役,你說我怎么就攤上這事∈羌海” “怎么了又兵?”我有些...
    開封第一講書人閱讀 156,936評論 0 347
  • 文/不壞的土叔 我叫張陵,是天一觀的道長卒废。 經常有香客問我沛厨,道長,這世上最難降的妖魔是什么摔认? 我笑而不...
    開封第一講書人閱讀 56,427評論 1 283
  • 正文 為了忘掉前任逆皮,我火速辦了婚禮,結果婚禮上级野,老公的妹妹穿的比我還像新娘页屠。我一直安慰自己,他們只是感情好蓖柔,可當我...
    茶點故事閱讀 65,467評論 6 385
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著风纠,像睡著了一般况鸣。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上竹观,一...
    開封第一講書人閱讀 49,785評論 1 290
  • 那天镐捧,我揣著相機與錄音,去河邊找鬼臭增。 笑死懂酱,一個胖子當著我的面吹牛,可吹牛的內容都是我干的誊抛。 我是一名探鬼主播列牺,決...
    沈念sama閱讀 38,931評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼拗窃!你這毒婦竟也來了瞎领?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 37,696評論 0 266
  • 序言:老撾萬榮一對情侶失蹤随夸,失蹤者是張志新(化名)和其女友劉穎九默,沒想到半個月后,有當地人在樹林里發(fā)現(xiàn)了一具尸體宾毒,經...
    沈念sama閱讀 44,141評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡驼修,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,483評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片乙各。...
    茶點故事閱讀 38,625評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡勉躺,死狀恐怖,靈堂內的尸體忽然破棺而出觅丰,到底是詐尸還是另有隱情饵溅,我是刑警寧澤,帶...
    沈念sama閱讀 34,291評論 4 329
  • 正文 年R本政府宣布妇萄,位于F島的核電站蜕企,受9級特大地震影響,放射性物質發(fā)生泄漏冠句。R本人自食惡果不足惜轻掩,卻給世界環(huán)境...
    茶點故事閱讀 39,892評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望懦底。 院中可真熱鬧唇牧,春花似錦、人聲如沸聚唐。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,741評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽杆查。三九已至扮惦,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間亲桦,已是汗流浹背崖蜜。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留客峭,地道東北人豫领。 一個月前我還...
    沈念sama閱讀 46,324評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像舔琅,于是被迫代替她去往敵國和親等恐。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,492評論 2 348

推薦閱讀更多精彩內容