Eine kurze Diskussion über MySQL-Backup und -Wiederherstellung für eine einzelne Tabelle

Eine kurze Diskussion über MySQL-Backup und -Wiederherstellung für eine einzelne Tabelle

A. Installation des MySQL-Sicherungstools xtrabackup

1. Offizielle xtrabackup-Binärversion von Percona; die Binärversion kann nach der Dekomprimierung verwendet werden.

2. xtrabackup entpacken & Verbindung herstellen

tar -xzvf percona-xtrabackup-2.3.4-Linux-x86_64.tar.gz -C /usr/local/
ln -s /usr/local/percona-xtrabackup-2.3.4 /usr/local/xtrabackup

3. Legen Sie die Umgebungsvariable PATH fest
export PATH=/usr/local/xtrabackup/bin/:$PATH

B. Erstellen Sie einen Backup-Benutzer und eine Autorisierung in der MySQL-Datenbank

1. Benutzer anlegen

Erstellen Sie den Benutzer „backuper@'localhost'“ mit der Identifizierung „backup123“;
Erstellen Sie den Benutzer Backuper@'127.0.0.1', identifiziert durch 'backup123';

2. Autorisierung

gewähre „Backuper“@„localhost“ das Neuladen, Sperren von Tabellen, Replikationsclient, Prozess, Super auf *.*;
Gewähren Sie „Erstellen, Einfügen, Auswählen“ für percona_schema.xtrabackup_history an „backuper“@„localhost“.
gewähre „Backuper“@„127.0.0.1“ Neuladen, Tabellen sperren, Replikationsclient, Prozess, Super auf *.*;
Gewähren Sie „Erstellen, Einfügen, Auswählen“ für percona_schema.xtrabackup_history an „backuper“@„127.0.0.1“.

C. Vor dem Backup prüfen. Der Hauptzweck dieses Schritts besteht darin, zu überprüfen, ob die Wiederherstellung wirksam ist, wenn der Wiederherstellungsvorgang später durchgeführt wird. (In der Produktion gibt es keinen solchen Schritt.

1. wählen Sie * aus tempdb.dict__major;
wähle * aus dict__major;

+--------------+-----------------+
| Spaltenwert | Spaltenmittelwert |
+--------------+-----------------+
| 1 | Chinesische Sprache und Literatur |
| 2 | Versicherungsmathematik |
| 3 | Biopharmazeutika |
| 4 | Materialchemie |
| 5 | Wirtschaftsenglisch |
| 6 | Archäologie |
| 7 | Diplomatie |
| 8 | Reiseführer |
+--------------+-----------------+

D. Sichern Sie die Tabelle tempdb.dict__major

1. Backup-Befehl

innobackupex --host=127.0.0.1 --user=backuper --password=backup123 --port=3306 --include='tempdb.dict__major' /tmp/tempdb

2. Nachdem die Sicherung abgeschlossen ist, wird unter dem Sicherungsverzeichnis (/tmp/tempdb) ein Verzeichnis mit dem Namen der aktuellen Zeit erstellt, das die Sicherungsdateien enthält.

Baum /tmp/tempdb/
/tmp/tempdb/
└── 10.09.2016_18-25-16
├── Backup meiner.cnf
├── ibdata1
├── tempdb
│ ├── dict__major.frm
│ └── dict__major.ibd
├── xtrabackup_binlog_info
├── xtrabackup_checkpoints
├── xtrabackup_info
└── xtrabackup_logfile

E. Nachdem die Sicherung abgeschlossen ist, können Sie die Tabelle tempdb.dict__major löschen (beachten Sie, dass Sie eine Kopie der Tabellendefinition speichern müssen, die beim Wiederherstellen verwendet wird).

mysql>Tabelle tempdb.dict__major löschen;

F. Um einen konsistenten Sicherungssatz zu erhalten, muss das Protokoll vor dem Wiederherstellungsvorgang vorwärts und rückwärts gerollt werden.

1. Protokolle vorwärts und rückwärts rollen

innobackupex --apply-log --export /tmp/tempdb/2016-09-10_18-25-16/

2. Vergleich mit vor Rollforward und Rollback

Baum /tmp/tempdb/
/tmp/tempdb/
└── 10.09.2016_18-25-16
├── Backup meiner.cnf
├── ibdata1
├── ib_logfile0
├── ib_logfile1
├── tempdb
│ ├── dict__major.cfg
│ ├── dict__major.exp
│ ├── dict__major.frm
│ └── dict__major.ibd
├── xtrabackup_binlog_info
├── xtrabackup_binlog_pos_innodb
├── xtrabackup_checkpoints
├── xtrabackup_info
└── xtrabackup_logfile

G. Wiederherstellen der Tabelle tempdb.dict__major

1. Erstellen Sie die Tabelle tempdb.dict__major

Tabelle erstellen dict__major(
column_value tinyint ungleich null,
column_mean varchar(32) nicht null,
Einschränkung pk__dict__major Primärschlüssel (Spaltenwert));

2. Löschen Sie die Tablespace-Datei tempdb.dict__major

Tabelle tempdb.dict__major ändern, Tablespace verwerfen;

3. Kopieren Sie die Tablespace-Datei aus dem Backup an den Speicherort, an dem sich der Tablespace tempdb.dict__major befinden soll

cp /tmp/tempdb/2016-09-10_18-25-16/tempdb/dict__major.ibd /usr/local/mysql/data/tempdb/
cp /tmp/tempdb/2016-09-10_18-25-16/tempdb/dict__major.exp /usr/local/mysql/data/tempdb/
cp /tmp/tempdb/2016-09-10_18-25-16/tempdb/dict__major.cfg /usr/local/mysql/data/tempdb/
chown -R mysql:mysql /usr/local/mysql/data/tempdb/*

4. Tablespace-Dateien importieren

Tabelle ändern tempdb.dict__major tablespace importieren;

5. Überprüfen Sie den Wiederherstellungsstatus der dict__major-Tabelle

wähle * aus dict__major;
+--------------+-----------------+
| Spaltenwert | Spaltenmittelwert |
+--------------+-----------------+
| 1 | Chinesische Sprache und Literatur |
| 2 | Versicherungsmathematik |
| 3 | Biopharmazeutika |
| 4 | Materialchemie |
| 5 | Wirtschaftsenglisch |
| 6 | Archäologie |
| 7 | Diplomatie |
| 8 | Reiseführer |
+--------------+-----------------+

---------------------------------------------------------------

Im vorherigen Abschnitt wurde xtrabackup zum Sichern der Tabelle verwendet. Das Anwendungsszenario besteht darin, dass das Datenvolumen einer einzelnen Tabelle groß ist und der Schreibvorgang der Tabelle während des Sicherungsvorgangs unterstützt werden muss. Das heißt, im aktuellen Szenario mysqldump, ein einfaches

Auch Backup-Tools können die Anforderungen erfüllen;


Hier sind die allgemeinen Schritte für die Sicherung von mysqldump:

A: Erstellen Sie einen Backup-Benutzer

1.
Erstellen Sie den Benutzer dumper@'127.0.0.1', identifiziert durch 'dumper123';
gewähre dumper@'127.0.0.1' Auswahl für *.*;
gewähre dumper@'127.0.0.1' die Ansicht von *.*;
Gewähren Sie Sperrtabellen für *.* für dumper@'127.0.0.1'.
Gewähren Sie Trigger für *.* für dumper@'127.0.0.1';

B: Sichern Sie die Tabelle tempdb.dict__major

1.
mysqldump --host=127.0.0.1 --port=3306 --user=dumper --password=dumper123 --quick tempdb dict__major >/tmp/tempdb.dict__major.sql

C: Löschen Sie die gesicherte Tabelle

1.
mysql>Tabelle tempdb.dict__major löschen;

D: Stellen Sie die Tabelle tempdb.dict__major wieder her.

1.
mysql -uroot -pxxxxx -h127.0.0.1 -p3306 tempdb </tmp/tempdb.dict__major.sql

E: Überprüfen Sie die Gültigkeit der Wiederherstellung

1.
wähle * aus dict__major;

+--------------+-----------------+
| Spaltenwert | Spaltenmittelwert |
+--------------+-----------------+
| 1 | Chinesische Sprache und Literatur |
| 2 | Versicherungsmathematik |
| 3 | Biopharmazeutika |
| 4 | Materialchemie |
| 5 | Wirtschaftsenglisch |
| 6 | Archäologie |
| 7 | Diplomatie |
| 8 | Reiseführer |
+--------------+-----------------+

Der obige Artikel befasst sich kurz mit der MySQL-Sicherung und -Wiederherstellung für eine einzelne Tabelle. Das ist alles, was ich mit Ihnen teilen möchte. Ich hoffe, es kann Ihnen als Referenz dienen. Ich hoffe auch, dass Sie 123WORDPRESS.COM unterstützen werden.

Das könnte Sie auch interessieren:
  • Verwendung von MySQL-Import- und Exportbefehlen zum Sichern und Wiederherstellen
  • Einfache gemeinsame Nutzung von MySQL-Sicherungs- und Wiederherstellungsmethoden
  • Einführung von zwei Methoden zum Sichern und Wiederherstellen von MySQL-Daten
  • MySQL verwendet Befehle zum Sichern und Wiederherstellen der Datenbank
  • PHP implementiert eine MySQL-Datenbank-Sicherungs- und Wiederherstellungsklasseninstanz
  • MySQL-Hinweise: Detaillierte Erklärung zur Datensicherung und -wiederherstellung
  • So verwenden Sie MySQL-eigene Befehle zum Implementieren von Datenbanksicherung und -wiederherstellung
  • Zusammenfassung gängiger Befehle zum Sichern und Wiederherstellen von MySQL-Datenbanken

<<:  js implementiert eine auf Canvas basierende Uhrkomponente

>>:  Detaillierte Erläuterung von 2 Methoden zum Synchronisieren der Netzwerkzeit im Linux/CentOS-System

Artikel empfehlen

Nginx implementiert ein Codebeispiel für die https-Websitekonfiguration

https-Basisport 443. Er wird für etwas verwendet,...

Codeanalyse synchroner und asynchroner SetState-Probleme in React

React entstand als internes Projekt bei Facebook....

Detaillierte Erklärung der Zeit- und Datumsverarbeitung von moment.js

Konvertierung des Zeitformats von Montag auf Sonn...

js implementiert ein einfaches Englisch-Chinesisch-Wörterbuch

In diesem Artikel wird der spezifische Code von j...

Einführung in die MySQL-Gesamtarchitektur

Die Gesamtarchitektur von MySQL ist in die Server...

Sequenzimplementierungsmethode basierend auf MySQL

Das Team ersetzte den neuen Rahmen. Alle neuen Un...

Beispiele für die Implementierung und Verwendung von geplanten MySQL-Aufgaben

Dieser Artikel veranschaulicht anhand von Beispie...

Tipps zur Optimierung von CSS-Schattenanimationen

Diese Technik stammt aus diesem Artikel - So anim...

Tutorial zur Installation und Konfiguration von MySQL Workbench unter CentOS

In diesem Artikel finden Sie das Installations- u...

Lösungen für Probleme bei der Verwendung von addRoutes in Vue-Projekten

Inhaltsverzeichnis Vorwort 1. 404 Seite 1. Ursach...

Lösung für das Versagen von Docker beim Freigeben von Ports

Heute bin ich auf eine sehr seltsame Situation ge...

So installieren Sie OpenJDK in Docker und führen das JAR-Paket aus

Bild herunterladen Docker-Pull OpenJDK Erstellen ...