如何恢复使用"drop database"命令删除的mysql数据库?我可以访问二进制日志,这应该使这种类型的回滚成为可能.
文档很糟糕.它暗示DROP DATABASE是可恢复的,但只有在奇怪的条件下我才不熟悉http://dev.mysql.com/doc/refman/5.0/en/binary-log.html
根据Docs,binlogs只是基于给定参考点执行的一系列命令.因此,当您执行"DROP DATABASE"时,而不是"哦,他会删除数据库,我们现在应该备份以防万一"它只是写了一个"DROP DATABASE"到最后一个binlog.恢复并不像向后播放磁带那么简单.
您需要做的是从最后一个已知的商品中恢复数据库,并应用在该恢复点和DROP命令之间发生的binlog.
http://dev.mysql.com/doc/refman/5.0/en/recovery-from-backups.html
如何确定使用哪些binlog,不清楚.
没有比拥有完整文件系统备份更好的了.你应该至少让这些回归.
如果你没有数据库的备份,那你就不走运了.删除数据库是永久性的.
假设您有备份,二进制日志包含自该备份以来发生的事情.使用mysqlbinlog实用程序,您可以执行以下操作:
mysqlbinlog the_log_file> update.sql
虽然我认为您可能必须编辑该文件以删除任何您不想再次执行的内容(例如drop database语句).
祝好运!