Назад | Перейти на главную страницу

Восстановить отказавший узел на Percona 5.5.41-37.0-55

У меня есть кластер percona с 3 узлами, где 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.

Версия Percona

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-дампы отказавшего узла, а также могу запустить узел без каких-либо innodb_force_recovery флаг

Как повторно создать экземпляр отказавшего узла или как исправить проблему с этим узлом? Можно ли с донора заново синхронизировать с нуля?

База данных довольно мала (2 ГБ), поэтому восстановление может быть выполнено довольно быстро.

Чтобы принудительно выполнить SST на существующем узле, вы можете:

  • Остановите службу, удалите файл grastate.dat из каталога данных и перезапустите службу.
  • Перезапустите узел с чистым каталогом данных (переустановите pxc с чистым каталогом данных, а затем снова присоединитесь к кластеру).

Вот некоторая предыстория (хотя речь идет об избежании SST, а не о его принудительном использовании).

https://severalnines.com/blog/how-avoid-sst-when-adding-new-node-galera-cluster

Поскольку база данных мала, вы можете просто запустить ее как новый узел и позволить ему синхронизироваться с существующим узлом (используя SST).

Кроме того, мы рекомендуем вам перейти на PXC-5.7 (или, по крайней мере, на PXC-5.6).