Spec-Zone.ru › MySQL 5.7

21.6.5 Выполнение поэтапной перезагрузки кластера NDB

В этом разделе обсуждается, как выполнить поэтапную перезагрузку установки кластера NDB, так называемую, потому что она включает остановку и запуск (или перезапуск) каждого узла по очереди, чтобы сам кластер оставался работоспособным. Это часто делается как часть поэтапного обновления или поэтапного понижения, где высокая доступность кластера является обязательной, и простоя всего кластера недопустимо. В случаях, когда мы говорим об обновлениях, предоставленная здесь информация обычно применима и к понижениям.

Существует ряд причин, по которым может быть желательной поэтапная перезагрузка. Они описаны в следующих нескольких абзацах.

Изменение конфигурации. Чтобы внести изменения в конфигурацию кластера, например, добавить узел SQL в кластер или установить параметр конфигурации в новое значение.

Обновление или понижение программного обеспечения кластера NDB. Чтобы обновить кластер до новой версии программного обеспечения кластера NDB (или понизить его до более старой версии). Это обычно называется «поэтапным обновлением» (или «поэтапным понижением», когда возвращаются к более старой версии кластера NDB).

Изменение на хосте узла. Чтобы внести изменения в аппаратное или программное обеспечение, на котором работают процессы узлов кластера NDB.

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

  • Запустить каждый процесс узла данных (ndbd или, возможно, ndbmtd) с параметром --initial, который заставляет узел данных очистить свою файловую систему и перезагрузить все данные и метаданные кластера NDB с других узлов данных.

  • Создать резервную копию с помощью клиента ndb_mgm с помощью команды START BACKUP перед выполнением перезагрузки. После обновления восстановите узел или узлы с помощью ndb_restore.

    См. Раздел 21.6.8, «Онлайн-резервное копирование кластера NDB» и Раздел 21.5.24, «ndb_restore — Восстановление резервной копии кластера NDB» для получения дополнительной информации.

  • Используйте mysqldump для создания резервной копии перед обновлением; после этого восстановите дамп с помощью LOAD DATA.

Восстановление ресурсов. Чтобы освободить память, ранее выделенную таблице последовательными операциями INSERT и DELETE, для повторного использования другими таблицами кластера NDB.

Процесс выполнения поэтапной перезагрузки можно обобщить следующим образом:

  1. Остановите все узлы управления кластером (ndb_mgmd процессы), переконфигурируйте их, а затем перезапустите. (См. Поэтапные перезагрузки с несколькими серверами управления.)

  2. Остановите, переконфигурируйте, а затем перезапустите каждый узел данных кластера (ndbd процесс) по очереди.

    Некоторые параметры конфигурации узлов можно обновить, выпустив команду RESTART для каждого узла данных в клиенте ndb_mgm после предыдущего шага. Другие параметры требуют полной остановки узла данных с помощью команды управления STOP клиента, а затем перезапуск с командной строки системы, вызвав исполняемый файл ndbd или ndbmtd соответственно. (Команда оболочки, например, kill, также может быть использована на большинстве систем Unix для остановки процесса узла данных, но команда STOP предпочтительнее и обычно проще.)

    Примечание

    В Windows вы также можете использовать команды SC STOP и SC START, NET STOP и NET START команды, или диспетчер служб Windows для остановки и запуска узлов, которые были установлены как службы Windows (см. Раздел 21.3.2.4, «Установка процессов кластера NDB в качестве служб Windows»).

    Тип необходимой перезагрузки указан в документации для каждого параметра конфигурации узла. См. Раздел 21.4.3, «Файлы конфигурации кластера NDB».

  3. Остановите, переконфигурируйте и перезапустите каждый узел SQL кластера (mysqld процесс) по очереди.

Кластер NDB поддерживает несколько гибкий порядок обновления узлов. При обновлении кластера NDB вы можете обновить узлы API (включая узлы SQL) перед обновлением узлов управления, узлов данных или обоих. Другими словами, вы можете обновить узлы API и SQL в любом порядке. Это зависит от следующих положений:

  • Эта функциональность предназначена только для использования в рамках онлайн-обновления. Смесь бинарных файлов узлов из разных релизов кластера NDB не предназначена и не поддерживается для непрерывного длительного использования в рабочей среде.

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

  • Вы должны обновить все узлы управления перед обновлением любых узлов данных. Это остается верным независимо от порядка, в котором вы обновляете узлы API и SQL кластера.

  • Функции, специфичные для версии «новая», не должны использоваться до тех пор, пока не будут обновлены все узлы управления и узлы данных.

    Это также относится к любому изменению версии MySQL Server, которое может применяться, помимо изменения версии движка NDB, поэтому не забудьте учесть это при планировании обновления. (Это верно для онлайн-обновлений кластера NDB в целом.)

Любой узел API не может выполнять операции со схемой (например, операторы определения данных) во время перезапуска узла. Отчасти из-за этого ограничения операции со схемой также не поддерживаются во время онлайн-обновления или понижения. Кроме того, невозможно выполнять нативные резервные копии во время выполнения обновления или понижения.

Поэтапные перезагрузки с несколькими серверами управления. При выполнении поэтапной перезагрузки кластера NDB с несколькими узлами управления следует помнить, что ndb_mgmd проверяет, запущен ли другой узел управления, и, если да, пытается использовать данные конфигурации этого узла. Чтобы этого не происходило и чтобы заставить ndb_mgmd перечитать свой конфигурационный файл, выполните следующие действия:

  1. Остановить все процессы NDB Cluster ndb_mgmd.

  2. Обновить все файлы config.ini.

  3. Запустить один ndb_mgmd с параметрами --reload, --initial, или обоими, по необходимости.

  4. Если вы запустили первый ndb_mgmd с параметром --initial, вы также должны запустить все оставшиеся процессы ndb_mgmd используя --initial.

    Независимо от других параметров, используемых при запуске первого ndb_mgmd, вы не должны запускать оставшиеся процессы ndb_mgmd после первого с помощью --reload.

  5. Завершите поэтапную перезагрузку узлов данных и узлов API в обычном режиме.

При выполнении поэтапной перезагрузки для обновления конфигурации кластера, вы можете использовать столбец config_generation таблицы ndbinfo.nodes для отслеживания узлов данных, которые были успешно перезагружены с новой конфигурацией. Смотрите Раздел 21.6.15.28, «Таблица ndbinfo nodes».

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/mysql-5.7-en/mysql-cluster-rolling-restart.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API