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.

War es hilfreich?

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: - (.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit dba.stackexchange
scroll top