您好,登錄后才能下訂單哦!
本文主要給大家介紹什么是mysql-mmm 高可用群集及怎么樣搭建,希望可以給大家補充和更新些知識,如有其它問題需要了解的可以持續在億速云行業資訊里面關注我的更新文章的。
主機名 | 系統 | 主要軟件 | IP | 虛擬IP |
---|---|---|---|---|
mysql-master1 | CentOS 7.3 x86_64 | mmm | 192.168.217.129 | 192.168.217.100 |
mysql-master2 | CentOS 7.3 x86_64 | mmm | 192.168.217.130 | 192.168.217.100 |
mysql-slave1 | CentOS 7.3 x86_64 | mmm | 192.168.217.131 | 192.168.217.200 |
mysql-slave2 | CentOS 7.3 x86_64 | mmm | 192.168.217.132 | 192.168.217.210 |
monitor | CentOS 7.3 x86_64 | mmm | 192.168.217.133 |
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo #配置ALI云源,然后安裝epel-release源。
yum clean all && yum makecache #刪除緩存 下載到本地電腦緩存
yum -y install epel-release #安裝epel 源 用于安裝 mmm
yum -y install mysql-mmm* #安裝 mmm 服務 在所有服務器上安裝
vim /etc/my.cnf
[mysqld]
user = mysql #管理用戶
basedir = /usr/local/mysql #工作目錄
datadir = /usr/local/mysql/data #數據庫文件
port = 3306
character_set_server=utf8
pid-file = /usr/local/mysql/mysqld.pid #pid 進程文件
socket = /usr/local/mysql/mysql.sock #鏈接數據庫
server-id = 1
binlog-ignore-db=mysql,information_schema #不需要同步的數據庫名稱
log_slave_updates=true #從服務器更新二進制日志
sync_binlog=1 #同步二進制日志
auto_increment_increment=2 #字段一次遞增值
auto_increment_offset=1 #自增字段的起始值
log-error=/usr/local/mysql/data/mysql_error.log #錯誤日志
general_log=ON #開啟通用日志
general_log_file=/usr/local/mysql/data/mysql_general.log
log_bin=mysql-bin #二進制日志
slow_query_log=ON #開啟慢查詢日志
slow_query_log_file=mysql_slow_query.log
long_query_time=1
scp /etc/my.cnf root@192.168.217.130:/etc/ #對方有權限的用戶和IP地址 輸入yes 、密碼進行復制
systemctl restart mysqld.service #修改所有數據庫的 server-id 重啟服務
mysql -u root -p #進入數據庫
在m1上為m2授予從的權限,在m2上也要為m1授予從的權限
mysql>grant replication slave on *.* to 'replication'@'192.168.217.%' identified by '123456';
mysql>show master status; #記錄日志文件名稱和 位置值,在兩臺主上查看。
mysql>change master to master_host='192.168.217.129',
master_user='replication',master_password='123456',
master_log_file='mysql-bin.000001',master_log_pos=1104;
注意 指向的IP地址、日志名稱、偏移量 ,不要搞錯
mysql>start slave; #開啟同步
mysql>show slave status\G; #查看鏈接狀態
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
以上兩臺主都執行,從不需要 。可以在主服務器上創建數據庫 、在另一臺主服務器查看、刪除,做測試。
指向隨便一臺主服務器即可
mysql>change master to master_host='192.168.217.129',
master_user='replication',master_password='123456',
master_log_file='mysql-bin.000001',master_log_pos=1104;
注意 指向的IP地址、日志名稱、偏移量 ,不要搞錯
start slave;
show slave status\G;
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
測試主從、主主、同步 情況
cd /etc/mysql-mmm/
vim mmm_common.conf
……
<host default>
cluster_interface ens32 #網卡名稱
……
replication_user replication #主從授權用戶
replication_password 123456
agent_user mmm_agent #代理用戶
agent_password 123456
....
<host db1>
ip 192.168.217.129 #主服務器
mode master
peer db2
</host>
....
<host db2>
ip 192.168.217.130 #主服務器
mode master
peer db1
</host>
....
<host db3>
ip 192.168.217.131 #從服務器
mode slave
</host>
....
<host db4>
ip 192.168.217.132 #從服務器
mode slave
</host>
....
<role writer>
hosts db1, db2
ips 192.168.217.100 #主服務器虛擬IP地址
mode exclusive
</role>
....
<role reader>
hosts db3, db4
ips 192.168.217.200, 192.168.217.210 #從服務器虛擬IP地址
mode balanced
</role>
scp mmm_common.conf root@192.168.217.130:/etc/mysql-mmm/
scp mmm_common.conf root@192.168.217.131:/etc/mysql-mmm/
scp mmm_common.conf root@192.168.217.132:/etc/mysql-mmm/
scp mmm_common.conf root@192.168.217.133:/etc/mysql-mmm/
cd /etc/mysql-mmm/
vim mmm_mon.conf
……
ping_ips 192.168.217.129,192.168.217.130,192.168217.131,192.168.217.132 #數據庫服務器地址
auto_set_online 10 #設置自動在線時間
……
<host default>
monitor_user mmm_monitor #監控用戶
monitor_password 123456
</host>
在所有數據庫上為mmm_agent授權
mysql>grant super, replication client, process on *.* to 'mmm_agent'@'192.168.217.%' identified by '123456';
在所有數據庫上為mmm_moniter授權
mysql>grant replication client on *.* to 'mmm_monitor'@'192.168.217.%' identified by '123456';
flush privileges; #刷新
修改所有數據庫的mmm_agent.conf文件
vim /etc/mysql-mmm/mmm_agent.conf
this db1 #/根據規mmm_common.conf 配置中<host db1> 對應的IP地址 修改
在所有數據庫服務器上啟動代理服務
systemctl start mysql-mmm-agent.service #開啟代理服務
systemctl enable mysql-mmm-agent.service #開機自啟動
systemctl start mysql-mmm-monitor.service #啟動監控服務
mmm_control show #查看各節點的情況
db1(192.168.217.129) master/ONLINE. Roles: writer(192.168.217.100)
db2(192.168.217.130) master/ONLINE. Roles:
db3(192.168.217.131) slave/ONLINE. Roles: reader(192.168.217.200)
db4(192.168.217.132) slave/ONLINE. Roles: reader(192.168.217.210)
mmm_control checks all #各種OK 說明運轉正常
mmm_control move_role writer db2 #手動指定活躍服務器 注意:不會搶占
mmm_control show #查看各節點的情況
db1(192.168.217.129) master/ONLINE. Roles:
db2(192.168.217.130) master/ONLINE. Roles: writer(192.168.217.100)
db3(192.168.217.131) slave/ONLINE. Roles: reader(192.168.217.200)
db4(192.168.217.132) slave/ONLINE. Roles: reader(192.168.217.210)
測試 :關閉 mysql-master1 服務 ,查看 mysql-master2 會不會搶占 。注意:等待一段時間查看 。
關閉 mysql-slave1 服務 ,mysql-slave1 虛擬IP會自動漂移到mysql-slave2上 ,mysql-slave2上會有兩個地址 。
看了以上關于什么是mysql-mmm 高可用群集及怎么樣搭建,希望能給大家在實際運用中帶來一定的幫助。本文由于篇幅有限,難免會有不足和需要補充的地方,如有需要更加專業的解答,可在官網聯系我們的24小時售前售后,隨時幫您解答問題的。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。