成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專(zhuān)欄INFORMATION COLUMN

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

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

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

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

MYSQL的各種存儲(chǔ)引擎及適用場(chǎng)景;

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

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

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


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


版本介紹:

Mysql GA(ORACLE)

Percon mysql

MariaDB


開(kāi)源

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

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


可移植:

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


安全:

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


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


常用的存儲(chǔ)引擎和特性對(duì)比

MYSQL從5.5.5版本開(kāi)始默認(rèn)存儲(chǔ)引擎為InnoDB(表級(jí)別)


MYSQL的主從復(fù)制


基本概念

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

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


  • z

  • 輔助備份

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


應(yīng)用場(chǎng)景

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

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

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


復(fù)制的原理

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


異步復(fù)制

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



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

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

rpl_semi_sync_master_timeout

set globalrpl_semi_sync_master_wait_point=AFTER_COMMIT;


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

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

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

rpl_semi_sync_master_enabled= 1

rpl_semi_sync_slave_enabled= 1


  • maser


  • slave


結(jié)果:


完全同步的復(fù)制

當(dāng)主庫(kù)提交事務(wù)之后,所有的從庫(kù)節(jié)點(diǎn)必須收到、APPLY并且提交這些事務(wù),然后主庫(kù)線程才能繼續(xù)做后續(xù)操作。因?yàn)樾枰却袕膸?kù)執(zhí)行完該事務(wù)才能返回,所以全同步復(fù)制的性能必然會(huì)收到嚴(yán)重的影響。


架構(gòu)分類(lèi)



  • 一主一從

  • 主主復(fù)制

  • 一主多從---擴(kuò)展系統(tǒng)讀取的性能,因?yàn)樽x是在從庫(kù)讀取的;

  • 多主一從---5.7開(kāi)始支持

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


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

分類(lèi)

MM

MHA

MGR

優(yōu)勢(shì)

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

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

基本無(wú)延遲,延遲比異步的小很多

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

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

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

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


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

不足

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

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

僅支持innodb

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

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

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

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



適用場(chǎng)景

讀寫(xiě)都需要高可用的場(chǎng)景

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

對(duì)主從延遲比較敏感

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

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


如何處理同步延遲

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

set globalinnodb_flush_neighbors=2;

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


2.如果是IO的問(wèn)題:

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

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


3.臨時(shí)調(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ù)制-處理主從不同步的案例


錯(cuò)誤信息


錯(cuò)誤分析

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


錯(cuò)誤分析結(jié)論

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


解決方案

主庫(kù):

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

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


備庫(kù):中端將

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

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/130164.html

相關(guān)文章

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

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

    aboutU 評(píng)論0 收藏0
  • 面試官:咱們來(lái)聊一聊mysql主從延遲

    摘要:編輯器編輯器背景編輯器前段時(shí)間遇到一個(gè)線上問(wèn)題,后來(lái)排查好久發(fā)現(xiàn)是因?yàn)橹鲝耐窖舆t導(dǎo)致的,所以今天寫(xiě)一篇文章總結(jié)一下這個(gè)問(wèn)題希望對(duì)你有用。編輯器幾句嘮叨編輯器大家好,我是小飯,一枚后端工程師。背景前段時(shí)間遇到一個(gè)線上問(wèn)題,后來(lái)排查好久發(fā)現(xiàn)是因?yàn)橹鲝耐窖舆t導(dǎo)致的,所以今天寫(xiě)一篇文章總結(jié)一下這個(gè)問(wèn)題希望對(duì)你有用。如果覺(jué)得還不錯(cuò),記得加個(gè)關(guān)注點(diǎn)個(gè)贊哦思維導(dǎo)圖思維導(dǎo)圖常見(jiàn)的主從架構(gòu)隨著日益增長(zhǎng)的訪...

    EasonTyler 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<