Linux Centos7中Mysql雙主雙從服務器部署

作用:
由於架構的擴展,業務量的越來越大,I/O訪問頻率過高此時需要作多庫的存儲,提高單個及其的I/O性能。而當一個主服務器出現故障後,此時另一個服務器仍可以繼續工作

一.環境
準備4臺乾淨的mysql服務器
192.168.122.196 master1
192.168.122.197 master2
192.168.122.198 slave1
192.168.122.199 slave2
如果是克隆的虛擬機要修改每臺服務器UUID //vim /var/lib/mysql/auto.cnf
在每臺服務器中配置所有服務器的域名 //vim /etc/hosts

二:配置
1,兩臺主服務器之間各配置爲主從

M——M
master1:
vim /etc/my.cnf
validate_password=off
log-bin = my1log
server-id = 1
gtid_mode=ON //開啓gtid
enforce_gtid_consistency=1

systemctl restart mysqld  //重啓mysql服務,使配置文件生效

創建授權賬戶:
grant all on . to 'slave'@'%' identified by '123';
master2:
vim /etc/my.cnf
validate_password=off
log-bin = my2log
server-id = 2
gtid_mode=ON
enforce_gtid_consistency=1

systemctl restart mysqld  //重啓mysql服務,使配置文件生效

help change master to 查找配置文件
edit
change master to
master_host='master1',
master_user='授權用戶',
master_password='授權密碼',
master_auto_position=1;
start slave;
show slave status\G
如果顯示的
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
則說明部署成功

注意:
master2上也要創建一樣的授權用戶,在master1上進行change master to 的操作

2,兩臺從服務器分別將兩臺master配置爲主服務器(注意從服務器一定要乾淨的,純潔的服務器)
S——S
slave1:
1,首先備份master1的所有數據,mysqldump -u root -p123 -A > /all.sql
2,scp 將數據發送到slave1和slave2
3,在mysql中將數據分別導入slave1和slave2的數據庫中,source /all.sql
4,vim /etc/my.cof slave1和slave2做相同的操作
validate_password=off
log-bin = my3log
server-id = 3 //注意server-id 不能相同
gtid_mode=ON
enforce_gtid_consistency=1
relay_log_info_repository = TABLE
master_info_repository = TABLE
relay_log_recovery = on
當slave從庫宕機後,假如relay-log損壞了,導致一部分中繼日誌沒有處理,則自動放棄所有未執行的relay-log,並且重新從master上獲取日誌,這樣就保證了relay-log的完整性

help change master to
edit
CHANGE MASTER TO
MASTER_HOST='master1/ip',
MASTER_USER='slave', //主服務器用戶
MASTER_PASSWORD='big',
MASTER_AUTO_POSITION=1 FOR CHANNEL 'master1'
start slave;
show slave status;
edit
CHANGE MASTER TO
MASTER_HOST='master2/ip',
MASTER_USER='slave', //主服務器用戶
MASTER_PASSWORD='big',
MASTER_AUTO_POSITION=1 FOR CHANNEL 'master2'
start slave;
show slave status\G
同理如果顯示的
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
則說明部署成功
注意:slave1和slave2上做相同的change master to 操作。
如果不顯示成功,錯誤可能有以下幾點:
1,主從服務器的uuid相同,更改每臺服務器UUID //vim /var/lib/mysql/auto.cnf
2,主從服務器的server-id相同,更改配置文件/etc/my.cnf中server-id,使每臺服務器的server-id不同
3,主服務器與從服務器的數據不統一。
解決方法:
1,首先備份master1的所有數據,mysqldump -u root -p123 -A > /all.sql
2,scp 將數據發送到slave1和slave2
3,在mysql中將數據分別導入slave1和slave2的數據庫中,source /all.sql

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章