阿里云ECS自建mysql数据库遇到的云盘问题归档

系统环境

操作系统
centos7.5:40G作为系统盘,2T作为数据盘,挂载到/data目录
数据库
mysql5.6.46:数据量300GB,每天通过innobackupex备份,保留最近三天的备份

故障前兆

8月4号
使用navicat12的数据传输功能将另一个库的一张表同步到本库中,报错信息如下:
在这里插入图片描述
这里提示无法在/tmp目录下创建、写入文件,这里没有引起重视,也没有查询8月4号的备份是否有问题(画外音8月4号的备份失败了)
8月5号
因为要从该库获取变化的数据同步到其他数据库中,需要单独创建一个数据库,结果提示下面的信息,查询该user表也是一样,但能创建新表
mysql> select * from user;
ERROR 1036 (HY000): Table ‘user’ is read only

处理思路复盘

1、准备关闭数据库,再启动数据库试试
2、通过备份恢复数据库(innobackupex --copy-back),成功了,但还是无法启动数据库,怀疑数据磁盘或备份有问题
3、通过在异机执行alter table discard/import tablespace恢复数据库,但最后失败了
4、在异机通过innobackupex --copy-back恢复数据库,成功了
5、重新分区和格式化磁盘后,挂载新目录,初始化数据成功了,目前正在进行innobackupex --copy-back恢复

不足之处

1、在关闭数据库时,没有对数据库进行备份或数据库目录进行备份
2、查询备份数据时,居然没有发现8月4号的备份,那就说明8月4号数据库备份就出问题了
3、通过alter table discard/import tablespace不是最优解,最后还是失败了
4、应该提前进行异机恢复,浪费了一天多的时间
5、数据磁盘问题没有排查清楚
6、数据库出现异常情况时,没有立即引起重视

猜你喜欢

转载自blog.csdn.net/weixin_41561946/article/details/107872399