您好,登錄后才能下訂單哦!
本文主要給大家簡(jiǎn)單講講MySQL雙主master-master配置的詳細(xì)方法,相關(guān)專業(yè)術(shù)語(yǔ)大家可以上網(wǎng)查查或者找一些相關(guān)書籍補(bǔ)充一下,這里就不涉獵了,我們就直奔主題吧,希望MySQL雙主master-master配置的詳細(xì)方法這篇文章可以給大家?guī)硪恍?shí)際幫助。
環(huán)境:
主機(jī)名 主機(jī)IP 操作系統(tǒng)
mysqlA 172.18.252.221 CentOS 6.5 2.6.32-431.el6.x86_64 mysqlB 172.18.252.222
MySQL版本 mysql-community-server-5.7.5-0.6.m15.el6.x86_64
本文做一點(diǎn)補(bǔ)充說明:如果mysqlA已經(jīng)運(yùn)行了一段時(shí)間,要添加一臺(tái)新的mysqlB, 與mysqlA實(shí)現(xiàn)主主復(fù)制,就要先復(fù)制mysqlA上的數(shù)據(jù)導(dǎo)入到mysqlB, 使數(shù)據(jù)保持一致;記錄mysqlA上binlog的文件名和Position,在mysqlB上執(zhí)行CHANGE MASTER TO ...;再記錄mysqlB上的binlog的文件名和Position,在mysqlA上執(zhí)行CHANGE MASTER.(導(dǎo)入到B的數(shù)據(jù)應(yīng)該是使用mysqlA的全量備份+binlog) 下面有兩種實(shí)現(xiàn)方法: 方法一、 1)對(duì)mysqlA數(shù)據(jù)庫(kù)鎖表操作,不讓數(shù)據(jù)再進(jìn)行寫入動(dòng)作 > flush tables with read lock; > 不要退出連接,另開一個(gè)終端執(zhí)行備份操作. 2)備份mysqlA的數(shù)據(jù)庫(kù) mysqldump --uroot -p --single-transaction --opt --events --triggers --routines --flush-logs --master-data=2 --databases db1 db2 >db.sql --flush-logs :選項(xiàng)用以生成新的二進(jìn)制日志文件(滾動(dòng)二進(jìn)制文件使其起始位置完全) --mater-data :選項(xiàng)值等于2 ,備份后的sql文件里CHANGE MASTER語(yǔ)句被注釋。 --single-transaction :InnoDB表在備份時(shí),通常啟用選項(xiàng) --single-transaction來保證備份的一致性,實(shí)際上它的工作原理是設(shè)定本次會(huì)話的隔離級(jí)別為: REPEATABLE READ,以確保本次會(huì)話(mysqldump)時(shí),不會(huì)看到其他會(huì)話提交了的數(shù)據(jù)。 3)看mysqlA數(shù)據(jù)庫(kù)的狀態(tài),記錄File和Position項(xiàng)的值后解鎖; show master status; unlock tables; 4)在mysqlB上導(dǎo)入mysqlA的數(shù)據(jù): > mysql -uroot -p 'repl' < db.sql 5)生成CHANGE MASTER 語(yǔ)句,然后在mysqlB上執(zhí)行 > STOP SLAVE; > CHANGE MASTER TO MASTER_HOST='172.18.252.221' , MASTER_USER='repl_user',MASTER_PASSWORD='repl' , MASTER_LOG_FIEL='mysql-bin.000002', MASTER_LOG_POS='120'; > START SLAVE; > SHOW SLAVE STATUS\G Slave_IO_Running和Slave_SQL_Running的狀態(tài),如果都為Yes,從庫(kù)mysqlB配置成功。 6)記錄mysqlB的binlogFile和Position項(xiàng)的值,生成CHANGE MASTER語(yǔ)句,然后在mysqlA上執(zhí)行如上操作(先stop slave;...),最后啟動(dòng)slave.
方法二、
1)備份A的數(shù)據(jù)庫(kù)(不用鎖表)
mysqldump -uroot -p --single-transaction --opt --flush-logs --events --triggers --routines --master-data=2 --databases db1 db2 > db.sql
2)使用grep -i "change master " db.sql
-- CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000002' , MASTER_LOG_POS=120;
OK,結(jié)果所示二進(jìn)制日志文件為mysql-bin.000002,位置為120
然后執(zhí)行方法一的4)、5)、6)即可
MySQL雙主master-master配置的詳細(xì)方法就先給大家講到這里,對(duì)于其它相關(guān)問題大家想要了解的可以持續(xù)關(guān)注我們的行業(yè)資訊。我們的板塊內(nèi)容每天都會(huì)捕捉一些行業(yè)新聞及專業(yè)知識(shí)分享給大家的。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。