MySQL 雙主復(fù)制(Master-Master Replication)是指兩個(gè)具有相同數(shù)據(jù)集合的數(shù)據(jù)庫(kù)互相同步數(shù)據(jù)的過(guò)程。雙主復(fù)制可以保持兩個(gè)節(jié)點(diǎn)數(shù)據(jù)集合的一致性,同時(shí)提供讀寫(xiě)負(fù)載均衡和高可用性。
使用 MySQL 雙主復(fù)制有以下優(yōu)點(diǎn):
- 讀寫(xiě)分離,有效減輕主庫(kù)的讀寫(xiě)壓力;
- 一致性,數(shù)據(jù)只需要在一個(gè)地方更新,就會(huì)自動(dòng)在所有節(jié)點(diǎn)上更新;
- 容錯(cuò)性,當(dāng)一個(gè)節(jié)點(diǎn)宕機(jī)時(shí),另一個(gè)節(jié)點(diǎn)可以頂替它的工作而繼續(xù)提供服務(wù);
- 擴(kuò)展性,可以通過(guò)增加節(jié)點(diǎn)來(lái)擴(kuò)展數(shù)據(jù)庫(kù)的讀寫(xiě)能力。
下面是 MySQL 雙主復(fù)制的配置步驟:
1. 確認(rèn) mysql 的版本是否支持雙主復(fù)制; 2. 在 master1 和 master2 上創(chuàng)建相同的數(shù)據(jù)庫(kù)和表; 3. 在 master1 上執(zhí)行命令:CHANGE MASTER TO ...,并將相關(guān)參數(shù)修改為正確的值; 4. 在 master2 上執(zhí)行相同的命令,但是將參數(shù)中的 master1 替換為 master2; 5. 在 master1 上執(zhí)行命令:START SLAVE; 6. 在 master2 上執(zhí)行相同的命令,但是將參數(shù)中的 master1 替換為 master2; 7. 測(cè)試雙主復(fù)制是否生效,比如在 master1 上插入一條數(shù)據(jù),看是否能在 master2 上查到。