今天重做服务器系统,有一个不太重要的数据库(就是本站的数据库)忘记备份了。本来想算了,这个站更新比较慢,3个月前备份过一次,只是少了几篇文章而已。
本站使用的是阿里云的服务器,后来有事进入了阿里云的管理控制台,突然想起阿里云每天会自动备份磁盘快照,好像最近7天的数据每天都有一份。于是抱着试试看的态度提交工单询问有没有不停止当前服务器的情况下找回快照内的数据的方法。结果阿里云的工程师果然很专业很热心,帮我把以前的快照挂载到我的服务器上,并且提点了我如何操作。最后成功的从十几个小时前的快照里面恢复出了数据,还多学了点知识。看来今天也是因祸得福了。
下面记录一下步骤,以备以后再用时查看。
第一步:拷贝数据库文件夹
mysql的数据库文件位置可以在my.cnf配置文件中看到,我的配置文件如下:
datadir = /usr/local/mysql/datafile
进入这个目录,可以看到有以数据库名字命名的子目录。例如,我的数据库是maijiaoben,那么在这个目录里面就有一个maijiaoben的子目录。把以前备份的文件复制过来。
第二步:更改文件属主,否则mysql没有权限读写这些文件
chown -R mysql:mysql maijiaoben
第三步:Check表: myisamchk maijiaoben/*.MYI 如果你的当前位置不是数据库文件目录,就要加上绝对路径:myisamchk /usr/local/mysql/datafile/maijiaoben/*.MYI
第四步:重启mysql
这样就OK了。
不得不再次夸一下阿里云,服务不错,售后也不错。即使偶尔自己忘记备份了,发生灾难后也有办法补救。
如果有朋友也要用阿里云的服务器,购买时可以填一下我的推荐码:8jz7br,可以给你打9折。
最新评论