Eine vollständige Sicherung besteht darin, alle Daten und alle Objekte in der Datenbank zu sichern.
Da es sich bei den Datendateien auf dem MySQL-Server um festplattenbasierte Textdateien handelt, besteht eine vollständige Sicherung darin, die Datenbankdatei zu kopieren, was der einfachste und schnellste Weg ist.
Allerdings sind die Datendateien des MySQL-Servers immer geöffnet, während der Server läuft. Um eine echte Vollsicherung zu erreichen, muss der MySQL-Datenbankserver zuerst gestoppt werden.
Um die Integrität der Daten sicherzustellen, müssen Sie vor dem Stoppen des MySQL-Servers die Flush-Tables-Anweisung ausführen, um alle Daten in die Datendatei zu schreiben. Die Studierenden müssen lediglich wissen, dass diese Methode nicht durchführbar ist, da es nicht ratsam ist, die Datenbank für die Sicherung in einer Produktionsumgebung anzuhalten.
Verwenden Sie den Befehl mysqldump, um Tabellen, Datenbanken und Datenbanksysteme zu sichern:
mysqldump [-h主机名] –u用户名 –p密码 --lock-all-tables --database [tables] > 文件名
-h Hostname, der weggelassen werden kann, stellt den lokalen Server dar, --lock-all-tables wendet Lesesperren auf alle Tabellen an Die zu sichernde Datenbank (Während dieses Vorgangs befindet sich die Datenbank ausschließlich im schreibgeschützten Zustand), kann auf --database die Tabelle folgen, die gesichert werden muss. Wenn der Tabellenname nicht angegeben ist, bedeutet dies, dass die Datenbank gesichert werden muss gesamte Datenbank.
Bereiten Sie eine Schülertabelle vor und erstellen Sie die Tabelle in der Weltdatenbank.
Tabelle erstellen:
CREATE DATABASE world; USE world; CREATE TABLE student( stuId INT(10) NOT NULL, stuName VARCHAR(10) NOT NULL, stuAge INT(10) NOT NULL, PRIMARY KEY(stuId) );
Daten einfügen:
INSERT INTO student(stuId, stuName, stuAge) VALUES(1, 'zhangsan', 18), (2, 'lisi', 19),(3, 'wangwu', 18);
Verwenden Sie die flush tables;
-Anweisung, um alle Daten in die Datendatei zu schreiben:
FLUSH TABLES;
Verlassen Sie die MySQL-Umgebung und verwenden Sie die .mysql dump-Befehl, um eine vollständige Sicherung zu erstellen der Datenbankwelt:
mysqldump -u root -p --lock-all-tables --databases world > /tmp/world.sql
Geben Sie das Verzeichnis /tmp ein und sehen Sie sich die Sicherungsdatei an:
cd /tmp ls
Jetzt haben wir die Weltbibliothek vollständig gesichert und haben keine Angst vor Datenverlust.
Simulieren Sie den Verlust der Schülertabelle in der Weltdatenbank:
DROP TABLE student;
Bestätigen Sie, dass die Tabelle gelöscht wurde
SHOW TABLES;
Verwenden Sie den MySQL-Befehl, um die Datenbank wiederherzustellen:
mysql -uroot -p < /tmp/world.sql
Betreten Sie die MySQL-Umgebung und Sehen Sie sich die Wiederherstellungsergebnisse an:
SHOW TABLES;
Ausgabeergebnis:
Überprüfen Sie die Daten in der Tabelle:
SELECT * FROM student;
Bei der inkrementellen Sicherung werden Daten gesichert, die sich seit der letzten vollständigen oder inkrementellen Sicherung geändert haben Sicherung. Es basiert auf binären Protokolldateien und muss das Binlog-Protokoll öffnen. Führen Sie zunächst eine vollständige Sicherung der Datenbank durch und aktualisieren Sie gleichzeitig das Binlog-Protokoll. Alle Vorgänge nach dieser Sicherung werden im neuen Binlog-Protokoll aufgezeichnet. Wir müssen nur das hinzugefügte Binlog-Protokoll sichern, um die kontinuierliche Erweiterung des Inhalts zu realisieren. Eine perfekte Sicherung der Datenbank. Wenn in der Datenbank eine Anomalie auftritt, können wir zunächst die letzte vollständige Sicherung wiederherstellen und dann die inkrementellen Sicherungsdateien nacheinander wiederherstellen, um eine Datenbankwiederherstellung zu erreichen.
Das obige ist der detaillierte Inhalt vonSo implementieren Sie eine vollständige Sicherung und inkrementelle Sicherung der MySQL-Datenbank. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!