欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

将MySQL-mmm Master从REPLICATION_FAIL状态恢复

程序员文章站 2022-05-13 13:47:35
...

将MySQL-mmm Master从REPLICATION_FAIL状态恢复,网站突然不能访问了,页面上除了框架没有任何内容。从系统的运行日志看到的错误

总是先要交待一下背景。

几天前网站突然不能访问了,页面上除了框架没有任何内容。从系统的运行日志看到的错误信息有:

最后看到一句:

Caused by: java.sql.SQLException: The table 'message' is full

这个太不可思议了。在还没有当前用户量的情况不能出现数据库写满的情况。于是到数据库服务器Master1上查看,,通过df -h命令查看,发现/var/已经满了。这是才记起来:当时数据库创建时,所有的数据文件都放在了另外一个目录下,然后/var/lib/mysql/下面是softlink。现在这种情况,肯定当时建过表后,没有移动到那个目录下。接下来步骤就是:

1. service mysql stop停止MySQL服务

2. 将数据表文件移动到指定目录,建立softlink

3. service mysql start启动MySQL服务

4. 到MySQL-mmm上通过mmm_control set_offline db01,然后mmm_control set_online db01,将master01重新上线。

之后通过mmm_control show 查看状态,已经是ONLINE了。

这样就结束了,NO! NO! 按照糗百(我在为糗百做广告,绝对没有)的惯例这不是GC。

今天在听一个报告的时候,突然想上去看看MySQL-mmm的运行状态。mmm_control show,不愿意看到的一幕出现了,db01的状态是REPLICATION_FAIL,set_offline, set_online,重新启动MySQL服务统统失效。

到db01上查看错误日志,看到了下面的信息:

登录到数据库,执行: