mysql 數(shù)據(jù)庫的熱備份原理

參考網(wǎng)址:http://blog.csdn.net/yjf2013/article/details/38321609

A、MySQL雙機(jī)熱備份概述

雙機(jī)熱備就是使用MySQL提供的一種主從備份機(jī)制實(shí)現(xiàn)。所謂雙機(jī)熱備其實(shí)是一個(gè)復(fù)制的過程,復(fù)制過程中一個(gè)服務(wù)器充當(dāng)主服務(wù)器,一個(gè)或多個(gè)服務(wù)器充當(dāng)從服務(wù)乖寒。這個(gè)復(fù)制的過程實(shí)質(zhì)上是從服務(wù)器復(fù)制主服務(wù)器上MySQL的二進(jìn)制日志(bin-log),并在從服務(wù)器上還原主服務(wù)器上的操作。

雙機(jī)熱備的實(shí)現(xiàn)需要MySQL的版本高于3.2钉蒲。另外由于這種備份是基于MySQL二進(jìn)制日志實(shí)現(xiàn),所以主從服務(wù)器上的MySQL版本最好能夠一樣彻坛,至少?gòu)姆?wù)器的MySQL版本不可以低于主服務(wù)器的數(shù)據(jù)庫版本顷啼。因?yàn)镸ySQL不同的版本之間二進(jìn)制日志可能不一樣。

B昌屉、 MySQL雙機(jī)熱備份配置步驟

假設(shè)主服務(wù)器A(master)钙蒙、從服務(wù)器為B(slave)。兩服務(wù)器Ip為:A——192.168.0.2间驮,B——192.168.0.3躬厌。本文服務(wù)器A采用windows操作系統(tǒng),服務(wù)器B采用centos 6.4竞帽,目的是為了一次說明windows和Linux不同環(huán)境中的配置扛施。

步驟一:主服務(wù)器授權(quán)

在主服務(wù)器A上創(chuàng)建一個(gè)username和password供從服務(wù)器B訪問時(shí)使用。在MySQL命令行下輸入mysql>GRANT FILE,SELECT,REPLICATION SLAVE ON *.* TO backup@192.168.0.3 IDENTIFIED BY'123456';

步驟二:數(shù)據(jù)復(fù)制

將A上已有的數(shù)據(jù)備份到B上屹篓,以便主從數(shù)據(jù)庫建立的時(shí)候兩個(gè)數(shù)據(jù)庫的數(shù)據(jù)保持一致(這里復(fù)制的方法有很多疙渣,但必須保證兩個(gè)數(shù)據(jù)庫的數(shù)據(jù)完全相同)。

步驟三:配置主服務(wù)器

主服務(wù)器A是windows操作系統(tǒng)堆巧,其mysql配置文件在mysql安裝目錄下的my.ini文件妄荔。我們對(duì)主服務(wù)器的配置都在my.ini中。

停止A服務(wù)器上的mysql服務(wù)恳邀,打開my.ini配置文件懦冰。在my.ini中找到[mysqld],并在[mysqld]區(qū)域內(nèi)做如下修改:

[mysqld]

server-id=1#是1~2^23-1內(nèi)的唯一值且不能與B或其它slave服務(wù)中的配置相同

log-bin = bin_log#日志文件以bin_log為前綴,如果不給log-bin賦值,日志文件將以#master-server-hostname為前綴

binlog-ignore-db= test#日志文件跳過的數(shù)據(jù)庫(可選屬性 ),如果有多個(gè)數(shù)據(jù)庫谣沸,可以重復(fù)配置這個(gè)屬性

binlog-do-db= qxpt_demo#日志文件操作的數(shù)據(jù)庫(可選屬性 刷钢,默認(rèn)所有數(shù)據(jù)庫的相關(guān)操作都寫入二進(jìn)制日志文件) ,如果有多個(gè)數(shù)據(jù)庫,可以重復(fù)配置這個(gè)屬性

步驟四:重啟A中的MySQL服務(wù)

配置完上面選項(xiàng)后乳附,重啟A上的MySQL服務(wù)内地,這時(shí)候A上所有對(duì)qxpt_demo數(shù)據(jù)庫的更新操作都會(huì)被記錄到二進(jìn)制日志中伴澄。

步驟五:配置slave

本文中slave所在的B服務(wù)器是linux環(huán)境,其MySQL配置文件在/etc/my.cnf中阱缓。

在slave的my.cnf中 [mysqld]非凌,并在其中做如下配置:

[mysqld]

server-id=2#唯一并與主服務(wù)器上的server-id不同。

replicate-do-db= qxpt_demo#復(fù)制操作要針對(duì)的數(shù)據(jù)庫(可選荆针,默認(rèn)為全部)敞嗡,同樣如果有多個(gè)數(shù)據(jù)庫則可配置多次本屬性。

步驟六:重啟并對(duì)slave進(jìn)行設(shè)置

重啟B服務(wù)器上的MySQL服務(wù)航背,用mysql -uroot -p 登錄MySQL喉悴,并執(zhí)行如下命令:

mysql> change master to \

-> master_host='192.168.0.2',//主服務(wù)器的IP地址

-> master_user='backup',//同步數(shù)據(jù)庫的用戶

-> master_password=’123456’;//同步數(shù)據(jù)庫的密碼

注:MySQL 5.1.7之前上面命令中的參數(shù)都可以在my.cnf配置文件的[mysqld]區(qū)域中配置。

步驟七:重啟并對(duì)slave進(jìn)行設(shè)置

MySQL中執(zhí)行show slavestatus玖媚;命令查看slave狀態(tài):

這時(shí)候slave還未啟動(dòng)箕肃,我們只要在MySQL中執(zhí)行slave start; 即可啟動(dòng)slave。這時(shí)候slave_io_running和slave_sql_runing的值都應(yīng)該變?yōu)閥es今魔。

經(jīng)過以上六個(gè)步驟我們就可以實(shí)現(xiàn)從A到B的單向熱備份勺像。這時(shí)候我們對(duì)A中qxpt_demo數(shù)據(jù)庫進(jìn)行修改等影響數(shù)據(jù)庫數(shù)據(jù)及結(jié)構(gòu)的操作會(huì)被復(fù)制到B中。

C错森、 MySQL雙機(jī)熱備份原理

MySQL的雙機(jī)熱備份是一個(gè)異步的復(fù)制(replication)吟宦,slave的備份數(shù)據(jù)實(shí)際上就是從master端獲取其binlog日志后,在自己身上完全順序的執(zhí)行日志中記錄的各種操作涩维。實(shí)現(xiàn)整個(gè)復(fù)制操作主要由三個(gè)步驟:

(1) master將改變記錄到二進(jìn)制日志(bin-log)中督函;

(2)slave將master的bin-log拷貝到它的中繼日志(relay log);

(3) slave重做中繼日志中的事件激挪,將改變反映它自己的數(shù)據(jù)辰狡。

在網(wǎng)上找了一個(gè)個(gè)人感覺比較好的圖,如下:

結(jié)合本圖可以看出雙機(jī)熱備的具體步驟如下:

(1)在每個(gè)事務(wù)更新數(shù)據(jù)完成之前垄分,master在二日志記錄這些改變宛篇。MySQL將事務(wù)串行的寫入二進(jìn)制日志,在事件寫入二進(jìn)制日志完成后薄湿,提交事物叫倍。

(2)slave開始一個(gè)工作線程——I/O線程。slave的io進(jìn)程鏈接到master后豺瘤,向master請(qǐng)求指定位置的日志內(nèi)容吆倦。

(3) master接受到slave的請(qǐng)求后,通過master的io讀取指定日志內(nèi)容及bin-log文件的相關(guān)信息(slave status中Master_Log_File和Read_Master_Log_Pos屬性)坐求,并返回給slave的io進(jìn)程蚕泽。

(4)slave接收到信息后,將接受到的日志內(nèi)容依次添加到slave端的relay-log(在MySQLdata目錄中)的最末端,并讀取master傳過來的bin-log文件信息须妻,將bin-log的文件信息存到master.info文件中仔蝌,以便下一次請(qǐng)求能夠清楚的告訴master需要讀取bin-log的哪個(gè)位置開始往后的日志內(nèi)容。

(5)slave的sql進(jìn)程檢測(cè)到relay-log中新增內(nèi)容后荒吏,會(huì)立刻解析relay-log的內(nèi)容敛惊,將其解析成在master端真實(shí)執(zhí)行的那些可執(zhí)行內(nèi)容,并在slave自身執(zhí)行绰更。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末瞧挤,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子儡湾,更是在濱河造成了極大的恐慌皿伺,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,324評(píng)論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件盒粮,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡奠滑,警方通過查閱死者的電腦和手機(jī)丹皱,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,356評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來宋税,“玉大人摊崭,你說我怎么就攤上這事〗苋” “怎么了呢簸?”我有些...
    開封第一講書人閱讀 162,328評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)乏屯。 經(jīng)常有香客問我根时,道長(zhǎng),這世上最難降的妖魔是什么辰晕? 我笑而不...
    開封第一講書人閱讀 58,147評(píng)論 1 292
  • 正文 為了忘掉前任蛤迎,我火速辦了婚禮,結(jié)果婚禮上含友,老公的妹妹穿的比我還像新娘替裆。我一直安慰自己,他們只是感情好窘问,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,160評(píng)論 6 388
  • 文/花漫 我一把揭開白布辆童。 她就那樣靜靜地躺著,像睡著了一般惠赫。 火紅的嫁衣襯著肌膚如雪把鉴。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,115評(píng)論 1 296
  • 那天儿咱,我揣著相機(jī)與錄音纸镊,去河邊找鬼倍阐。 笑死,一個(gè)胖子當(dāng)著我的面吹牛逗威,可吹牛的內(nèi)容都是我干的峰搪。 我是一名探鬼主播,決...
    沈念sama閱讀 40,025評(píng)論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼凯旭,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼概耻!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起罐呼,我...
    開封第一講書人閱讀 38,867評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤鞠柄,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后嫉柴,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體厌杜,經(jīng)...
    沈念sama閱讀 45,307評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,528評(píng)論 2 332
  • 正文 我和宋清朗相戀三年计螺,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了夯尽。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,688評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡登馒,死狀恐怖匙握,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情陈轿,我是刑警寧澤圈纺,帶...
    沈念sama閱讀 35,409評(píng)論 5 343
  • 正文 年R本政府宣布,位于F島的核電站麦射,受9級(jí)特大地震影響蛾娶,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜潜秋,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,001評(píng)論 3 325
  • 文/蒙蒙 一茫叭、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧半等,春花似錦揍愁、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,657評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至切距,卻和暖如春朽缎,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,811評(píng)論 1 268
  • 我被黑心中介騙來泰國(guó)打工话肖, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留北秽,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,685評(píng)論 2 368
  • 正文 我出身青樓最筒,卻偏偏與公主長(zhǎng)得像贺氓,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子床蜘,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,573評(píng)論 2 353

推薦閱讀更多精彩內(nèi)容

  • 關(guān)于Mongodb的全面總結(jié) MongoDB的內(nèi)部構(gòu)造《MongoDB The Definitive Guide》...
    中v中閱讀 31,928評(píng)論 2 89
  • 雖然不能恢復(fù)百分百辙培,至少能將損失降到最低。 有個(gè)問題測(cè)試: 主從同步時(shí)邢锯,主庫網(wǎng)絡(luò)斷開扬蕊,binlog dump線程...
    kun_zhang閱讀 3,036評(píng)論 0 6
  • https://www.cnblogs.com/along21/p/8011596.html https://bl...
    SkTj閱讀 3,143評(píng)論 1 4
  • 其實(shí)我知道,你的心里苦 有苦卻又無處訴 有苦無處訴 每天只有飲不盡的孤獨(dú) 走的好辛苦 漫漫人生路 看不見前途丹擎,找不...
    利君理療閱讀 39評(píng)論 0 0
  • 剛剛接待了一個(gè)客戶尾抑,走到門口時(shí),我是硬生生拉進(jìn)來看看地板吧蒂培!他也出來他家地板的問題再愈,我用我的專業(yè)給他解釋了,大題介...
    天格燕子閱讀 163評(píng)論 0 0