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