我该如何恢复使用“drop database”命令删除的mysql数据库?我可以访问二进制日志,这应该可以实现此类回滚。
文档很糟糕。它暗示DROP DATABASE可以恢复,但只有在我不熟悉的奇怪情况下才能这样做http://dev.mysql.com/doc/refman/5.0/en/binary-log.html。
根据文档,binlog只是基于给定参考点执行的命令序列。因此,当您执行“DROP DATABASE”时,它不会“哦,他正在删除数据库,我们应该备份以防万一”,而是仅将“DROP DATABASE”写入最后一个binlog。恢复并不像倒带一样简单。
您需要从上一个已知良好状态恢复数据库,并应用从该恢复点到DROP命令之间发生的binlog。
http://dev.mysql.com/doc/refman/5.0/en/recovery-from-backups.html
我不确定如何确定使用哪些二进制日志。
拥有完整的文件系统备份是最好的。至少您应该拥有这些备份以便后续使用。
只是为了补充Kent Fredric的答案,如果您正在使用二进制日志记录自数据库创建以来,您可以回滚drop database
命令。
没有备份,没有派对。
所以我会回答:
为了再也不处于你的情况,安装超级简单和超级强大的 automysqlbackup(如果您在 Linux 上):
sudo apt-get install automysqlbackup
对其进行配置:
sudo nano /etc/default/automysqlbackup
然后自动将其内容上传到 Dropbox、Ubuntu One 或类似的服务中。
只有这样才能幸福地生活 :)