版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、MySQL主從同步--原理、問(wèn)題、解決方案和應(yīng)用 @淘寶丁奇,2009-8-22,講師介紹,,講師簡(jiǎn)介:,丁奇:08年至10年在百度貼吧,作服務(wù)端開(kāi)發(fā),開(kāi)始接觸MySQL。之后由于業(yè)務(wù)需要開(kāi)始看MySQL代碼,囫圇吞棗不求甚解。10年得機(jī)會(huì)進(jìn)入淘寶核心系統(tǒng)數(shù)據(jù)庫(kù)組,主要是MySQL優(yōu)化和提升可維護(hù)性。參與IC、TC讀庫(kù)調(diào)優(yōu);寫(xiě)了一些插件,打了幾個(gè)patch到官方;實(shí)現(xiàn)MySQL主從同步工具、設(shè)計(jì)MySQL異構(gòu)數(shù)據(jù)同步方案、MySQ
2、L中間層。一直游離在了解需求、設(shè)計(jì)方案、推廣方案的三點(diǎn)一線上 。,課程目標(biāo)與目標(biāo)學(xué)員頁(yè),目標(biāo)學(xué)員:對(duì)存儲(chǔ)引擎、系統(tǒng)優(yōu)化有興趣的同學(xué)。課程目的 : 介紹主從同步的概念、原理、存在的問(wèn)題和優(yōu)化思路。學(xué)員能夠獲得的收獲: 主從同步的基本配置步驟和注意事項(xiàng)、探討追查和解決問(wèn)題的思路,MySQL主從同步基本概念和配置步驟MySQL主從同步基本流程延遲的原因解決方案一解決方案二 --Transfer應(yīng)用場(chǎng)景和業(yè)務(wù)限制保障和退化在
3、多主同步的應(yīng)用不能解決的光速問(wèn)題不能解決的更新延遲,MySQL主從同步基本概念和配置步驟,,用于實(shí)例之間同步數(shù)據(jù),可以級(jí)聯(lián)只需要更新主庫(kù)備庫(kù)用于備份或查詢(xún)分流配置注意事項(xiàng)主庫(kù)必須開(kāi)啟binlogMaster和slave的server-id不能相同同一個(gè)Maser的多個(gè)slave,server-id也不能相同Binlog_format最好相同。在log-slave-updates=1時(shí),不允許Master是row,sl
4、ave是statement這種是不允許的。,MySQL主從同步基本概念和配置步驟(續(xù)),,配置基本步驟主庫(kù)上grant權(quán)限從庫(kù)上change master to …;Start slave問(wèn)題,MySQL主從同步基本流程,Master,Slave,MySQL主從同步延遲原因,1,2,3,4,5,6,什么是延遲--2和6的時(shí)間間隔,為什么延遲 2、5的文件更新通知?不是 3的網(wǎng)絡(luò)延遲? 不是 4的寫(xiě)盤(pán)延遲
5、? 不是,等等。。。1和2之間那個(gè)箭頭怎么不畫(huà)出來(lái)--我們不關(guān)心,MySQL主從同步延遲原因,,,都是箭頭,你咋這么苗條呢?,延遲原因 主庫(kù)更新多線程 從庫(kù)更新單線程,MySQL主從同步解決方案,,,說(shuō)胖就胖了啊。。。,解決方案: 從庫(kù)變成多線程更新,反問(wèn)一句: 三秒鐘變格格么。有那么好MySQL為什么不支持?,MySQL主從同步解決方案,,又瘦回去了,慫了。。。,直接多線程存在的問(wèn)題: 語(yǔ)句順序
6、無(wú)法保證--insert和update調(diào)換有什么問(wèn)題?,,MySQL主從同步解決方案,導(dǎo)演說(shuō)咔了嗎?,其實(shí)我準(zhǔn)備變身,左上角的兄弟,后面好像都沒(méi)你的戲份了,能不能先洗洗睡去?,,咔~,解決方案分析: 1、一定要多線程!為什么? 2、多線程又會(huì)打亂順序 3、總是有些沒(méi)那么嚴(yán)格的,是吧? 4、同一個(gè)表的更新必須按照順序 5、不同表呢? 6、先作個(gè)不同表之間并行的,線上一個(gè)庫(kù)都有很多表,M
7、ySQL主從同步解決方案,過(guò)渡太久了吧,變身的那位呢?,MySQL主從同步解決方案,Slave,認(rèn)不出來(lái)了,來(lái)個(gè)對(duì)比照,應(yīng)該是解決了 從此Master和Slave過(guò)著幸福的生活? 太naïve了。。。 實(shí)際上,剛才那個(gè)是副導(dǎo)演 導(dǎo)演回來(lái)了,說(shuō):,MySQL主從同步解決方案,咱這劇本不允許主角變身!,未完待續(xù),,MySQL主從同步解決方案,,,變回來(lái)了,導(dǎo)演管飯,聽(tīng)導(dǎo)演的,方案考慮: 多線程
8、是ok的 但是不能修改線上的代碼 就是Master和Slave都不能動(dòng),MySQL主從同步解決方案,,,某路人,。。。腫么這么眼熟,MySQL主從同步解決方案,,,,,,,,,,,,,,,以上為前傳,介紹MySQL多線程同步工具(Transfer)的設(shè)計(jì)思路以下為文字解釋版,MySQL主從同步解決方案,,MySQL的主從同步延遲,是指從庫(kù)的更新性能低于主庫(kù)的更新性能。相同的機(jī)器配置,出現(xiàn)性能差異的原因,是從庫(kù)上單線程
9、更新。,,MySQL主從同步解決方案,,一種方案是將從庫(kù)的單線程apply改成多線程,但需要修改slave的代碼。安全起見(jiàn),以工具的形式提供多線程同步功能。Transfer也是一個(gè)MySQL,DBA一般部署在slave同一個(gè)機(jī)器上,放到/u01/mysql2Transfer設(shè)置為Master的從庫(kù),接收日志后更新Slave從Slave來(lái)看,Transfer是一個(gè)普通的Client。,MySQL主從同步基本概念和配置步驟MySQ
10、L主從同步基本流程延遲的原因解決方案一解決方案二 --Transfer應(yīng)用場(chǎng)景和業(yè)務(wù)限制保障和退化在多主同步的應(yīng)用不能解決的光速問(wèn)題不能解決的更新延遲,Transfer的應(yīng)用場(chǎng)景和業(yè)務(wù)限制,,多表業(yè)務(wù)Transfer的策略是在io_thread接收主庫(kù)日志后,分成16份不同的relay-log存放再用16個(gè)sql_thread分別讀取日志分發(fā)確保同一個(gè)表的更新語(yǔ)句順序與主庫(kù)binlog相同對(duì)Master的限制主
11、庫(kù)設(shè)置binlog為row模式 (不支持Statement的原因)主庫(kù)單個(gè)語(yǔ)句的binlog不能超過(guò)1G (原因說(shuō)明)盡量減少一個(gè)語(yǔ)句更新兩個(gè)表,Transfer的應(yīng)用場(chǎng)景和業(yè)務(wù)限制,,對(duì)Slave的限制設(shè)置max_allowed_packet = 1G需要一個(gè)root權(quán)限賬號(hào)提供給Transfer對(duì)DDL語(yǔ)句的處理0號(hào)線程的作用,Transfer的保障和退化,,保障Transfer本身掛了數(shù)據(jù)不丟(持久化的數(shù)據(jù)隊(duì)列)
12、Slave出錯(cuò)重啟后,繼續(xù)同步直接start slaveMaster重啟后自動(dòng)重新同步維護(hù)方便。stop slave; change master; slave_skip_errors直接接入現(xiàn)成監(jiān)控系統(tǒng)退化Statement模式下某些語(yǔ)句不支持。 支持的語(yǔ)句性能也不提升事務(wù)打散從庫(kù)上不再支持rollback (什么時(shí)候從庫(kù)會(huì)收到rollback?),Transfer方案性能,原始性能,效果對(duì)比,,MySQL主從同步基本
13、概念和配置步驟MySQL主從同步基本流程延遲的原因解決方案一解決方案二 --Transfer應(yīng)用場(chǎng)景和業(yè)務(wù)限制保障和退化在多主同步的應(yīng)用不能解決的光速問(wèn)題不能解決的更新延遲,Transfer在多主同步的應(yīng)用,,多主復(fù)制的需求來(lái)源備份節(jié)約機(jī)器數(shù)據(jù)聚集分析,理想方案,MySQL不支持,Transfer在多主同步的應(yīng)用,,現(xiàn)在方案,浪費(fèi)硬盤(pán)空間增加額外更新更大的延遲,Transfer在多主同步的應(yīng)用,,Transfe
14、r方案,MySQL主從同步基本概念和配置步驟MySQL主從同步基本流程延遲的原因解決方案一解決方案二 --Transfer應(yīng)用場(chǎng)景和業(yè)務(wù)限制保障和退化在多主同步的應(yīng)用不能解決的光速問(wèn)題不能解決的更新延遲,無(wú)法解決的光速問(wèn)題,抽象回簡(jiǎn)單場(chǎng)景,在解決cpu利用問(wèn)題后,從庫(kù)更新性能與主庫(kù)相同新問(wèn)題:跨機(jī)房單個(gè)數(shù)據(jù)延遲杭州到青島線路就是那么長(zhǎng) 20ms,,1,2,3,4,5,6,回到最開(kāi)始的一個(gè)問(wèn)題什么是延遲,無(wú)法解
15、決的光速問(wèn)題,,1,2,3,4,5,6,如果我們把延遲定義為 3到6的時(shí)間差呢?,無(wú)法解決的光速問(wèn)題,,讓用戶(hù)多等20ms 換取數(shù)據(jù)一致性,一起來(lái)討論,MySQL主從同步基本概念和配置步驟MySQL主從同步基本流程延遲的原因解決方案一解決方案二 --Transfer應(yīng)用場(chǎng)景和業(yè)務(wù)限制保障和退化在多主同步的應(yīng)用不能解決的光速問(wèn)題不能解決的更新延遲,1,2,3,4,5,6,一個(gè)耗時(shí)10ms的更新,至少延遲10ms,不能解決
16、的更新延遲,,全同步?--no,這回我們關(guān)注6本身, 要求完全沒(méi)有延遲怎么作?,不要陷入錘子釘子的誤區(qū),放棄這方案,用雙寫(xiě),MySQL官方版5.6的多線程同步介紹 & 啟發(fā),,按DB分線程為什么我們當(dāng)時(shí)沒(méi)這么作?跨DB的則線程合并為什么我們當(dāng)時(shí)沒(méi)這么作?Transfer與其實(shí)質(zhì)區(qū)別是粒度不同被按DB分提醒了 – 后續(xù)改進(jìn),課程回顧 、總結(jié)頁(yè),如何配置主從同步主從同步原理主從同步性能問(wèn)題現(xiàn)狀優(yōu)化方向安全的妥協(xié)方案
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- mysql 主從原理、問(wèn)題、解決方案和應(yīng)用——丁奇
- mysql集群解決方案
- mysql主從配置
- 基于MySQL主從同步的異構(gòu)復(fù)制系統(tǒng).pdf
- mysql主從配置
- 北斗同步時(shí)鐘解決方案
- mysql主從復(fù)制和讀寫(xiě)分離
- 同步課堂項(xiàng)目方案方案解決方案方法
- 高可用性、負(fù)載均衡的mysql集群解決方案
- gps同步時(shí)鐘使用中出現(xiàn)的問(wèn)題及解決方案
- 基于立體停車(chē)設(shè)備和主從分布式監(jiān)控系統(tǒng)的小區(qū)停車(chē)問(wèn)題解決方案.pdf
- 問(wèn)題解決方案
- web應(yīng)用安全解決方案
- 同步課堂項(xiàng)目解決方案報(bào)告書(shū)
- 教學(xué)設(shè)計(jì)及擬定問(wèn)題和預(yù)設(shè)解決方案
- tnet應(yīng)用產(chǎn)品解決方案
- 市解決方案_智慧倉(cāng)儲(chǔ)解決方案
- 解決問(wèn)題提出預(yù)設(shè)性解決方案
- mysql數(shù)據(jù)庫(kù)管理系統(tǒng)root用戶(hù)忘記密碼解決方案研究
- coreldarw問(wèn)題解決方案
評(píng)論
0/150
提交評(píng)論