本文主要給大家介紹MySQL主從延遲問題應該如何解決,文章內容都是筆者用心摘選和編輯的,具有一定的針對性,對大家的參考意義還是比較大的,下面跟筆者一起了解下MySQL主從延遲問題應該如何解決吧。
面對拋出這樣的問題,我們先來了解下生產中有哪些主從架構?線上生產環(huán)境一般有一主一從,一主多從,多主一叢(級聯(lián)復制,MySQL5.7之后才有) ,主主復制。主從架構存在目的就是為了故障切換和讀寫分離。它的原理如下圖:
主云服務器有一個工作線程 io dump thread
從云服務器有兩個工作線程,一個是io thread,一個sql thread。
主庫把外界接收的SQL請求,記錄到自己的binlog日志里面,從庫的
io thread去請求主庫 的binlog日志,并將得到的binlog日志寫到自己的relay log(中繼日志) 文件中;主庫通過io dump thread,給從庫 io thread 傳binlog 日志。
大家可以看到在主庫上事務的提交是并發(fā)模式的,而從庫只有一個sql thread 工作,這種不公平的待遇,你說它能不延遲嘛。
剖析其重要的延遲原因在于:
1. 首先就是主庫可以并發(fā)寫入,從庫只能通過單sql thread完成任務(MySQL5.7之前)
2. MySQL主從之間的同步,本來就不是時時同步的,是異步的同步,也就是說,主庫提交事務之后,從庫才再來執(zhí)行一遍。
3. 在主庫上對沒有索引大表的列進行delete或者update的操作
4. 從庫的硬件配置沒有主庫的好,經常忽略從庫的重要性
5. 網絡問題
解決方法如下:
1. 使用MySQL5.7版本,在5.7中引入了基于組提交的并行復制,設置參數(shù)slave_parallel_workers>0 和slave_parallel_type='LOGICAL_CLOCK'。
MySQL 5.7才可稱為真正的并行復制,這其中最為主要的原因就是slave云服務器的回放與主機是一致的。就是說主云服務器上是怎么并行執(zhí)行的,從庫上就怎樣進行并行回放。不再有MySQL5.6版本中庫的并行復制限制。
2. 可以采用percona公司的percona-xtradb-cluster簡稱PXC架構,這種架構下可以實現(xiàn)多節(jié)點寫入,達到時時同步??蓞⒖祭蠌埖腗ySQL高可用架構三部曲之PXC。
鏈接地址:http://sumongodb.blog.51cto.com/4979448/1956086
3. 業(yè)務初期規(guī)劃的時候,就要選擇合適的分庫、分表策略,避免單表,或者單庫過大。帶來額外的復制壓力。從而帶來主從延遲的問題。
4. 避免一些無用的IO消耗,可以上高轉速的磁盤,SSD或者PCIE-SSD設備。
5. 陣列級別要選擇RAID10,raid cache策略要使用WB堅決不要WT。
6. IO調度要選擇deadline模式。
7. 適當調整buffer pool的大小
8. 避免讓數(shù)據庫進行各種大量運算,要記住數(shù)據庫只是用來存儲數(shù)據的,讓應用端多分擔些壓力,或者可以通過緩存來完成。
看完以上關于MySQL主從延遲問題應該如何解決,很多讀者朋友肯定多少有一定的了解,如需獲取更多的行業(yè)知識信息 ,可以持續(xù)關注我們的行業(yè)資訊欄目的。
另外有需要云服務器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。
當前名稱:MySQL主從延遲問題應該如何解決-創(chuàng)新互聯(lián)
網頁路徑:http://chinadenli.net/article16/jjsgg.html
成都網站建設公司_創(chuàng)新互聯(lián),為您提供做網站、域名注冊、動態(tài)網站、定制網站、面包屑導航、移動網站建設
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內容