In MySQL gibt es logische Backups und physische Backups. Der größte Vorteil der logischen Sicherung besteht darin, dass dieselbe Methode für die Sicherung verschiedener Speicher-Engines verwendet werden kann. Die physische Sicherung ist unterschiedlich und verschiedene Speicher-Engines verfügen über unterschiedliche Sicherungsmethoden.
In MySQL verwendet die logische Sicherung mysqldump, um die Daten in der Datenbank als Textdatei zu sichern. Die gesicherte Datei kann angezeigt werden und bearbeitet. Je nach Backup-Umfang kann das Backup in die folgenden drei Backup-Typen unterteilt werden.
Eine bestimmte Datenbank oder einige Tabellen in der Datenbank sichern
mysqldump [Optionen] Datenbankname [Tabellenname] > data.sql
Mehrere angegebene Datenbanken sichern
mysqldump [Optionen] –database > data.sql Datenbank 1 Datenbank 2 Datenbank 3...
Alle Datenbanken sichern
mysqldump [Optionen] –all-database > data.sql
Analyse: [Optionen] Beim Sichern erforderliche Berechtigungsinformationen usw. Es gibt viele Optionen für mysqldump, die über mysqldump –help angezeigt werden können. Um die Konsistenz der Datensicherung sicherzustellen, müssen Sie den Parameter -l hinzufügen, wenn sich die MySQL-Speicher-Engine im Norden befindet. Dies bedeutet, dass alle Tabellen während des Sicherungszeitraums nur gelesen werden , nicht geschrieben. Aber für die InnoDB-Engine kann –single-transaction verwendet werden. Von data.sql gesicherte Parameter der Datendatei
:
l: stellt das Sperren aller Tabellen dar
f: stellt das Erzeugen einer neuen Datumsdatei dar
Die Instanz wird xxpt sein Alle Tabellen in der Datenbank werden in der Tabelle dequan.sql gesichert. Der Befehl lautet wie folgt:
mysqldump -uroot -p xxpt >dequan.sql
Da ich oben den Sicherungspfad nicht angegeben habe, erfolgt die Sicherung standardmäßig auf dem aktuellen Pfad , daher erfolgt die Sicherung nach D:wampbinmysqlmysql5. Der .6.17bin-Pfad ist ausgefallen.
Mysqldump-Wiederherstellung ist ebenfalls sehr einfach, verwenden Sie einfach die Sicherung als Eingabe. Die Ergebnisse lauten wie folgt:
mysql -uroot -p dbname
Die unvollständige Wiederherstellung umfasst eine zeitpunktbasierte Wiederherstellung und eine standortbasierte Wiederherstellung. Zeitpunkt und Position entsprechen dem Zeitpunkt und der Position im Binärprotokoll (Binlog-Protokoll).
Wenn der Datenraum zwischen 16:00 und 17:00 Uhr falsch eingestellt ist, muss er während der Wiederherstellung übersprungen werden . Werfen wir zunächst einen Blick auf das Binlog-Protokoll. Beispielsweise ist das Aktualisieren von Daten nach 16:00 Uhr falsch und muss bei der Wiederherstellung übersprungen werden. Das Löschen von Daten nach 17:00 Uhr ist korrekt und muss beibehalten werden.
1. Über mysql -uroot -p dbname
Bei Verwendung der Standortwiederherstellung müssen wir zunächst die Binlog-Protokolldatei überprüfen, um dies festzustellen die Standortnummer und verwenden Sie dann den folgenden Befehl zum Wiederherstellen:
mysqlbinlog D:wampbinmysqlmysql5.6.17datamybinlog.000012 –stop-position=716406|mysql -uroot -p
Wiederherstellungsvorgänge nach 5 Punkten
D: wampbinmysqlmysql5.6.17datamybinlog .000012 –start-position=723613|mysql -uroot -p
Physische Sicherung ist in Kaltsicherung und Heißsicherung unterteilt . Im Vergleich zur logischen Sicherung liegt der größte Vorteil in der schnellen Sicherungs- und Wiederherstellungsgeschwindigkeit. Denn das Prinzip der physischen Sicherung basiert auf Datei-CP.
Kalte Sicherung ist eigentlich eine Methode zum Stoppen des Datenbankdienstes und zum Kopieren der Datendateien. Diese Methode ist sowohl für MyISAM als auch für InnoDB geeignet.
Wiederherstellen: Stoppen Sie zuerst den MySQL-Dienst, stellen Sie die MySQL-Datendateien auf Betriebssystemebene wieder her, starten Sie dann den MySQL-Dienst neu und verwenden Sie das Mysqlbinlog-Tool, um alle Binlogs seit der Sicherung wiederherzustellen.
Das Hot-Backup verschiedener Speicher-Engines in MySQL ist unterschiedlich.
Das Sicherungsprinzip der MyISAM-Speicher-Engine besteht darin, der zu sichernden Tabelle eine Lesesperre hinzuzufügen und dann die Datendatei in das Sicherungsverzeichnis zu kopieren. Häufig verwendete Methoden
Methode 1: Verwenden Sie mysqlhotcop
mysqlhotcop db_name [Verzeichnis]
Methode 2: Tabellenkopie manuell sperren
Fügen Sie zunächst Lesesperren für alle Tabellen in der Datenbank hinzu und kopieren Sie dann die Daten.
Alle Tabellen mit Lesesperre sperren
Lernen...
Verwenden Sie den Befehl SELECT …INTO OUTFILE …+[Optionen], um
Die Optionsparameter lauten wie folgt
Der Standardpfad ist der Pfad, der den Daten entspricht:
Verwenden Sie mysqldump
mysqldump - u Benutzername -T Zielverzeichnis Datenbankname Tabellenname[Optionen]
Zum Beispiel:
mysqldump -uroot -p -T D:/wamp/bin/mysql/mysql5.6.17/ xxpt t1
Zwei Dateien werden generiert, wie gezeigt unten:
Dateninformationen werden in t1.txt gespeichert. Der Inhalt der t1.sql-Datei ist wie folgt
-- MySQL dump 10.13 Distrib 5.6.17, for Win32 (x86) ---- Host: localhost Database: xxpt -- ------------------------------------------------------ -- Server version 5.6.17-log /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; /*!40101 SET NAMES utf8 */;/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; /*!40103 SET TIME_ZONE='+00:00' */;/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='' */; /*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; ---- Table structure for table `t1`--DROP TABLE IF EXISTS `t1`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `t1` ( `id1` int(11) NOT NULL DEFAULT '0', `id2` int(3) unsigned zerofill NOT NULL DEFAULT '000') ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; /*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; /*!40101 SET SQL_MODE=@OLD_SQL_MODE */; /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; /*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; -- Dump completed on 2016-04-18 19:30:51
Methode 1:
Datenindatei laden
z. B.:
Datenindatei „D:/wamp/bin/mysql/mysql5.6.17/t1.txt“ in Tabelle t1 laden
Methode 2: Verwenden Sie mysqlinport
Das Obige ist die detaillierte Erklärung der MySQL-Sicherung und -Wiederherstellung. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn). )!