ホームページ  >  記事  >  データベース  >  MHA清理リレーログ(purge_relay_logs)

MHA清理リレーログ(purge_relay_logs)

黄舟
黄舟オリジナル
2017-02-15 10:37:362755ブラウズ

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

3. カスタマイズされたクリーニングリレーログ cronjob

--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)



4. 手動クリーニングの例

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) に注目してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。