官方參考文檔:http://dev.MySQL.com/doc/refman/5.6/en/replication.html
創(chuàng)新互聯(lián)建站成立以來(lái)不斷整合自身及行業(yè)資源、不斷突破觀念以使企業(yè)策略得到完善和成熟,建立了一套“以技術(shù)為基點(diǎn),以客戶需求中心、市場(chǎng)為導(dǎo)向”的快速反應(yīng)體系。對(duì)公司的主營(yíng)項(xiàng)目,如中高端企業(yè)網(wǎng)站企劃 / 設(shè)計(jì)、行業(yè) / 企業(yè)門戶設(shè)計(jì)推廣、行業(yè)門戶平臺(tái)運(yùn)營(yíng)、重慶APP開(kāi)發(fā)公司、成都做手機(jī)網(wǎng)站、微信網(wǎng)站制作、軟件開(kāi)發(fā)、成都托管服務(wù)器等實(shí)行標(biāo)準(zhǔn)化操作,讓客戶可以直觀的預(yù)知到從創(chuàng)新互聯(lián)建站可以獲得的服務(wù)效果。
博客地址1:http://blog.csdn.net/mchdba/article/details/11354771
博客地址2:http://blog.csdn.net/mchdba/article/details/8717513
如下圖1.png所示:
復(fù)制的體系結(jié)構(gòu)有以下一些基本原則:
(1) 每個(gè)slave只能有一個(gè)master;
(2) 每個(gè)slave只能有一個(gè)唯一的服務(wù)器ID;
(3) 每個(gè)master可以有很多slave;
(4) 如果你設(shè)置log_slave_updates,slave可以是其它slave的master,從而擴(kuò)散master的更新。
MySQL不支持多主服務(wù)器復(fù)制(MultimasterReplication)——即一個(gè)slave可以有多個(gè)master。但是,通過(guò)一些簡(jiǎn)單的組合,我們卻可以建立靈活而強(qiáng)大的復(fù)制體系結(jié)構(gòu)。
介紹一下基本的mysql主從的管理操作命令:
STOP SLAVE IO_THREAD; #停止IO進(jìn)程
STOP SLAVE SQL_THREAD; #停止SQL進(jìn)程
STOP SLAVE; #停止IO和SQL進(jìn)程
START SLAVE IO_THREAD; #啟動(dòng)IO進(jìn)程
START SLAVE SQL_THREAD; #啟動(dòng)SQL進(jìn)程
START SLAVE; #啟動(dòng)IO進(jìn)程和SQL進(jìn)程
RESET SLAVE;
#用于讓從屬服務(wù)器忘記其在主服務(wù)器的二進(jìn)制日志中的復(fù)制位置, 它會(huì)刪除master.info和relay-log.info文件,以及所有的中繼日志,并啟動(dòng)一個(gè)新的中繼日志,當(dāng)你不需要主從的時(shí)候可以在從上執(zhí)行這個(gè)操作。不然以后還會(huì)同步,可能會(huì)覆蓋掉你的數(shù)據(jù)庫(kù)。
SHOW SLAVE STATUS;
#這個(gè)命令主要查看Slave_IO_Running、Slave_SQL_Running、Seconds_Behind_Master、Last_IO_Error、Last_SQL_Error這些值來(lái)把握復(fù)制的狀態(tài)。
#經(jīng)常會(huì)朋友mysql主從同步遇到錯(cuò)誤的時(shí)候,比如一個(gè)主鍵沖突等,那么我就需要在確保那一行數(shù)據(jù)一致的情況下臨時(shí)的跳過(guò)這個(gè)錯(cuò)誤,那就需要使用SQL_SLAVE_SKIP_COUNTER = n命令了,n是表示跳過(guò)后面的n個(gè)事件,比如我跳過(guò)一個(gè)事件的操作如下:
STOP SLAVE;
SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
START SLAVE;
#有的時(shí)候主從同步有問(wèn)題了以后,需要從log位置的下一個(gè)位置進(jìn)行同步,相當(dāng)于跳過(guò)那個(gè)錯(cuò)誤,這時(shí)候也可以使用CHANGE MASTER命令來(lái)處理,只要找到對(duì)應(yīng)的LOG位置就可以,比如:
CHANGE MASTER TOMASTER_HOST='10.1.1.75',MASTER_USER='replication',MASTER_PASSWORD='123456',MASTER_LOG_FILE='mysql-bin.000006',MASTER_LOG_POS=106;
START SLAVE;
PS:生產(chǎn)環(huán)境中這種操作盡量能避免就避免。
1. 不要亂使用SQL_SLAVE_SKIP_COUNTER命令。
這個(gè)命令跳過(guò)之后很可能會(huì)導(dǎo)致你的主從數(shù)據(jù)不一致,一定要先將指定的錯(cuò)誤記錄下來(lái),然后再去檢查數(shù)據(jù)是否一致,尤其是核心的業(yè)務(wù)數(shù)據(jù)。
2. 結(jié)合percona-toolkit工具pt-table-checksum定期查看數(shù)據(jù)是否一致。
這個(gè)是DBA必須要定期做的事情,呵呵,有合適的工具何樂(lè)而不為呢?另外percona-toolkit還提供了對(duì)數(shù)據(jù)庫(kù)不一致的解決方案,可以采用pt-table-sync,這個(gè)工具不會(huì)更改主的數(shù)據(jù)。還可以使用pt-heartbeat來(lái)查看從服務(wù)器的復(fù)制落后情況。
3. 使用replicate-wild-ignore-table選項(xiàng)而不要使用replicate-do-db或者replicate-ignore-db。
原因已經(jīng)在上面做了說(shuō)明。
4. 將主服務(wù)器的日志模式調(diào)整成mixed。
5. 每個(gè)表都加上主鍵,主鍵對(duì)數(shù)據(jù)庫(kù)的同步會(huì)有影響尤其是居于ROW復(fù)制模式。
6. 避免在master做批量更新操作,以免造成從庫(kù)主從延時(shí)。
----------------------------------------------------------------------------------------------------------------
<版權(quán)所有,文章允許轉(zhuǎn)載,但必須以鏈接方式注明源地址,否則追究法律責(zé)任!>
原博客地址: http://blog.itpub.net/26230597/viewspace-1478126/
原作者:黃杉 (mchdba)
----------------------------------------------------------------------------------------------------------------
參考文章地址:
http://www.open-open.com/lib/view/open1373874692544.html
http://blog.chinaunix.net/uid-20639775-id-3254611.html