8.8.2 Восстановление кластера после потери кворума
Если один или несколько экземпляров откажут, кластер может потерять кворум, то есть способность голосовать за нового первичного узла. Это может произойти, когда отказ достаточного числа экземпляров приводит к тому, что больше нет большинства экземпляров в кластере для голосования по операциям Group Replication. См. . Когда кластер теряет кворум, вы больше не можете обрабатывать транзакции записи с кластером или изменять топологию кластера, например, добавляя, присоединяя или удаляя экземпляры. Однако, если у вас есть онлайн-экземпляр, содержащий метаданные InnoDB Cluster, возможно восстановить кластер с кворумом. Это предполагает, что вы можете подключиться к экземпляру, содержащему метаданные InnoDB Cluster, и этот экземпляр может связаться с другими экземплярами, которые вы хотите использовать для восстановления кластера.
Эта операция потенциально опасна, поскольку неправильное ее использование может привести к возникновению ситуации раздвоения мозга и должна рассматриваться как мера последней инстанции. Абсолютно убедитесь, что в сети нет каких-либо изолированных частей этой группы, которые продолжают работать, но недоступны с вашего места.
Подключитесь к экземпляру, содержащему метаданные кластера, затем используйте операцию , которая восстанавливает кластер на основе метаданных на Cluster.forceQuorumUsingPartitionOf(instance)instance, а затем все экземпляры, которые являются ONLINE с точки зрения данного определения экземпляра, добавляются в восстановленный кластер.
mysql-js> cluster.forceQuorumUsingPartitionOf("icadmin@ic-1:3306")
Restoring replicaset 'default' from loss of quorum, by using the partition composed of [icadmin@ic-1:3306]
Please provide the password for 'icadmin@ic-1:3306': ******
Restoring the InnoDB cluster ...
The InnoDB cluster was successfully restored using the partition from the instance 'icadmin@ic-1:3306'.
WARNING: To avoid a split-brain scenario, ensure that all other members of the replicaset
are removed or joined back to the group that was restored.
В случае, если экземпляр не добавляется в кластер автоматически, например, если его настройки не были сохранены, используйте , чтобы вручную добавить экземпляр обратно в кластер.Cluster.rejoinInstance()
Восстановленный кластер может не содержать и не должен содержать все исходные экземпляры, из которых состоял кластер. Например, если исходный кластер состоял из следующих пяти экземпляров:
ic-1ic-2ic-3ic-4ic-5
и кластер переживает ситуацию раздвоения мозга, при которой ic-1, ic-2 и ic-3 образуют одну разделяющую часть, в то время как ic-4 и ic-5 образуют другую разделяющую часть. Если вы подключаетесь к ic-1 и выполняете для восстановления кластера, результирующий кластер будет состоять из этих трех экземпляров:Cluster.forceQuorumUsingPartitionOf('icadmin@ic-1:3306')
ic-1ic-2ic-3
потому что ic-1 видит ic-2 и ic-3 как ONLINE и не видит ic-4 и ic-5.
© 2025 Oracle
Licensed under the GPLv2 License.