成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

mysql體系架構(gòu)和主從復(fù)制

IT那活兒 / 2331人閱讀
mysql體系架構(gòu)和主從復(fù)制
主要內(nèi)容

MYSQL的發(fā)展背景和特性;

MYSQL的體系架構(gòu)組成;

MYSQL的各種存儲引擎及適用場景;

MYSQL主從復(fù)制的基本原理;

MYSQL常見的主從復(fù)制架構(gòu)和高可用架構(gòu);

總結(jié)處理復(fù)制延遲和復(fù)制不一致的問題。


MYSQL的體系結(jié)構(gòu)介紹


版本介紹:

Mysql GA(ORACLE)

Percon mysql

MariaDB


開源

開放源代碼且無版權(quán)制約,自主性強(qiáng)、使用成本低可根據(jù)

歷史悠久、社區(qū)及用戶非?;钴S,遇到問題,可以很快獲取到幫助。


可移植:

支持多種操作系統(tǒng),提供多種api幾口,支持多種開發(fā)語言。


安全:

有著非常完善的用戶和權(quán)限系統(tǒng),當(dāng)你建立連接時,可以通過加密的方式來保證他通信安全。


Mysql的體系架構(gòu):


常用的存儲引擎和特性對比

MYSQL從5.5.5版本開始默認(rèn)存儲引擎為InnoDB(表級別)


MYSQL的主從復(fù)制


基本概念

MYSQL從3.2.3版本開始提供復(fù)制的功能,復(fù)制是指將主庫的DDL和DML(除select)操作通過二進(jìn)制日志傳到服務(wù)器上(從庫),然后再從庫上對這些日志重新執(zhí)行(也叫重做),從而使得從庫和主庫的數(shù)據(jù)保持同步。

為什么要做主從復(fù)制:


  • z

  • 輔助備份

  • 分擔(dān)負(fù)載


應(yīng)用場景

應(yīng)用場景1:從服務(wù)器作為主服務(wù)器的實時數(shù)據(jù)備份

應(yīng)用場景2:主從服務(wù)器實現(xiàn)讀寫分離,服務(wù)器實現(xiàn)負(fù)載均衡

應(yīng)用場景3:把多個從服務(wù)器根據(jù)業(yè)務(wù)重要性進(jìn)行拆分訪問


復(fù)制的原理

Master:binlog dump 線程。Slave:  I/O線程,Slave:  SQL線程


異步復(fù)制

主節(jié)點只需要把寫入操作在本地完成,就響應(yīng)用戶。



半同步復(fù)制&增強(qiáng)半同步復(fù)制

為了保證主庫上的每一個binlog事務(wù)都能夠被可靠的復(fù)制到從庫上,主庫在每次事務(wù)提交成功時,并不是及時反饋給客戶端用戶,而是等待其中一個從庫也接收到了binlog并成功將事務(wù)記錄到了中繼日志中,然后才反饋給用戶。

rpl_semi_sync_master_timeout

set globalrpl_semi_sync_master_wait_point=AFTER_COMMIT;


半同步復(fù)制的配置:

半同步參數(shù)需要先注釋掉,等初始化完成之后安裝好半同步插件,再開啟半同步參數(shù)

如果是雙主架構(gòu)則主備庫都需要安裝:

rpl_semi_sync_master_enabled= 1

rpl_semi_sync_slave_enabled= 1


  • maser


  • slave


結(jié)果:


完全同步的復(fù)制

當(dāng)主庫提交事務(wù)之后,所有的從庫節(jié)點必須收到、APPLY并且提交這些事務(wù),然后主庫線程才能繼續(xù)做后續(xù)操作。因為需要等待所有從庫執(zhí)行完該事務(wù)才能返回,所以全同步復(fù)制的性能必然會收到嚴(yán)重的影響。


架構(gòu)分類



  • 一主一從

  • 主主復(fù)制

  • 一主多從---擴(kuò)展系統(tǒng)讀取的性能,因為讀是在從庫讀取的;

  • 多主一從---5.7開始支持

  • 聯(lián)級復(fù)制


MYSQL的主從復(fù)制-高可用架構(gòu)對比

分類

MM

MHA

MGR

優(yōu)勢

主主模式能將讀寫請求分?jǐn)偟絻蓚€主節(jié)點,有效提升服務(wù)器使用率。

MHA除了支持日志點的復(fù)制還支持GTID的方式

基本無延遲,延遲比異步的小很多

主節(jié)點發(fā)生故障后,能快速進(jìn)行主從切換。

同MMM相比,MHA會嘗試從舊的Master中恢復(fù)舊的二進(jìn)制日志,只是未必每次都能成功。如果希望更少的數(shù)據(jù)丟失場景,建議使用MHA架構(gòu)。

支持多寫模式,但是目前還不是很成熟

當(dāng)故障節(jié)點恢復(fù)后,故障節(jié)點能通過復(fù)制進(jìn)行數(shù)據(jù)恢復(fù)(應(yīng)用其他節(jié)點數(shù)據(jù))和數(shù)據(jù)同步(將未同步數(shù)據(jù)發(fā)生給其他節(jié)點)。


數(shù)據(jù)的強(qiáng)一致性,可以保證數(shù)據(jù)事務(wù)不丟失

不足

當(dāng)主節(jié)點上MySQL實例發(fā)生故障后,可能會存在部分?jǐn)?shù)據(jù)(Binlog)未同步到另外的主節(jié)點,導(dǎo)致數(shù)據(jù)丟失(直到故障節(jié)點恢復(fù))。

MHA需要自行開發(fā)VIP轉(zhuǎn)移腳本。

僅支持innodb

主主模式下,很容易因數(shù)據(jù)訪問控制不當(dāng)導(dǎo)致數(shù)據(jù)沖突。

MHA只監(jiān)控Master的狀態(tài),未監(jiān)控Slave的狀態(tài)

只能用在GTID模式下,且日志格式為row格式

為提高系統(tǒng)高可用性,雙主架構(gòu)會被擴(kuò)展成雙主多從結(jié)構(gòu),同樣存在主節(jié)點發(fā)生故障后多個從庫選主和恢復(fù)復(fù)制的問題。



適用場景

讀寫都需要高可用的場景

一主多從的環(huán)境下,MySQL的主從復(fù)制是異步或是半同步。

對主從延遲比較敏感

希望對對寫服務(wù)提供高可用,又不想安裝第三方軟件

數(shù)據(jù)強(qiáng)一致的場景


如何處理同步延遲

1. 如果是機(jī)械盤:

set globalinnodb_flush_neighbors=2;

表示刷新在buffer pool 中位于磁盤上相同的extend 區(qū)的臟頁,通過AIO可以將多個IO寫入操作合并為一個IO操作,增大寫入量,減少了物理寫IO。


2.如果是IO的問題:

set globalinnodb_io_capacity=1200; (默認(rèn)200)

即每秒的輸入輸出量(或讀寫次數(shù))。


3.臨時調(diào)整:

set globalinnodb_flush_log_at_trx_commit=2;  (默認(rèn)為1)

set globalsync_binlog=0;


同步之后需要調(diào)整回:

set globalinnodb_flush_log_at_trx_commit=1;

set globalsync_binlog=1;


MYSQL的主從復(fù)制-處理主從不同步的案例


錯誤信息


錯誤分析

mysqlbinlogmysql-bin.xxx -vv --base64-output=decode-rows --start-position=a--stop-position=b>/tmp/test.log


錯誤分析結(jié)論

200711 8.49 –9:42期間日志中斷,原因是這段時間內(nèi),主機(jī)重啟了,而二進(jìn)制這部分日志傳輸?shù)絺鋷斓臅r候丟失了。


解決方案

主庫:

確定備庫丟失的二進(jìn)制日志的內(nèi)容(根據(jù)時間或者位點信息)

經(jīng)過排查確定丟失的日志為mysql-bin000333中的start-position=362945607  到 stop-position=363101485的內(nèi)容。


備庫:中端將

mysqlbinlog--skip-gtids --start-position=362945607 --stop-position=363101485mysql-bin000333 |mysql -utest -p -h ip

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/130164.html

相關(guān)文章

  • SegmentFault 技術(shù)周刊 Vol.42 - MySQL:從刪庫到跑路

    摘要:肖鵬微博數(shù)據(jù)庫那些事兒肖鵬,微博研發(fā)中心技術(shù)經(jīng)理,主要負(fù)責(zé)微博數(shù)據(jù)庫相關(guān)的業(yè)務(wù)保障性能優(yōu)化架構(gòu)設(shè)計,以及周邊的自動化系統(tǒng)建設(shè)。經(jīng)歷了微博數(shù)據(jù)庫各個階段的架構(gòu)改造,包括服務(wù)保障及體系建設(shè)微博多機(jī)房部署微博平臺化改造等項目。 showImg(https://segmentfault.com/img/bV24Gs?w=900&h=385); 對于手握數(shù)據(jù)庫的開發(fā)人員來說,沒有誤刪過庫的人生是...

    aboutU 評論0 收藏0
  • 面試官:咱們來聊一聊mysql主從延遲

    摘要:編輯器編輯器背景編輯器前段時間遇到一個線上問題,后來排查好久發(fā)現(xiàn)是因為主從同步延遲導(dǎo)致的,所以今天寫一篇文章總結(jié)一下這個問題希望對你有用。編輯器幾句嘮叨編輯器大家好,我是小飯,一枚后端工程師。背景前段時間遇到一個線上問題,后來排查好久發(fā)現(xiàn)是因為主從同步延遲導(dǎo)致的,所以今天寫一篇文章總結(jié)一下這個問題希望對你有用。如果覺得還不錯,記得加個關(guān)注點個贊哦思維導(dǎo)圖思維導(dǎo)圖常見的主從架構(gòu)隨著日益增長的訪...

    EasonTyler 評論0 收藏0

發(fā)表評論

0條評論

IT那活兒

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<