付費(fèi)下載
下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、Mysql雙機(jī)互備熱備,自動(dòng)切換Mysql雙機(jī)互備熱備,自動(dòng)切換星期日,12/20/2009-22:15wdlinux作者:wdlinuxQQ:12571192我的Linux,開源技術(shù),應(yīng)用方案,集群架構(gòu),高可用,負(fù)載均衡,分流,性能優(yōu)化歡迎轉(zhuǎn)載,轉(zhuǎn)載時(shí)請(qǐng)務(wù)必以超鏈接形式標(biāo)明文章原始由處和作者信息及本聲明.Mysql雙機(jī)互備熱備在實(shí)際的應(yīng)用中,數(shù)據(jù)庫是非常重要和關(guān)鍵的一個(gè)環(huán)節(jié)。在保障數(shù)據(jù)庫安全的同時(shí),提高應(yīng)用性和縮短由故障后的恢復(fù)時(shí)間,也同等重要。特別是在一些持續(xù)性和實(shí)時(shí)性要求高的應(yīng)用中,故障一小時(shí),可能會(huì)讓你損失幾千到幾萬甚至更高。本方案致力于數(shù)據(jù)庫實(shí)時(shí)備份,并且在故障發(fā)生后以最短的時(shí)間恢復(fù)
2、和修復(fù)在mysql數(shù)據(jù)庫的備份應(yīng)用中,主從復(fù)制結(jié)構(gòu)是應(yīng)用的比較廣泛,數(shù)據(jù)同步和實(shí)時(shí)性都很高,基本上能滿足大部分的需求。本方案基于主從復(fù)制結(jié)構(gòu)的基礎(chǔ)上,當(dāng)主庫由現(xiàn)故障時(shí),從庫能自動(dòng)接管主庫的功能,向外提供服務(wù),且將自身設(shè)置為主庫,將這個(gè)故障時(shí)間和影響縮短至最小,5秒內(nèi)可切換完成。待原主庫修復(fù)后,會(huì)自動(dòng)進(jìn)入從庫的備份角色,如此循環(huán)。在本方案的實(shí)現(xiàn)中,有兩種方法且均基于mysql的主從結(jié)構(gòu)中1高可用(HighAvailability)HA集群,用heartbeat實(shí)現(xiàn)及增加了故障后的恢復(fù)功能2同樣是高可用,只是是自己編寫腳本程序來監(jiān)控,切換,恢復(fù)在方法1中,使用穩(wěn)定的heartbeat開源軟件實(shí)現(xiàn),
3、但此方法,需要多一個(gè)IP對(duì)外訪問,同時(shí)在監(jiān)控上,是監(jiān)控機(jī)器的狀態(tài)而不是mysql,有些情況下,機(jī)器是好的但mysql服務(wù)桂了,這種情況下就不準(zhǔn)確了。不過可以修改監(jiān)控方式或增加對(duì)mysql服務(wù)的監(jiān)控方法2中,可以不用增加一個(gè)對(duì)外IP,同時(shí)在監(jiān)控上,可以直接監(jiān)控mysql的服務(wù),至于穩(wěn)定性,有待測試。此方法中還有一個(gè)問題,就是提供給客戶端的數(shù)據(jù)庫連接IP,因?yàn)榍袚Q后,IP也就變了。如果說更改程序,那不現(xiàn)實(shí)。所以,這里可以用域名,不過仍然需要修改域名的IP指向或是修改客戶機(jī)的hosts文件。本文使用的是修改DNS的方法,因?yàn)镈NS是自己配置的,可以靈活操作。本方分兩部分進(jìn)行說明第一部分用heartb
4、eat實(shí)現(xiàn)的高可用1環(huán)境條件兩個(gè)虛擬機(jī)(IP:192,168.1.91/92/93),CentOS5.4,mysql-5.1.37,heartbeat-2.1.3-32安裝前的準(zhǔn)備Heartbeat的工作原理:heartbeat最核心的包括兩個(gè)部分,心跳監(jiān)測部分和資源接管部分,心跳監(jiān)測可以通過網(wǎng)絡(luò)鏈路和串口進(jìn)行,而且支持冗余鏈路,它們之間相互發(fā)送報(bào)文來告訴對(duì)方自己當(dāng)前的狀態(tài),如果在指定的時(shí)間內(nèi)未受到對(duì)方發(fā)送的報(bào)文,那么就認(rèn)為對(duì)方失效,這時(shí)需啟動(dòng)資源接管模塊來接管運(yùn)行在對(duì)方主機(jī)上的資源或者服務(wù)。更多請(qǐng)看官網(wǎng)/HomePage基礎(chǔ)系統(tǒng)的安裝,mysql的安裝(略
5、)軟件下載/DownloadSoftwareHttp:/http:/dev.mysql.Com/downloads/mysql/5.1.html3安裝過程(heartbeat)般的軟件源碼安裝是./configure-prefix=path;make;makeinstall,本文使用yum安裝yuminstallheartbeatyuminstallheartbeat-ldirectord有一點(diǎn)要注意:heartbeat的監(jiān)測,可以是網(wǎng)絡(luò)或串口,本文使用網(wǎng)絡(luò)也就是網(wǎng)卡4配置文檔及腳本1) Heartbeat的三個(gè)配置文件ha.cf,authkeys,hare
6、sourcesCatHa.cfdebugfile/var/log/ha-debuglogfile/var/log/ha-loglogfacilitylocal0keepalive2deadtime5warntime10initdead10udpport694bcasteth0auto_failbackoffnodemysqlmnodemysqlsrespawnhacluster/usr/lib/heartbeat/ipfailapiauthipfailgid=haclientuid=haclusterCatauthkeysauth11crcCatharesourcesmysqlmmysql_s
7、tart1.shIPaddr:3/32/eth02) mysql_start1.sh腳本#!/bin/sh# author:wdlinux# url:http:# description:mysqlstartlocal_ip=1mip=2vip=3mysql_in=/usr/local/mysqlmmysql_bin=$mysql_in/bin/mysqlmysql_user=rootmysql_port=3306mysql_pass=12345mysqld_start=/etc/rc.d/init.d/m
8、ysqldm./etc/rc.d/init.d/functionsfunctionslave_to_master()echo"mysqltomasterfromslave."$mysql_bin-u"$mysql_user"-p"$mysql_pass"-e"slavestop;"log_file=$($mysql_bin-u"$mysql_user)"-p"$mysql_pass"-P"$mysql_port"-e"showmasterstat
9、usG"|grep"File:"|awk-F':''printf$2')log_id=$($mysql_bin-u"$mysql_user”-p"$mysql_pass"-P"$mysql_port"-e"showmasterstatusG"|grep"Position:"|awk-F':''printf$2')$mysql_bin-u"$mysql_user"-p"$mysql_p
10、ass"-P"$mysql_port"-e"usems_state;updatems_logsetmlf='$log_file',mlp='$log_id'"echo"mysqlserverismaster"functionmaster_to_slaveecho"mysqltoslavefrommaster."if($mysql_bin-h"$vip"-u"$mysql_user"-p"$mysql_pass"-P
11、"$mysql_port"-e"showslavestatus">/dev/null2>&1)thenlog_file=$($mysql_bin-h"$vip"-u"$mysql_user"-p"$mysql_pass"-P"$mysql_port"-e"usems_state;selectmIffromms_logG"|grep"mlf:"|awk"F':''printf$2
12、9;)log_id=$($mysql_bin-h"$vip"-u"$mysql_user)"-p"$mysql_pass""P"$mysql_port""e"usems_state;selectmlpfromms_logG"|grep"mlp:"|awk"F':''printf$2')$mysql_bin"u"$mysql_user""p"$mysql_pass&q
13、uot;-P"$mysql_port""e"slavestop;CHANGEMASTERTOMASTER_LOG_FILE='$log_file',MASTER_LOG_POS=$log_id;slavestart"echo"mysqlserverisslave"ficase"$1"instart)slave_to_master;stop)master_to_slave;*)echo"Usage:mysql_start.shstart|stop"echo"st
14、artisslavetomaster"echo"stopismastertoslave"exit1esac3)同保證和記錄當(dāng)主機(jī)由slave到master轉(zhuǎn)變時(shí)記錄當(dāng)前master的文件和位置,需要建一個(gè)數(shù)據(jù)庫和表來記錄createdatabasems_state;usems_state;createtablems_log(idtinyint(1)unsignednotnullauto_increment,mlfvarchar(20)notnulldefault'',mlpvarchar(20)notnulldefault'',pr
15、imarykey(id);insertintoms_logvalues(NULL,"test","123");4)mysql的配置在原本的配置里加上,文件f,主從一樣,ID要不同log-bin=mysql-binbinlog_format=mixedserver-id=1master-host=2master-user=msdatamaster-password=passslave-skip-errors=allreplicate-do-db=testreplicate-ignore-db=mysqlreplicate-ignore
16、-db=ms_state其它配置略經(jīng)測試,91,92重起關(guān)機(jī)都能自動(dòng)切換,接管93的IP,且故障機(jī)恢復(fù)后都能自動(dòng)進(jìn)入備份狀態(tài),且數(shù)據(jù)同步及時(shí)和一致第二部分自己編寫腳本實(shí)現(xiàn)的高可用一監(jiān)控實(shí)現(xiàn)原理自己編寫腳本,實(shí)現(xiàn)的功能和heartbeat差不多,都是監(jiān)控,切換等對(duì)于監(jiān)控,可以監(jiān)控系統(tǒng)的狀態(tài)如ping,也可以監(jiān)控mysql服務(wù)狀態(tài)(本文使用的方法)二實(shí)現(xiàn)腳本除了用此腳本替換heartbeat外,其它的實(shí)現(xiàn)和配置同上1監(jiān)控腳本mysql_monitor.sh#!/bin/bash# author:wdlinux# url:http:# description:monitorshellofmysqll
17、ocal_ip=192,168.1.92rip=192,168.1.91mysql_in=/usr/local/mysqlmmysql_bin=$mysql_in/bin/mysqlmysql_user=rootmysql_pass=12345mysql_port=3306st=0whiletrue;doif($mysql_bin-h"$rip"-u"$mysql_user”-p"$mysql_pass"-P"$mysql_port"-e"showmasterstatus"-connect_timeout=1>/dev/null2>&1)thenif($st=0);then/etc/rc.d/init.d/mysql_start1.shstopletst=$st+1fielsefor(i=0;i&1)thenbreakelseif($i=3);thenecho"slavetomaster"/etc
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 實(shí)驗(yàn)室安全教育考試練習(xí)試題及答案
- 2026新疆圖木舒克市天恒資產(chǎn)經(jīng)營有限公司招聘9人備考題庫及參考答案詳解1套
- 2026北京信息科技大學(xué)招聘35人備考題庫(第一批)附參考答案詳解(黃金題型)
- 2026年個(gè)性化住房需求對(duì)市場的挑戰(zhàn)
- 2026上半年海南事業(yè)單位聯(lián)考白沙黎族自治縣招聘77人備考題庫(第1號(hào))帶答案詳解(b卷)
- 2026寧夏固原市審計(jì)局聘請(qǐng)專業(yè)人員輔助審計(jì)工作6人備考題庫帶答案詳解(培優(yōu)b卷)
- 2026年不同社會(huì)群體的房地產(chǎn)投資心理分析
- 2025年母嬰用品代運(yùn)營品牌IP與跨界合作報(bào)告
- 歐洲院落概念城市更新案例
- 2026山西省中西醫(yī)結(jié)合醫(yī)院招聘博士研究生20人備考題庫參考答案詳解
- 起重機(jī)械安全風(fēng)險(xiǎn)辨識(shí)報(bào)告
- 2025年山東省村級(jí)后備干部選拔考試題(含答案)
- 村社長考核管理辦法
- 兒童顱咽管瘤臨床特征與術(shù)后復(fù)發(fā)風(fēng)險(xiǎn)的深度剖析-基于151例病例研究
- 防潮墻面涂裝服務(wù)合同協(xié)議
- GB/T 15237-2025術(shù)語工作及術(shù)語科學(xué)詞匯
- 外賣跑腿管理制度
- 冷鏈物流配送合作協(xié)議
- 生物-江蘇省蘇州市2024-2025學(xué)年第一學(xué)期學(xué)業(yè)質(zhì)量陽光指標(biāo)調(diào)研卷暨高二上學(xué)期期末考試試題和答案
- 2024年人教版一年級(jí)數(shù)學(xué)下冊(cè)教學(xué)計(jì)劃范文(33篇)
- 成都隨遷子女勞動(dòng)合同的要求
評(píng)論
0/150
提交評(píng)論