So testen Sie MySQL für Änderungen
-
26-09-2020 - |
Frage
Ich bin OCD-Person, ich glaube, ich habe versehentlich etwas in mein MySQL fallen gelassen.
Problem ist, dass ich rund 50 Datenbanken habe, und ich kann nicht alles manuell überprüfen: (
Gibt es eine Möglichkeit, auf diese Art von Änderungen zu überprüfen?Ich habe versucht, Timestamps in / var / lib / mysql anzusehen, aber es hat nicht geholfen, ich sah Verzeichnis-Zeitstempel an.
Ich rannte auch:
SELECT table_schema,table_name,update_time
FROM information_schema.tables
WHERE update_time > (NOW() - INTERVAL 1 day)
Es wurden nur Datenbanken in den letzten SECs geändert.
Lösung
Nachdem Sie mit der Tabelle Information_Schema.tables herumgeflutscht sind, entdeckte ich endlich die Antwort auf Ihr Problem - Aktualisierungszeit funktioniert nicht für InnoDB. Sehen Sie sich die Punkte hier von a Out und Ajacian81.
Der einzige Weg, den Sie tun können, ist das Implementieren von Protokollierungstabellen (wie von Bill Karwin vorgeschlagen, ein bisschen ein MySQL / Datenbank Guru).
Die einzige andere Sache, an die ich denken kann, ist, ein Backup zu verwenden, und verwenden Sie ein Diff-Programm, um den Textausgang von Abfragen von Ihrer aktuellen und Backup-Datenbank zu vergleichen. Schrecklich weiß ich, aber es gibt Werkzeuge, die dies tun können, wenn es kritisch ist. Es gibt MySQLs eigene (MySqldiff - In Dienstprogramme), Sie könnten versuchen, liquiBase oder flyaway (was ich glaube, diese Funktionalität haben) oder Google" Datenbank-Diff-Programme MySQL ".
Ich fand auch diese post hilfreich, wenn die Information_Schema-Tabellen dynamisch sind.
Ich bin vielleicht auch ein bisschen OCD (kann das nicht gehen lassen! :-)) Aber ich habe auch Dieser Thread - Check-out der Antwort von Jacket - Percona kann der Weg sein, wenn Sie in echtem Bedarf dieser Funktionalität sind. Es ist jedoch offensichtlich zu spät für Ihre besondere Situation. Ich denke, es ist Backups für Sie: - (.