Percona XtraBackup ist die weltweit einzige kostenlose Open-Source-MySQL-Hot-Backup-Software, die nicht blockierende Backups für InnoDB- und XtraDB-Datenbanken durchführt. Mit Percona
So funktioniert Percona XtraBackup
Das liegt daran, dass InnoDB ein Redo-Log führt, auch bekannt als Transaktionslog. Dies enthält eine Aufzeichnung aller Änderungen an InnoDB-Daten. Wenn InnoDB startet, überprüft es die Datendateien und das Transaktionsprotokoll und führt zwei Schritte aus. Es wendet festgeschriebene Transaktionsprotokolleinträge auf die Datendateien an und führt Rückgängig-Vorgänge für alle Transaktionen durch, die die Daten geändert, aber nicht festgeschrieben haben.
Percona XtraBackup verwendet Backup Lock als einfache Alternative. Diese Funktion ist in Percona Server 5.6+ verfügbar. Percona XtraBackup nutzt dies, um Nicht-InnoDB-Daten automatisch zu kopieren, um das Blockieren von DML-Abfragen zu vermeiden, die InnoDB-Tabellen ändern. Wenn der Server Sicherungssperren unterstützt, kopiert xtrabackup zunächst die InnoDB-Daten, führt die MyISAM-Tabellen und .frm-Dateien aus und kopiert sie. Sobald der Vorgang abgeschlossen ist, beginnt die Sicherung der Dateien. Es werden .frm, .MRG, .MYD, .MYI, .TRG, FLUSH TABLES MIT READ LOCKLOCK TABLES FOR BACKUP.par gesichert.
Sperren gilt nur für MyISAM und andere nicht -InnoDB-Tabellen, erst nachdem Percona XtraBackup die Sicherung aller InnoDB/XtraDB-Daten und Protokolle abgeschlossen hat. Percona XtraBackup verwendet Backup Lock als einfache Alternative. Diese Funktion ist in Percona Server 5.6+ verfügbar. Percona XtraBackup nutzt dies, um Nicht-InnoDB-Daten automatisch zu kopieren, um das Blockieren von DML-Abfragen zu vermeiden, die InnoDB-Tabellen ändern. FLUSH TABLES WITH READ LOCK
Danach blockiert xtrabackup alle Vorgänge, die den Speicherort des Binärprotokolls oder den Bericht ändern könnten. Dann wird xtrabackup das Kopieren der REDO-Protokolldateien abschließen und die binären Protokollkoordinaten abrufen. Nachdem dies abgeschlossen ist, entsperrt xtrabackup das Binärprotokoll und die Tabellen. SPERRE BINLOG FÜR BACKUPExec_Master_Log_PosExec_Gtid_SetSHOW MASTER/SLAVE STATUS
Schließlich wird die Binärprotokollposition in STDERR gedruckt und xtrabackup wird beendet und gibt 0 zurück, wenn alles in Ordnung ist.
Es ist zu beachten, dass STDERRs xtrabackup in keine Datei geschrieben wird. Sie müssen es beispielsweise in eine Datei umleiten. xtrabackup OPTIONS2> backupout.log
Es werden außerdem die folgenden Dateien im gesicherten Verzeichnis erstellt.
Während der Vorbereitungsphase verwendet Percona XtraBackup die replizierten Transaktionsprotokolldateien, um eine Absturzwiederherstellung für die replizierten Datendateien durchzuführen. Sobald dies erledigt ist, kann die Datenbank wiederhergestellt und verwendet werden.
Die gesicherten MyISAM- und InnoDB-Tabellen werden schließlich miteinander konsistent sein, da die Daten von InnoDB nach dem Vorbereitungs- (Wiederherstellungs-)Prozess bis zu dem Punkt weitergeleitet werden, an dem die Sicherung abgeschlossen wurde, und nicht bis zu diesem Punkt zurückgesetzt werden wo es angefangen hat. Dieser Zeitpunkt stimmt mit der eingenommenen Position überein, sodass die MyISAM-Daten und die vorbereiteten InnoDB-Daten synchron sind. FLUSH TABLES WITHREAD LOCK
Kurz gesagt, mit diesen Tools können Sie Vorgänge wie Streaming und inkrementelle Sicherungen durchführen, indem Sie Datendateien kopieren, Protokolldateien kopieren und Protokolle auf verschiedene Datenkombinationen anwenden.
Backup wiederherstellen
Um ein Backup mit xtrabackup wiederherzustellen, können Sie die Option oder verwenden. xtrabackup –copy-backxtrabackup –move-back
xtrabackup liest aus den my.cnf-Variablen datadir, innodb_data_home_dir, innodb_data_file_path, innodb_log_group_home_dir und prüft, ob das Verzeichnis existiert.
Dadurch werden die MyISAM-Tabellen, Indizes usw. kopiert (.FRM-, .MRG-, .MYD-, .MYI-, .TRG-, .TRN-, .ARM-, .ARZ-, .CSM-, .CSV-, PAR- und .opt-Dateien). ) Zuerst sind der nächste Schritt in InnoDB Tabellen und Indizes und schließlich Protokolldateien. Dadurch bleiben die Attribute der Dateien beim Kopieren erhalten. Möglicherweise muss MySQL den Besitz der Dateien ändern, bevor der Datenbankserver gestartet wird, da sie dem Benutzer gehören, der die Sicherung erstellt hat.
Alternativ kann diese Option zum Wiederherstellen des Backups verwendet werden. Der einzige Unterschied bei dieser Option besteht darin, dass die Datei nicht kopiert, sondern an den Zielort verschoben wird. Da diese Option Sicherungsdateien löscht, muss sie mit Vorsicht verwendet werden. Diese Funktion ist in Situationen nützlich, in denen nicht genügend freier Speicherplatz zum Speichern von Datendateien und deren Sicherungskopien vorhanden ist. xtrabackup –move-backxtrabackup –copy-back
[root@ZHENGDA ~]# uname -r
3.10.0-327 .el7.x86_64
yum -y install
Installieren
yum -y install percona-xtrabackup-24
Verbindungsbenutzer erstellen und autorisieren
mysql> CREATE USER 'zhengda'@'localhost' IDENTIFIED BY 'goyun.org'; mysql> GRANT RELOAD, LOCK TABLES, PROCESS, REPLICATION CLIENT ON *.* TO 'zhengda'@'localhost'; mysql> FLUSH PRIVILEGES;
Vollständige Sicherung
(1) nur xtrabackup Es kann Tabellen der Innodb- und Xtradb-Engines sichern, jedoch nicht Tabellen der Myisam-Engine. (2) innobackupex ist ein Perl-Skript, das xtrabackup kapselt und die gleichzeitige Sicherung von Innodb und Myisam unterstützt, muss jedoch beim Sichern hinzugefügt werden up myisam. Eine globale Lesesperre. Außerdem unterstützt myisam keine inkrementelle Sicherung.
$ xtrabackup --user=zhengda --password=goyun.org --backup \ --target-dir=/data/backup $ innobackupex --user=zhengda --password=goyun.org /path/ to /backup/dir/ $ innobackupex --user=zhengda --password=goyun.org --stream=tar ./ | bzip2 -
备份所有库:$ innobackupex --defaults-file=/etc/my.cnf--user=zhengda \ --password=goyun.org --socket=/tmp/mysql.sock /data/backup 备份两个库:$ innobackupex --databases="db1 db2"--defaults-file=/etc/my.cnf--user=zhengda \ --password=goyun.org --socket=/tmp/mysql.sock /data/backup
–incremental /data/backup1 geben Sie das Zielverzeichnis für den inkrementellen Backup-Speicher an
–incremental-basedir=/data/backup geben Sie das Verzeichnis für die vollständige Sicherung an
$ innobackupex --defaults-file=etc/my.cnf --user=zhengda --password=goyun.org \ --socket=/tmp/mysql.sock --incremental /data/backuup1 --incremental-basedir=/data/backup/#会根据当天时间生成个目录
–incremental /data/backup2 Geben Sie das Verzeichnis dieser inkrementellen Sicherung an
–incremental-basedir=/data/backup1 Geben Sie das Verzeichnis der letzten inkrementellen Sicherung an
$ innobackupex --defaults-file=/etc/my.cnf --user=zhengda --password=goyun.org \ --socket=/tmp/mysql.sock --incremental /data/backup2 --incremental-basedir=/data/backup1/(....)
–use-memory=8G Legen Sie den Speicher fest, der bei der Vorbereitung der Datenwiederherstellung verwendet wird, was den Zeitaufwand für die Vorbereitung verkürzen kann
$ innobackupex --apply-log --use-memory=8G /data/backup #还原如下 $ innobackupex --defaults-file=/etc/my.cnf --user= --password= --copy-back /data/backup #或 $ xtrabackup --user=zhengda --password=goyun.org --copy-back --target-dir=/data/backup
--single-transaction
mysqldump -u root -p密码 --all-databases > ./all.sql
mysql -u root -p密码 < ./all.sql
mysqldump -u root -p密码 --databases db1 db2 > ./db1_2.sql
mysql -u root -p密码 db1 db2 < ./db1_2.sql
mysqldump --host=192.168.6.108(A) -u root -p密码 --opt yun | mysql --host=localhost(B) -u root -p密码 -C yun
mysqldump --host=192.168.6.108(A) -u root -p密码 --all-databases > all.sql(B)
Das obige ist der detaillierte Inhalt vonxtrabackup Backup und Wiederherstellung, Funktionsprinzip. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!