IT KnowHow für jedermann/frau

mysqldump im Speicher zippen

Wenn Du einen mysqldump im Speicher zippen möchtest, zum Beispiel weil er unkomprimiert zu groß ist, dann kannst Du Dich des folgenden einfachen Tricks bedienen:

Mein Problemszenario ist folgendes:

Um zu vermeiden, dass der Plattenfüllstand so schwankt und dass die täglichen Alarme kommen, habe ich den mysqldump-Befehl einfach durch ´ne Pipe gejagt. Dabei wird der Dump sofort gezippt. Das erzeugt zwar temporär hohe CPU-Auslastung durch das Komprimieren, führt aber (noch) nicht zu neuen Zabbix-Alarmen :-).

Hier zur allgemeinen Belustigung ein Screenshot des Zabbix-Graphen, der die Auslastung der Platte wiederspiegelt:

Zabbix mysqldump disk
Die alte mysqldump Syntax war:
/usr/bin/mysqldump --all-databases -u root --password="RootPWHierRein" > /pfad/zum/Speicherort/all_databases.sql

Die neue mysqldump Syntax sieht wie folgt aus:
/usr/bin/mysqldump --all-databases -u root --password="RootPWHierRein"  | gzip  > /pfad/zum/Speicherort/all_databases.sql.gz

Es gäbe auch die Möglichkeit, eine andere Kompression einzusetzen, wie zum Beispiel bzip2 . Allerdings habe ich mich von Quellen im Internet davon überzeugen lassen, dass bzip2 5-6 mal so lange zum Komprimieren benötigt, dafür aber in meinem Fall nur eine Verkleinerung der Dateigröße um 20% erzielt. Der Befehl wird aber automatisiert per cron aufgerufen und soll schnellstmöglich durchlaufen und möglichst wenig CPU verbrauchen, um bestimmt keine Zabbix Trigger auszulösen!

Die Änderung in logrotate:

Die Änderung muss ich natürlich auch in logrotate vorhalten, jetzt um den gzip-Teil erleichtert:

mein logrotate mysqldump

Ob die logrotate Änderung funktioniert, teilt mir der folgende Befehl mit (f für force):

logrotate -f /etc/logrotate.d/mysqldump

dabei werden die mit dem geänderten Befehl zum Dump der mysql erzeugten Files mit dem Muster *.sql.gz zwangsweise rotiert.

Mit dieser simplen Vorgehensweise konnte das teilweise ernste (Platte könnte volllaufen!) und teilweise lästige Problem elegant und effektiv aus der Welt geschafft werden.

 

Note: There is a rating embedded within this post, please visit this post to rate it.

 

Die mobile Version verlassen