MySQL-Sicherung Kaltes Backup: Hot-Backup: Die MyIsam-Engine von MySQL unterstützt nur Cold Backup, während InnoDB Hot Backup unterstützt. Die Gründe dafür sind: Die InnoDB-Engine ist eine transaktionale Speicher-Engine. Jede Anweisung wird in ein Protokoll geschrieben und jede Anweisung hat einen Zeitpunkt im Protokoll. Beim Sichern kann MySQL daher auf der Grundlage dieses Protokolls Redo- und Undo-Operationen durchführen, Transaktionen rückgängig machen, die während des Sicherns nicht festgeschrieben wurden, und festgeschriebene Transaktionen wiederherstellen. MyIsam kann dies jedoch nicht. MyIsam verfügt über keine Protokolle. Um Konsistenz zu gewährleisten, können Sie die Tabelle nur zum Sichern herunterfahren oder sperren. InnoDB unterstützt nicht das direkte Kopieren des gesamten Datenbankverzeichnisses und die Verwendung des Tools mysqlhotcopy für die physische Sicherung: 1. Kopieren Sie das gesamte Datenbankverzeichnis direkt. Da die MySQL-Tabelle als Datei gespeichert wird, können Sie das Speicherverzeichnis und die Dateien der MySQL-Datenbank zur Sicherung direkt kopieren. Der Speicherort des MySQL-Datenbankverzeichnisses ist nicht unbedingt derselbe. Auf Windows-Plattformen ist das Verzeichnis, in dem MySQL5.6 die Datenbank speichert, normalerweise standardmäßig ~\MySQL\MYSQL Server 5.6\data oder ein anderes benutzerdefiniertes Verzeichnis. Diese Methode gilt nicht für Tabellen, die die Speicher-Engine INNODB verwenden. Mit dieser Methode gesicherte Daten werden am besten auf einem Server derselben Version wiederhergestellt. Verschiedene Versionen sind möglicherweise nicht kompatibel. Beim Wiederherstellen können Sie die Sicherungsdatei direkt in das MySQL-Datenverzeichnis kopieren, um sie wiederherzustellen. Bei dieser Wiederherstellungsmethode müssen Sie sicherstellen, dass die Hauptversionsnummer der Datenbank der Sicherungsdaten und des wiederherzustellenden Datenbankservers identisch sind. Darüber hinaus ist diese Methode nur für die MYISAM-Engine gültig und nicht für Tabellen verfügbar, die die InnoDB-Engine verwenden. Bevor Sie die Wiederherstellung durchführen, beenden Sie den MySQL-Dienst, überschreiben Sie das MySQL-Datenverzeichnis mit den gesicherten Dateien oder Verzeichnissen und starten Sie den MySQL-Dienst. 2. Verwenden Sie das Tool mysqlhotcopy für eine schnelle Sicherung Eine kurze Einführung in mysqldump Backup mysqldump kann zwei Arten von Ausgabedateien erzeugen, abhängig davon, ob die Option -tab=dir_name verwendet wird oder nicht. Ohne die Option -tab=dir_name ist die von mysqldump generierte Datendatei eine reine Text-SQL-Datei, die aus CREATE-Anweisungen (Datenbank, Tabelle, Speicherpfad usw.) und INSERT-Anweisungen (Datensatz) besteht. Die Ausgabeergebnisse werden in einer Datei gespeichert und die Sicherungsdatei kann mit dem MySQL-Befehl wiederhergestellt werden. Mit der Option -tab=dir_name generiert mysqldump zwei Ausgabedateien für jede zu sichernde Datentabelle: eine ist eine durch Trennzeichen getrennte Textdatei, in der jede Zeile der gesicherten Datentabelle als Textzeile gespeichert ist, gespeichert als „Tabellenname.txt“; die andere Ausgabedatei ist die CREATE TABLE-Anweisung der Datentabelle, gespeichert als „Tabellenname.sql“. mysqldump-Syntax und -Optionen 【Befehl】 - -all-databases bedeutet, dass alle Datenbanken im System gesichert werden. Nach der Verwendung des Parameters - -databases müssen Sie den Namen von mindestens einer Datenbank angeben. Mehrere Datenbanknamen werden durch Leerzeichen getrennt. Häufig verwendete Optionen - -Tabelle hinzufügen/ablegen --add-locks - -Tab -quick oder -opt -Kommentare überspringen - -kompakt Sichern von Daten im SQL-Format Wenn der Speicherort im Dateinamen .sql der Sicherungsdatei nicht angegeben ist, wird sie standardmäßig im Verzeichnis ~\MySQL\MySQL Server 5.6\bin abgelegt. Geben Sie den Pfad zur Datensicherung an: Rufen Sie mysqldump mit der Option --all-databases auf, um alle Datenbanken zu sichern. Rufen Sie mysqldump mit der Option --databases auf, um die angegebenen Datenbanken zu sichern. Rufen Sie mysqldump auf, um eine bestimmte Datenbank zu sichern: Verwenden Sie mysqldump ohne die Option --databases, um eine bestimmte Datenbank zu sichern. Die generierte Sicherungsdatei enthält keine CREATE DATABASE- und USE-Anweisungen: Hinweis: Beim Sichern einer Datenbank kann -databases weggelassen werden. Dies führt jedoch dazu, dass der Sicherungsdateiname .sql keine CREATE DATABASE- und USE-Anweisungen enthält. Beim Wiederherstellen der Sicherungsdatei müssen Sie einen Standarddatenbanknamen angeben, damit der Server weiß, in welche Datenbank die Sicherungsdatei wiederhergestellt werden soll. Dies kann dazu führen, dass Sie einen Datenbanknamen verwenden, der sich vom ursprünglichen Datenbanknamen unterscheidet. Rufen Sie mysqldump auf, um mehrere Tabellen in einer Datenbank zu sichern: Wiederherstellen von Sicherungsdateien im SQL-Format Wenn die Option --all-databases oder --databases für die von mysqldump gesicherte Datei verwendet wird, enthält die Sicherungsdatei CREATE DATABASE- und USE-Anweisungen, sodass Sie keinen Datenbanknamen angeben müssen, um die Sicherungsdatei wiederherzustellen. Im Shell-Befehl: Shell> mysql –u Benutzername –p < Sicherungsdatei.sql Verwenden Sie unter dem MySQL-Befehl den Quellbefehl, um die Sicherungsdatei zu importieren: mysql> Quellsicherungsdatei.sql; // Bereits bei mysql angemeldet, verwenden Sie den Quellbefehl Wenn eine einzelne Datenbank durch mysqldump gesichert wird und die Option --databases nicht verwendet wird, enthält die Sicherungsdatei keine CREATE DATABASE- und USE-Anweisungen. Daher muss die Datenbank beim Wiederherstellen zuerst erstellt werden. Im Shell-Befehl: Shell> mysqladmin –u Benutzername –p Datenbankname erstellen //Datenbank erstellen Shell> mysql –u Benutzername –p Datenbankname < Sicherungsdatei.sql Unter dem MySQL-Befehl: mysql> DATENBANK ERSTELLEN, WENN NICHT VORHANDEN Datenbankname; mysql> USE-Datenbankname; mysql> Quellsicherungsdatei.sql; Hinweis: Der Quellbefehl kann nur in der cmd-Schnittstelle ausgeführt werden und kann nicht im MySQL-Tool ausgeführt werden. Es wird ein Fehler gemeldet, da cmd mysql.exe direkt aufruft, um Befehle auszuführen. Sichern Sie Daten im durch Trennzeichen getrennten Textdateiformat Rufen Sie mysqldump mit der Option - -tab=dir_name auf, um die Datenbank zu sichern, wobei dir_name das Verzeichnis der Ausgabedateien darstellt. In diesem Verzeichnis werden für jede zu sichernde Tabelle zwei Dateien generiert. Beispielsweise enthält eine Tabelle mit dem Namen t1 zwei Dateien: t1.sql und t1.txt. Die SQL-Datei enthält die Anweisung CREATE TABLE. Eine Zeile in der TXT-Datei ist ein Datensatz in der Datentabelle, und Spaltenwerte sind durch „Tabulatoren“ getrennt. Hinweis: Die Verwendung von mysqldump mit der Option --tab=dir_name empfiehlt sich nur auf einem lokalen Server. Denn wenn es auf einem Remote-Server verwendet wird, existiert das durch - -tab generierte Verzeichnis sowohl auf dem lokalen Host als auch auf dem Remote-Host, die TXT-Datei wird vom Server in das Verzeichnis des Remote-Hosts geschrieben und die SQL-Datei wird in das Verzeichnis des lokalen Hosts geschrieben. Rufen Sie mysqldump mit der Option -tab=dir_name auf, um die Datenbank zu sichern [Beispiel] Verwenden Sie mysqldump mit der Option - -tab=dir_name, um den Datenbanktest zu sichern und auf Laufwerk D abzulegen: Tabellen in der Testdatenbank: Führen Sie den Sicherungsbefehl aus: Die Ausgabeergebnisse: Stellen Sie eine Sicherungsdatei im durch Trennzeichen getrennten Textdateiformat wieder her. Verwenden Sie den MySQL-Befehl, um die SQL-Datei zu verarbeiten und die Tabellenstruktur wiederherzustellen, und verarbeiten Sie dann die TXT-Datei, um die Datensätze zu laden. Shell> mysql –u Benutzername –p Datenbankname < Tabellenname.sql //Tabellenstruktur wiederherstellen Shell> mysqlimport –u Benutzername –p Datenbankname Tabellenname.txt //Datensätze wiederherstellen Alternativ können Sie LOAD DATA INFILE anstelle des Befehls mysqlimport verwenden, dieses Mal müssen Sie jedoch den Befehl mysql verwenden: mysql> Datenbankname verwenden; //Datenbank auswählenmysql> DATEN INFILE 'Tabellenname.txt' IN TABELLE LOAD table name; //Datensätze wiederherstellen [Beispiel] Stellen Sie die Stucou-Tabelle in der Testdatenbank wieder her: Überprüfen Sie die Tabellen in der Testdatenbank, und es gibt keine Stucou-Tabelle: Stellen Sie die Stucou-Tabellenstruktur mithilfe der Datei stucou.sql wieder her: Die Stucou-Datentabelle wurde erfolgreich wiederhergestellt: Es gibt keine Datensätze in der Stucou-Datentabelle: Stellen Sie die Datensätze der Stucou-Tabelle mithilfe der Datei stucou.txt wieder her: Verwenden Sie den MySQL-Befehl, um die Zwischenergebnisse der Abfrage zu exportieren Importieren von Abfrageergebnissen in eine Textdatei mysql ist ein Tool-Befehl mit vielen Funktionen. Sie können mysql auch verwenden, um SQL-Anweisungen im Befehlszeilenmodus auszuführen und Abfrageergebnisse in Textdateien zu importieren. Im Vergleich zu mysqldump sind die vom MySQL-Tool exportierten Ergebnisse besser lesbar. Wenn es sich bei dem MySQL-Server um eine separate Maschine handelt und der Benutzer auf einem Client arbeitet, kann er die Datenergebnisse mit der Anweisung mysql -e in die Client-Maschine importieren. 【Befehl】: Dieser Befehl verwendet die Option --execute, was bedeutet, dass die Anweisung nach dieser Option ausgeführt und beendet wird. Die folgende Anweisung muss in doppelte Anführungszeichen gesetzt werden. dbname ist der Name der zu exportierenden Datenbank. Verschiedene Spalten in der exportierten Datei sind durch Tabulatoren getrennt. Die erste Zeile enthält die Feldnamen. [Beispiel] Verwenden Sie den MySQL-Befehl, um die Datensätze der Personentabelle der Testdatenbank in eine Textdatei zu exportieren: Der Inhalt von person3.txt ist wie folgt ID Name Alter Beruf 1 grün 29 Anwalt 2 Suse 26 Tänzerin 3 Evans 27 Sportler 4 Mary 26 Sängerin Wie Sie sehen, enthält die Datei person3.txt den Namen jedes Felds und jedes Datensatzes. Wenn eine Datensatzzeile viele Felder enthält, kann sie möglicherweise nicht vollständig in einer Zeile angezeigt werden. Sie können den Parameter -vertical verwenden, um jeden Datensatz in mehrere Zeilen aufzuteilen. [Beispiel] Verwenden Sie den MySQL-Befehl, um die Personentabelle der Testdatenbank zu exportieren, und verwenden Sie den Parameter –vertical, um Folgendes anzuzeigen: *************************** 1. Reihe *************************** ID: 1 Name: grün Alter: 29 Beruf: Rechtsanwalt *************************** 2. Reihe *************************** ID: 2 Name: suse Alter: 26 Beruf: Tänzerin *************************** 3. Reihe *************************** ID: 3 Vorname: evans Alter: 27 Beruf: Sportler *************************** 4. Reihe *************************** Nr.: 4 Name: Maria Alter: 26 Beruf: Sängerin
Importieren der Abfrageergebnisse in eine HTML-Datei Verwenden Sie den MySQL-Befehl, um die Datensätze der Personentabelle der Testbibliothek in eine HTML-Datei zu exportieren. Die Eingabeanweisung lautet wie folgt Shell> mysql -u root -p --html --execute="SELECT * FROM PERSON;" Test > C:\person5.html Importieren der Abfrageergebnisse in eine XML-Datei Wenn Sie in eine XML-Datei exportieren möchten, verwenden Sie die Option –xml, um mit dem MySQL-Befehl die Datensätze in der Personentabelle der Testbibliothek in eine XML-Datei zu exportieren. Shell> mysql -u root -p --xml --execute="SELECT * FROM PERSON;" Test > C:\person6.xml <?xml version="1.0"?> <resultset-Anweisung="SELECT * FROM PERSON" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <Zeile> <Feldname="ID">1</Feld> <Feldname="Name">grün</Feld> <Feldname="Alter">29</Feld> <Feldname="Job">Rechtsanwalt</Feld> </row> <Zeile> <Feldname="ID">2</Feld> <Feldname="Name">suse</Feld> <Feldname="Alter">26</Feld> <field name="job">Tänzer</field> </row> <Zeile> <Feldname="ID">3</Feld> <Feldname="Name">evans</Feld> <Feldname="Alter">27</Feld> <field name="job">Sportler</field> </row> <Zeile> <Feldname="ID">4</Feld> <Feldname="Name">Mary</Feld> <Feldname="Alter">26</Feld> <field name="job">Sänger</field> </row> </Ergebnismenge> Dies ist das Ende dieses Artikels über die Implementierung von MySQL 5.7 mysqldump Backup und Recovery. Weitere relevante Inhalte zu MySQL mysqldump Backup und Recovery finden Sie in den vorherigen Artikeln von 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird! Das könnte Sie auch interessieren:
|
>>: Der Prozess zum Erstellen eines Jenkins-Projekts unter Linux (am Beispiel von CentOS 7)
Gelegentlich werden Sie in den Daten Zeichen wie ...
Inhaltsverzeichnis I. Überblick 2. Konventionelle...
Code der Front-End-Testseite: <Vorlage> <...
Domänenübergreifende Lösungen jsonp (get simulier...
Mit Flash konnten Designer und Entwickler umfangr...
Vorwort Heute bin ich in Nginx auf ein sehr selts...
Ich habe kürzlich an einem Projekt gearbeitet – Bu...
Inhaltsverzeichnis Stellen Sie nginx auf Server1 ...
MySQL ist ein relationales Datenbankverwaltungssy...
Inhaltsverzeichnis Komplexe Abfrage und schrittwe...
1. Beschreiben Sie kurz die traditionelle LRU-ver...
Inhaltsverzeichnis Der Ursprung von JSBridge Das ...
Unter den klassischen Farbkombinationen kann wohl...
Typische MySQL-Szenarien: Schnittmenge und Differ...
Temporäre Tabellen und Speichertabellen Eine Spei...