Detaillierte Erläuterung der MySQL-Protokoll- und Sicherungs- und Wiederherstellungsprobleme

Detaillierte Erläuterung der MySQL-Protokoll- und Sicherungs- und Wiederherstellungsprobleme

In diesem Artikel werden MySQL-Protokolle sowie Backups und Wiederherstellungen zu Ihrer Information bereitgestellt. Der spezifische Inhalt ist wie folgt

1. Fehlerprotokoll

Wenn die Datenbank ausfällt und nicht verwendet werden kann, überprüfen Sie zuerst das Protokoll.

1. Informationen beim Starten und Herunterfahren des Servers

2. Fehlerinformationen beim Serverbetrieb

Der Protokollspeicherpfad kann mit dem folgenden Befehl angezeigt werden:

Benennungsformat der Protokolldatei: host_name.err

2. Binäres Protokoll

Es wird auch als BINLOG bezeichnet und zeichnet alle DDL- und DML-Anweisungen mit Ausnahme von Abfrageanweisungen auf. Dieses Protokoll ist nicht nur sehr wichtig, sondern gefällt mir als Entwickler auch sehr gut. Wie aus der Definition ersichtlich, zeichnet dieses Protokoll alle Ereignisse auf, die die Tabellenstruktur und die Tabellendaten ändern. Wenn die Daten also versehentlich gelöscht werden oder aus anderen Gründen verloren gehen, können wir sie über dieses Protokoll wiederherstellen. Findest du es nicht cool?

Protokollspeicherpfad: im selben Verzeichnis wie das Fehlerprotokoll

Benennungsmethode: Die Standardmethode ist Hostname-Bin + Nummer

Jedes Mal, wenn MySQL das Protokoll startet oder leert, wird ein neues Binärprotokoll generiert und die Nummerierung beginnt bei 1 und steigt an. Wenn ein einzelnes Protokoll eine bestimmte Größe erreicht, wird eine neue Datei generiert.

1. Schalten Sie den Schalter zum Aufzeichnen des Binlogs ein

Im Installationsverzeichnis von myslq gibt es eine Konfigurationsdatei: my.ini

innodb_buffer_pool_size=107M

# Größe jeder Protokolldatei in einer Protokollgruppe. Sie sollten die kombinierte Größe festlegen
Anzahl der Protokolldateien auf etwa 25 % bis 100 % der Größe Ihres Pufferpools, um Folgendes zu vermeiden:
# unnötige Pufferpool-Flush-Aktivität beim Überschreiben von Protokolldateien.
# Beachten Sie, dass eine größere Protokolldatei die für die
# Wiederherstellungsprozess.
innodb_log_file_size=54M

# Anzahl der Threads, die im InnoDB-Kernel erlaubt sind. Der optimale Wert
# hängt stark von der Anwendung, der Hardware sowie dem Betriebssystem ab
# Scheduler-Eigenschaften. Ein zu hoher Wert kann zu Thread-Thrashing führen.
innodb_thread_concurency=10

log-bin=mysql-bin

log-bin gibt an, dass der Schalter eingeschaltet ist, und mysql-bin ist das Präfix des Protokollnamens.

2. So zeigen Sie BINLOG an

Da es sich um eine Binärdatei handelt, kann sie nicht direkt wie ein Fehlerprotokoll angezeigt werden. Sie müssen das von MySQL bereitgestellte Tool verwenden: mysqlbinlog

3. BINLOG nach Zeit anzeigen

Bei Abfragen nach Zeit ist zu beachten, dass Startdatum und -zeit ein geschlossenes Intervall und Stoppdatum und -zeit ein offenes Intervall sind. Wenn Sie also das gesamte Tagesprotokoll abfragen müssen, müssen Sie es wie folgt definieren:
--start-datetime="2017/07/12 00:00:00" --stop-datetime="2017/07/13 00:00:00": Der Abfragezeitraum ist 12.07. 00:00:00 - 12.07. 24:59:59

3. Datensicherung

Bei der Datensicherung wird tatsächlich das von msyql bereitgestellte Tool mysqldump verwendet, um Daten in einer angegebenen Datei in einem angegebenen Verzeichnis zu sichern.

1. Sichern Sie die angegebene Datenbank oder einige Tabellen in der Datenbank

mysqldump 【Option】 db_name 【Tabellennamen】

2. Sichern Sie eine oder mehrere angegebene Datenbanken

mysqldump 【Option】 --database db_name1 db_name2

3. Sichern Sie alle Datenbanken

mysqldump [Option] -all -databases

Exportieren Sie die Tabellenstruktur und Tabellendaten in der Datenbank wd_msg in der Datenbankinstanz mit Port 3306 in die Datei cd.sql

Der Inhalt der Datei cd.sql ist wie folgt:

Diese Datei zeichnet DML-Anweisungen und DDL-Anweisungen auf, ausgenommen abfragebezogene Vorgänge. Beim Wiederherstellen von Daten können diese Anweisungen nacheinander ausgeführt werden, um die Datenwiederherstellung abzuschließen.

4. Datenwiederherstellung

Wir löschen die Tabelle und importieren die eben exportierten Daten erneut:

Das folgende Szenario dient der Wiederherstellung der wd_msg-Datenbank in einer anderen MySQL-Instanz mit Port 3307 auf demselben Server.

MySQL-Sicherung und -Wiederherstellung bietet für verschiedene Szenarien unterschiedliche Optionen. Dies ist nur eines der hier vorgestellten Konzepte. Später wird es Artikel geben, die es ausführlich vorstellen.

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird.

Das könnte Sie auch interessieren:
  • Detaillierte Erläuterung der Anweisungen zum Sichern und Wiederherstellen von mysqldump sowie zum Importieren und Exportieren von mysqldump
  • PHP-Code zum Sichern/Wiederherstellen einer MySQL-Datenbank
  • Empfohlene Methoden zur Sicherung und Wiederherstellung von MySQL-Datenbanken
  • Zusammenfassung gängiger Befehle zum Sichern und Wiederherstellen von MySQL-Datenbanken
  • Tutorial zur Verwendung von innobackupex und xtrabackup zum Sichern und Wiederherstellen großer Datenmengen in MySQL
  • Detaillierte Erläuterung der MySQL-Sicherung und -Wiederherstellung (PHP-Implementierung)
  • Zusammenfassung der Anweisungen zum Sichern und Wiederherstellen einer MySQL-Datenbank im Befehlszeilenmodus
  • MySQL verwendet Befehle zum Sichern und Wiederherstellen der Datenbank
  • Wo befindet sich die MySQL-Protokolldatei? So ändern Sie den Speicherort der MySQL-Protokolldatei
  • MySQL verfolgt die ausgeführten SQL-Anweisungen durch Anzeigen des Ablaufverfolgungsprotokolls

<<:  Häufige Verwendung von Hooks in React

>>:  Detaillierte Erklärung, wie Sie das automatische Beenden des Docker-Containers verhindern können

Artikel empfehlen

Ubuntu 16.04 mysql5.7.17 öffnet Remote-Port 3306

Aktivieren Sie den Remotezugriff auf MySQL MySQL-...

Grafische Installationsschritte für VMware vSphere 6.7 (ESXI 6.7)

Umgebung: VMware VCSA 6.7 (VMware-VCSA-all-6.7.0-...

Beispiel für die Implementierung einer eingebetteten Tabelle mit vue+elementUI

Während meines Praktikums im letzten Studienjahr ...

Beispielcode für die Batchbereitstellung von Nginx mit Ansible

1.1 Kopieren Sie das Nginx-Installationspaket und...

Export- und Importvorgänge für Docker-Images

Was ist, wenn die Basis-Images bereits konfigurie...

Einführung in die JWT-Verifizierung mit Nginx und Lua

Inhaltsverzeichnis Vorwort Lua-Skript nignx.conf-...

Vue3.0 implementiert die Fallstudie zum Lupeneffekt

Der zu erzielende Effekt ist: Festes Vergrößern a...

So ändern Sie das MySQL-Datenbankdateiverzeichnis in Ubuntu

Vorwort Der Ubuntu-Server des Unternehmens platzi...

5 Lösungen für den CSS-Box-Zusammenbruch

Zunächst: Was ist ein Box-Collapse? Elemente, die...

Detailliertes Installationstutorial für die MySQL-Zip-Archivversion (5.7.19)

1. Laden Sie die Zip-Archivversion von der offizi...

Eine kurze Diskussion über die Definition und Vorsichtsmaßnahmen von H-Tags

Den Ergebnissen zufolge gibt es für die Definitio...

Zusammenfassung der Verwendung von Datetime und Timestamp in MySQL

Inhaltsverzeichnis 1. Wie wird die aktuelle Uhrze...

Handbuch zur MySQL-Volltextindizierung

Die Volltextindizierung erfordert eine spezielle ...