在數(shù)據(jù)庫(kù)系統(tǒng)的高可用方案中,主備雙活架構(gòu)是一種非常常見(jiàn)的解決方案。MySQL 8.0提供了一種新的高可用方案,即InnoDB集群,它支持主備雙活架構(gòu)。接下來(lái),我們將介紹MySQL 8.0如何實(shí)現(xiàn)主備雙活。
首先,我們需要在主備兩個(gè)節(jié)點(diǎn)上安裝MySQL 8.0服務(wù)器。接下來(lái),我們需要在主節(jié)點(diǎn)上創(chuàng)建一個(gè)Replication組,并將備節(jié)點(diǎn)加入該組。我們可以使用以下命令在主節(jié)點(diǎn)上創(chuàng)建一個(gè)Replication組:
CREATE CLUSTER mycluster ADD INSTANCE 'node1' USER 'user' IDENTIFIED BY 'password';
這個(gè)命令創(chuàng)建了一個(gè)名為“mycluster”的Replication組,并將“node1”加入該組。該組使用名為“user”的用戶(hù)名和“password”密碼進(jìn)行身份驗(yàn)證。
接下來(lái),我們需要在備節(jié)點(diǎn)上啟動(dòng)MySQL實(shí)例,并將其加入到Replication組中。我們可以使用以下命令啟動(dòng)MySQL實(shí)例,并將其加入到“mycluster”組中:
mysqld --defaults-file=/etc/my1.cnf --user=mysql --socket=/var/lib/mysql/mysql.sock \ --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin \ --log-error=/var/log/mysql/error.log --pid-file=/var/run/mysqld/mysqld.pid \ --port=3307 --enforce-gtid-consistency=ON --group-replication-start-on-boot=off \ --group-replication-local-address=127.0.0.1:3307 \ --group-replication-group-name=mycluster --server-id=2 \ --group-replication-ssl-mode=REQUIRED \ --group-replication-recovery-ssl-key=/etc/mysql/ssl/client-key.pem \ --group-replication-recovery-ssl-cert=/etc/mysql/ssl/client-cert.pem \ --group-replication-recovery-ssl-ca=/etc/mysql/ssl/ca-cert.pem
這個(gè)命令啟動(dòng)了一個(gè)MySQL實(shí)例,并將其加入到“mycluster”組中。備節(jié)點(diǎn)的“group-replication-local-address”為“127.0.0.1:3307”,它使用端口“3307”與主節(jié)點(diǎn)通信。備節(jié)點(diǎn)的“server-id”為“2”,這是一個(gè)唯一的ID,它與主節(jié)點(diǎn)的ID不同。備節(jié)點(diǎn)還啟用了SSL加密通信。
當(dāng)我們?cè)谥鞴?jié)點(diǎn)上插入一個(gè)新記錄時(shí),我們會(huì)發(fā)現(xiàn)該記錄會(huì)在主備兩個(gè)節(jié)點(diǎn)上都存在。如果我們?cè)趥涔?jié)點(diǎn)上插入一個(gè)新記錄,也會(huì)在主節(jié)點(diǎn)上出現(xiàn)。這就是主備雙活的效果。
總之,MySQL 8.0的InnoDB集群支持主備雙活架構(gòu),它是一種非常可靠的高可用方案。通過(guò)告訴您如何創(chuàng)建一個(gè)Replication組并將節(jié)點(diǎn)加入該組,以及如何使用命令啟動(dòng)備節(jié)點(diǎn)并將其加入到該組中,我們希望您能夠成功實(shí)現(xiàn)MySQL 8.0的主備雙活。