情景
MySQL数据库主从复制在默认情况下从库的relay logs会在SQL线程执行完毕后被自动删除。但是:在relay_log_purge = 0和MHA集群下,不会被自动删除,需要手动删除。如何安全的删除relay logs就比较关键了!

主要有两种方式:

方式一:
通过MHA中自带的工具 purge_relay_logs 工具来删除。

步骤:

  1. 创建工作目录

目的为了提高性能,这个工作目录必须跟mysql在同一个磁盘分区

mkdir -p /data/mha_tmp
  1. purge relay logs
/usr/bin/purge_relay_logs --user=USERNAME --password=PASSWORD --host=Mysql_IP --disable_relay_log_purge --workdir=/data/mha_tmp 2>&1  
  1. 加入到crontab中
0 4 * * * /usr/bin/purge_relay_logs --user=USERNAME --password=PASSWORD --host=Mysql_IP --disable_relay_log_purge --workdir=/data/mha_tmp 2>&1

说明:
–disable_relay_log_purge:自动设置 "relay_log_purge = 1"

方式二:
手动删除 relay log

  1. 设置relay_log_purge = 1
SET GLOBAL relay_log_purge = 1
  1. flush logs
    通过管理员用户登陆从数据库,然后执行下面命令:
flush logs;

可以执行多次!
注意
观察堆积的relay logs日志是否已经删除,如果删除,直接执行下面第6步“恢复relay_log_purge = 0“;如果未删除,继续从下面第3步”停止slave“往下操作!!!

  1. 停止slave
    通过管理员用户登陆从数据库,然后执行下面命令:
stop slave;
  1. 删除relay logs
    可以通过rm直接删除relay logs
    通使用下面方式安全删除:

(1) 统计所有关于relay的文件(包括 relay_log_name.index)总个数

ls -A1 |grep relay | sort -rn | wc -l

(2) 列出要删除所有有关relay的文件:

ls -A1 |grep relay | sort -rn | tail -n 100

说明: 100 为要删除的relay logs 数量

(3) 确定没有问题,删除relay logs:

ls -A1 |grep relay | sort -rn | tail -n 100 | xargs rm -rf {}

注意:
要保留最新的两个relay log
要保留relay log的index文件
relay log的index一般命名为: relay_log_name.index
例如: relay-bin.index
5. 启动slave
通过管理员用户登陆从数据库,然后执行下面命令:

start slave;

6 . 恢复relay_log_purge = 0
通过管理员用户登陆从数据库,然后执行下面命令:

SET GLOBAL relay_log_purge=0;

扩展
如果你对从数据库要求不高,可以将relay_log_purge = 1

最新文章

  1. yxcms后台验证码不显示?怎么取消yxcms后台验证码
  2. [转]Windows 下的进程间通讯及数据共享
  3. 笔记本win8,mac10.10,ubuntu,android四系统安装
  4. windows类书的学习心得(转载)
  5. OpenCV在Debug和Release两种模式下布恩那个同时运行的问题
  6. oracle to_date函数(转载)
  7. 移动端touchstar、touchmove、touchend 事件如果页面有滚动时不让触发 touchend 事件。
  8. Linux Shell脚本Ldd命令原理及使用方法
  9. JGraph
  10. js中document的用法
  11. 认识ASP.NET MVC6
  12. flexbox备忘
  13. 多线程的并发问题,lock用法
  14. KoaHub平台基于Node.js开发的Koa JWT认证插件代码信息详情
  15. weblogic 部署问题定位与解决
  16. Sun 与 Oracle 合并的未来
  17. admin-handlers.go
  18. 翻译:SET PASSWORD语句(已提交到MariaDB官方手册)
  19. python - setitem/getitem/delitem类的内置方法
  20. 超频真的不难!G3258超频4.5GHz全攻略

热门文章

  1. js中排序方法sort() 和 reverse()
  2. 通过例子进阶学习C++(六)你真的能写出约瑟夫环么
  3. border-radius属性失效了Ծ‸Ծ
  4. 2018南京现场赛D 模拟退火
  5. svn和 android adt的 eclipse插件更新地址
  6. NanoProfiler-Step1翻译
  7. 插画版Kubernetes指南
  8. Linux系统搭建私有CA证书服务器
  9. 使用LD_PRELOAD注入程序
  10. linux系统iot平台编程阶段总结