1

我们有一个具有三个节点的 Xtradb 集群。有一个节点未正确停止且无法启动。其他两个节点正常工作并响应。日志中唯一的内容是:

-- Unit mysql.service has begun starting up.
Aug 25 04:40:45 percona-prod-perconaxtradb-vm-0 /etc/init.d/mysql[2503]: MySQL PID not found, pid_file detected/guessed: /var/run/mysql
Aug 25 04:40:52 percona-prod-perconaxtradb-vm-0 mysql[2462]: Starting MySQL (Percona XtraDB Cluster) database server: mysqld . . . . .
Aug 25 04:40:52 percona-prod-perconaxtradb-vm-0 mysql[2462]: failed!
Aug 25 04:40:52 percona-prod-perconaxtradb-vm-0 systemd[1]: mysql.service: control process exited, code=exited status=1
Aug 25 04:40:52 percona-prod-perconaxtradb-vm-0 systemd[1]: Failed to start LSB: Start and stop the mysql (Percona XtraDB Cluster) daem
-- Subject: Unit mysql.service has failed
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel

/var/lib/mysql/wsrep_recovery.qEEkjd我们发现这个:

2018-08-25T05:49:31.055887Z 0 [ERROR] Found 20 prepared transactions! It means that mysqld was not shut down properly last time and critical recovery information (last binlog or tc.log file) was manually deleted after a crash. You have to start mysqld with --tc-heuristic-recover switch to commit or rollback pending transactions.
2018-08-25T05:49:31.055892Z 0 [ERROR] Aborting

2018-08-25T05:49:31.055901Z 0 [Note] Binlog end

我们想完全放弃这些20 prepared transactions

其他两个节点是一致的并且工作,所以告诉这个节点“忽略你的状态并与其他节点同步”就足够了。

4

1 回答 1

1

最后我们删除了/data死节点上的文件夹并重新启动了节点。然后节点开始SST复制——这需要很长时间,唯一可以看到的进展是检查文件夹的增长大小。但后来它奏效了。

于 2018-10-03T10:38:14.893 回答