9

Welche Erfahrungen haben Sie mit Amazons EBS Snapshot-Funktionen für MySql Hot-Backups gemacht.Verwenden von Amazon EBS für MySQL Hot-Backup

Ich habe eine Datenbank, die einen Stapelverarbeitungsauftrag in ec2 ausführt. Ich sichern mit EBS-Snapshot. Bisher sehen die Backups konsistent aus. Aber ich fürchte, sie "hören auf, beständig zu sein, sobald ich aufhöre zu überprüfen" (Unschärferelation).

Welche Erfahrungen haben Sie mit der Sicherung relationaler Datenbanken (und insbesondere MySQL) mit ebs snapshot gemacht?

Antwort

11

Ich habe EBS-Snapshots verwendet, um mein MySQL-Datenverzeichnis für mehr als ein Jahr zu sichern. Es hat perfekt funktioniert. Ich hatte nie ein Problem mit diesen Snapshots als Grundlage für eine Ersetzung (oder geklont) MySQL-Setup.

Die beste Vorgehensweise besteht darin, das EBS-Volume mit einem Dateisystem zu formatieren, das das Einfrieren ermöglicht, z. B. XFS. Auf diese Weise können Sie einen konsistenten Snapshot erstellen: leeren Sie den Speicher von MySQL auf die Festplatte, frieren Sie das Dateisystem ein, machen Sie einen Snapshot und löschen Sie dann den Speicher. Der gesamte Vorgang dauert weniger als 10 Sekunden (kann aber länger dauern, wenn die Datenbank stark ausgelastet ist).

Siehe this article von Eric Hammond für ein Skript, das das alles für Sie erledigt.

1

Das Hauptproblem, das ich habe, mit EBS-Snapshots für Datenbanksicherungen in der Ebene, auf der sie arbeiten. Die Snapshots arbeiten auf einer sehr niedrigen Ebene auf der Festplatte und nehmen ein Image auf, unabhängig vom Status der Anwendungen, die darauf schreiben. Theoretisch könnte Ihr Backup-Image mitten in einer Transaktion oder etwas sein, was es etwas schwierig machen würde, diese Zeit wieder herzustellen.

3

MySQL hat den Ruf, sich durch inkonsistente Festplattenzustände schlecht zu erholen. XFS unterbricht im Wesentlichen die E/A-Verbindung zum Dateisystem, während der Snapshot stattfindet. Normalerweise führt eine Datenbank eine flush() durch, sobald ein vollständiger Transaktionsprotokolleintrag erstellt wurde, der im Wesentlichen einen Prüfpunkt für das Dateisystem angibt. Im Falle eines Journaling-Dateisystems ist dies wichtig, und das Dateisystem wird nach dem Mounten größtenteils auf den letzten gültigen Journaleintrag zurückgesetzt, dies ist nicht 100%, aber es ist besser als nichts. Die meisten Datenbanksysteme verwenden die Transaktionsprotokolldatei, um bei der Wiederherstellung einen 'Rollforward' durchzuführen, wenn sich die Datenbankdateien hinter den Transaktionsprotokollen befinden und das Datenbankmodul nur so weit vorwärts läuft, wie es aufgrund des Inhalts der Transaktionsprotokolle möglich ist. Es wird nicht versucht, eine teilweise geschriebene Transaktion auszuführen. Das Problem hierbei ist, dass MySQL nicht das beste ist, um das zu erreichen, also kann es absolut ein Problem sein. Ich habe keine solide Lösung dafür gefunden. Ich würde mir vorstellen, einen Spiegel zu laufen, MySQL anzuhalten, während Sie den Snapshot machen und dann die Synchronisation fortsetzen könnte, aber ich weiß nicht, ob der MySQL-Spiegel mit einem Spiegel zurechtkommt, der teilweise nicht verfügbar ist eine Weile und dann in der Lage sein, ohne eine vollständige Re-Spiegel aufholen, in diesem Fall, Sie könnten auch nur eine mysqldump aller Datenbanken als hätte etwa den gleichen Effekt auf der Datenbank als eine Vollspiegelung ausführen würde. Das ist die andere while-running-Option, die ich mir vorstellen kann - eine mysqldump aller Datenbanken auf eine Backup-Partition laufen zu lassen und diesen Snapshot zu erstellen. Sie erhalten keine laufenden Backups, so dass Sie es nicht oft machen können. Und wenn Sie rund um die Uhr arbeiten, belastet mysqldump die Datenbank, während sie läuft, so stark, dass sie nicht optimal ist.

Andere Datenbank-Engine sind viel besser darin. PostgreSQL ist sehr gut in der Lage, sich von einem inkonsistenten Plattenzustand zu erholen, bis zu dem Punkt, dass es überhaupt nicht empfohlen wird, es auf einem gelagerten Dateisystem auszuführen. Sie haben auch die Möglichkeit, Transaktionsprotokolle zu archivieren, sodass Sie von der letzten vollständigen Sicherung bis zu jedem Zeitpunkt, an dem die archivierten Protokolle vorhanden sind, einen Rollback durchführen können. Viel einfacher, konsistente Backups damit zu machen. Oracle ermöglicht Ihnen, mehrere Sätze von Transaktionsprotokollen zu verwenden, die zwischen physischen Festplatten/EBS-Partitionen wechseln. Dadurch erhalten Sie häufig Fenster, um einen konsistenten Snapshot zu erstellen, und können der Datenbank-Engine angeben, dass Sie dies tun möchten zurück, bis du es sagst.

Entlang der Journaling-Linie hat LVM die Möglichkeit, das gesamte Dateisystem in weniger als einer Sekunde festzuhalten. Ich weiß nicht, ob die EBS-Snapshot-Funktion dies ausnutzt, obwohl Sie dies manuell tun könnten. LVM ist etwas findiger als XFS, aber ich hatte in der Vergangenheit Probleme mit XFS, bei dem eine große Anzahl von Dateien in einem einzigen Verzeichnis erstellt wurde, wo ext3 in Ordnung war. LVM hat auch eine Reihe anderer Vorteile und ist auf jeden Fall einen Blick wert.

-1

Sie könnten Amazon RDS verwenden, um Ihre Datenbank (en) zu verwalten - es funktioniert genau wie ein Standard-MySQL-Server und dann könnten Sie Amazon beschuldigen, wenn es abstürzt (wird es nicht). Außerdem sichern sie regelmäßig den Server für Sie. Ich habe meine Wordpress- und vBulletin-Installation verschoben und es dauerte vielleicht eine Stunde.

Nur meine 2 ¢!

+0

-1 . Beantwortet die Frage nicht. – talonx

1

Ich würde vorschlagen, LVM als abstrakte Schicht für das DB-Dateisystem zu verwenden. as Dies wird die Vorteile von lokalen Snapshots, die wie ein Hot-Backup ist, erhalten. LVM Snapshots hat den Vorteil, ähnliche Ergebnisse wie EBS zu erzielen, mit dem Vorteil, dass es auf jedem Rechner (nicht nur auf Amazon) verwendet werden kann.

Ein weiterer Pluspunkt ist, dass LVM HotResize verwenden kann, besonders schön, wenn man minimale Ausfallzeit benötigen und benötigt Speicherplatz im laufenden Betrieb erweitern (nicht empfohlen, ist aber möglich, in bestimmten Szenarien)

Verwandte Themen