25.6.5 Выполнение поэтапной перезагрузки кластера NDB
В этом разделе описывается, как выполнить поэтапную перезагрузку установки кластера NDB, так как она подразумевает остановку и запуск (или перезапуск) каждого узла по очереди, чтобы сам кластер оставался работоспособным. Это часто выполняется как часть поэтапного обновления или поэтапного понижения версии, где высокая доступность кластера обязательна и недопустимо время простоя всего кластера. Там, где мы упоминаем обновления, предоставленная информация в основном также относится к понижениям версии.
Существует ряд причин, по которым может потребоваться поэтапная перезагрузка. Они описаны в следующих абзацах.
Изменение конфигурации. Для внесения изменений в конфигурацию кластера, например, добавление узла SQL в кластер или установка параметра конфигурации в новое значение.
Обновление или понижение версии программного обеспечения NDB Cluster. Для обновления кластера до новой версии программного обеспечения NDB Cluster (или понижения до более старой версии). Это обычно называется “поэтапным обновлением” (или “поэтапным понижением”, при возвращении к более старой версии NDB Cluster).
Изменение на узле хоста. Для внесения изменений в аппаратное обеспечение или операционную систему, на которой работают один или несколько процессов узлов кластера NDB.
Сброс системы (сброс кластера). Для сброса кластера, так как он достиг недопустимого состояния. В таких случаях часто желательно перезагрузить данные и метаданные одного или нескольких узлов данных. Это можно сделать тремя способами:
Запустите каждый процесс узла данных (ndbd или возможно ndbmtd) с параметром
--initial, который заставляет узел данных очистить свою файловую систему и перезагрузить все данные и метаданные кластера NDB с других узлов данных. Это также заставляет удалить все объекты Disk Data и файлы, связанные с этими объектами.-
Создайте резервную копию с помощью клиента ndb_mgm
START BACKUPперед выполнением перезагрузки. После обновления восстановите узел или узлы с помощью ndb_restore.См. Раздел 25.6.8, «Online Backup of NDB Cluster» и Раздел 25.5.23, «ndb_restore — Restore an NDB Cluster Backup» для получения дополнительной информации.
Используйте mysqldump для создания резервной копии перед обновлением; после этого восстановите дамп с помощью
LOAD DATA.
Восстановление ресурсов. Для освобождения памяти, ранее выделенной таблице последовательными операциями INSERT и DELETE, для повторного использования другими таблицами кластера NDB.
Процесс выполнения поэтапной перезагрузки можно обобщить следующим образом:
Остановите все управляющие узлы кластера (ndb_mgmd процессы), переконфигурируйте их, а затем перезапустите их. (См. Поэтапные перезагрузки с несколькими серверами управления.)
-
По очереди останавливайте, переконфигурируйте и перезапускайте каждый узел данных кластера (ndbd процесс).
Некоторые параметры конфигурации узла могут быть обновлены путем выдачи
RESTARTдля каждого узла данных в клиенте ndb_mgm после предыдущего шага. Другие параметры требуют полной остановки узла данных с помощью команды клиента управленияSTOP, а затем его повторного запуска из системной оболочки путем вызова исполняемого файла ndbd или ndbmtd в зависимости от ситуации. (Команда оболочки, такая как kill, также может использоваться на большинстве систем Unix для остановки процесса узла данных, но командаSTOPпредпочтительнее и обычно проще.)ПримечаниеВ Windows также можно использовать команды SC STOP и SC START,
NET STOPиNET STARTкоманды или диспетчер служб Windows для остановки и запуска узлов, которые были установлены как службы Windows (см. Раздел 25.3.2.4, «Установка процессов кластера NDB в качестве служб Windows»).Тип необходимой перезагрузки указан в документации для каждого параметра конфигурации узла. См. Раздел 25.4.3, «Файлы конфигурации кластера NDB».
По очереди останавливайте, переконфигурируйте и перезапускайте каждый узел SQL кластера (mysqld процесс).
NDB Cluster поддерживает несколько гибкий порядок обновления узлов. При обновлении кластера NDB вы можете обновить API-узлы (включая узлы SQL) до обновления управляющих узлов, узлов данных или обоих. Другими словами, вам разрешено обновлять API- и SQL-узлы в любом порядке. Это подлежит следующим положениям:
Эта функциональность предназначена для использования только в рамках онлайн-обновления. Смешение бинарных файлов узлов из разных версий NDB Cluster не предназначено и не поддерживается для непрерывного долгосрочного использования в рабочей среде.
Вы должны обновить все узлы одного типа (управление, данные или API-узел) перед обновлением узлов другого типа. Это остается верным независимо от порядка обновления узлов.
Вы должны обновить все управляющие узлы перед обновлением узлов данных. Это остается верным независимо от порядка обновления API- и SQL-узлов кластера.
-
Функции, специфичные для “новой” версии, не должны использоваться до тех пор, пока все управляющие узлы и узлы данных не будут обновлены.
Это также относится к любому изменению версии MySQL Server, которое может применяться, помимо изменения версии движка NDB, поэтому не забудьте учесть это при планировании обновления. (Это верно для онлайн-обновлений кластера NDB в целом.)
Любой API-узел не может выполнять операции со схемой (такие как операторы определения данных) во время перезагрузки узла. В значительной степени из-за этого ограничения операции со схемой также не поддерживаются во время онлайн-обновления или понижения версии. Кроме того, выполнение резервного копирования по умолчанию невозможно во время обновления или понижения версии.
Поэтапные перезагрузки с несколькими серверами управления. При выполнении поэтапной перезагрузки кластера NDB с несколькими управляющими узлами следует помнить, что ndb_mgmd проверяет, работает ли другой управляющий узел, и, если да, пытается использовать данные конфигурации этого узла. Чтобы этого не происходило и чтобы заставить ndb_mgmd перечитать файл конфигурации, выполните следующие действия:
Остановите все процессы NDB Cluster ndb_mgmd.
Обновите все
config.iniфайлы.Запустите один экземпляр ndb_mgmd с параметром
--reload,--initial, или с обоими параметрами по желанию.-
Если вы запустили первый ndb_mgmd с параметром
--initial, вы также должны запустить оставшиеся процессы ndb_mgmd с использованием--initial.Независимо от других параметров, используемых при запуске первого ndb_mgmd, вы не должны запускать оставшиеся процессы ndb_mgmd после первого с использованием
--reload. Завершите поэтапные перезагрузки узлов данных и API-узлов в обычном режиме.
При выполнении поэтапной перезагрузки для обновления конфигурации кластера, вы можете использовать столбец config_generation таблицы ndbinfo.nodes для отслеживания узлов данных, которые были успешно перезапущены с новой конфигурацией. См. Раздел 25.6.17.48, «Таблица ndbinfo nodes».
© 2025 Oracle
Licensed under the GPLv2 License.