1、主從復(fù)制與備份的區(qū)別
主從復(fù)制不等于備份憾筏,在實(shí)際工作中僵缺,我們可以根據(jù)需要配置主從復(fù)制,但是備份工作我們是必須要做的踩叭。我的理解是磕潮,我們可以不做主從翠胰,但一定要做備份,而且主從復(fù)制不等于備份自脯。
2之景、主從復(fù)制的作用
第一,創(chuàng)建一個(gè)數(shù)據(jù)庫的的備份膏潮,避免主庫崩潰時(shí)丟失數(shù)據(jù)锻狗,第二,創(chuàng)建一個(gè)數(shù)據(jù)的副本焕参,近而可以在不影響主庫業(yè)務(wù)的情況下執(zhí)行報(bào)表和分析等操作轻纪。第三,支持多地部署叠纷,做到數(shù)據(jù)庫的冗余刻帚。第四,我們可以通過延時(shí)復(fù)制的技術(shù)涩嚣,實(shí)現(xiàn)錯(cuò)誤保護(hù)的功能崇众,這樣當(dāng)master發(fā)生錯(cuò)誤時(shí),可以找出錯(cuò)誤的語句航厚,然后在slave執(zhí)行它之前刪除它顷歌。第五,針對讀密集型的場景幔睬,實(shí)現(xiàn)數(shù)據(jù)庫的橫向擴(kuò)展眯漩,從而減少master的負(fù)擔(dān)。橫向擴(kuò)展時(shí)要理解復(fù)制的異步性麻顶,要注意master與salve數(shù)據(jù)的不一致坤塞。
3、主從復(fù)制的原理
Mysql服務(wù)器之間的主從同步是基于二進(jìn)制日志機(jī)制澈蚌,主服務(wù)器使用二進(jìn)制日志來記錄數(shù)據(jù)庫的改變,從服務(wù)器通過讀取和執(zhí)行該日志文件來保持和主服務(wù)器的數(shù)據(jù)一致灼狰。
復(fù)制過程中一個(gè)服務(wù)器充當(dāng)主服務(wù)器宛瞄,而一個(gè)或多個(gè)其它服務(wù)器充當(dāng)從服務(wù)器。主服務(wù)器將更新寫入二進(jìn)制日志文件交胚,并維護(hù)文件的一個(gè)索引以跟蹤日志循環(huán)份汗。這些日志可以記錄發(fā)送到從服務(wù)器的更新。當(dāng)一個(gè)從服務(wù)器連接主服務(wù)器時(shí)蝴簇,它通知主服務(wù)器從服務(wù)器在日志中讀取的最后一次成功更新的位置杯活。從服務(wù)器接收從那時(shí)起發(fā)生的任何更新,然后封鎖并等待主服務(wù)器通知新的更新熬词。
4旁钧、mysql支持的復(fù)制類型:
基于語句的復(fù)制:在主服務(wù)器上執(zhí)行的SQL語句吸重,在從服務(wù)器上執(zhí)行同樣的語句。MySQL默認(rèn)采用基于語句的復(fù)制歪今,效率比較高嚎幸。一旦發(fā)現(xiàn)沒法精確復(fù)制時(shí),會(huì)自動(dòng)選著基于行的復(fù)制寄猩。
基于行的復(fù)制:把改變的內(nèi)容復(fù)制過去嫉晶,而不是把命令在從服務(wù)器上執(zhí)行一遍.從mysql5.0開始支持
混合類型的復(fù)制:默認(rèn)采用基于語句的復(fù)制,一旦發(fā)現(xiàn)基于語句的無法精確的復(fù)制時(shí)田篇,就會(huì)采用基于行的復(fù)制替废。