一、集群定义:
使用多台服务提供相同的服务
二、高可用集群定义:
主备模式,被客户端访问的称作主,当主宕机时,备用
服务器自动接收客户端访问。
集群类型:LB(负载均衡集群) HA(高可用集群) HPC(高计算集群)
三、配置mysql数据库服务高可用集群(MHA + 主从同步)
1、 MHA集群架构图
2、 配置MHA集群
安装软件包:
2.1 在所有主机上安装perl软件包 (1~6)
perl-Config-Tiny-2.14-7.el7.noarch.rpm
perl-Email-Date-Format-1.002-15.el7.noarch.rpm
perl-Log-Dispatch-2.41-1.el7.1.noarch.rpm
perl-Mail-Sender-0.8.23-1.el7.noarch.rpm
perl-Mail-Sendmail-0.79-21.el7.art.noarch.rpm
perl-MIME-Lite-3.030-1.el7.noarch.rpm
perl-MIME-Types-1.38-2.el7.noarch.rpm
perl-Parallel-ForkManager-1.18-2.el7.noarch.rpm
2.2 在所有主机上安装mha_node软件包 (1~6)
mha4mysql-node-0.56-0.el6.noarch.rpm
2.3 只在管理主机上安装mha_manager软件包(6)
[root@host6 mha-soft-student]# tar -zxf mha4mysql-manager-0.56.tar.gz
[root@host6 mha-soft-student]# cd mha4mysql-manager-0.56
[root@host6 mha4mysql-manager-0.56]# ls
AUTHORS COPYING inc Makefile.PL META.yml rpm t
bin debian lib MANIFEST README samples tests
[root@host6 mha4mysql-manager-0.56]#yum -y install perl-ExtUtils-* perl-CPAN-*
[root@host6 mha4mysql-manager-0.56]# perl Makefile.PL
[root@host6 mha4mysql-manager-0.56]#make
[root@host6 mha4mysql-manager-0.56]#make install
2.4 检查配置环境
A、配置 ssh 密钥对认证登陆,每台服务器之间互相可以以以 root 用户 ssh 秘
钥对认证登录。
B、安装 manager 软件包 后产生的命令
masterha_check_ssh 检查 MHA 的 SSH 配置状况
masterha_check_repl 检查 MySQL 复制状况
masterha_manger 启动 MHA
masterha_check_status 检测 MHA 运行状态
masterha_master_monitor 检测 master 是否宕机
C、配置 master 数据库服务器
C1、master1 (192.168.4.1)数据库服务器配置文件
]vim /etc/my.cnf
[mysqld]
plugin-load=
“rpl_semi_sync_master=semisync_master.so;rpl_semi_sync_slave=semisyn
c_slave.so”
rpl-semi-sync-master-enabled = 1
rpl-semi-sync-slave-enabled = 1
server_id=1
log-bin=master1
binlog-format=”mixed”
:wq
]# systemctl
restart mysqld
C2、添加主从同步授权用户
mysql> set global relay_log_purge=off; // 不自动删除本机的中继日志文件
mysql> grant replication slave on . to repluser@”%” identified by
“123456”;
D、master2(192.168.4.2) 、 master3(192.168.4.3)
vim /etc/my.cnf
[mysqld]
plugin-load =
“rpl_semi_sync_master=semisync_master.so;rpl_semi_sync_slave=
semisync_slave.so
rpl-semi-sync-master-enabled = 1
rpl-semi-sync-slave-enabled = 1
server_id=2
log-bin=master2
binlog-format=”mixed”
:wq
备用 1 master2 、master3 数据库服务器配置文件
mysql> set global relay_log_purge=off ; // 不自动删除本机的中继日志文件重点内容
mysql> change master to
-> master_host=”192.168.4.1”,
-> master_user=”repluser”,
-> master_password=”1234546”,
-> master_log_file=”master1.000001”,
-> master_log_pos=441;
Query OK, 0 rows affected, 2 warnings (0.04 sec)
mysql> start slave;
Query OK, 0 rows affected (0.01 sec)
-
**E、从库 slave4 、slave5 、slave6的 数据库服务器配置文件** slave4 (192.168.4.4) vim /etc/my.cnf [mysqld] server_id=4
-
wq
mysql> change master to
-> master_host=”192.168.4.1”,
-> master_user=”repluser”,
-> master_password=”123456”,
-> master_log_file=”master1.000001”,
-> master_log_pos=441;
Query OK, 0 rows affected, 2 warnings (0.04 sec)
mysql> start slave;
Query OK, 0 rows affected (0.01 sec)
2.5 配置管理主机
管理节点主机配置文件(192.168.4.6)
创建工作目录 和主配置文件 (6)
]#mkdir /etc/mha_manager/
]# vim /etc/mha_manager/app1.cnf
[server default]
manager_workdir=/var/log/masterha/app1
manager_log=/var/log/masterha/app1/manager.log
————-自动failover 时候的切换脚本
master_ip_failover_script=/usr/local/bin/master_ip_failover
ssh_user=root ——–远程登入用户
ssh_port=22
repl_user=repluser ———主从同步用户名
repl_password=123456 ———–主从同步密码
user=root ————-连接数据库服务器用户名
password=123456—————-连接数据库服务器密码
[server1]
hostname=192.168.4.1
port=3306
[server2]
hostname=192.168.4.2
port=3306
candidate_master=1
[server3]
hostname=192.168.4.3
port=3306
candidate_master=1
[server4]
hostname=192.168.4.4
port=3306
no_master=1
[server5]
hostname=192.168.4.5
port=3306
no_master=1
[server6]
hostname=192.168.4.6
port=3306
no_master=1
2.6测试 ssh 密钥对认证登陆
在管理节点上 通过 master_check_ssh 做 ssh 检查
[root@host6 mha-soft-student]# masterha_check_ssh –conf=/etc/mha_manager/app1.cnf
Thu Sep 6 20:59:44 2018 - [info] All SSH connection tests passed successfully.
(所有状态显示为ok才成功。)
2.7 创建故障切换脚本(6)
]# cp mha4mysql-manager-0.56/samples/scripts/master_ip_failover /usr/local/bin/
修改脚本 master_ip_failover 中 vip
https://blog.csdn.net/weixin_42972553/article/details/82498509
2.8 验证配置
验证ssh 免密码登录 数据节点主机
]# masterha_check_ssh –conf=/etc/mha_manager/app1.cnf
验证 数据节点的主从同步配置
]# masterha_check_repl –conf=/etc/mha_manager/app1.cnf
四、测试高可用集群配置
1 、在主库上手动部署vip 地址 192.168.4.100
]# /sbin/ifconfig eth0:1 192.168.4.100/24
]#ip a (查看vip是否添加成功)
2 、修改故障切换脚本 指定vip地址的部署信息
]# vim /usr/local/bin/master_ip_failover
my vip = ‘192.168.4.100/24’; # Virtual IP
my
vip = ‘192.168.4.100/24’; # Virtual IP my
key = “1”;
my
sshstartvip="/sbin/ifconfigeth0:
s
s
h
s
t
a
r
t
v
i
p
="
/
s
b
i
n
/
i
f
c
o
n
f
i
g
e
t
h
0
:
key
vip”;my
v
i
p
”
;
m
y
ssh_stop_vip = "/sbin/ifconfig eth0:$key down”;
:wq
3 、启动管理服务,并查看服务状态
开启一个终端启动管理服务:
]# masterha_manager –conf=/etc/mha/app1.cnf –remove_dead_master_conf –ignore_last_failover
另启一个终端查看服务状态:
[root@host6 ~]# masterha_check_status –conf=/etc/mha_manager/app1.cnf
app1 (pid:16944) is running(0:PING_OK), master:192.168.4.1
4、测试故障转移
在主库1 上执行 (192.168.4.1)
]# systemctl stop msyqld
找一台服务器登入测试
]# mysql -h192.168.4.1 -uadmin -p123456
mysql> select @@localhost
(在宕机之后的之后重新选举新的主库)