Datenbank löschen und weglaufen? So sichern Sie die MySQL-Datenbank mit xtraback

Datenbank löschen und weglaufen? So sichern Sie die MySQL-Datenbank mit xtraback

1. Die mysqldump-Sicherungsmethode verwendet eine logische Sicherung. Der größte Nachteil ist die langsame Sicherungs- und Wiederherstellungsgeschwindigkeit. Für eine 50-Gigabyte-Datenbank ist diese Geschwindigkeit akzeptabel, aber wenn die Datenbank sehr groß ist, ist die Verwendung von mysqdump für die Sicherung nicht sehr geeignet. .

Zu diesem Zeitpunkt benötigen Sie ein sehr nützliches und effizientes Tool. Xtraback ist eines davon, bekannt als die kostenlose Version von InnoDB Hotbackup.

Die Funktionen von xtraback sind wie folgt:

  • Der Backup-Prozess ist schnell und zuverlässig
  • Der Backup-Prozess unterbricht laufende Transaktionen nicht
  • Möglichkeit, Speicherplatz und Datenverkehr durch Komprimierung und andere Funktionen zu sparen
  • Automatische Backup-Verifizierung
  • Schnelle Wiederherstellungsgeschwindigkeit

2. Installieren Sie xtraback 1) Laden Sie xtraback herunter

wget https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.4.4/binary/tarball/percona-xtrabackup-2.4.4-Linux-x86_64.tar.gz 

2) Entpacken

[root@master ~]# tar zxf percona-xtrabackup-2.4.4-Linux-x86_64.tar.gz

3) Gehen Sie in das Entpackverzeichnis und kopieren Sie alle Programme unter bin nach /usr/bin

[root@master ~]# cd percona-xtrabackup-2.4.4-Linux-x86_64/ [root@master percona-xtrabackup-2.4.4-Linux-x86_64]# cp bin/* /usr/bin/

Xtraback ist ein Tool für Hot Backup von InnoDB- und XtraDB-Tabellen. Es unterstützt Online-Hot Backup und kann InnoDB-Tabellen sichern, ohne sie zu sperren. Dieses Tool kann jedoch keine Myisam-Engine-Tabellen bedienen.

4) Installieren Sie entsprechende Plug-Ins

yum installiere perl-DBI perl-DBD-MySQL perl-Time-HiRes perl-IO-Socket-SSL perl-TermReadKey.x86_64 perl-Digest-MD5 –y

5) Percona-Toolkit herunterladen und installieren

wget https://www.percona.com/downloads/percona-toolkit/2.2.19/RPM/percona-toolkit-2.2.19-1.noarch.rpm 
[root@master ~]# rpm -ivh percona-toolkit-2.2.19-1.noarch.rpm Warnung: percona-toolkit-2.2.19-1.noarch.rpm: Header V4 DSA/SHA1-Signatur, Schlüssel-ID cd2efd2a: NOKEY wird vorbereitet... ######################################## [100 %] Aktualisieren/Installieren...  
1:percona-toolkit-2.2.19-1 ######################################### [100%] 

3. Sicherung

Lösung 1: xtrabackup vollständige Sicherung + binlog inkrementelle Sicherung (bin-log muss aktiviert sein)

Erstellen Sie ein Backup-Verzeichnis

[root@master ~]# mkdir -p /opt/mysqlbackup/{full,inc}

Zuerst erstellen wir eine Testdatenbank, erstellen eine Tabelle mit dem Namen tb1 in der Testdatenbank und fügen drei Datenzeilen wie folgt in die Tabelle tb1 ein:

Nach dem Einfügen der Daten führen wir eine Vollsicherung wie folgt durch:

[root@master ~]# 
innobackupex --user=root --password=pwd123 /opt/mysqlbackup/full/

Der obige vollständige Sicherungspfad befindet sich im Verzeichnis mysqlbackup, das wir gerade erstellt haben.

Die folgende Eingabeaufforderung wird angezeigt, um zu beweisen, dass die Sicherung erfolgreich war

Die Sicherungsdateien lauten wie folgt:

Bisher ist die vollständige Sicherung vollständig erfolgreich, und dann werden einige Daten in eine MySQL-Datenbank eingefügt, und dann wird eine inkrementelle Sicherung durchgeführt

So erstellen Sie nach der vollständigen Sicherung eine inkrementelle Sicherung der Datenbankänderungen im Binärprotokoll:

Zeigen Sie die Position des Binlog-Protokolls während der vollständigen Sicherung an:

Das Obige ist die Position, nachdem unsere vollständige Sicherung abgeschlossen ist. Wenn wir jetzt Daten einfügen, beginnt es an dieser Position. Wir nennen es inkrementelle Sicherung von dieser Position aus. Jetzt fügen wir Daten wie folgt in die Tabelle tb1 ein:

Inkrementelle Sicherung von Binärdateien:

[Wurzel@Master ~]
# mysqlbinlog --start-position=1279 /usr/local/mysql/data/mysql-bin.000001 > /opt/mysqlbackup/inc/`date +%F`.sql

Nach Abschluss der Sicherung simulieren wir Datenbankschäden und versehentliches Löschen wie folgt

[root@master ~]# rm -rf /usr/local/mysql/data/*

Wiederherstellen der Datenbank

Stellen Sie zunächst unser vollständiges Backup wieder her, d. h. die Daten von Tom1/2/3 lauten wie folgt:

[root@master ~]#innobackupex --copy-back /opt/mysqlbackup/full/2017-11-21_11-47-42/

Die folgende Eingabeaufforderung scheint zu beweisen, dass die Wiederherstellung erfolgreich war

Nachdem die Daten im DATADIR-Verzeichnis wiederhergestellt wurden, müssen Sie außerdem sicherstellen, dass Eigentümer und Gruppe aller Datendateien die richtigen Benutzer sind, z. B. mysql. Andernfalls müssen Sie Eigentümer und Gruppe der Datendateien ändern, bevor Sie mysqld starten. wie:

# chown -R mysql:mysql /usr/local/mysql/data/

Starten Sie den MySQL-Dienst neu, um zu sehen, ob die Wiederherstellung erfolgreich ist

Aus dem Obigen können wir ersehen, dass die vollständige Sicherung erfolgreich wiederhergestellt wurde. Da wir während der vollständigen Sicherung 3 Datenzeilen eingefügt haben, werden wir die inkrementelle Sicherung wie folgt wiederherstellen:

Um zu verhindern, dass während der Wiederherstellung eine große Menge an Binärprotokollen generiert wird, können Sie die Binärprotokolle vor der Wiederherstellung vorübergehend schließen:

Anschließend prüfen wir, ob die Wiederherstellung erfolgreich war!

An diesem Punkt haben wir alle Daten erfolgreich wiederhergestellt. Das obige mit dem Tool binlog+xtrabackup implementierte Backup scheint etwas problematisch zu sein. Wenn Sie Probleme haben, sehen Sie sich bitte die folgende Lösung 2 an.

2. xtrabackup vollständige Sicherung + xtrabacup inkrementelle Sicherung

Vorbereitung der Testumgebung

Erstellen Sie eine Testdatenbank und eine Tabelle, in die Sie einige Datenzeilen eingeben können.

Erklärung der obigen Vorgänge:

Es wurde eine Testbibliothek erstellt, in der Testbibliothek wurde eine xx-Tabelle erstellt und die Daten von tom1 und tom2 wurden in die xx-Tabelle eingefügt.

Führen Sie als Nächstes wie folgt eine vollständige Sicherung durch:

[root@master ~]# xtrabackup --defaultes-file=/etc/my.cnf --user=root --password='pwd123' --popt=3306 --backup --target-dir=/opt/mysqlbackup/full/full_incre_$(date +%Y%m%d_%H%M%S)

Der schwarze Teil oben ist der Speicherort. Das Folgende zeigt, dass die Sicherung erfolgreich war

Zu diesem Zeitpunkt fügen wir die Daten erneut ein und führen eine inkrementelle Sicherung durch

Das erste inkrementelle Backup sieht wie folgt aus:

[root@master ~]# xtrabackup --defaultes-file=/etc/my.cnf --user=root --password='pwd123' --popt=3306 --backup --target-dir=/opt/mysqlbackup/inc/inc_incre_$(date +%Y%m%d_%H%M%S) --incremental-basedir=/opt/mysqlbackup/full/full_incre_20171121_123051/ 

Die folgende Meldung wird angezeigt und zeigt an, dass die Sicherung erfolgreich war!

Der obige Sicherungspfad lautet: /opt/mysqlbackup/inc/ Wir können die gesicherten Dateien anzeigen

Als nächstes fügen Sie erneut Daten in die xx-Tabelle ein und führen eine zweite inkrementelle Sicherung durch

Das zweite inkrementelle Backup sieht wie folgt aus:

[root@master ~]# xtrabackup --defaultes-file=/etc/my.cnf --user=root --password='pwd123' --popt=3306 --backup --target-dir=/opt/mysqlbackup/inc/inc_incre_$(date +%Y%m%d_%H%M%S) --incremental-basedir=/opt/mysqlbackup/inc/inc_incre_20171121_124604/

Die folgende Eingabeaufforderung wird angezeigt, um zu beweisen, dass die Sicherung erfolgreich war

Xtrabacup für schrittweise Genesung

Um den Effekt zu erzielen, habe ich die xx-Tabelle gelöscht

Beginnen Sie mit der Wiederherstellung einer Vollsicherung wie folgt:

[root@master ~]# xtrabackup --defaultes-file=/etc/my.cnf --prepare --user=root --password="pwd123" --apply-log-only --target-dir=/opt/mysqlbackup/full/full_incre_20171121_123051 

2. Wiederherstellen des ersten Inkrements (tom3)

[root@master ~]# xtrabackup --defaultes-file=/etc/my.cnf --prepare --user=root --password="pwd123" --apply-log-only --target-dir=/opt/mysqlbackup/full/full_incre_20171121_123051 --incremental-dir=/opt/mysqlbackup/inc/inc_incre_20171121_124604/ 

3. Stellen Sie das zweite Inkrement wieder her

[root@master ~]# xtrabackup --defaultes-file=/etc/my.cnf --prepare --user=root --password="pwd123" --apply-log-only --target-dir=/opt/mysqlbackup/full/full_incre_20171121_123051 --incremental-dir=/opt/mysqlbackup/inc/inc_incre_20171121_125202 

Stellen Sie die gesamte Bibliothek wieder her

[root@master ~]# xtrabackup --defaultes-file=/etc/my.cnf --prepare --user=root --password="pwd123" --target-dir=/opt/mysqlbackup/full/full_incre_20171121_123051 

MySQL-Datenbank stoppen - Rsync-Datendatei starten

[root@master ~]# systemctl stop mysqld [root@master ~]# cd /opt/mysqlbackup/full/full_incre_20171121_123051/ [root@master full_incre_20171121_123051]# rsync -rvt --exclude 'xtrabackup_checkpoints' --exclude 'xtrabackup_logfile' ./ /usr/local/mysql/data/ 

Erteilen Sie MySQL-Zugriffsberechtigungen

[root@master ~]# chown -R mysql:mysql /usr/local/mysql/data/

Starten Sie den MySQL-Dienst, um zu sehen, ob die Wiederherstellung erfolgreich war

Zusammenfassen

Oben wird die Methode zur Verwendung von xtraback zum Sichern der MySQL-Datenbank beschrieben. Ich hoffe, es wird Ihnen hilfreich sein. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht und ich werde Ihnen rechtzeitig antworten. Ich möchte auch allen für ihre Unterstützung der Website 123WORDPRESS.COM danken!

Das könnte Sie auch interessieren:
  • xtrabackup MySQL-Datenbank sichern und wiederherstellen
  • MySQL verwendet xtrabackup für Sicherungs- und Wiederherstellungsvorgänge
  • Tutorial zum Schreiben von Skripten zur Verwendung von Xtrabackup zum Sichern von MySQL-Daten
  • Tutorial zur Verwendung von innobackupex und xtrabackup zum Sichern und Wiederherstellen großer Datenmengen in MySQL
  • Sichern und Wiederherstellen mit dem Tool Xtrabackup (ein unverzichtbares Tool für MySQL DBA)
  • MySQL Xtrabackup - gemeinsame Nutzung der Backup- und Wiederherstellungsimplementierung
  • Xtrabackup-Benutzerhandbuch InnoDB-Datensicherungstool

<<:  So installieren Sie binäres MySQL unter Linux und knacken das MySQL-Passwort

>>:  Miniprogramm zur Implementierung des Paging-Effekts

Artikel empfehlen

Der Aufruf der Suchmaschine auf der Seite erfolgt am Beispiel von Baidu

Heute ist mir plötzlich eingefallen, dass es cool ...

Schreiben Sie ein Publish-Subscribe-Modell mit JS

Inhaltsverzeichnis 1. Szeneneinführung 2 Code-Opt...

Zusammenfassung der Datenspeicherstruktur des Nginx-HTTP-Moduls

Ab diesem Abschnitt erklären wir das Implementier...

Tutorial zur Installation von Ubuntu Server in Vmware

In diesem Artikel finden Sie das grafische Tutori...

React+Koa-Beispiel zur Implementierung des Datei-Uploads

Inhaltsverzeichnis Hintergrund Serverabhängigkeit...

Spezifische Schritte für den Vue-Browser zur Rückgabe der Überwachung

Vorwort Beim Teilen einer Seite hoffen Sie, durch...

Eine gängige Technik zur Implementierung von Dreiecken mit CSS (mehrere Methoden)

In manchen Vorstellungsgesprächen werden häufig F...