Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Vergleich von Percona XtraBackup mit MySQL Enterprise Backup:Teil Eins

Wenn es um Backups und Datenarchivierung geht, stehen IT-Abteilungen oft unter Druck, strenge Service Level Agreements einzuhalten und robustere Backup-Verfahren bereitzustellen, die die Ausfallzeiten minimieren, den Backup-Prozess beschleunigen und die Kosten senken weniger und erfüllen strenge Sicherheitsanforderungen.

Es gibt mehrere Möglichkeiten, ein Backup einer MySQL-Datenbank zu erstellen, aber wir können diese Methoden in zwei Gruppen unterteilen - logische und physische.

Logische Sicherungen enthalten Daten, die mithilfe von SQL-Befehlen exportiert und in einer Datei gespeichert werden. Es kann sich z. B. um eine Reihe von SQL-Befehlen handeln, die bei Ausführung zur Wiederherstellung des Inhalts der Datenbank führen. Mit einigen Änderungen an der Syntax der Ausgabedatei können Sie Ihre Sicherung in CSV-Dateien speichern.

Logische Sicherungen sind einfach durchzuführen, nur mit einem Einzeiler können Sie eine Sicherung aller Ihrer Tabellen, Datenbanken oder aller MySQL-Datenbanken in der Instanz erstellen.

Leider haben logische Backups viele Einschränkungen. Sie sind normalerweise langsamer als eine physische. Dies ist auf den Overhead zurückzuführen, der erforderlich ist, um SQL-Befehle auszuführen, um die Daten abzurufen, und dann einen weiteren Satz von SQL-Befehlen auszuführen, um die Daten zurück in die Datenbank zu bekommen. Sie sind weniger flexibel, es sei denn, Sie schreiben komplexe Backup-Workloads, die mehrere Schritte umfassen würden. Es funktioniert nicht gut in einer parallelen Umgebung, bietet weniger Sicherheit und so weiter und so weiter.

Physische Backups in der MySQL-Welt

MySQL enthält kein physisches Online-Backup für die Community Edition. Sie können entweder für eine Enterprise-Version bezahlen oder ein Drittanbieter-Tool verwenden. Das beliebteste Drittanbieter-Tool auf dem Markt ist XtraBackup. Diese werden wir in diesem Blogartikel vergleichen.

Percona XtraBackup ist die sehr beliebte Open-Source-MySQL/MariaDB-Hot-Backup-Software, die nicht blockierende Backups für InnoDB- und XtraDB-Datenbanken durchführt. Es fällt in die Kategorie der physischen Backups, die aus exakten Kopien des MySQL-Datenverzeichnisses und darunter befindlicher Dateien besteht.

Einer der größten Vorteile von XtraBackup ist, dass Ihre Datenbank während des Sicherungsvorgangs nicht gesperrt wird. Bei großen Datenbanken (100+ GB) bietet es im Vergleich zu mysqldump eine viel bessere Wiederherstellungszeit. Der Wiederherstellungsprozess umfasst das Vorbereiten von MySQL-Daten aus den Sicherungsdateien, bevor sie durch das aktuelle Datenverzeichnis auf dem Zielknoten ersetzt oder ausgetauscht werden.

Percona XtraBackup funktioniert, indem es sich beim Start die Protokollfolgenummer (LSN) merkt und die Datendateien dann an einen anderen Ort kopiert. Das Kopieren von Daten nimmt Zeit in Anspruch, und wenn sich die Dateien ändern, spiegeln sie den Zustand der Datenbank zu unterschiedlichen Zeitpunkten wider. Gleichzeitig führt XtraBackup einen Hintergrundprozess aus, der die Transaktionsprotokolldateien (auch Redo-Log-Dateien genannt) im Auge behält und Änderungen daraus kopiert. Dies muss kontinuierlich erfolgen, da die Transaktionsprotokolle im Round-Robin-Verfahren geschrieben werden und nach einer Weile wiederverwendet werden können. XtraBackup benötigt die Transaktionsprotokollaufzeichnungen für jede Änderung an den Datendateien seit Beginn der Ausführung.

Mit diesem Tool können Sie:

  • Erstellen Sie heiße InnoDB-Backups, die schnell und zuverlässig abgeschlossen werden, ohne Ihre Datenbank anzuhalten oder den Server zu belasten
  • Inkrementelle Backups erstellen
  • Tabellen online zwischen MySQL-Servern verschieben
  • Erstellen Sie einfach neue MySQL-Replikations-Slaves
  • Komprimierte MySQL-Backups auf einen anderen Server streamen
  • Sparen Sie Speicherplatz und Netzwerkbandbreite

MySQL Enterprise Backup liefert heiße, nicht blockierende Online-Backups auf mehreren Plattformen. Es ist kein kostenloses Backup-Tool, aber es bietet viele Funktionen. Die Standardlizenzkosten betragen 5.000 $ (können jedoch je nach Ihrer Vereinbarung mit Oracle variieren). 

Von Sicherungsprozessen unterstützte Plattformen

MySQL Enterprise

Es kann unter Linux, Windows, Mac und Solaris ausgeführt werden. Was wesentlich ist, es kann auch Backups auf Band speichern, was normalerweise eine billigere Lösung ist als das Schreiben auf Festplatten. Das direkte Schreiben auf Band unterstützt die Integration mit Veritas Netbackup, Tivoli Storage Manager und EMC NetWorker.

XtraBackup

XtraBackup läuft möglicherweise nur auf der Linux-Plattform, was zweifellos ein Showstopper für diejenigen sein kann, die auf Windows laufen. Eine Lösung hier könnte eine Replikation auf den Slave sein, der unter Linux läuft, und von dort aus Backups ausführen.

Hauptunterschiede des Sicherungsvorgangs

MySQL Enterprise Backup bietet eine Vielzahl von Sicherungs- und Wiederherstellungsfunktionen und -funktionen, einschließlich erheblicher Leistungsverbesserungen gegenüber bestehenden MySQL-Sicherungsmethoden.

Oracle zeigt, dass Enterprise Backup sogar 49x schneller ist als mysqldump. Das kann natürlich je nach Ihren Daten variieren, aber es gibt viele Funktionen, um den Backup-Prozess zu verbessern. Ein paralleles Backup ist definitiv einer der größten Unterschiede zwischen mysqldump und Enterprise Backup. Es erhöht die Leistung durch Multithreading-Verarbeitung. Das interessanteste Feature ist jedoch die Komprimierung.

--komprimieren

Erstellt ein Backup im komprimierten Format. Für ein regelmäßiges Backup werden von allen von MySQL unterstützten Speicher-Engines nur Datendateien im InnoDB-Format komprimiert, die nach der Komprimierung die Erweiterung .ibz tragen. In ähnlicher Weise werden bei einem Einzelimage-Backup nur Datendateien im InnoDB-Format innerhalb des Backup-Images komprimiert. Die Binärprotokoll- und Relay-Protokolldateien werden komprimiert und mit der Erweiterung .bz gespeichert, wenn sie in eine komprimierte Sicherung eingeschlossen werden.

-compress-method=zlib,lz4(default), lzma, punch-hole

--compress-level=LEVEL(0-9)

--include-tables=REGEXP

MySQL-Backups mit ClusterControl

ClusterControl ermöglicht es Ihnen, Backups mit XtraBackup und mysqldump zu planen. Es kann die Backup-Dateien lokal auf dem Knoten speichern, auf dem das Backup erstellt wird, oder die Backup-Dateien können auch zum Controller-Knoten gestreamt und on-the-fly komprimiert werden. Es unterstützt kein MySQL Enterprise Backup, aber mit den erweiterten Funktionen von mysqldump und XtraBackup kann es eine gute Option sein.

ClusterControl ist das allumfassende Open-Source-Datenbankverwaltungssystem für Benutzer mit gemischten Umgebungen. Es bietet erweiterte Sicherungsverwaltungsfunktionen für MySQL oder MariaDB.

Mit ClusterControl können Sie:

  • Sicherungsrichtlinien erstellen
  • Sicherungsstatus, Ausführungen und Server ohne Sicherungen überwachen
  • Führen Sie Backups und Wiederherstellungen durch (einschließlich einer Point-in-Time-Wiederherstellung)
  • Aufbewahrung von Backups steuern
  • Speichern Sie Backups im Cloud-Speicher
  • Sicherungen validieren (vollständiger Test mit der Wiederherstellung auf dem Standalone-Server)
  • Backups verschlüsseln
  • Backups komprimieren
  • Und viele andere

Fazit

Als DBA müssen Sie sicherstellen, dass die Datenbanken regelmäßig gesichert werden und geeignete Wiederherstellungsverfahren vorhanden und getestet sind. Sowohl Percona XtraBackup als auch MySQL Enterprise Backup bieten DBAs eine leistungsstarke Online-Backup-Lösung mit Datenkomprimierungs- und Verschlüsselungstechnologie, um sicherzustellen, dass Ihre Daten im Falle von Ausfallzeiten oder einem Ausfall geschützt sind

Backups sollten entsprechend der Wiederherstellungsanforderung geplant werden. Der Datenverlust kann vollständig oder teilweise sein. Beispielsweise müssen Sie nicht immer die gesamten Daten wiederherstellen. In einigen Fällen möchten Sie möglicherweise nur eine teilweise Wiederherstellung durchführen, indem Sie fehlende Tabellen oder Zeilen wiederherstellen. Mit dem Reach-Feature-Set wären beide Lösungen ein großartiger Ersatz für mysqldump, das immer noch eine sehr beliebte Methode zum Erstellen von Backups ist. mysqldump ist auch wichtig für die teilweise Wiederherstellung, bei der beschädigte Datenbanken korrigiert werden können, indem der Inhalt des Dumps analysiert wird. Binäre Protokolle ermöglichen uns eine Point-in-Time-Wiederherstellung, z. B. bis kurz vor dem Ausfall des MySQL-Servers.

Das ist alles für Teil eins, im nächsten Teil werden wir die Leistung beider Lösungen testen und einige reale Sicherungs- und Wiederherstellungsszenarien durchführen.