Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Wie stelle ich von einem Befehl zum Löschen einer Datenbank mithilfe eines mysql-Binärprotokolls wieder her?

Dokumentation ist scheiße. Es spielt darauf an, dass DROP DATABASE wiederherstellbar ist, aber nur unter seltsamen Bedingungen bin ich mit http://dev.mysql.com/doc/refman/5.0/en/binary-log.html

Laut Docs sind Binlogs nur eine Folge von Befehlen, die basierend auf einem bestimmten Referenzpunkt ausgeführt werden. Wenn Sie also "DROP DATABASE" gemacht haben, anstatt zu sagen "Oh, er hat die Datenbank gelöscht, wir sollten jetzt für alle Fälle ein Backup machen", hat es lediglich ein "DROP DATABASE" in das letzte Binlog geschrieben. Die Wiederherstellung ist nicht so einfach, wie das Band rückwärts abzuspielen.

Was Sie tun müssen, ist, die Datenbank von einem letzten als funktionierend bekannten Punkt wiederherzustellen und die Binlogs anzuwenden, die zwischen diesem Wiederherstellungspunkt und dem DROP-Befehl aufgetreten sind.

http://dev.mysql.com/doc /refman/5.0/en/recovery-from-backups.html

Wie man bestimmt, welche Binlogs verwendet werden sollen, ist unklar.

Es gibt nichts Besseres als vollständige Sicherungen des Dateisystems. Und auf diese sollten Sie zumindest zurückgreifen können.