国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

淺談MySQL主從數(shù)據(jù)庫(kù)同步延遲問題解決方案

數(shù)據(jù)庫(kù) MySQL
MySQL的主從同步是一個(gè)很成熟的架構(gòu),相信大家對(duì)于它的好處已經(jīng)非常了解了,在項(xiàng)目的部署中也采用這種方案。但是MySQL的主從同步一直有從庫(kù)延遲的問題,那么為什么會(huì)有這種問題。這種問題如何解決呢?

 淺談MySQL主從數(shù)據(jù)庫(kù)同步延遲問題解決方案

 

 

MySQL的主從同步是一個(gè)很成熟的架構(gòu),優(yōu)點(diǎn)為:

①在從服務(wù)器可以執(zhí)行查詢工作(即我們常說(shuō)的讀功能),降低主服務(wù)器壓力;

②在從主服務(wù)器進(jìn)行備份,避免備份期間影響主服務(wù)器服務(wù);③當(dāng)主服務(wù)器出現(xiàn)問題時(shí),可以切換到從服務(wù)器。

相信大家對(duì)于這些好處已經(jīng)非常了解了,在項(xiàng)目的部署中也采用這種方案。但是MySQL的主從同步一直有從庫(kù)延遲的問題,那么為什么會(huì)有這種問題。這種問題如何解決呢?

  1. MySQL數(shù)據(jù)庫(kù)主從同步延遲原理。
  2. MySQL數(shù)據(jù)庫(kù)主從同步延遲是怎么產(chǎn)生的。
  3. MySQL數(shù)據(jù)庫(kù)主從同步延遲解決方案。

1. MySQL數(shù)據(jù)庫(kù)主從同步延遲原理。

答:談到MySQL數(shù)據(jù)庫(kù)主從同步延遲原理,得從mysql的數(shù)據(jù)庫(kù)主從復(fù)制原理說(shuō)起,mysql的主從復(fù)制都是單線程的操作,主庫(kù)對(duì)所有DDL和 DML產(chǎn)生binlog,binlog是順序?qū)懀孕屎芨撸瑂lave的Slave_IO_Running線程到主庫(kù)取日志,效率很比較高,下一步, 問題來(lái)了,slave的Slave_SQL_Running線程將主庫(kù)的DDL和DML操作在slave實(shí)施。DML和DDL的IO操作是隨即的,不是順 序的,成本高很多,還可能可slave上的其他查詢產(chǎn)生lock爭(zhēng)用,由于Slave_SQL_Running也是單線程的,所以一個(gè)DDL卡主了,需要 執(zhí)行10分鐘,那么所有之后的DDL會(huì)等待這個(gè)DDL執(zhí)行完才會(huì)繼續(xù)執(zhí)行,這就導(dǎo)致了延時(shí)。有朋友會(huì)問:“主庫(kù)上那個(gè)相同的DDL也需要執(zhí)行10分,為什 么slave會(huì)延時(shí)?”,答案是master可以并發(fā),Slave_SQL_Running線程卻不可以。

2. MySQL數(shù)據(jù)庫(kù)主從同步延遲是怎么產(chǎn)生的。

答:當(dāng)主庫(kù)的TPS并發(fā)較高時(shí),產(chǎn)生的DDL數(shù)量超過(guò)slave一個(gè)sql線程所能承受的范圍,那么延時(shí)就產(chǎn)生了,當(dāng)然還有就是可能與slave的大型query語(yǔ)句產(chǎn)生了鎖等待。

3. MySQL數(shù)據(jù)庫(kù)主從同步延遲解決方案

答:最簡(jiǎn)單的減少slave同步延時(shí)的方案就是在架構(gòu)上做優(yōu)化,盡量讓主庫(kù)的DDL快速執(zhí)行。還有就是主庫(kù)是寫,對(duì)數(shù)據(jù)安全性較高,比如 sync_binlog=1,innodb_flush_log_at_trx_commit = 1 之類的設(shè)置,而slave則不需要這么高的數(shù)據(jù)安全,完全可以講sync_binlog設(shè)置為0或者關(guān)閉binlog,innodb_flushlog也 可以設(shè)置為0來(lái)提高sql的執(zhí)行效率。另外就是使用比主庫(kù)更好的硬件設(shè)備作為slave。

mysql-5.6.3已經(jīng)支持了多線程的主從復(fù)制。原理和丁奇的類似,丁奇的是以表做多線程,Oracle使用的是以數(shù)據(jù)庫(kù)(schema)為單位做多線程,不同的庫(kù)可以使用不同的復(fù)制線程。

基于局域網(wǎng)的master/slave機(jī)制在通常情況下已經(jīng)可以滿足'實(shí)時(shí)'備份的要求了。如果延遲比較大,就先確認(rèn)以下幾個(gè)因素:

  1. 網(wǎng)絡(luò)延遲
  2. master負(fù)載
  3. slave負(fù)載

一般的做法是,使用多臺(tái)slave來(lái)分?jǐn)傋x請(qǐng)求,再?gòu)倪@些slave中取一臺(tái)專用的服務(wù)器,只作為備份用,不進(jìn)行其他任何操作,就能相對(duì)***限度地達(dá)到'實(shí)時(shí)'的要求了

slave_net_timeout單位為秒 默認(rèn)設(shè)置為 3600秒 參數(shù)含義:當(dāng)slave從主數(shù)據(jù)庫(kù)讀取log數(shù)據(jù)失敗后,等待多久重新建立連接并獲取數(shù)據(jù) master-connect-retry單位為秒 默認(rèn)設(shè)置為 60秒 參數(shù)含義:當(dāng)重新建立主從連接時(shí),如果連接建立失敗,間隔多久后重試。

通常配置以上2個(gè)參數(shù)可以減少網(wǎng)絡(luò)問題導(dǎo)致的主從數(shù)據(jù)同步延遲

判斷主從延時(shí),通常有兩個(gè)方法:

1.Seconds_Behind_Master vs 2. mk-heartbeat,下面具體說(shuō)下兩者在實(shí)現(xiàn)功能的差別。

可以通過(guò)監(jiān)控show slave statusG命令輸出的Seconds_Behind_Master參數(shù)的值來(lái)判斷,是否有發(fā)生主從延時(shí)。

其值有這么幾種:

NULL - 表示io_thread或是sql_thread有任何一個(gè)發(fā)生故障,也就是該線程的Running狀態(tài)是No,而非Yes。

0 - 該值為零,是我們極為渴望看到的情況,表示主從復(fù)制良好,可以認(rèn)為lag不存在。

正值 - 表示主從已經(jīng)出現(xiàn)延時(shí),數(shù)字越大表示從庫(kù)落后主庫(kù)越多。

負(fù)值 - 幾乎很少見,只是聽一些資深的DBA說(shuō)見過(guò),其實(shí),這是一個(gè)BUG值,該參數(shù)是不支持負(fù)值的,也就是不應(yīng)該出現(xiàn)。

Seconds_Behind_Master是通過(guò)比較sql_thread執(zhí)行的event的timestamp和io_thread復(fù)制好的 event的timestamp(簡(jiǎn)寫為ts)進(jìn)行比較,而得到的這么一個(gè)差值。我們都知道的relay-log和主庫(kù)的bin-log里面的內(nèi)容完全一 樣,在記錄sql語(yǔ)句的同時(shí)會(huì)被記錄上當(dāng)時(shí)的ts,所以比較參考的值來(lái)自于binlog,其實(shí)主從沒有必要與NTP進(jìn)行同步,也就是說(shuō)無(wú)需保證主從時(shí)鐘的 一致。你也會(huì)發(fā)現(xiàn),其實(shí)比較真正是發(fā)生在io_thread與sql_thread之間,而io_thread才真正與主庫(kù)有關(guān)聯(lián),于是,問題就出來(lái)了, 當(dāng)主庫(kù)I/O負(fù)載很大或是網(wǎng)絡(luò)阻塞,io_thread不能及時(shí)復(fù)制binlog(沒有中斷,也在復(fù)制),而sql_thread一直都能跟上 io_thread的腳本,這時(shí)Seconds_Behind_Master的值是0,也就是我們認(rèn)為的無(wú)延時(shí),但是,實(shí)際上不是,你懂得。這也就是為什 么大家要批判用這個(gè)參數(shù)來(lái)監(jiān)控?cái)?shù)據(jù)庫(kù)是否發(fā)生延時(shí)不準(zhǔn)的原因,但是這個(gè)值并不是總是不準(zhǔn),如果當(dāng)io_thread與master網(wǎng)絡(luò)很好的情況下,那么 該值也是很有價(jià)值的。(就好比:媽–兒子–媳婦的關(guān)系,媽與兒子親人,媳婦和兒子也親人,不見得媳婦與媽就很親。開個(gè)玩笑:-)之前,提到 Seconds_Behind_Master這個(gè)參數(shù)會(huì)有負(fù)值出現(xiàn),我們已經(jīng)知道該值是io_thread的最近跟新的ts與sql_thread執(zhí)行到 的ts差值,前者始終是大于后者的,唯一的肯能就是某個(gè)event的ts發(fā)生了錯(cuò)誤,比之前的小了,那么當(dāng)這種情況發(fā)生時(shí),負(fù)值出現(xiàn)就成為可能。

方法2. mk-heartbeat,Maatkit***工具包中的一個(gè)工具,被認(rèn)為可以準(zhǔn)確判斷復(fù)制延時(shí)的方法。

mk-heartbeat的實(shí)現(xiàn)也是借助timestmp的比較實(shí)現(xiàn)的,它首先需要保證主從服務(wù)器必須要保持一致,通過(guò)與相同的一個(gè)NTP server同步時(shí)鐘。它需要在主庫(kù)上創(chuàng)建一個(gè)heartbeat的表,里面至少有id與ts兩個(gè)字段,id為server_id,ts就是當(dāng)前的時(shí)間戳 now(),該結(jié)構(gòu)也會(huì)被復(fù)制到從庫(kù)上,表建好以后,會(huì)在主庫(kù)上以后臺(tái)進(jìn)程的模式去執(zhí)行一行更新操作的命令,定期去向表中的插入數(shù)據(jù),這個(gè)周期默認(rèn)為1 秒,同時(shí)從庫(kù)也會(huì)在后臺(tái)執(zhí)行一個(gè)監(jiān)控命令,與主庫(kù)保持一致的周期去比較,復(fù)制過(guò)來(lái)記錄的ts值與主庫(kù)上的同一條ts值,差值為0表示無(wú)延時(shí),差值越大表示 延時(shí)的秒數(shù)越多。我們都知道復(fù)制是異步的ts不肯完全一致,所以該工具允許半秒的差距,在這之內(nèi)的差異都可忽略認(rèn)為無(wú)延時(shí)。這個(gè)工具就是通過(guò)實(shí)打?qū)嵉膹?fù) 制,巧妙的借用timestamp來(lái)檢查延時(shí),贊一個(gè)!

責(zé)任編輯:龐桂玉 來(lái)源: 今日頭條
相關(guān)推薦

2017-12-27 13:07:52

數(shù)據(jù)庫(kù)MySQL主從復(fù)制

2010-05-11 12:57:45

MySQL數(shù)據(jù)庫(kù)編碼

2012-05-09 10:08:41

跨機(jī)房

2010-03-30 16:04:34

Linux Nginx

2010-09-27 13:14:42

JVM內(nèi)存限制

2010-02-23 17:49:56

WCF傳輸大數(shù)據(jù)

2011-07-28 11:28:21

SQL Server數(shù)注冊(cè)表編輯器

2011-08-25 18:35:07

Linux cron執(zhí)

2011-08-10 13:46:36

Navicat MySMySQL

2010-05-31 12:53:56

Nagios apac

2010-10-08 13:09:38

JavaScript數(shù)

2010-02-06 14:54:11

C++指針漂移

2010-04-28 19:24:17

Hp unix

2011-03-23 16:38:28

LAMP

2024-11-28 09:37:28

2011-08-12 13:18:30

Oracle數(shù)據(jù)庫(kù)存儲(chǔ)過(guò)程

2021-01-13 10:18:29

SocketNetty粘包

2010-08-04 10:20:30

Flex組件開發(fā)

2010-10-09 12:58:59

JS腳本兼容

2010-04-06 09:33:37

CentOS系統(tǒng)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

欧美精品久久99| 亚洲大胆美女视频| 国产视频999| 人成在线免费网站| 中文字幕欧美一区| 亚洲人成网站在线播放2019| 亚洲另类春色校园小说| 日韩精品电影网| 日色在线视频| 久久综合久久久久88| 久久人人九九| 精品国产一级毛片| 久久九九免费视频| 丁香花在线观看完整版电影| 欧美色播在线播放| 99热在线这里只有精品| 日本在线播放一区二区三区| 国产精品美女免费看| 91麻豆精品国产综合久久久 | 桃花色综合影院| 2021国产精品久久精品| 亚洲精品一区二区三| 亚洲一二av| 5566中文字幕一区二区| 欧美r片在线| 26uuu国产一区二区三区| 日韩亚洲欧美精品| 欧美深夜福利| 国产精品久久久久久超碰| 欧美性生活一级| 亚洲成人激情视频| 18加网站在线| 欧美精品日韩精品| 成年女人的天堂在线| 日韩av在线中文字幕| 久久综合国产精品台湾中文娱乐网| 人人澡人人添人人爽一区二区| 色婷婷av一区二区三区大白胸| 日本五十路在线| 中文字幕亚洲精品在线观看| 国产小视频精品| 欧美经典一区二区三区| 男人天堂新网址| 欧美日韩亚洲激情| 欧洲精品久久| 亚洲作爱视频| 国内精品视频免费| 中日韩男男gay无套| 国产精品毛片va一区二区三区| 美女精品久久久| av网址在线观看免费| av高清不卡在线| 亚洲不卡中文字幕无码| 成人性生交大片免费| 每日在线观看av| 国产高清精品久久久久| 亚洲色图16p| 国产一区二区三区四| 国产一区一区三区| 国产精品一区在线观看你懂的| 国产三级中文字幕| 福利91精品一区二区三区| 国产欧美日韩亚洲一区二区三区| 欧美久久一二三四区| 成人全视频高清免费观看| 欧美日韩电影在线播放| 在线网址91| 亚洲精品一区在线观看香蕉| 国产成人精选| www.在线播放| proumb性欧美在线观看| 88av.com| 亚洲韩国一区二区三区| 国产资源在线观看| 日韩一区二区在线看片| 欧美电影h版| 97在线视频免费| 五月天综合网站| 国产精品久久7| 国产精品中文字幕久久久| 激情av在线播放| 在线观看视频亚洲| 色吊丝一区二区| 国产精品久久一区二区三区| 久久99精品国产.久久久久| av网站在线观看不卡| 午夜视频在线观看一区| 成人高潮aa毛片免费| 蜜月aⅴ免费一区二区三区| 久久青草精品视频免费观看| 美女一区二区在线观看| 97激碰免费视频| 极品在线视频| jvid福利写真一区二区三区| 国产精品成人一区二区三区吃奶| 午夜久久美女| 日韩在线视频在线| 中文字幕一区二区视频| 91caoporm在线视频| 综合网中文字幕| 911久久香蕉国产线看观看| 日本免费黄色小视频| 亚洲一区二区中文在线| 日韩久久不卡| 奇米四色中文综合久久| 免费日韩av| 日韩一级理论片| 欧美精品第1页| 日韩毛片网站| 147欧美人体大胆444| 99在线热播精品免费| 午夜免费视频在线国产| 国语对白做受69| 理论片日本一区| 黑粗硬长欧美在线视频免费的| 亚洲国产欧美一区二区三区同亚洲| 色愁久久久久久| 日本不卡一区二区三区四区| 天涯成人国产亚洲精品一区av| 成人午夜毛片| 欧美久久久久久| 欧美日韩性视频在线| 国产精品一区二区精品| 日韩精品一线二线三线| 激情成人中文字幕| 精品午夜av| 亚洲午夜精品久久久中文影院av | 亚洲6080在线| 小h片在线观看| 成人情视频高清免费观看电影| 国产肉丝袜一区二区| 2020日本在线视频中文字幕| 懂色中文一区二区三区在线视频| 中文字幕第一区| 高清电影一区| 午夜精品一区二区在线观看| 在线亚洲+欧美+日本专区| 亚洲瘦老头同性70tv| 欧美亚洲国产成人| 日韩精品极品视频| 国产精品亚洲欧美| 精品欧美一区二区久久| 女人被男人躁得好爽免费视频| 在线观看日产精品| 99精品美女| 有码av在线| 青青在线视频一区二区三区| 国产亚洲欧美色| 日韩三级一区| 男女啪啪免费视频网站| 亚洲精品国产福利| 老司机午夜免费精品视频| 男人在线资源站| 国产欧美精品一区二区三区| 欧美日韩在线免费观看| 久久一区二区三区电影| av黄色免费| 国产91精品视频在线观看| 国产精品乱码一区二三区小蝌蚪| 老司机亚洲精品一区二区| 日韩精品一区二区三区不卡| 久久亚洲成人精品| 国产亚洲精品7777| 日本久久伊人| 国产主播在线看| 欧美激情视频免费观看| 国产精品久久久久aaaa| 欧美精品国产白浆久久久久| 国产美女被遭强高潮免费网站| 青青草原一区二区| 黄色成人在线播放| 欧美精品导航| 岳毛多又紧做起爽| 97高清视频| 午夜精品美女自拍福到在线| 亚洲欧美日韩系列| 久久精品不卡| 中文字幕在线免费| 日韩av高清| 亚洲日本欧美中文幕| 久久久加勒比| 色喇叭免费久久综合| 日韩在线无毛| 久久综合一区| 日韩av网站电影| 99国产欧美久久久精品| 国产精品xxx在线观看| 美女视频免费观看网站在线| aaa国产一区| 久久精品在线免费视频| 一区二区三区 在线观看视| 久久蜜桃一区二区| 成人情趣视频网站| 国产日产一区二区三区| 青青在线免费视频| 欧洲免费在线视频| 超碰国产在线| 国产一线二线在线观看| 日韩一区av| 亚洲少妇一区|