Обновление кластера Innodb Метаданные на сломанном кластере

У нас есть кластер из 3 узлов, 2 из них отключены (отсутствуют), и я не могу заставить их автоматически присоединиться к кластеру, только мастер находится в сети.

Обычно вы можете использовать innodb admin:

var cluster = dba.getCluster();

но я не могу использовать экземпляр кластера, потому что метаданные устарели. Но я не могу обновить метаданные, потому что отсутствующие члены должны быть в сети для использования dba.upgradeMetadata(). (Словить 22)

Я попытался растворить кластер, используя:

var cluster = dba.rebootClusterFromCompleteOutage ();

cluster.dissolve ({сила: истина});

но для этого также необходимо обновить метаданные.

Вопрос в том, как полностью растворить кластер или обновить метаданные, чтобы я мог использовать кластер. методы.

2 ответа

Решение

Эта проблема "куриного яйца" была исправлена ​​в MySQL Shell 8.0.20. dba.rebootClusterFromCompleteOutage() теперь разрешен в такой ситуации:

ОШИБКА № 30661129 - DBA.UPGRADEMETADATA() И DBA.REBOOTCLUSTERFROMCOMPLETEOUTAGE() БЛОКИРУЮТ ДРУГОЕ

Дополнительная информация: https://mysqlserverteam.com/mysql-shell-adminapi-whats-new-in-8-0-20/

Если у вас есть кластер, в котором каждый узел обновляется до последней версии mysql, а кластер не работает полностью, и вам нужно обновить метаданные для mysqlsh, вам необходимо использовать более старую версию mysqlsh, например, https://downloads.mysql.com/archives/shell/, чтобы вернуть кластер в рабочее состояние. После того, как он будет запущен, вы можете использовать dba.upgrademetadata на узле R / W - убедитесь, что вы обновили все свои маршрутизаторы, иначе они потеряют соединение.

Другие вопросы по тегам