【MySQL】【高可用】purge_relay_logs工具的使用

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
云数据库 RDS MySQL Serverless,价值2615元额度,1个月
简介:

【MySQL】【高可用】purge_relay_logs工具的使用

背景:

​ 在MHA高可用架构中切换的步骤中,主要靠对各个实例的relay log文件新旧程度进行比较,选取最新的relay log进行群组内的数据追加,以此尽可能地来保证数据的安全性,减少数据丢失的数量。这就要求relay log不能被系统自动清除,要保留一段时间,防止主库挂掉,进行数据补全。

​ 但这就会产生一个问题,在业务持续繁忙时,从库可能会积累很多relay log,若不及时清除早晚会酿出祸患。

简介:

工具: purge_relay_logs
作用: 清除relay log,尽可能多的清除relay log
安装: 包含在mha的node模块之中,不需单独安装

参数:

​ --user/password/host/port 指定用户名/密码/主机/端口,这里有个需要注意的地方,虽然提供了主机的参数,但是只允许127.0.0.1或者localhost两种取值,即只能从本地登录。

​ --workdir 指定硬链接创建的位置,purge_relay_logs使用硬链接的方式删除relay log,需要注意的是,为了保证硬链接的成功,建议硬链接的文件夹和relay log的目录在同一个分区。[5.7版本似乎没有用到]

​ --disable_relay_log_purge 禁用MySQL的自动清除relay log设置,默认情况下,MySQL自动清除relay log,反映到参数上即是:relay_log_purge=1。若MySQL自动清除relay log,工具在启动后就会自动结束,不清除任何文件。当指定了此参数后,工具会禁用MySQL的自动清除relay log设置。

使用:

​ purge_relay_logs --user=sniffer --password=123456 --port=3110 --host=127.0.0.1 --disable_relay_log_purge --workdir=/data/mha/

​ 输出如下:

2018-02-02 16:40:01: purge_relay_logs script started.
 Opening /data/mysql/3110/data/relay-bin.000012 ..
 Opening /data/mysql/3110/data/relay-bin.000013 ..
 Executing SET GLOBAL relay_log_purge=1; FLUSH LOGS; sleeping a few seconds so that SQL thread can delete older relay log files (if it keeps up); SET GLOBAL relay_log_purge=0; .. ok.
2018-02-02 16:40:04: All relay log purging operations succeeded.
#MySQL中
$./vc-mysql-sniffer --binding "[::]:3110"|grep -v "#"
USE ``;
SHOW SLAVE STATUS;
SELECT @@global.relay_log_purge As Value;
SELECT VERSION() AS Value;
SELECT @@global.relay_log_info_repository AS Value;
SELECT Relay_log_name FROM mysql.slave_relay_log_info;
SELECT @@global.datadir AS Value;
SELECT GET_LOCK('MHA_Master_High_Availability_Failover', '200') AS Value;
SELECT VERSION() AS Value;
SET GLOBAL relay_log_purge=1;
FLUSH NO_WRITE_TO_BINLOG /*!50501 RELAY */ LOGS;
SET GLOBAL relay_log_purge=0;
SELECT RELEASE_LOCK('MHA_Master_High_Availability_Failover') As Value;

​ 解析:1.先检查是否开启了自动清理relay log

​ 2.从MySQL中获得relay log 的文件名,位置,正在使用的编号,创建硬链接。

​ 3.开启自动清理,刷新relay log,生成新的一组relay log后,关闭自动清理,这一步在最大程度上清理了relay log。

自动化清理:

​ 通过shell脚本并添加到crontab中定时清理。

cat >/etc/auto_clean_relay_log.sh<<EOF
#!/bin/sh
USER=proxysql
PASSWORD=123456
PORT=3110
log_dir='/data/mha'
work_dir='/data/mha'
purge='/usr/local/bin/purge_relay_logs'
if [ ! -d $log_dir ]
then
   mkdir $log_dir -p
fi
$purge --user=$user --password=$passwd --disable_relay_log_purge --port=$port  >> $log_dir/purge_relay_logs.log 2>&1

​ crontab -e 增加如下一行:

0 0 */3 * * sh /etc/auto_clean_relay_log.sh

附:

参考文章:国平师兄:http://blog.51cto.com/arthur376/1812640


 本文转自 angry_frog 51CTO博客,原文链接:http://blog.51cto.com/l0vesql/2068336


相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
2月前
|
关系型数据库 MySQL
elasticsearch对比mysql以及使用工具同步mysql数据全量增量
elasticsearch对比mysql以及使用工具同步mysql数据全量增量
26 0
|
3月前
|
关系型数据库 MySQL 数据库
rds迁移数据迁移工具选择
rds迁移数据迁移工具选择
78 3
|
3月前
|
存储 关系型数据库 MySQL
Mysql高可用|索引|事务 | 调优
Mysql高可用|索引|事务 | 调优
|
2月前
|
关系型数据库 MySQL 数据库
rds安装数据库客户端工具
安装阿里云RDS的数据库客户端涉及在本地安装对应类型(如MySQL、PostgreSQL)的客户端工具。对于MySQL,可选择MySQL Command-Line Client或图形化工具如Navicat,安装后输入RDS实例的连接参数进行连接。对于PostgreSQL,可以使用`psql`命令行工具或图形化客户端如PgAdmin。首先从阿里云控制台获取连接信息,然后按照官方文档安装客户端,最后配置客户端连接以确保遵循安全指引。
113 1
|
4天前
|
运维 负载均衡 关系型数据库
MySQL高可用解决方案演进:从主从复制到InnoDB Cluster架构
MySQL高可用解决方案演进:从主从复制到InnoDB Cluster架构
|
4天前
|
Kubernetes 关系型数据库 MySQL
MySQL在Kubernetes上的高可用实现
【5月更文挑战第1天】
|
6天前
|
存储 安全 关系型数据库
MySQL中使用percona-xtrabackup工具 三种备份及恢复 (超详细教程)
MySQL中使用percona-xtrabackup工具 三种备份及恢复 (超详细教程)
|
11天前
|
SQL 关系型数据库 MySQL
【MySQL-3】图形化界面工具DataGrip安装&配置&使用
【MySQL-3】图形化界面工具DataGrip安装&配置&使用
|
15天前
|
缓存 关系型数据库 MySQL
【专栏】提升MySQL性能和高可用性的策略,包括索引优化、查询优化和事务管理
【4月更文挑战第27天】本文探讨了提升MySQL性能和高可用性的策略,包括索引优化、查询优化和事务管理。通过合理使用B-Tree和哈希索引,避免过度索引,以及优化查询语句和利用查询缓存,可以改善性能。事务管理中,应减小事务大小并及时提交,以保持系统效率。主从或双主复制可增强高可用性。综合运用这些方法,并根据实际需求调整,是优化MySQL的关键。
|
19天前
|
监控 关系型数据库 MySQL
MySQL高可用集群之MySQL-MMM
MySQL高可用集群之MySQL-MMM