Heim > Datenbank > MySQL-Tutorial > MHA-Relay-Protokoll (purge_relay_logs)

MHA-Relay-Protokoll (purge_relay_logs)

黄舟
Freigeben: 2017-02-15 10:37:36
Original
2841 Leute haben es durchsucht



MySQL-Datenbank-Master-Slave-Replikation Standardmäßig werden die Relay-Protokolle der Slave-Datenbank automatisch gelöscht, nachdem der SQL-Thread ausgeführt wurde Einige Verzögerungen Die Wiederherstellung aus der Slave-Bibliothek hängt von den Relay-Protokollen anderer Slave-Bibliotheken ab, daher ist die automatische Löschfunktion deaktiviert und wird regelmäßig bereinigt. Wenn Sie zu viele Relay-Protokolle bereinigen, die zu groß sind, müssen Sie auf den Ressourcenaufwand achten, der durch Replikationsverzögerungen usw. verursacht wird. MHA kann diese Aufgabe über das Skript purge_relay_logs und die Zusammenarbeit mit cronjob erledigen. Die spezifische Beschreibung lautet wie folgt.


1. Funktion von 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/*)
Nach dem Login kopieren



2. Verwendung und zugehörige Parameter von purge_relay_logs
###Verwendung

# purge_relay_logs --help
Usage:
    purge_relay_logs --user=root --password=rootpass --host=127.0.0.1
Nach dem Login kopieren


# ##Parameterbeschreibung

--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)
Nach dem Login kopieren

    

3. Benutzerdefinierte Bereinigung Relay-Log-Cronjob

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
Nach dem Login kopieren



4. Beispiel für eine manuelle Reinigung

# 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.
Nach dem Login kopieren


Das Obige MHA bereinigt den Inhalt des Relay-Protokolls (purge_relay_logs). Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (m.sbmmt.com).

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage