如何恢复误删的数据库
前段时间,某开发人员误删了一个数据库,导致我们的服务,最后是恢复了,过程我并不清楚,但引起了我的兴趣。因为误操作真的是很难避免的,开发人员那么多,一个不小心,就可能影响了其他人的使用,所以慎重操作,最好能禁用一些操作,比如drop!
那么如何来恢复呢?
如果有备份的话,当然去寻找最新的,然后恢复,如果不在意新增的数据,那么这样就足够了。
来看一下备份,
// 备份某个数据库某些表
mysqldump [options] db_name [tbl_name ...] > bak.sql
// 备份多个数据库
mysqldump [options] --databases db_name ...> bak.sql
// 备份所有数据库
mysqldump [options] --all-databases> bak.sql
个人建议单个备份,好独立操作。
了解更多请看:
mysqldump
恢复操作(以单个数据库为例)
mysql -h127.0.0.1 -uroot -p del < bak.sql
操作是不是很简单?
那么如果没有备份怎么办呢?
第二种操作前提是开启了binlog,通过log恢复。
误删后可以保存下binlog
mysqlbinlog mysql-bin.000011 > del.log
打开文件,去掉drop操作并保存。
mysql -h127.0.0.1 -uroot -p <del.log
当然,比较建议通过dump全备份操作,然后找出备份到drop的pos。
通过mysqlbinlog 的start-position和stop-position生成sql后恢复。这里就不赘述了。
有兴趣可以看看mysqlbinlog
好了,就说到这里,希望对你有所帮助。
如何恢复误删的数据库
https://blog.puresai.com/2019/01/11/176/