社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  DATABASE

dba+开源工具:MySQL 8.0 MGR高可用VIP切换脚本

DBAplus社群 • 6 年前 • 996 次点击  


工具研发者介绍

贺春旸,凡普金科DBA团队负责人,《MySQL管理之道:性能调优、高可用与监控》第一、二版作者,曾任职于中国移动飞信、安卓机锋网。致力于MariaDB、MongoDB等开源技术的研究,主要负责数据库性能调优、监控和架构设计。

工具下载:

https://pan.baidu.com/s/1N29cLOoiLKzWsWlrAi1msA


MGR(组复制)官方推荐用MySQL router中间件去做MGR高可用故障转移,但其多过了一层网络,性能会下降,并且需要额外维护一套中间件,运维成本过高,于是写了一个类似MHA的master_ip_failover脚本,实现VIP切换。


实现功能


1、脚本会自动设置当前Primary和备选Primary参数group_replication_member_weight值为100(权重100,默认为50的Secondary不进行vip切换)。


2、脚本会自动设置当前Primary和备选Primary参数group_replication_consistency值为BEFORE_ON_PRIMARY_FAILOVER(意思为当Primary挂了的时候,备选Primary只有把事务全部执行完毕,才提供客户端读写操作)。


3、最好生产关闭限流模式set global group_replication_flow_control_mode = 'DISABLED',以防止高并发期间自动触发限流,造成主库不可写,引起生产事故。


脚本运行


环境准备:


  • shell> yum install -y php-process php php-mysql


  • 开通监控管理机和MGR SSH互信(可用MHA的masterha_check_ssh脚本做检测)


  • MGR(组复制)高可用VIP切换脚本:https://github.com/hcymysql/mgr_failover_vip


运行条件:


  • MySQL 8.0版本


  • single-primary mode(单主模式)


  • Native Password Authentication(5.5/5.6/5.7传统用户认证模式)


例:

mysql> CREATE USER 'hechunyang'@'%' IDENTIFIED WITH mysql_native_password BY '123456';

mysql> GRANT ALL ON . TO 'hechunyang'@'%' WITH GRANT OPTION;


Usage:


Options:


-I interval time seconds  设置守护进程下间隔监测时间


--daemon 1  开启后台守护进程,0关闭后台守护进程


--conf  指定配置文件


--help  帮助


Example :


前台运行


shell> php mgr_master_ip_failover.php --conf=mgr_configure1.php


后台运行


shell> nohup /usr/bin/php mgr_master_ip_failover.php --conf=mgr_configure1.php -I 5 --daemon 1 > /dev/null 2>&1 &


关闭后台运行


shell> php mgr_master_ip_failover.php --conf=mgr_configure1.php --daemon 0


mgr_configure1.php为配置文件,你可以配置多个监控配置文件,监控多套MGR环境。


下载方式


此脚本现通过dbaplus社群免费为大家提供下载使用。若使用过程中有任何问题或建议,可随时与我们联系,欢迎大家试用。


登录云盘链接即可下载:

https://pan.baidu.com/s/1N29cLOoiLKzWsWlrAi1msA


更多开源工具&脚本


详情及下载:http://dbaplus.cn/list-142-1.html


Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/36973