Percona XtraBackup ist ein Dienstprogramm für Hot-Datenbank-Backups MySQL.
Beim Erstellen einer Datensicherung werden keine Tabellen gesperrt und Ihr System läuft uneingeschränkt weiter.
XtraBackup 2.4 kann Sicherungskopien von Tabellen erstellen InnoDB, XtraDB и MyISAM auf Servern MySQL 5.11, 5.5, 5.6 und 5.7, und auch auf dem Server Percona für MySQL с XtraDB.
Arbeiten mit MySQL 8.x. Version verwendet werden soll XtraBackup 8.x. In diesem Artikel wird nur darüber gesprochen XtraBackup 2.4.
Der Hauptvorteil XtraBackup Das Problem ist, dass dieses Dienstprogramm zum Erstellen von Sicherungskopien stark ausgelasteter Daten geeignet ist. Serversowie für Systeme mit einer geringen Anzahl von Transaktionen.
Wenn die Gesamtgröße Ihrer MySQL-Datenbanken erheblich ist (zig Gigabyte), dann ist das Standarddienstprogramm hilfreich mysqldump ermöglicht Ihnen nicht, schnell eine Sicherungskopie zu erstellen, und die Wiederherstellung des Dumps wird viel Zeit in Anspruch nehmen.
Einstellung
Einstellung XtraBackup aus dem Repository geeignet Percona.
Führen Sie die folgenden Befehle nacheinander aus:
wget https://repo.percona.com/apt/percona-release_latest.$(lsb_release -sc)_all.deb
sudo dpkg -i percona-release_latest.$(lsb_release -sc)_all.deb
sudo apt-get update
sudo apt-get install percona-xtrabackup-242. Führen Sie nach der Installation den Befehl aus xtrabackup -v. Daher ist es wichtig sicherzustellen, dass das Dienstprogramm auf dem Server ordnungsgemäß funktioniert. Als Ergebnis wird auf dem Bildschirm etwa Folgendes angezeigt:
xtrabackup: Serverargumente erkannt: - datadir=/var/lib/mysql - tmpdir=/tmp - server-id=1 - logbin=/var/log/mysql/mysql-bin.log - innodbbufferpoolsize=16384M - innodbfilepertable=1 - innodbflushmethod=Odirect - innodbflushlogattrxcommit=0. xtrabackup Version 2.4.20 basierend auf MySQL Server 5.7.26 Linux (x8664) (Revisions-ID: c8b4056)

Zugriffsrechte, Berechtigungen und Privilegien
XtraBackup sollte in der Lage sein:
Stellen Sie eine Verbindung zu Ihrem MySQL-Server her.
Zugriffsrechte auf das Verzeichnis haben datadir.
Wenn Sie eine Sicherungskopie erstellen, müssen Sie über Schreibrechte für den angegebenen Parameter verfügen Zielverzeichnis Katalog.
Was ist Datenverzeichnis?
datadir ist das Verzeichnis, in dem sich der Datenbankserver befindet MySQL Speichert Daten. Alle Datenbanken, alle Tabellen befinden sich dort. In den meisten Distributionen Linux Standardmäßig ist dieses Verzeichnis /var/lib/mysql.
Was ist das Zielverzeichnis?
Zielverzeichnis – Dies ist das Verzeichnis, in dem das Backup gespeichert wird.
Der Datenbankbenutzer benötigt folgende Zugriffsrechte auf die zu sichernden Tabellen und Datenbanken:
TABELLEN NEU LADEN und SPERREN
REPLIKATIONS-CLIENT
TISCHFLÄCHE ERSTELLEN
PROZESSE
SUPER
CREATE
INSERT
SELECT
Konfiguration
Konfiguration XtraBackup erfolgt mit Optionen, die sich genauso verhalten wie Standard-MySQL-Optionen.
Was bedeutet das?
Konfigurationsparameter können entweder in der Befehlszeile oder in der DBMS-Konfigurationsdatei angegeben werden, beispielsweise in / Etc / my.cnf.
Das Dienstprogramm XtraBackup liest Partitionen nach dem Start [Mysqld] и [xtrabackup] aus MySQL-Konfigurationsdateien. Dies geschieht, damit das Dienstprogramm die Einstellungen Ihres DBMS verwenden kann, ohne die Parameter bei jeder Sicherung manuell angeben zu müssen.
Zum Beispiel der Wert datadir und einige Parameter InnoDB Wir beziehen XtraBackup aus der Konfiguration Ihres DBMS.
Damit XtraBackup funktioniert, möchten Sie die im Abschnitt enthaltenen Parameter überschreiben [Mysqld], dann geben Sie sie einfach in der Konfigurationsdatei im Abschnitt an [xtrabackup]. Da sie später gelesen werden, ist ihre Priorität höher.
Sie müssen keine Parameter hinzufügen mein.cnf. Alle erforderlichen Parameter können auf der Kommandozeile angegeben werden. Normalerweise das Einzige, was bequem in der Sektion platziert werden kann [xtrabackup] Ihre mein.cnf ist ein Parameter Zielverzeichnis, das standardmäßig das Verzeichnis angibt, in dem Backups abgelegt werden. Dies ist jedoch optional.
Ein Beispiel für die Angabe des Pfads zum Verzeichnis mit einer Sicherungskopie mein.cnf:
[xtrabackup]
target_dir = /data/backups/mysql/Backup-Skript
Sie können das folgende Skript verwenden, um ein Backup zu erstellen:
#!/bin/bash
# Удаляем данные в каталоге бекапа
rm -rf /mysql/backup
# Cоздаём бекап
xtrabackup --user=xtrabackup
--password=xxxx_SECRET_xxxx
--backup
--target-dir=/mysql/backup
# Выполняем подготовку бекапа для развёртывания
xtrabackup --prepare --target-dir=/mysql/backup
# Создаём архив
tar -zcvf /home/developer/dumps/xtrabackup-all-dbs-"$(date +%F-%H:%M:%S)".gz /mysql/backupWas passiert während der Skriptausführung?
Zunächst leeren (löschen) wir das Verzeichnis, in dem wir die Sicherungskopie speichern:
rm -rf /mysql/backup.
Dann verwenden Sie das Dienstprogramm XtraBackup Erstellen Sie eine Sicherungskopie und speichern Sie diese unter /mysql/backup/:
xtrabackup --user=xtrabackup --password=xxxxz1cYf95550Gc6xxxxxxxpE3rB03xxxx --backup --target-dir=/mysql/backupZuvor haben wir einen Benutzer in MySQL erstellt xtrabackup mit den erforderlichen Berechtigungen. Verwendung des Parameters target-dir Wir geben das Verzeichnis an, in dem das Backup gespeichert werden soll.
Ein wichtiger Punkt!
Beachten Sie die Skriptzeile:
xtrabackup --prepare --target-dir=/mysql/backup
Katalogdaten /mysql/backup sind erst dann konsistent, wenn sie gekocht sind.
Tatsache ist, dass es beim Kopieren von Dateien zu Änderungen kommen kann. Betrieb xtrabackup --prepare --target-dir=/mysql/backup sorgt dafür, dass die Backup-Daten im Laufe der Zeit perfekt konsistent sind.
Sie können den Datenvorbereitungsvorgang auf jedem Computer durchführen. Auf dem Server, auf dem sich das Quell-DBMS befindet, ist dies nicht erforderlich. Sie können das Backup auf den Zielserver kopieren und dort vorbereiten.
Als letztes erstellen wir ein Archiv, in dem wir unser Backup ablegen:
tar -zcvf /home/developer/dumps/xtrabackup-all-dbs-«$(date % F% H% M% S)».gz /mysql/backupWiederherstellen eines Backups
Bevor Sie ein Backup auf dem Zielserver wiederherstellen können, müssen die Daten eine Vorbereitungsphase durchlaufen. Wie das geht, erfahren Sie oben.
Der Datenwiederherstellungsprozess ist sehr einfach. Sie müssen die Sicherung aus dem Archiv extrahieren und die Daten darin ersetzen datadir.
Wie ersetze ich Daten im Datenverzeichnis?
Betrachten wir zwei Optionen.
Option 1
Verwenden Sie das Dienstprogramm XtraBackup. Sie müssen eine Option angeben --copy-back.
Mit dem folgenden Befehl wird das Backup übertragen datadir Zielserver:
xtrabackup --copy-back --target-dir=/mysql/backupOption 2
Sie können es auch anders machen, auf das Dienstprogramm verzichten XtraBackup.
Sie müssen lediglich das Backup kopieren datadir. Sie können dies mit tun cp oder rsync.
Es ist wichtig zu verstehen, dass das Verfahren zum Wiederherstellen eines Backups darauf hinausläuft, lediglich den Inhalt des Verzeichnisses zu ersetzen datadir.
Bevor Sie mit der Wiederherstellung einer Sicherung auf dem Zielserver beginnen, müssen Sie Folgendes tun:
Stoppen Sie den MySQL-Server.
Leerer Ordner datadir oder verschieben Sie den Inhalt an einen anderen Ort. Katalog datadir muss leer sein.
Nach Abschluss der Datenübertragung an datadir Der MySQL-Server kann gestartet werden.
Materialien
.
Source: habr.com
