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

千鋒教育-做有情懷、有良心、有品質的職業教育機構

手機站
千鋒教育

千鋒學習站 | 隨時隨地免費學

千鋒教育

掃一掃進入千鋒手機站

領取全套視頻
千鋒教育

關注千鋒學習站小程序
隨時隨地免費學習課程

當前位置:首頁  >  技術干貨  > 怎么確保mysql數據庫主從數據一定是一樣的?

怎么確保mysql數據庫主從數據一定是一樣的?

來源:千鋒教育
發布人:xqq
時間: 2023-10-13 19:55:00 1697198100

  一、確保mysql數據庫主從數據一定是一樣的方法

  

 

  1、確保同步狀態正常

  主從數據庫的同步狀態正常是保證主從數據一致性的前提,需要定期監控主從同步狀態,并及時處理同步異常情況。

  2、配置和參數設置保持一致

  主從數據庫的配置和參數設置必須一致,否則可能導致主從數據不一致問題。可以通過檢查my.cnf文件、SHOW VARIABLES命令等方式來確認配置和參數是否一致。

  3、定期備份和比對數據

  定期備份主從數據庫數據,并進行比對,查看是否有差異。可以使用mysqldump工具或者其他自動化備份工具進行備份,并使用比對工具進行數據檢查。

  4、選擇合適的數據同步方式

  使用適當的數據同步方式能夠更好地保證主從數據的一致性。例如,使用基于GTID或binlog格式的數據同步方式,可確保主從數據的同步流程更為精確和可靠。

  二、MySQL主從

  1、數據庫主從概念

  主從數據庫是什么意思呢,主是主庫的意思,從是從庫的意思。數據庫主庫對外提供讀寫的操作,從庫對外提供讀的操作。

  數據庫需要主從架構的原因:

  高可用,實時災備,用于故障切換。比如主庫掛了,可以切從庫。讀寫分離,提供查詢服務,減少主庫壓力,提升性能備份數據,避免影響業務。

  2、數據庫主從復制原理

  主從復制原理,簡言之,分三步曲進行:

  主數據庫有個bin log二進制文件,紀錄了所有增刪改SQL語句。(binlog線程)從數據庫把主數據庫的bin log文件的SQL 語句復制到自己的中繼日志 relay log(io線程)從數據庫的relay log重做日志文件,再執行一次這些sql語句。(Sql執行線程)

  詳細的主從復制過程如圖:

  上圖主從復制過程分了五個步驟進行:

  主庫的更新SQL(update、insert、delete)被寫到binlog從庫發起連接,連接到主庫。此時主庫創建一個binlog dump thread,把bin log的內容發送到從庫。從庫啟動之后,創建一個I/O線程,讀取主庫傳過來的bin log內容并寫入到relay log從庫還會創建一個SQL線程,從relay log里面讀取內容,從ExecMasterLog_Pos位置開始執行讀取到的更新事件,將更新內容寫入到slave的db

  3、主主、主從、主備的區別

  數據庫主主:兩臺都是主數據庫,同時對外提供讀寫操作??蛻舳嗽L問任意一臺。數據存在雙向同步。數據庫主從:一臺是主數據庫,同時對外提供讀寫操作。一臺是從數據庫,對外提供讀的操作。數據從主庫同步到從庫。數據庫主從:一臺是主數據庫,同時對外提供讀寫操作。一臺是從數據庫,對外提供讀的操作。數據從主庫同步到從庫。

  4、MySQL是怎么保證主從一致的

  我們學習數據庫的主從復制原理后,了解到從庫拿到并執行主庫的binlog日志,就可以保持數據與主庫一致了。這是為什么呢?哪些情況會導致不一致呢?

  長鏈接:

  主庫和從庫在同步數據的過程中斷怎么辦呢,數據不就會丟失了嘛。因此主庫與從庫之間維持了一個長鏈接,主庫內部有一個線程,專門服務于從庫的這個長鏈接的。

  binlog格式:

  binlog日志有三種格式,分別是statement,row和mixed。如果是statement格式,binlog記錄的是SQL的原文,如果主庫和從庫選的索引不一致,可能會導致主庫不一致。我們來分析一下。假設主庫執行刪除這個SQL(其中a和create_time都有索引)如下:

  delete from t where a > '666' and create_time<'2022-03-01' limit 1;

  我們知道,數據選擇了a索引和選擇create_time索引,最后limit 1出來的數據一般是不一樣的。所以就會存在這種情況:在binlog = statement格式時,主庫在執行這條SQL時,使用的是索引a,而從庫在執行這條SQL時,使用了索引create_time。最后主從數據不一致了。

  解決這個問題的方法:可以把binlog格式修改為row。row格式的binlog日志,記錄的不是SQL原文,而是兩個event:Table_map 和 Delete_rows。Table_map event說明要操作的表,Delete_rows event用于定義要刪除的行為,記錄刪除的具體行數。row格式的binlog記錄的就是要刪除的主鍵ID信息,因此不會出現主從不一致的問題。

  但是如果SQL刪除10萬行數據,使用row格式就會很占空間的,10萬條數據都在binlog里面,寫binlog的時候也很耗IO。但是statement格式的binlog可能會導致數據不一致,因此設計MySQL的大叔想了一個折中的方案,mixed格式的binlog。所謂的mixed格式其實就是row和statement格式混合使用,當MySQL判斷可能數據不一致時,就用row格式,否則使用就用statement格式。

  延伸閱讀1:MySQL的特點

  性能卓越服務穩定,很少出現異常宕機開放源代碼且無版權制約,自主性強、使用成本低。歷史悠久、社區及用戶非常活躍,遇到問題,可以很快獲取到幫助。軟件體積小,安裝使用簡單,并且易于維護,安裝及維護成本低。支持多種操作系統,提供多種api幾口,支持多種開發語言。

聲明:本站稿件版權均屬千鋒教育所有,未經許可不得擅自轉載。
10年以上業內強師集結,手把手帶你蛻變精英
請您保持通訊暢通,專屬學習老師24小時內將與您1V1溝通
免費領取
今日已有369人領取成功
劉同學 138****2860 剛剛成功領取
王同學 131****2015 剛剛成功領取
張同學 133****4652 剛剛成功領取
李同學 135****8607 剛剛成功領取
楊同學 132****5667 剛剛成功領取
岳同學 134****6652 剛剛成功領取
梁同學 157****2950 剛剛成功領取
劉同學 189****1015 剛剛成功領取
張同學 155****4678 剛剛成功領取
鄒同學 139****2907 剛剛成功領取
董同學 138****2867 剛剛成功領取
周同學 136****3602 剛剛成功領取
相關推薦HOT
主站蜘蛛池模板: 免费毛片一区二区三区久久久 | 欧美日韩大片在线观看 | 在线观看免费的网站www | 精品国产精品 | 操视频网站 | 欧美成人一区二免费视频软件 | 日本视频一区二区 | 欧美日韩三区 | 国产精品成人一区二区三区夜夜夜 | 日韩激情视频在线观看 | 羞羞色视频 | 亚洲一级毛片 | 成人h动漫精品一区二区器材 | 国产精品视频一区二区三区四蜜臂 | 国产精品久久久久久久久 | 91精品资源 | 四虎影院在线看 | 国产不卡福利片 | 国产片一区二区三区 | 欧美日韩精品免费 | 亚洲天天 | 成人免费视频国产免费麻豆 | 久久久久久久av | 精品国产乱码久久久久久久软件 | 中文字幕一区二区三区精彩视频 | 亚洲黄色免费观看 | 日本高清视频一区二区三区 | 国产成人精品免费 | 美女久久久久 | 欧美一区永久视频免费观看 | 欧日韩不卡在线视频 | 久久999 | 欧洲成人午夜免费大片 | 国产精品99久久久久久久vr | 一级黄色影片在线观看 | 国产h片在线观看 | 一区二区三区影院 | 一级毛片视频播放 | 午夜视频在线播放 | 精品视频在线免费观看 | 国产在线拍揄自揄拍视频 |