mysql集群从节点无法启动_数据库Galera集群中数据库无法启动

一、背景

本环境使用的是openstack docker 容器平台,所有服务都是运行在docker 容器中,数据库使用的mariadb(1主2从),由于断电导致数据库无法启动。

二、原因分析

查看数据库日志,发现大量如下报错:

InnoDB: is in the future! Current system log sequence number 8716.

InnoDB: Your database may be corrupt or you may have copied the InnoDB

InnoDB: tablespace but not the InnoDB log files. See

InnoDB: http://dev.mysql.com/doc/refman/5.6/en/forcing-innodb-recovery.html

InnoDB: for more information.

2020-01-06 10:56:46 139986236172480 [Note] InnoDB: 128 rollback segment(s) are active.

2020-01-06 10:56:46 7f5115e168c0 InnoDB: Error: page 0 log sequence number 29661217162

InnoDB: is in the future! Current system log sequence number 8716.

InnoDB: Your database may be corrupt or you may have copied the InnoDB

InnoDB: tablespace but not the InnoDB log files. See

InnoDB: http://dev.mysql.com/doc/refman/5.6/en/forcing-innodb-recovery.html

InnoDB: for more information.

***初步判断由于异常断电,可能导致数据库文件出现了丢失。

三、解决思路

根据日志找到这个http://dev.mysql.com/doc/refman/5.6/en/forcing-innodb-recovery.html,里面是官网给出的强制数据库innodb 恢复的操作。按照这个进行尝试(详细可以看链接)

四、解决过程

1、首先查看哪个节点的数据库文件是最新的,也就是主节点

//在数据库节点上执行如下,找到seqno最大的节点,我的是control3

cat grastate.dat |grep seqno

2、修改数据库文件

[root@control3] vim galera.conf

...

innodb_force_recovery = 1

warep_on=OFF

...

3、删除control3节点ib_logfile文件

rm ib_logfile* -f

4、重启数据库

docker restart mariadb

****如果数据库还是无法启动 ,那么将innodb_force_recovery 的修改成2,然后再依次执行步骤3和步骤4.

****按照官网的建议, innodb_force_recovery 这个值,按照官方文档,要求从1-6依次尝试,直到数据库能起来为止,1-3 数据不会丢失,4-6数据会永久性丢失。

5、当数据库能起来之后,我们可以将整个数据导出,然后重启安装数据库,再建整个数据库回填即可。

这里省略数据库导入导出操作

注意:可能由于文件丢失,导致innoDB 出现问题,也就是现有数据库没法正常使用。只能重新部署,不管什么方法,都是尽量导出数据,保证数据不丢失,然后导入新的集群。我这里只是其中一种,也可以使用数据库文件进行恢复数据,这里可以看下另外的文章 https://medium.com/magebit/recover-innodb-database-from-frm-and-ibd-files-99fdb0deccad .

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值