Von Dmitri Joukovski und Pavel Pragin

Die MySQL-Datenbank hat sich aufgrund ihrer gleichbleibend schnellen Leistung, hohen Zuverlässigkeit und Benutzerfreundlichkeit zur weltweit beliebtesten Open Source-Datenbank entwickelt. Möglicherweise verwenden Sie die MySQL-Datenbank für Ihre Online-Foren und Ihr Wiki beim Managed Hosting-Anbieter, oder Sie verwenden sie in einem Remote-Büro, um Fehler mit Bugzilla zu verfolgen, oder Sie denken nur darüber nach, eine neue Web 2.0-Anwendung zu entwickeln, die MySQL verwendet . Wenn Sie Informationen schätzen, die in Ihrer MySQL-Datenbank gespeichert sind, müssen Sie in jedem Fall erfolgreiche, sichere und konsistente Sicherungen von MySQL mit minimalen Auswirkungen auf die Datenbankanwendung sicherstellen. Stellen Sie sicher, dass Ihre Sicherungslösung die Netzwerk-, Server- und Speicherressourcen am effizientesten nutzt.

Wenn Sie nach einer Lösung suchen, die Ihr Leben vereinfacht, indem sie eine benutzerfreundliche, aber flexible und robuste Sicherung und Wiederherstellung für MySQL bietet, ist Zmanda Recovery Manager (ZRM) möglicherweise die richtige Wahl für Sie. Details zu ZRM-Funktionen finden Sie hier.

Bei jeder Sicherung einer Datenbank sind die wichtigsten Überlegungen die Konsistenz der Sicherung und die Auswirkungen auf Benutzer und Anwendungen. Eine Sicherung des Remote-MySQL hat jedoch zusätzliche Herausforderungen in Bezug auf:

  • Netzwerknutzung
  • Sicherheit und
  • Flexibilität der Wiederherstellbarkeit von MySQL-Daten auf einem anderen Host.

Der letzte Punkt kann wichtig sein, wenn Sie nicht die vollständige Kontrolle über Ihre MySQL-Umgebung haben und die Möglichkeit haben möchten, Ihre Daten bei einem anderen verwalteten Hosting-Anbieter mit einer anderen Version des MySQL-Servers oder einem anderen Betriebssystem wiederherzustellen.

Inkrementelle Sicherungen reduzieren das Sicherungsfenster und die Netzwerknutzung erheblich, da nur die Änderungen seit der letzten vollständigen oder der letzten inkrementellen Sicherung über das Kabel übertragen werden. Mit ZRM können Sie Ihre Daten problemlos aus inkrementellen Sicherungen wiederherstellen, selbst wenn Sie mehrere inkrementelle Sicherungsimages verwenden müssen, um Ihre Daten auf einen bestimmten Zeitpunkt zurückzusetzen. Für die inkrementellen Sicherungen müssen MySQL-Binärprotokolle aktiviert sein. Gemäß der MySQL-Dokumentation führt die Aktivierung von Binärprotokollen jedoch dazu Leistungseinbußen von weniger als 1%.

Logische Sicherungen bieten mehr Flexibilität für die Wiederherstellung, da die Sicherungsdatei eine Textdatei ist, die alle MySQL-Anweisungen enthält, um sowohl das Datenbankschema als auch den Inhalt neu zu erstellen. Die logische Sicherung funktioniert für alle Speicher-Engines mit Ausnahme der NDB-Engine, die für das MySQL-Clustering verwendet wird. Der größte Vorteil der logischen Sicherung ist die Flexibilität für eine Datenbankwiederherstellung. Sie können die logische Sicherung von MySQL in einer anderen Architektur und sogar in einer anderen Datenbank wiederherstellen. Die Transportierbarkeit logischer ZRM-Backup-Images macht ZRM zu einem praktischen Tool für die Migration. Sie können beispielsweise Ihre MySQL-Daten verschieben:

  • Von MySQL unter Solaris zu MySQL unter Linux
  • Von einer Speicher-Engine zur nächsten
  • Von einem 32-Bit-Server zu einem 64-Bit-Server
  • Von einem verwalteten Hosting-Anbieter zu Ihrem Rechenzentrum oder einem anderen Anbieter mit unterschiedlicher MySQL-Konfiguration

Natürlich ist für eine solche flexible Wiederherstellung ein Preis zu zahlen. Das Wiederherstellen von Daten aus den logischen Sicherungen kann lange dauern, da Sie alle MySQL-Anweisungen lesen und wiedergeben müssen. Ein weiterer Nachteil ist, dass es schwierig sein kann, die Größe Ihrer logischen Sicherung vorherzusagen. Abhängig vom Datentyp und Ihrem Datenbankschema kann die Größe der logischen Sicherung größer sein als die Datenbank selbst. Eine Abhilfe ist, dass logische Sicherung im Grunde genommen eine Textdatei ist und Sie normalerweise eine anständige Komprimierung erhalten können.

Raw Backup bietet eine konsistente Kopie einer Datenbank, wobei Ihr Backup eine Binärdatei ist. Die Vorteile von Raw-Backups gegenüber logischen Backups sind:

  • Backups und insbesondere Wiederherstellungen sind viel schneller. Beispielsweise ist es nicht ungewöhnlich, dass für dieselbe Datenbank mit einer Größe von 4 bis 5 GB die Rohsicherung fünfmal schneller als die logische Sicherung und die Wiederherstellung des Rohsicherungsabbilds 20 Mal schneller als die Wiederherstellung der logischen Sicherung ist Bild.
  • Sie kennen immer die genaue Größe Ihres Backups, da es sich nur um eine Kopie einer Datenbank handelt.
  • Es bietet eine bessere Skalierbarkeit, die wichtig sein kann, wenn Ihre MySQL-Datenbank ziemlich groß ist, z. B. 10-20 GB oder mehr.

Raw-Backups können NUR auf derselben Version des MySQL-Servers unter demselben Betriebssystem wie die Originaldaten wiederhergestellt werden. Dies bedeutet, dass Ihre Chancen, unformatierte Backup-Images von MySQL bei einem anderen verwalteten Hosting-Anbieter wiederherzustellen, nicht sehr hoch sind. Dies sollten Sie bei der Auswahl von rohen oder logischen Backups berücksichtigen.

Sowohl rohe als auch logische Sicherungen bieten eine warme Sicherung, sodass Sie den MySQL-Server nicht für die Sicherung herunterfahren müssen, aber alle Tabellen während der Sicherung gesperrt sind und Benutzer ihre Daten nicht eingeben können. Aus diesem Grund sollten Sie die Verwendung des ZRM-Planungs-Plug-Ins in Betracht ziehen, mit dem Sicherungen basierend auf den von Ihnen definierten Schwellenwerten verzögert werden können. Sie können die Sicherung beispielsweise um eine Stunde verschieben, wenn mehr als 50 Benutzer auf die Datenbank zugreifen.

Eine der wichtigen Überlegungen für die Remote-Sicherung von MySQL ist die Entscheidung, welche Art von Verbindung zwischen ZRM und Remote-MySQL-Server hergestellt werden soll. ZRM bietet ein Plug-In für Socket-basierte Verbindungen und ein weiteres Plug-In für SSH-basierte Verbindungen. Die flexible Architektur von ZRM ermöglicht es Benutzern, ihre eigenen Plug-Ins zu schreiben.

Wie der Name schon sagt, richtet das Socket-Copy-Plug-In einen Socket ein, der die Kommunikation zwischen ZRM und MySQL über ein IP-basiertes Netzwerk ermöglicht. Für das Socket-Copy-Plug-In muss der xinetd-Dienst auf dem MySQL-Server ausgeführt und der Standardport 25300 geöffnet sein. Bei Bedarf kann ein Sicherungsadministrator den Port ändern. Das Socket-Copy-Plug-In ist nicht sicher und sollte nur verwendet werden, wenn die Sicherheit keine Rolle spielt oder wenn die Sicherheit auf andere Weise hergestellt wird, z. B. wenn Sie eine VPN-Verbindung zwischen ZRM und Ihrem Remote-MySQL-Server haben.

Das SSH-Kopier-Plug-In bietet einen sicheren Kanal zwischen ZRM und dem Remote-MySQL-Server. Es verwendet die Kryptografie mit öffentlichem Schlüssel, um den Remote-MySQL-Server und den Sicherungsbenutzer, auf dem ZRM ausgeführt wird, zu authentifizieren. Für das SSH-Plug-In muss der Standard-TCP-Port 22 geöffnet sein und der SSH-Dämon ausgeführt werden. Das SSH-Kopier-Plug-In eignet sich am besten, wenn die Sicherheit von Sicherungsdaten wichtig ist. Da für die SSH-Verbindung zusätzliche CPU-Zyklen für die Verschlüsselung erforderlich sind, kann die Sicherungsleistung im Vergleich zur Sicherung mit Socket-Verbindung beeinträchtigt werden.

In der folgenden Tabelle sind die Überlegungen zur Auswahl des Socket- oder SSH-Kopier-Plug-Ins für die Remote-Sicherung von MySQL zusammengefasst:

Fernverbindung
Plug-In
Port verwendet Sicherheit Relative Leistung Installationskommentare
SSH-Kopie 22 (fest) Bietet eine starke Authentifizierung und Verschlüsselung zum Verschieben von Sicherungsdaten über das Kabel Geringere Leistung und abhängig vom MySQL-Serverspeicher, den CPU-Ressourcen und der verfügbaren Bandbreite. Oft haben Sie eine SSH-Verbindung zu einem Remote-MySQL-Server, der bereits aus anderen Gründen als Sicherung und Wiederherstellung hergestellt wurde. Andernfalls müssen Sie eine SSH-Verbindung zwischen ZRM und MySQL-Server herstellen.
Socket-Kopie 25300 (könnte geändert werden) Sicherungsdaten über das Kabel sind nicht sicher Höhere Leistung Zusätzliche Software sollte auf dem MySQL-Server installiert sein. Verwenden Sie für die Enterprise-Version von ZRM 1.1 beispielsweise MySQL-zrm-Enterprise-Socket-Server-1.1-1.noarch.rpm. Die Community-Version finden Sie auf der Downloadseite für das genaue Paket.

Für weitere technische Details registrieren Sie sich kostenlos bei Zmanda Network und laden Sie die Vollversion dieses White Papers herunter. Sie lernen, wie Sie ZRM für verschiedene gängige Szenarien verwenden. Zum Beispiel werden wir technische Details bereitstellen, wie eine Sicherung durchgeführt wird, wobei die Daten auf dem Kabel sicher sind und im Ruhezustand das SSH-Kopier-Plug-In für diesen Anwendungsfall verwenden:

ZRM über das Internet

Darüber hinaus werden wir technische Details zu effizienteren logischen und unformatierten Sicherungen mithilfe des Socket-Copy-Plug-Ins bereitstellen.

Mit all seinen umfangreichen Funktionen ist ZRM für MySQL nur ein Tool zur Implementierung einer Sicherungs- und Wiederherstellungsstrategie, die für Ihre spezifischen Datenschutzanforderungen optimal ist. ZRM ist robust und einfach zu verwenden. Abhängig von Ihrer eigenen Implementierung des Remote-MySQL-Servers und Ihren spezifischen Anforderungen für die Sicherung und Wiederherstellung sollten Sie jedoch alle Kompromisse berücksichtigen, die mit den von ZRM für MySQL bereitgestellten Betriebsoptionen verbunden sind.

Verweise:
ZRM für MySQL
ZRM für MySQL Wiki
Zmanda-Foren