标签:hostname 人工 status 创建 etc 关系 日志 主从复制 配置
MySQL高可用MMM:MySQL主主复制管理器是一套灵活的脚本程序,基于perl实现,用来对mysqk replication进行监控和故障迁移,并能管理mysql master-master复制的配置(同一时间只有一个节点是可写的)
MHA:对主节点进行监控,可实现自动故障转移至其他从节点,通过提升某一节点为新的主节点,基于主从复制实现,还需要客户端配合时间,目前MHA主要支持一主多从的架构,要搭建MHA,要求一个复制集群汇总最少有三台数据库服务器,一主二从,即一太充当master,一台充当备用master,另外一台充当从库,由于机器成本的考虑,阿里巴巴对其进行了改造,目前TMHA已支持一主一从
Galera Cluster:wsrep(MySQL extended with the Write Set Replication),通过wsrep协议在全局实现复制,在任何一节点可读写,不需要主从复制,实现多主写
- Manager工具包:
masterha_check_ssh 检查MHA的ssh配置情况
masterha_check_repl 检查MySQL复制状况
masterha_manager 启动MHA
masterha_check_status 检测当前MHA运行状态
masterha_master_monitor 检测master是否宕机
masterha_master_switch 故障转移(自动或手动)
masterha_conf_host 添加或删除配置的server信息
- Node工具包:
save_biary_logs 保存和复制master的二进制日志
apply_diff_relay_logs 去除不必要的rollback时间(MHA已不再使用)
purge_relay_logs 清除中继日志(不会阻塞SQL线程)
注:
- 这些工具通常是由MHA Manager的脚本触发,无需人为操作
- 为了尽可能的减少主库硬件损坏宕机造成数据丢失,因此在此配置的MHA的同时建议配置成MySQL5.5的半同步复制
- 自定义扩展:
secondary_check_script 通过多条网络路由检测master的可用性
mater_ip_ailover_script 更新application使用的master ip
shutdown_script 强制关闭master节点
report_script 发送报告
init_conf_load_script 加载初始化配置参数
master_ip_online_change_script 更新master节点ip地址
global配置:为各个application提供默认配置
application配置:为每个主从复制集群提供默认配置
注:
1.管理节点与主从节点要实现ssh基于key验证
2.所有节点的时间要同步
在所有节点实现相互之间ssh key验证
vim /etc/mastermha/app1.cnf
[server default] #MAH节点配置
user=mhauser #管理主从节点的账号
password=admin123
manager_workdir=/data/mastermha/app1/
manager_log=/data/mastermha/app1/manager.log
remote_workdir=/data/mastermha/app1/
ssh_user=root #通过ssh协议连接的用户
repl_user=repluser #主从同步的用户
repl_password=admin123
ping_interval=1 #检测master节点正常与否的频率
[server1]
hostname=172.22.45.131 #master节点
candidate_master=1
[server2]
hostname=172.22.45.132 #master节点故障后,默认将此从节点提升为master
candidate_master=1
[server3]
hostname=172.22.45.133
主节点配置:
[mysqld]
log-bin
server_id=1
skip_name_resolve=131
mysql>show master logs
mysql>grant replication slave on *.* to repluser@‘172.22.45.131.%‘ identified by ‘admin123‘;
mysql>grant all on *.* to mhauser@‘172.22.45.131.%‘ identified by ‘admin123‘;
从节点1:
vim /etc/my.cnf
[mysqld]
server_id=132
log-bin
read_only
relay_log_purge=0
skip_name_resolve=1
mysql>CHANGE MASTER TO MASTER_HOST=‘172.22.45.131‘,MASTER_USER=‘repluser‘, MASTER_PASSWORD=‘admin123‘,MASTER_LOG_FILE=‘mariadb-bin.000001‘, MASTER_LOG_POS=245;
从节点2:
vim /etc/my.cnf
[mysqld]
server_id=133
log-bin
read_only
relay_log_purge=0
skip_name_resolve=1
mysql>CHANGE MASTER TO MASTER_HOST=‘172.22.45.131‘,MASTER_USER=‘repluser‘, MASTER_PASSWORD=‘admin123‘,MASTER_LOG_FILE=‘mariadb-bin.000001‘, MASTER_LOG_POS=245;
masterha_check_ssh --conf=/etc/mastermha/app1.cnf
# 验证ssh基于key验证是否正确
masterha_check_repl --conf=/etc/mastermha/app1.cnf
# 验证主从服务器同步是否正确
masterha_manager --conf=/etc/mastermha/app1.cnf
测试:
杀掉mysql master主进程后看到MHA管理端退出并报告:
MySQL Master failover 172.22.45.131(172.22.45.131:3306) to 172.22.45.132(172.22.45.132:3306)
select @@read_only;
+-------------+
| @@read_only |
+-------------+
| 0 |
+-------------+
继承了Galera插件的MySQL集群,是一种新型的,数据不共享的,高度冗余的高可用方案,目前目前Galera Cluster有两个版本,分别是Percona Xtradb Cluster及MariaDB Cluster,Galera本身是具有多主特性的,即采用multi-master的集群架构,是一个既稳健,又在数据一致性、完整性及高性能方面有出色表现的高可用解决方案
如:三个节点组成了一个集群,与普通的主从架构不同,它们都可以作为主节点,三个节点是对等的,称为multi-master架构,当有客户端要写入或者读取数据时,连接哪个实例都是一样的,读到的数据是相同的,写入某一个节点之后,集群自己会将新数据同步到其它节点上面,这种架构不共享任何数据,是一种高冗余架构
特点:
注意:都至少需要三个节点,不能安装mariadb-server
vim /etc/yum.repos.d/ganlera.repo
[galera]
baseurl=https://mirrors.tuna.tsinghua.edu.cn/mariadb/mariadb-5.5.64/yum/centos7-amd64/
gpgcheck=0
yum install MariaDB-Galera-server
更改配置文件:
vim /etc/my.cnf.d/server.cnf
[galera]
wsrep_provider = /usr/lib64/galera/libgalera_smm.so #模块文件路径
wsrep_cluster_address="gcomm://172.22.45.131,172.22.45.132,172.22.45.133" #集群节点
binlog_format=row #二进制日志记录格式
default_storage_engine=InnoDB #存储引擎
innodb_autoinc_lock_mode=2
bind-address=0.0.0.0
#下面配置可选项
wsrep_cluster_name = ‘mycluster‘#集群名默认my_wsrep_cluster
wsrep_node_name = ‘node1‘ #每个节点的名字
wsrep_node_address =‘172.22.45.134‘
首次启动时,需要初始化集群,在其中一个节点上执行命令
- service mysql start --wsrep-new-cluster:开启一个新的集群节点
- 而后正常启动其它节点
service mysql start- 查看集群中相关系统变量和状态变量
SHOW VARIABLES LIKE ‘wsrep%‘;
SHOW STATUS LIKE ‘wsrep%‘;
SHOW STATUS LIKE ‘wsrep_cluster_size‘; 查看集群节点个数
MariaDB基于MHA和Galera Cluster实现高可用
标签:hostname 人工 status 创建 etc 关系 日志 主从复制 配置
原文地址:https://blog.51cto.com/13408885/2392514