MySQL データベースのマスター/スレーブ レプリケーションでは、デフォルトでは、SQL スレッドの実行後にスレーブ データベースのリレー ログが自動的に削除されます。ただし、MHA シナリオでは、一部の遅延スレーブ データベースの回復は、他のスレーブのリレーログは無効になっているため、自動削除機能を無効にし、定期的にクリーニングします。大きすぎるリレーログをクリーンアップする場合は、レプリケーションの遅延などによるリソースのオーバーヘッドに注意する必要があります。 MHA は purge_relay_logs スクリプトと cronjob との連携を通じてこのタスクを完了できます。具体的な説明は次のとおりです。 1. purge_relay_logs の機能2. 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/*)
###パラメータの説明
# purge_relay_logs --help Usage: purge_relay_logs --user=root --password=rootpass --host=127.0.0.1
--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)
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
上記はMHAクリーニングリレーログ(purge_relay_logs)の内容です) さらに関連するコンテンツについては、PHP 中国語 Web サイト (www.php.cn) に注目してください。