??? 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)聲明
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載。
THE END