Mysql集羣

mysql高可用集羣(mysql-mmm + 主從同步)
主14 <-----> 主13

        從11       從12

環境:
192.168.4.13與192.168.4.14互爲主從
192.168.4.11與192.168.4.12爲192.168.4.13的從服務器
一、配置主從同步

1、對14/13進行主從同步配置
14
1 添加授權用戶
mysql> grant replication slave on . to slaveuser@"%" identified by "123456";

2 啓用binlog日誌
#vim /etc/my,cnf
log-bin=master14
server_id=14
binlog_format="mixed"

3 重啓數據庫服務
#systemctl stop mysqld
#systemctl start mysqld

4 查看日誌信息
mysql> show master status

5 使用本機的數據庫管理員登陸,指定主庫信息
mysql> change master to master_host="192.168.4.13",
-> master_user="slaveuser",
-> master_password="123456",
-> master_log_file="master13.000001",
-> master_log_pos=154;
mysql> start slave
mysql> show slave status\G
++++++++++++++++++++++++++++++++++++++++++++++++++
13
1 添加授權用戶
mysql> grant replication slave on . to slaveuser@"%" identified by "123456";

2 啓用binlog日誌
#vim /etc/my,cnf
log-bin=master13
server_id=13
binlog_format="mixed"
log_slave_updates

3 重啓數據庫服務
#systemctl stop mysqld
#systemctl start mysqld

4 查看日誌信息
mysql> show master status

5 使用本機的數據庫管理員登陸,指定主庫信息
mysql> change master to master_host="192.168.4.14",
-> master_user="slaveuser",
-> master_password="123456",
-> master_log_file="master13.000001",
-> master_log_pos=154;
mysql> start slave
mysql> show slave status\G
++++++++++++++++++++++++++++++++++++++++++
將11,12配置爲13的從服務器
11
指定server_id
#vim /etc/my.cnf
server_id=11
重啓數據庫服務
#systemctl stop mysqld
#systemctl start mysqld
使用本機的數據庫管理員登陸,指定主庫信息
mysql> change master to master_host="192.168.4.13",
-> master_user="slaveuser",
-> master_password="123456",
-> master_log_file="master13.000001",
-> master_log_pos=154;
mysql> start slave
mysql> show slave status\G
++++++++++++++++++++++++++++++++++++++++++++++
12
指定server_id
#vim /etc/my.cnf
server_id=12
重啓數據庫服務
#systemctl stop mysqld
#systemctl start mysqld
使用本機的數據庫管理員登陸,指定主庫信息
mysql> change master to master_host="192.168.4.13",
-> master_user="slaveuser",
-> master_password="123456",
-> master_log_file="master13.000001",
-> master_log_pos=154;
mysql> start slave
mysql> show slave status\G
++++++++++++++++++++++++++++++++++++++++
在客戶端測試
在14主機上添加訪問數據的用戶guser,其他3臺主機上也有相同的授權用戶。
mysql> create database gamedb;
mysql> grant all on gamedb. to guser@"%" identified by "123456";
mysql> select user,host from mysql.user
在客戶端主機使用授權用戶guser連接14服務器,產生的新數據在其他3臺主機上也有
mysql -h"192.168.4.14" -uguser -p123456
select @@hostname; 查看當前訪問的服務器名
########################################################
二、配置mysql-mmm
1 mysql-mmm介紹
監控服務:運行在管理節點,用來監控數據節點
代理服務:運行在數據節點,用來提供系統給監控主機
2 在所有主機上安裝mysql-mmm軟件
unzip mysql-mmm.zip
cd mysql-mmm
tar -zxvf mysql-mmm-2.2.1.tar.gz
cd mysql-mmm-2.2.1/
make install
ls /etc/mysql-mmm/
.conf

3 修改配置文件
修改數據節點代理服務配置文件(修改11,12,13,14)
vim //etc/mysql-mmm/mmm_agent.conf
include mmm_common.conf
this db11 //自定義名字

修改管理節點監控服務的配置文件(修改15)
vim /etc/mysql-mmm/mmm_mon.conf
include mmm_common.conf

<monitor>
ip 192.168.4.15
pid_path /var/run/mmm_mond.pid
bin_path /usr/lib/mysql-mmm/
status_path /var/lib/misc/mmm_mond.status
ping_ips 192.168.4.11, 192.168.4.12, 192.168.4.13, 192.168.4.14
</monitor>

<host default>
monitor_user monitor
monitor_password 123456
</host>

debug 0

修改公共文件
在11上
vim /etc/mysql-mmm/mmm_common.conf
1 active_master_role writer
2
3
4 <host default>
5 cluster_interface eth0
6
7 pid_path /var/run/mmm_agentd.pid
8 bin_path /usr/lib/mysql-mmm/
9
10 replication_user slaveuser
11 replication_password 123456
12
13 agent_user agent
14 agent_password 123456
15 </host>
16
17 <host db14>
18 ip 192.168.4.14
19 mode master
20 peer db13
21 </host>
22
23 <host db13>
24 ip 192.168.4.13
25 mode master
26 peer db14
27 </host>
28
29 <host db12>
30 ip 192.168.4.12
31 mode slave
32 </host>
33
34 <host db11>
35 ip 192.168.4.11
36 mode slave
37 </host>
38
39 <role writer>
40 hosts db13, db14
41 ips 192.168.4.100
42 mode exclusive
43 </role>
44
45 <role reader>
46 hosts db11, db12
47 ips 192.168.4.101, 192.168.4.102
48 mode balanced
49 </role>
scp /etc/mysql-mmm/mmm_common.conf 192.168.4.15:/etc/mysql-mmm/(將公共文件拷貝到12,13,14,15)

根據配置文件的設置,在數據節點主機上添加對應授權用戶
grant replication client on . to monitor@"%" identified by "123456";
grant replication client,process,super on . to agent@"%" identified by "123456";
select user,host from mysql.user where user="agent" or user="monitor";
4 啓動服務
啓動數據節點主機上代理服務:mmm_agent
安裝服務運行依賴的軟件包 安裝獲取vip地址如那金寶 啓動服務
在11--14上

tar -zxf Algorithm-Diff-1.1902.tar.gz

cd Algorithm-Diff-1.1902/

perl Makefile.PL

make

make install

tar -zxf Proc-Daemon-0.03.tar.gz

cd Proc-Daemon-0.03/

perl Makefile.PL

make

make install

rpm -ivh --nodeps perl-Log-Log4perl-1.26-1.el6.rf.noarch.rpm

/etc/init.d/mysql-mmm-agent start

/etc/init.d/mysql-mmm-agent status

netstat -untlap | grep mmm

netstat -untlap | grep :9989

yum -y install gcc gcc-c++

gunzip Net-ARP-1.0.8.tgz

tar -xf Net-ARP-1.0.8.tar

cd Net-ARP-1.0.8/

perl Makefile.PL

make

make install

15上

tar -zxf Algorithm-Diff-1.1902.tar.gz

cd Algorithm-Diff-1.1902/

perl Makefile.PL

make

make install

tar -zxf Proc-Daemon-0.03.tar.gz

cd Proc-Daemon-0.03/

perl Makefile.PL

make

make install

rpm -ivh --nodeps perl-Log-Log4perl-1.26-1.el6.rf.noarch.rpm

啓動管理節點主機上監控服務:mmm_mond
安裝服務運行依賴的軟件包 啓動服務

/etc/init.d/mysql-mmm-monitor status

/etc/init.d/mysql-mmm-monitor start

netstat -untalp | grep :9988

ls /var/log/mysql-mmm/

vim /var/log/mysql-mmm/mmm_mond.log

5 驗證mysql-mmm的配置
查看數據庫節點上的數據庫服務是運行的

systemctl status mysqld

mysql -uroot -p123456 -e "show slave status\G"| grep -i YES

在監控服務器本機登陸管理
[root@mysql15 ~]# mmm_control show 查看狀態
(Maybe you should just omit the defined()?)
db11(192.168.4.11) slave/AWAITING_RECOVERY. Roles:
db12(192.168.4.12) slave/AWAITING_RECOVERY. Roles:
db13(192.168.4.13) master/AWAITING_RECOVERY. Roles:
db14(192.168.4.14) master/AWAITING_RECOVERY. Roles:

mmm_control set_online 主機名 設置主機爲online狀態

mmm_control set_offline 主機名 設置主機爲offline狀態

設置4臺數據庫主機狀態爲online:

mmm_control set_online db11

mmm_control set_online db12

mmm_control set_online db13

mmm_control set_online db14

mmm_control show

在數據節點本機查看是否獲取到vi地址

ip addr show | grep 192.168.4.100

客戶端連接vip訪問數據庫服務

mysql -h192.168.4.100 -uguser -p123456

mysql> select @@hostname;
可通過對11,12,13,14的 stop mysqld服務來測試虛擬IP的變化

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