一、背景:公司有一个单机网站,平时仅用来发布新闻和公告的CMS的平台。主机为阿里云主机,半个月或者一个月才有运营的同事来进行一些公司新闻的发布。所以为了节省成本也没有做其他任何阿里云安全防护产品。
二、故障问题:
1、ssh无法远程主机
2、mysql无法启动
3、数据库的备份是3个月以前的
阿里云危险提醒
记一次阿里云主机遭到矿机导致网站瘫痪的修复记录_第1张图片
提交工单和阿里工程师进行沟通处理
记一次阿里云主机遭到矿机导致网站瘫痪的修复记录_第2张图片
记一次阿里云主机遭到矿机导致网站瘫痪的修复记录_第3张图片
记一次阿里云主机遭到矿机导致网站瘫痪的修复记录_第4张图片
阿里工程师尝试修复失败,由于挖矿程序导致文件受损。哎~确实没辙。。。
但是阿里的工程师提供了一种解决方案
记一次阿里云主机遭到矿机导致网站瘫痪的修复记录_第5张图片

 售后工程师 :    快照是记录的磁盘当时状态,如果快照时间点就是异常的,直接回滚,也是异常的。
意思是您先针对实例创建快照(有快照可以不必再操作):
https://help.aliyun.com/document_detail/25455.html?spm=5176.11065259.1996646101.searchclickresult.3485506fd8no0l
然后初始化系统盘:
https://help.aliyun.com/document_detail/25449.html?spm=5176.11065259.1996646101.searchclickresult.25b23101M9Cd9P
再针对快照创建一个云盘:
https://help.aliyun.com/document_detail/32317.html?spm=5176.11065259.1996646101.searchclickresult.7d796916caYKiT
最后挂载给实例:
https://help.aliyun.com/document_detail/25446.html?spm=5176.11065259.1996646101.searchclickresult.27ba57ea5k9dBF

这样做的目的是把快照创建的云盘作为数据盘运行,用于拷贝出原来的数据。  

意思简单说一下,
1、创建快照
2、然后初始化系统盘,然后购买一块云盘(很便宜,0.042元/小时,修复完成总共花费1块钱)
3、将快照还原在新购买的云盘上,然后挂载云盘到系统主机,那么原来受损的系统盘就变成了数据盘。
4、将可用的数据还原过来就行了。

三、数据库修复
上面操作完成之后,就可以登录主机了
将购买的云盘进行挂载 /dev/vdb1 挂载到一个新的目录/aa上面,千万别挂/data
由于初始化后的系统已经安装了mysql,所以就不需要单独安装了,然后编辑/etc/my.cnf,在[mysqld]下面添加skip-grant-tables跳过密码。重启mysqld。然后输入mysql直接登录,查看数据库,肯定是空的,嘻嘻。
进入到aa目录,查mysql文件
记一次阿里云主机遭到矿机导致网站瘫痪的修复记录_第6张图片
记一次阿里云主机遭到矿机导致网站瘫痪的修复记录_第7张图片
发现还好,mysql的文件是存在的~万幸万幸!!!
接下来开始恢复
删除/data/mysql/下的ib_logfile0、ib_logfile1、ib_logfile2.。。。
将ibdata1移动到一个back目录
然后将/app/data/mysql/ibdata1拷贝到/data/mysql/下。并授权mysql用户的访问权限。
然后启动mysql,show databases;
记一次阿里云主机遭到矿机导致网站瘫痪的修复记录_第8张图片
大功告成~
然后就可以退云盘、退快照了。充值了100,返回99块钱
~