Home > Database > Mysql Tutorial > body text

MHA 清理relay log(purge_relay_logs)

黄舟
Release: 2017-02-15 10:37:36
Original
2805 people have browsed it



## MySQL database master-slave replication. By default, the relay logs of the slave database will be automatically deleted after the SQL thread is executed. However, in the MHA scenario, for some lags The recovery from the slave library depends on the relay logs of other slave libraries, so the automatic deletion function is disabled and cleaned regularly. When cleaning up too many relay logs that are too large, you need to pay attention to the resource overhead caused by replication delays, etc. MHA can complete this task through the purge_relay_logs script and cooperation with cronjob. The specific description is as follows.


1. Function of purge_relay_logs

a、为relay日志创建硬链接(最小化批量删除大文件导致的性能问题)
  b、SET GLOBAL relay_log_purge=1; FLUSH LOGS; SET GLOBAL relay_log_purge=0;
  c、删除relay log(rm –f  /path/to/archive_dir/*)
Copy after login



##2. Usage and related parameters of purge_relay_logs
Usage

# purge_relay_logs --help
Usage:
    purge_relay_logs --user=root --password=rootpass --host=127.0.0.1
Copy after login


##Parameter description

--user mysql              用户名,缺省为root
--password mysql          密码
--port                    端口号
--host                    主机名,缺省为127.0.0.1
--workdir                 指定创建relay log的硬链接的位置,默认是/var/tmp,成功执行脚本后,硬链接的中继日志文件被删除
                          由于系统不同分区创建硬链接文件会失败,故需要执行硬链接具体位置,建议指定为relay log相同的分区
--disable_relay_log_purge 默认情况下,参数relay_log_purge=1,脚本不做任何处理,自动退出
                          设定该参数,脚本会将relay_log_purge设置为0,当清理relay log之后,最后将参数设置为OFF(0)
Copy after login

                                                                

pureg_relay_logs脚本在不阻塞SQL线程的情况下自动清理relay log。对于不断产生的relay log直接将该脚本部署到crontab以实现按天或按小时定期清理。
$ crontab -l  
# purge relay logs at 5am  
0 5 * * * /usr/bin/purge_relay_logs --user=root --password=PASSWORD --disable_relay_log_purge >> /var/log/masterha/purge_relay_logs.log 2>&1         
   更正,移除多余字符app @20150515
Copy after login


##4 , Manual cleaning example

# purge_relay_logs --user=mha --password=mha --disable_relay_log_purge 
2015-04-23 14:33:20: purge_relay_logs script started.
 relay_log_purge is enabled. Disabling..
 Found relay_log.info: /data/mysqldata/relay-log.info
 Opening /data/mysqldata/vdbsrv3-relay-bin.000001 ..
 Opening /data/mysqldata/vdbsrv3-relay-bin.000002 ..
 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.
2015-04-23 14:33:23: All relay log purging operations succeeded.
Copy after login


The above is the content of MHA cleaning relay log (purge_relay_logs), For more related content, please pay attention to the PHP Chinese website (m.sbmmt.com)!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template