MariaDB
 sql >> Datenbank >  >> RDS >> MariaDB

Wechsel zu MariaDB Backup

In meinem vorherigen Blogbeitrag, in dem es um das Upgrade auf die neueste Version von Jira zusammen mit der neuesten Version von MariaDB ging, habe ich kurz erwähnt, dass man sich beim Upgrade auf MariaDB Server 10.3 ansehen sollte, wie Backups durchgeführt werden. Mit MariaDB Server 10.3 kommt MariaDB Backup, das die neuesten Funktionen von MariaDB Server unterstützt. Es ist auch auf denselben Plattformen wie MariaDB Server verfügbar und wird zusammen mit dem Server verteilt.

Wenn Sie mit XtraBackup gesichert haben und versuchen, dieselben Befehle für MariaDB Server 10.3 auszuführen, erhalten Sie eine Fehlermeldung:

$ innobackupex ~/backup_to_dir --user=username --password=password
...
InnoDB: Unsupported redo log format. The redo log was created with MariaDB 10.3.9.

Der erste Satz in der letzten Nachricht ist, worum es geht. XtraBackup versteht die Datei(en) im Redo-Log von 10.3 nicht. Beachten Sie, dass wir eine alte Version von XtraBackup verwendet haben und deshalb lautet der Befehl immer noch innobackupex .

Aus diesem und einigen anderen unten genannten Gründen wird MariaDB Server jetzt mit MariaDB Backup geliefert, das das neue Redo-Log-Format unterstützt. Mit MariaDB Backup haben Sie die gleiche Funktionalität, die Sie von XtraBackup gewohnt sind, aber mit der Unterstützung für das verbesserte Redo-Log-Format und Unterstützung für die Data-at-Rest-Verschlüsselung von MariaDB. Ein weiterer sehr gefragter Aspekt ist, dass MariaDB Backup auch für Windows verfügbar ist, was XtraBackup nicht ist. Wenn Sie mehr über die Redo-Log-Änderung erfahren möchten, lesen Sie dies.

Am Anfang dieses Beitrags erwähne ich, dass wir kürzlich Jira auf die neueste Version und MariaDB Server auf 10.3 aktualisiert haben. In dieser älteren Umgebung haben wir XtraBackup verwendet. Um Backups für MariaDB Server 10.3 zu erhalten, mussten wir unsere Backup-Skripte aktualisieren, um MariaDB Backup zu verwenden.

Nach dem Wechsel zu MariaDB Backup sieht der Backup-Befehl so aus:

$ mariabackup --backup --target-dir /backup/to/dir --user=username --password=password --parallel=4

Wir mussten den Befehl selbst von innobackupex ändern zu mariabackup und wir haben zwei Optionen hinzugefügt; –Sicherung mariabackup zu sagen dass wir möchten, dass es ein Backup erstellt, und –target-dir, um anzugeben, dass das angegebene Verzeichnis der Ort ist, an dem die Backup-Dateien abgelegt werden sollen. Es sollte beachtet werden, dass, wenn wir eine neuere Version von XtraBackup verwendet hätten, die Befehlszeilenoptionen vollständig mit XtraBackup kompatibel gewesen wären, sodass das einzige, was dann geändert werden müsste, der Befehl selbst von xtrabackup zu mariabackup .

Um sicherzustellen, dass das Backup funktioniert, kopieren wir es auf einen anderen Server und versuchen, es dort wiederherzustellen. Um ein Backup wiederherzustellen, müssen wir es zuerst vorbereiten:

$ mariabackup --prepare --target-dir full-2018-09-11_09-38-32

Beachten Sie, dass ich eine vollständige Sicherung einer MariaDB-Serverinstanz habe, die alles ersetzt, was in der Instanz vorhanden wäre, in der ich wiederherstelle. Ich werde daher den Server stoppen und alle Datendateien entfernen, die er enthält.

$ sudo service mariadb stop
$ sudo rm -rf /var/lib/mysql/*

Jetzt können die Sicherungsdateien in das Datenverzeichnis dieser Serverinstanz gelegt werden. Es sollte mit Mariabackup gemacht werden, um es richtig zu machen. Es macht einige Dinge im Zusammenhang mit dem oben erklärten Redo-Log-Format.

$ sudo mariabackup --copy-back --target-dir full-2018-09-11_09-38-32

Stellen Sie sicher, dass die Berechtigungen korrekt sind. In meinem Fall werden normale Benutzer und Gruppen verwendet. Starten Sie dann den Server.

$ sudo chown mysql:mysql /var/lib/mysql -R
$ sudo service mariadb start

Lassen Sie uns dann eine Verbindung zum Server herstellen und überprüfen, ob er über die Daten verfügt, die er haben sollte. Ich habe mich entschieden, die maximale Anzahl von Ausgaben in Jira abzufragen.

# connect to mariadb
$ mysql -uusername -ppassword
# query the database
MariaDB [(none)]> USE jiradb
MariaDB [jiradb]> SELECT MAX(issuenum) FROM jiraissue;

Voila! Wir haben jetzt Backups, die auf MariaDB Server 10.3 funktionieren.