automysqlbackup: versionierte Sicherung von mysql-Datenbanken

Die Sicherung von Datenbanken ist immer wieder eine Aufgabe, die man schnell vergisst und, wenn man sich dann damit befasst, für Kopfschmerzen sorgen kann.

Die Gründe:

  • Während des Betriebs des Datenbankservers ist es meist nicht möglich einen konsistenten Abzug der Datendateien zu erhalten.
  • Ein Anhalten des Datenbank-Server hat aber Auswirkungen auf das gesamte System.
  • Selbst wenn man die Dateien kopieren kann, ist es nicht 100%ig sicher, dass man nach einem Absturz die Daten in einen neuen DB-Server mit vielleicht veränderter Versionsnummer einspielen/ einkopieren kann.

Es bietet sich daher an, statt der Datenbankdateien nur die gespeicherten Daten zu sichern. Dies ist mittels eines sog. dumps (eng. “Halde”) möglich, bei dem die Daten im Klartextformat ausgegeben und optimalerweise gleich in die Befehle eingeschlossen werden, die die Daten automatisiert wieder in einen neuen Datenbankserver einspielen können.

Auch wenn MySQL bereits von Hause aus Tools mitbringt, die diese Sicherungsmethode ermöglichen und auch Hilfstools wie phpMyAdmin eine Option zum Erzeugen von DB-dumps bieten, suchte ich eine noch simplere Methode, die ggf. noch Mehrwert bietet.

automysqlbackup

Das Projekt automysqlbackup ist unter sourceforge gelistet und derzeit in der Version 2.5 aktuell. Das Projekt scheint nicht mehr weiterentwickelt zu werden, denn der letzte Release ist vom 14.02.2006. Dies ist aber nicht weiter problematisch, da es sich im Prinzip nur um einen Wrapper für das mysql-tool mysqldump handelt und damit nicht sonderlich wartungs- oder weiterentwicklungsbedürftig ist.

Die Vorteile der Nutzung von automysqlbackup sind (von der Homepage):

  • Backup aller oder ausgewählter Datenbanken
  • gesamtes Backup in eine Datei oder einzelne Dateien pro Datenbank
  • Platzsparend durch wahlweise Komprimierung mit gzip oder bzip2
  • Sicherung auch von entfernten Servern
  • Manueller Start oder cron-job-Steuerung möglich
  • Ermöglicht die Zusendung des Logs oder der DB-Sicherung an eine bestimmte Mailadresse

Nach Befolgung der Installationsanweisungen auf der Homepage erzeugt das Tool regelmäßige Backups in dem gewählten Ordner und ermöglicht durch verschiedene Ordner ein versioniertes Backup, durch das man auch Zugriff auf ältere Versionen einer Datenbank hat.

Alles in allem ein sehr sinnvolles Tool und ich möchte es nicht mehr missen.

Fragen? Probleme? –> Schreib mir!

sqlgrey: einfaches und robustes Greylisting

Spam nervt und stiehlt jedem Nutzer täglich Zeit. Um zu vermeiden, dass wir eines Tages nur noch mit dem Löschung von dubiosen Angeboten beschäftigt sind, müssen wir uns immer wieder mit Gegenmaßnahmen befassen. Eine dieser Gegenmaßnahmen ist Greylisting.

Was ist Greylisting?

Das Wort Greylisting entstand aus den Wörtern Blacklisting (in diesem Kontext: permanentes Verbot einer E-Mailadresse) und Whitelisting (permanente Erlaubnis für eine E-Mailadresse) und bezieht sich auf die Mischung dieser beiden Verfahren. Das Verfahren funktioniert vereinfacht wie folgt:

  1. Ein dem Mailserver unbekannter Absender (freund@absender.tld) möchte gern ein Mail an person1@mailserver.tld senden.
  2. Der Mailserver (mit installiertem Greylisting) aber lehnt die Übermittlung nach Erhalt der Absender und Zieladresse unter Angabe eines temporären Fehlers ab (meist mit einer Greylisting-Erklärung für das Logfile).
  3. Der Mailserver trägt die IP des Absendermailserver ( absender.tld, 123.123.123.123 ) zusammen mit dem Absender (freund@absender.tld) und der Zieladresse (person1@mailserver.tld) in seine Datenbank ein.
  4. Ein vernüftig konfigurierter Mailserver wird innerhalb der nächsten 10 bis 60 Minuten eine erneute Zustellung versuchen. So ist es auch und so versucht der Mailserver von freund@absender.tld erneut, die Mail an person1@mailserver.tld zu übergeben.
  5. Der Zielmailserver schaut nun wiederum in seine Datenbank, ob ihm diese Kombination aus Quell-IP (wahlweise auch Quell-Subnetz), Absender und Adressat bereits bekannt ist. Da dem in diesem Fall so ist, nimmt er die Mail an und bestätigt die Annahme.

Die Idee hinter dieser “Verkomplizierung” der Mailzustellung ist, dass die Spammaschinen entweder das Handling von temporären Fehlern ausgeschaltet oder dieses in Ihren Mailprogrammen/ -servern gar nicht implementiert haben, um den Durchsatz zu erhöhen.

Wie kann ich Greylisting einsetzen?

Da Greylisting wie oben erläutert noch vor der Annahme der Mail geschehen muss, kann man dieses entweder direkt im Mailserver integrieren (z.B. Plugin) oder alternativ dem Mailserver als Proxy vorschalten.
sqlgrey: einfaches und robustes Greylisting weiterlesen