Ursachen und Lösungen für MySQL-Datenverlust

Ursachen und Lösungen für MySQL-Datenverlust

Vorwort

In letzter Zeit erhalten wir gelegentlich Rückmeldungen von Benutzern über fehlende Daten oder Datenverlust. Aus phänotypischer Sicht ist diese Art von Problem auf Datenbankebene das dringendste. Wenn man objektive Bedingungen außer Acht lässt, sind die einzigen Wiederherstellungsmethoden für diese Art von Problem die Wiederherstellung von Backups + Binlog-Wiedergabe, was normalerweise lange dauert und große Auswirkungen auf das Geschäft hat.

Da es sich jedoch um eine Software handelt, die auf Stabilität ausgerichtet ist, ist die Wahrscheinlichkeit eines Datenverlusts tatsächlich sehr gering. Geht es bei diesen Feedback-Problemen also wirklich um „Datenverlust“?

Problembeschreibung

Eines Tages mittags erhielten wir von einem Benutzer die Rückmeldung, dass nach dem Einloggen mit einem Geschäftskonto in die Datenbank die Geschäftsdatenbank verschwunden sei.

Ursachenanalyse

Als ich diese Frage erhielt, war die Atmosphäre immer noch sehr angespannt. Einerseits kontaktierte ich den Benutzer, um den Login zur Datenbank für die Untersuchung zu autorisieren, und andererseits kommunizierte ich mit dem Benutzer, um zu sehen, welche Änderungen kürzlich vorgenommen wurden.

Nachdem ich mich bei der Datenbank angemeldet hatte, stellte ich fest, dass die Geschäftsdatenbank vorhanden war. In Kombination mit dem Feedback des Benutzers: „Die Geschäftsdatenbank ist weg“ stellte ich zunächst fest, dass das Geschäftskonto keine Berechtigungen hatte. Nachdem ich mit Show Grants geprüft hatte, stellte ich fest, dass das Geschäftskonto nur USAGE-Berechtigungen hatte, ähnlich dem folgenden Effekt:

mysql> Berechtigungen anzeigen;
+----------------------------------+
| Zuschüsse für test@% |
+----------------------------------+
| GRANT USAGE ON *.* TO 'test'@'%' |
+----------------------------------+
1 Zeile im Satz (0,00 Sek.)

Da dieses Konto nur über die Mindestberechtigungen verfügt, ist es offensichtlich, dass es „keine Geschäftsdaten sehen kann“, sodass das Problem nach der erneuten Autorisierung behoben war. Nach einer Untersuchung wurde festgestellt, dass der erste Autorisierungsvorgang auf einem anderen Konto mit demselben Namen erfolgte, ähnlich wie:

mysql> Berechtigungen anzeigen;
+-------------------------------------------------------------+
| Zuschüsse für [email protected].% |
+-------------------------------------------------------------+
| GEWÄHREN SIE ALLE PRIVILEGIEN FÜR prd_name.* AN 'test'@'10.120.117.%' |
+-------------------------------------------------------------+
1 Zeile im Satz (0,00 Sek.)

MySQL>

Expandieren

In Bezug auf das Phänomen des „Datenverlusts“: Wenn die Daten auf der gesamten Datenbankebene „verloren“ gehen, die Datenbank selbst jedoch normal ist, besteht eine hohe Wahrscheinlichkeit, dass das Problem dasselbe ist wie in diesem Fall: ein Berechtigungsfehler. Dieses Problem kann grundsätzlich auf zwei Arten auftreten: 1. Das angemeldete Konto stimmt mit einem anderen Konto mit gleichem Namen überein. 2. Es liegt ein Autorisierungsproblem vor, sodass das Geschäftskonto keine Berechtigungen besitzt. Der schlimmste Fall ist natürlich definitiv der Vorgang zum Löschen der Datenbank. Nur durch Parsen des Binärprotokolls kann der Ausführungszeitpunkt dieses Vorgangs ermittelt werden.

Die andere Kategorie ist der „teilweise Datenverlust“, z. B. wenn eine Tabelle fehlt oder einige Daten in der Tabelle fehlen usw. Genau genommen können derartige Probleme auch durch Berechtigungsfehler verursacht werden, denn die Berechtigungskontrolle von MySQL kann zwar auf Tabellen- und Spaltenebene erfolgen, wird in der Realität aber im Allgemeinen nicht genutzt. In den meisten Fällen liegt es an einer fehlerhaften Bedienung, beispielsweise einer fehlenden Where-Bedingung beim Aktualisieren oder Löschen. In diesem Fall können Sie nur das historische Backup verwenden und dann mit Binlog wiederherstellen. Dieser Vorgang ist in der Tencent Cloud als „Rollback“-Funktion gekapselt.

Um zusammenzufassen

Wenn Sie auf diese Art von Problem stoßen, können Sie sich einen Moment Zeit nehmen, um das Problem zu beobachten. Die erneute Autorisierung kann nur wenige Sekunden dauern, um dieses sehr dringende und schwerwiegende Problem des „Datenverlusts“ zu lösen.

Oben sind die detaillierten Gründe und Lösungen für MySQL-Datenverlust aufgeführt. Weitere Informationen zum MySQL-Datenverlust finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM!

Das könnte Sie auch interessieren:
  • Lösen Sie das Problem des MySQL-Datenverlusts, wenn Docker Redis neu startet
  • Lösung für das Problem des Datenverlusts bei Verwendung der Ersetzungsoperation in MySQL
  • Mehrere Lösungen zur Vermeidung von MySQL-Datenverlust bei einem Serverausfall
  • Fehlerbehebung bei MySQL-Datenverlust

<<:  Zusammenfassung der Spring Boot Docker-Verpackungstools

>>:  Vue+axios-Beispielcode zum Hochladen von Bildern und Erkennen von Gesichtern

Artikel empfehlen

Verstehen Sie die Implementierung des Nginx-Standortabgleichs in einem Artikel

Da das Team Front-End und Back-End trennt, überni...

So gehen Sie nach der MySQL-Tabellenpartitionierung problemlos online

Inhaltsverzeichnis Zweck der Tabelle Zum Beispiel...

14 Techniken für leistungsstarke Websites

Original : http://developer.yahoo.com/performance...

Implementierung mehrerer Tomcat-Instanzen auf einer einzigen Maschine

1. Einleitung Zunächst müssen wir eine Frage bean...

So zeigen Sie im Hintergrund laufende Programme in Linux an und schließen sie

1. Führen Sie die .sh-Datei aus Sie können es dir...

Eine kurze Diskussion über zwei Strombegrenzungsmethoden in Nginx

Die Belastung wird im Allgemeinen während des Sys...

So implementieren Sie einen Animationsübergangseffekt im Frontend

Inhaltsverzeichnis Einführung Traditionelle Überg...

Detaillierte Erklärung der Sperrstruktur in MySQL

Mysql unterstützt 3 Arten von Sperrstrukturen Spe...

Vue implementiert Drag & Drop oder Klicken zum Hochladen von Bildern

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

Tutorial zur Installation von VMware, Nmap und Burpsuite

Inhaltsverzeichnis VMware BurpSuite 1. Virtuelles...