Обновление кластера 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 - убедитесь, что вы обновили все свои маршрутизаторы, иначе они потеряют соединение.