是的,我一不小心把开发环境下数据库的data删除了
show variables like '%datadir%';
对的,就是上面这个路径下的全删了,恐怖。。。。。 当时脑子一片空白,想想还好是开发环境,后面赶快找运维恢复。。
删了这些文件之后,mysql进程还在(这是最好的结果),服务已经挂了。
在看完运维噼里啪啦一顿操作数据库终于恢复好了(有惊无险。。),赶紧抓着这个机会向大佬学习了一波,后来我自己又试着恢复了日志文件,下面就用恢复日志来举例,恢复数据库文件也是一样的过程(但是复杂多了,考虑的东西也多多了)。
注意:这种恢复方法只能恢复那些被进程调用并存在于内存中的文件,如服务的日志文件,数据库的数据等,对于日志和数据库的恢复来说非常有用。
恢复过程:
1、首先先查到我们删除的文件会被哪个关联的进程调用(这个是恢复前提,没有这个就不能恢复),我们可以看到这时运行着redis服务,端口是6380, 这时开着aof 每秒追加的模式。如果对redis持久化不熟悉的可以查 redis学习日记(二):redis 小工具及持久化