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的变化

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