MHA 清理relay log(purge_relay_logs)

??? mysql數(shù)據(jù)庫(kù)主從復(fù)制在缺省情況下從庫(kù)的relay logs會(huì)在sql線程執(zhí)行完畢后被自動(dòng)刪除,但是對(duì)于mha場(chǎng)景下,對(duì)于某些滯后從庫(kù)的恢復(fù)依賴于其他從庫(kù)的relay log,因此采取禁用自動(dòng)刪除功能以及定期清理的辦法。對(duì)于清理過(guò)多過(guò)大的relay log需要注意引起的復(fù)制延遲資源開(kāi)銷等。mha可通過(guò)purge_relay_logs腳本及配合cronjob來(lái)完成此項(xiàng)任務(wù),具體描述如下。


1、purge_relay_logs的功能
??

a、為relay日志創(chuàng)建硬鏈接(最小化批量刪除大文件導(dǎo)致的性能問(wèn)題)  ??b、SET?GLOBAL?relay_log_purge=1;?FLUSH?LOGS;?SET?GLOBAL?relay_log_purge=0;  ??c、刪除relay?log(rm?–f??/path/to/archive_dir/*)


2、purge_relay_logs的用法及相關(guān)參數(shù)
###用法

#?purge_relay_logs?--help  Usage:  ????purge_relay_logs?--user=root?--password=rootpass?--host=127.0.0.1

###參數(shù)描述

--user?mysql??????????????用戶名,缺省為root  --password?mysql??????????密碼  --port????????????????????端口號(hào)  --host????????????????????主機(jī)名,缺省為127.0.0.1  --workdir?????????????????指定創(chuàng)建relay?log的硬鏈接的位置,默認(rèn)是/var/tmp,成功執(zhí)行腳本后,硬鏈接的中繼日志文件被刪除  ??????????????????????????由于系統(tǒng)不同分區(qū)創(chuàng)建硬鏈接文件會(huì)失敗,故需要執(zhí)行硬鏈接具體位置,建議指定為relay?log相同的分區(qū)  --disable_relay_log_purge?默認(rèn)情況下,參數(shù)relay_log_purge=1,腳本不做任何處理,自動(dòng)退出  ??????????????????????????設(shè)定該參數(shù),腳本會(huì)將relay_log_purge設(shè)置為0,當(dāng)清理relay?log之后,最后將參數(shù)設(shè)置為OFF(0)

?????????????

3、定制清理relay log cronjob

pureg_relay_logs腳本在不阻塞SQL線程的情況下自動(dòng)清理relay?log。對(duì)于不斷產(chǎn)生的relay?log直接將該腳本部署到crontab以實(shí)現(xiàn)按天或按小時(shí)定期清理。  $?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


4、手動(dòng)清理示例

#?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.

以上就是MHA 清理relay log(purge_relay_logs)的內(nèi)容,更多相關(guān)內(nèi)容請(qǐng)關(guān)注PHP中文網(wǎng)(www.php.cn)!

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點(diǎn)贊5 分享