自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

京東MySQL數(shù)據(jù)庫主從切換自動(dòng)化

開發(fā) 開發(fā)工具 自動(dòng)化
隨著京東業(yè)務(wù)的高速增長,數(shù)據(jù)的重要性對(duì)于京東來說重要程度不說自明,在信息時(shí)代,數(shù)據(jù)有著比人們更大的力量,數(shù)據(jù)庫的價(jià)值可見一斑,數(shù)據(jù)庫的存在為人們提供了更快的查詢,那么為了更好地做到數(shù)據(jù)庫的高可用,保證持續(xù)提供服務(wù),簡化DBA操作,節(jié)省數(shù)據(jù)庫故障切換的時(shí)間,故開發(fā)此數(shù)據(jù)庫主從切換自動(dòng)化系統(tǒng)。

1. 產(chǎn)生背景

隨著京東業(yè)務(wù)的高速增長,數(shù)據(jù)的重要性對(duì)于京東來說重要程度不說自明,在信息時(shí)代,數(shù)據(jù)有著比人們更大的力量,數(shù)據(jù)庫的價(jià)值可見一斑,數(shù)據(jù)庫的存在為人們提供了更快的查詢,那么為了更好地做到數(shù)據(jù)庫的高可用,保證持續(xù)提供服務(wù),簡化DBA操作,節(jié)省數(shù)據(jù)庫故障切換的時(shí)間,故開發(fā)此數(shù)據(jù)庫主從切換自動(dòng)化系統(tǒng)。

2. 實(shí)現(xiàn)原理

此系統(tǒng)基于MHA做數(shù)據(jù)庫切換,結(jié)合京東數(shù)據(jù)庫切換的特點(diǎn),定制自己的切換系統(tǒng)。MHA(Master High Availability)目前在MySQL高可用方面是一個(gè)相對(duì)成熟的解決方案,它由日本DeNA公司Yoshinori Matsunobu開發(fā),是一套優(yōu)秀的作為MySQL高可用性環(huán)境下故障切換和主從提升的高可用軟件。在MySQL故障切換過程中,MHA能做到在0~30秒之內(nèi)自動(dòng)完成數(shù)據(jù)庫的故障切換操作,并且在進(jìn)行故障切換的過程中,MHA能在***程度上保證數(shù)據(jù)的一致性,同時(shí)***化挽回故障發(fā)生后的數(shù)據(jù),結(jié)合zabbix監(jiān)控報(bào)警,以達(dá)到真正意義上的高可用。三重檢測,保證切換無誤:zabbix檢測,任務(wù)創(chuàng)建時(shí)檢測,MHA檢測。

3. 實(shí)現(xiàn)功能

此系統(tǒng)實(shí)現(xiàn)了死切(從庫故障切換及回切,主庫故障切換),活切(主庫活切及主庫回切),做到自動(dòng)化、自助化、可視化切換。

4. 具體實(shí)現(xiàn)

4.1. 死切(故障切換)

當(dāng)Zabbix自動(dòng)監(jiān)控系統(tǒng)檢測到數(shù)據(jù)庫故障時(shí),會(huì)自動(dòng)調(diào)故障切換程序,然后判斷是主庫故障,還是從庫故障,分情況處理,所有的故障信息都可在DBS系統(tǒng)上查看

4.1.1 主庫故障:

先在DBS系統(tǒng)上創(chuàng)建切換任務(wù),另外DBA也可在故障切換頁面批量添加故障主庫IP,創(chuàng)建切換任務(wù)。然后相應(yīng)DBA執(zhí)行切換按鈕,則會(huì)判斷各種情況

4.1.1.1切換重要步驟及原則

  • 探活,探活檢測機(jī)制由select方式改為insert方式,這樣可以包含實(shí)例夯住和硬盤只讀的情況,如果沒有存活的從庫,則放棄本次操作并郵件和短信通知DBA手動(dòng)處理。
  • 選擇新主庫,先本地(先物理機(jī)后DOCKER,先連接數(shù)少,后QPS負(fù)載低),后異地(先物理機(jī)后DOCKER,先連接數(shù)少,后QPS負(fù)載低)原則選擇目標(biāo)實(shí)例
  • 調(diào)MHA接口進(jìn)行故障切換故障系統(tǒng)信息變更

a.MHA會(huì)優(yōu)先使用上一步選出的從庫做為新主庫,否則會(huì)使用***數(shù)據(jù)的從庫提升為新主庫,然后將所有其他的從庫重新指向新主庫。之后會(huì)調(diào)用域名切換接口,將原來故障主庫下的域名,全部指向到新的主庫IP上。如果MHA切換失敗或MHA有告警信息,或者有域名未切換成功,都會(huì)使用郵件和短信通知DBA人工處理。

b.當(dāng)MHA故障切換結(jié)束后,系統(tǒng)會(huì)將新主庫的mysql.cnf配置文件中的read_only=1刪除,并在新主庫上執(zhí)行reset salve all或stop slave指令。

c.調(diào)用zabbix主機(jī)改名接口,修改故障主庫及新主庫在zabbix監(jiān)控系統(tǒng)中的名稱。

d. 由于域名切換后非實(shí)時(shí)生效,存在時(shí)延,因此系統(tǒng)會(huì)對(duì)域名生效進(jìn)行檢查,如果2分鐘內(nèi)未生效,則會(huì)進(jìn)行提示,需要DBA進(jìn)行人工確認(rèn)。

e. ***,在資產(chǎn)庫中更新集群信息,修改主從關(guān)系并進(jìn)行數(shù)據(jù)庫狀態(tài)變更,更新故障信息表。同時(shí),發(fā)送郵件和短信通知DBA故障切換完成。

f.活切可以支持多集群同時(shí)切換。

4.1.1.2 舉例

例如有一主四從的集群,主庫 10.66.66.66:3366故障,需要切換,如下:

1.Zabbix自動(dòng)創(chuàng)建任務(wù),然后DBA執(zhí)行切換

2.選目標(biāo)實(shí)例

假如例子中的4個(gè)從都是存活的,那么在此處會(huì)比較根據(jù)先本地,選出10.66.66.68:3366,10.66.66.69:3366,然后查連接數(shù),都相同,則去查QPS,

然后比較QPS,選出QPS負(fù)載低的10.66.66.69:3366作為目標(biāo)實(shí)例。

3.切換完成結(jié)果

4.切換的詳細(xì)信息

4.1.2從庫故障(系統(tǒng)自動(dòng)完成):

4.1.2.1 切換原則

判斷是否宕機(jī)實(shí)例沒有域名,宕機(jī)實(shí)例設(shè)置為手動(dòng)切換,宕機(jī)實(shí)例所在集群無其他正常運(yùn)行實(shí)例,這些情況下會(huì)給相應(yīng)的DBA發(fā)郵件及短信報(bào)警,需要DBA手動(dòng)處理;

其他情況故障系統(tǒng)會(huì)自動(dòng)處理,根據(jù)先本地(連接數(shù)少,QPS負(fù)載低),后異地(連接數(shù)少,QPS負(fù)載低)原則選擇目標(biāo)實(shí)例,進(jìn)行域名切換,切換成功或失敗都會(huì)發(fā)郵件及短信告知相應(yīng)的DBA;

切換成功的從庫,相應(yīng)的DBA可以回切該實(shí)例。

4.1.2.2 舉例

例如有一主四從的集群,從庫 10.88.88.89:3366故障,需要切換,如下:

zabbix會(huì)自動(dòng)創(chuàng)建任務(wù),并根據(jù)先本地后異地,然后查連接數(shù),QPS原則,確定目標(biāo)實(shí)例為10.88.88.88:3366,然后自動(dòng)切換,DBA會(huì)在切換任務(wù)列表查看切換結(jié)果,鼠標(biāo)懸停執(zhí)行狀態(tài)會(huì)顯示切換的具體信息

切換成功的任務(wù)會(huì)顯示回切按鈕,可以執(zhí)行回切

DBA執(zhí)行回切,系統(tǒng)會(huì)創(chuàng)建回切任務(wù),并可以查看回切的具體信息

4.2活切(一般運(yùn)維停機(jī)切換)

4.2.1 批量創(chuàng)建任務(wù):

輸入項(xiàng)目里的任一IP,就可以查出該項(xiàng)目下的所有可用集群,然后勾選想要切換的集群,提交批量創(chuàng)建任務(wù)。

創(chuàng)建任務(wù)時(shí)可選擇目標(biāo)實(shí)例是本地,還是異地。然后先對(duì)目標(biāo)實(shí)例探活,再根據(jù)先物理機(jī)后DOCKER,先查連接數(shù)少,后查QPS負(fù)載低的原則推薦實(shí)例。如果有異常會(huì)提示。

另外可選擇切換后新主庫是否為read only

4.2.2任務(wù)切換

點(diǎn)擊切換,會(huì)批量切換本次任務(wù),并可以進(jìn)入子任務(wù)查看具體切換的每個(gè)步驟,及MHA執(zhí)行的每個(gè)步驟,切換完成,會(huì)等待2分鐘去校驗(yàn)域名是否真實(shí)切換。

切換后會(huì)有前后架構(gòu)的對(duì)比。

可以kill舊主庫的所有應(yīng)用鏈接。

4.2.3 舉例

有個(gè)Mysql_test項(xiàng)目下有2個(gè)集群,如下

集群1

集群2

1. 批量創(chuàng)建任務(wù)

選擇原則根據(jù)先本地后異地,先物理機(jī)后Docker,先連接數(shù)后QPS原則,

10.66.66.66:3366選擇目標(biāo)主庫為:10.88.88.89:3366

10.66.55.55:3366選擇目標(biāo)主庫為:10.88.99.91:3366

 

2. 批量執(zhí)行切換

切換子任務(wù)詳細(xì)信息,可查看到每個(gè)子任務(wù)的切換結(jié)果及執(zhí)行步驟,前后架構(gòu)

5. 總結(jié)

該系統(tǒng)不管是死切,還是活切,都已服務(wù)化,接口化,都只需最多2步(創(chuàng)建任務(wù),執(zhí)行切換)就可完成切換,也可以完全自動(dòng)化切換(需要業(yè)務(wù)方同意,因?yàn)橛行I(yè)務(wù)數(shù)據(jù)庫故障后需要業(yè)務(wù)方確認(rèn)切換),也可以把活切做成流程化交給業(yè)務(wù)方自助切換。目前該系統(tǒng)已經(jīng)運(yùn)行良好,極大的節(jié)省了DBA時(shí)間,更好地做到數(shù)據(jù)庫的高可用,保證持續(xù)提供服務(wù),簡化DBA操作,節(jié)省數(shù)據(jù)庫故障切換的時(shí)間,為京東的數(shù)據(jù)庫保駕護(hù)航。

【本文為51CTO專欄作者“王偉”的原創(chuàng)稿件,轉(zhuǎn)載請(qǐng)注明出處】

 戳這里,看該作者更多好文

責(zé)任編輯:武曉燕 來源: 51CTO博客
相關(guān)推薦

2017-01-18 10:57:24

MySQLZabbix監(jiān)控

2011-04-01 15:07:29

數(shù)據(jù)庫自動(dòng)化

2021-12-30 07:33:03

數(shù)據(jù)庫

2011-04-14 11:09:14

MySQL數(shù)據(jù)庫

2010-12-21 13:13:10

BMC數(shù)據(jù)庫自動(dòng)化服務(wù)

2011-08-05 16:09:40

MySQL數(shù)據(jù)庫主從服務(wù)器文檔切換

2016-09-23 09:22:12

2015-03-09 11:10:14

運(yùn)維

2018-07-13 06:46:35

數(shù)據(jù)中心自動(dòng)化微服務(wù)

2015-05-28 10:46:22

shellBackupdatabase

2011-03-22 15:47:14

自動(dòng)化數(shù)據(jù)庫表結(jié)構(gòu)差異

2013-02-27 15:48:05

自動(dòng)化備份FacebookPB級(jí)別數(shù)據(jù)庫

2011-07-21 15:07:59

SQL Server數(shù)自動(dòng)化管理分區(qū)

2011-08-29 14:00:26

MySQL主從延時(shí)

2011-03-30 13:57:41

MySQL數(shù)據(jù)庫自動(dòng)備份

2021-05-19 08:21:09

MySQL數(shù)據(jù)庫GTID

2018-08-30 09:43:11

DBA數(shù)據(jù)庫運(yùn)維

2017-12-01 11:34:44

京東京東云自動(dòng)化運(yùn)維

2017-12-17 21:58:18

2021-12-08 09:00:00

數(shù)據(jù)庫Liquibase腳本
點(diǎn)贊
收藏

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