我有一个 3 节点的 percona 集群,其中 1 个节点由于服务器崩溃而出现 InnoDB 日志序列问题。
180425 17:32:53 InnoDB: Error: page 151555 log sequence number
12431827692
InnoDB: is in the future! Current system log sequence number
12421876039.
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.5/en/forcing-innodb-reco .
very.html
InnoDB: for more information.
其他 2 个节点仍在运行,集群可用。当我启动故障节点时,它确实同步,但它继续显示上述错误消息。
我使用的percona版本是5.5.41-37.0-55
The relevant part of the mysql config is.
[mysqld]
datadir=/var/lib/mysql
user=mysql
# Path to Galera library
wsrep_provider=/usr/lib/libgalera_smm.so
# Cluster connection URL contains the IPs of node#1, node#2 and node#3
wsrep_cluster_address=gcomm://10.213.157.8,10.213.157.9,10.213.157.10
# In order for Galera to work correctly binlog format should be ROW
binlog_format=ROW
# MyISAM storage engine has only experimental support
default_storage_engine=InnoDB
# This changes how InnoDB autoincrement locks are managed and is a
requirement for Galera
innodb_autoinc_lock_mode=2
# Node #1 address
wsrep_node_address=10.213.157.10
# SST method
wsrep_sst_method=xtrabackup
我能够获取故障节点的 mysql-dump,并且能够在没有任何innodb_force_recovery
标志的情况下启动该节点
如何重新实例化故障节点或如何修复此节点的问题?我可以从捐赠者那里重新同步它吗?
数据库非常小(2GB),因此恢复速度非常快
答案1
由于数据库很小,您可以将其作为新节点启动,并让其与现有节点同步(使用 SST)。
此外,我们建议您升级到 PXC-5.7(或至少 PXC-5.6)。
答案2
要在现有节点上强制执行 SST,您可以执行以下操作:
- 停止服务,从 datadir 中删除 grastate.dat 文件并重新启动服务。
- 使用干净的数据目录重新启动节点(使用干净的数据目录重新安装 pxc,然后重新加入集群)。
这里有一些背景信息(尽管是关于避免 SST 而不是强制 SST)。
https://severalnines.com/blog/how-avoid-sst-when-adding-new-node-galera-cluster