21.4.3.1 Настройка кластера NDB: базовый пример
Для поддержки кластера NDB необходимо обновить my.cnf, как показано в следующем примере. Вы также можете указать эти параметры в командной строке при вызове исполняемых файлов.
Указанные здесь параметры не следует путать с параметрами, используемыми в config.ini файлах глобальной конфигурации. Параметры глобальной конфигурации рассматриваются позже в этом разделе.
# my.cnf
# example additions to my.cnf for NDB Cluster
# (valid in MySQL 5.7)
# enable ndbcluster storage engine, and provide connection string for
# management server host (default port is 1186)
[mysqld]
ndbcluster
ndb-connectstring=ndb_mgmd.mysql.com
# provide connection string for management server host (default port: 1186)
[ndbd]
connect-string=ndb_mgmd.mysql.com
# provide connection string for management server host (default port: 1186)
[ndb_mgm]
connect-string=ndb_mgmd.mysql.com
# provide location of cluster configuration file
# IMPORTANT: When starting the management server with this option in the
# configuration file, the use of --initial or --reload on the command line when
# invoking ndb_mgmd is also required.
[ndb_mgmd]
config-file=/etc/config.ini
(Дополнительную информацию о строках подключения см. в разделе 21.4.3.3 «Строки подключения к кластеру NDB».)
# my.cnf
# example additions to my.cnf for NDB Cluster
# (works on all versions)
# enable ndbcluster storage engine, and provide connection string for management
# server host to the default port 1186
[mysqld]
ndbcluster
ndb-connectstring=ndb_mgmd.mysql.com:1186
После запуска процесса mysqld с параметрами NDBCLUSTER и ndb-connectstring в [mysqld] файле my.cnf, как показано ранее, вы не можете выполнить какие-либо CREATE TABLE или ALTER TABLE выражения без фактического запуска кластера. В противном случае эти выражения завершатся ошибкой. Это сделано по умолчанию.
Вы также можете использовать отдельный раздел [mysql_cluster] в файле конфигурации кластера my.cnf для настроек, которые будут читаться и использоваться всеми исполняемыми файлами:
# cluster-specific settings
[mysql_cluster]
ndb-connectstring=ndb_mgmd.mysql.com:1186
Для дополнительных NDB переменных, которые могут быть установлены в файле my.cnf, см. раздел 21.4.3.9.2 «Системные переменные кластера NDB».
Файл глобальной конфигурации кластера NDB по соглашению называется config.ini (хотя это необязательно). При необходимости он считывается деимоном ndb_mgmd при запуске и может быть размещен в любом доступном для него месте. Местоположение и имя конфигурации указываются с помощью --config-file= в командной строке ndb_mgmd. Этот параметр не имеет значения по умолчанию и игнорируется, если ndb_mgmd использует кэш конфигурации.path_name
Файл глобальной конфигурации кластера NDB использует формат INI, который состоит из разделов, предваряемых заголовками разделов (в квадратных скобках), за которыми следуют соответствующие имена и значения параметров. Отклонение от стандартного формата INI заключается в том, что имя и значение параметра могут быть разделены двоеточием (:), а также знаком равенства (=); однако, знак равенства предпочтительнее. Другое отклонение заключается в том, что разделы не однозначно идентифицируются по имени раздела. Вместо этого уникальные разделы (например, два разных узла одного типа) идентифицируются уникальным идентификатором, указанным в качестве параметра внутри раздела.
Для большинства параметров определены значения по умолчанию, которые также могут быть указаны в config.ini. Чтобы создать раздел со значением по умолчанию, просто добавьте слово default к имени раздела. Например, раздел [ndbd] содержит параметры, которые применяются к конкретному узлу данных, а раздел [ndbd
default] содержит параметры, которые применяются ко всем узлам данных. Предположим, что все узлы данных должны использовать один и тот же размер памяти данных. Чтобы настроить их все, создайте раздел [ndbd
default], содержащий строку DataMemory, чтобы указать размер памяти данных.
Если используется, раздел [ndbd default] должен предшествовать любым разделам [ndbd] в файле конфигурации. Это также верно для разделов default любого другого типа.
В некоторых более ранних выпусках кластера NDB не было значения по умолчанию для NoOfReplicas, которое всегда должно было быть указано явно в разделе [ndbd
default]. Хотя этот параметр теперь имеет значение по умолчанию 2, что является рекомендуемой настройкой в большинстве распространенных сценариев использования, все же рекомендуется явно указать этот параметр.
Файл глобальной конфигурации должен определять компьютеры и узлы, участвующие в кластере, и на каких компьютерах эти узлы расположены. Пример простого файла конфигурации для кластера, состоящего из одного сервера управления, двух узлов данных и двух серверов MySQL, показан здесь:
# file "config.ini" - 2 data nodes and 2 SQL nodes
# This file is placed in the startup directory of ndb_mgmd (the
# management server)
# The first MySQL Server can be started from any host. The second
# can be started only on the host mysqld_5.mysql.com
[ndbd default]
NoOfReplicas= 2
DataDir= /var/lib/mysql-cluster
[ndb_mgmd]
Hostname= ndb_mgmd.mysql.com
DataDir= /var/lib/mysql-cluster
[ndbd]
HostName= ndbd_2.mysql.com
[ndbd]
HostName= ndbd_3.mysql.com
[mysqld]
[mysqld]
HostName= mysqld_5.mysql.com
Представленный выше пример предназначен как минимальная начальная конфигурация для ознакомления с кластером NDB и, скорее всего, недостаточно для производственной среды. См. раздел 21.4.3.2 «Рекомендуемая начальная конфигурация для кластера NDB», который содержит более полный пример начальной конфигурации.
Каждый узел имеет свой собственный раздел в файле config.ini. Например, в данном кластере есть два узла данных, поэтому в приведенном выше файле конфигурации содержатся два раздела [ndbd], определяющие эти узлы.
Не размещайте комментарии в одной строке с заголовком раздела в файле config.ini; это приводит к тому, что сервер управления не запускается, так как в таких случаях он не может обработать файл конфигурации.
Разделы файла config.ini
В файле конфигурации config.ini можно использовать шесть различных разделов, как описано в следующем списке:
[computer]: Определяет хосты кластера. Это не требуется для настройки работоспособного кластера NDB, но может использоваться для удобства при настройке большого кластера. Дополнительную информацию см. в разделе 21.4.3.4 «Определение компьютеров в кластере NDB».[ndbd]: Определяет узел данных кластера (ndbd процесс). Подробности см. в разделе 21.4.3.6 «Определение узлов данных кластера NDB».[mysqld]: Определяет узлы сервера MySQL кластера (также называемые узлами SQL или API). Подробности о конфигурации узлов SQL см. в разделе 21.4.3.7 «Определение узлов SQL и других узлов API в кластере NDB».[mgm]или[ndb_mgmd]: Определяет узел сервера управления кластером (MGM). Подробную информацию о конфигурации узлов управления см. в разделе 21.4.3.5 «Определение сервера управления кластером NDB».[tcp]: Определяет TCP/IP подключение между узлами кластера, при этом TCP/IP является протоколом передачи по умолчанию. Обычно разделы[tcp]или[tcp default]не требуются для настройки кластера NDB, поскольку кластер обрабатывает это автоматически; однако, в некоторых ситуациях может потребоваться переопределить значения по умолчанию, предоставляемые кластером. Дополнительную информацию об имеющихся параметрах конфигурации TCP/IP и способах их использования см. в разделе 21.4.3.10 «TCP/IP-соединения в кластере NDB». (В некоторых случаях может быть интересен раздел 21.4.3.11 «TCP/IP-соединения в кластере NDB с использованием прямых соединений».)[shm]: Определяет подключения с общей памятью между узлами. В MySQL 5.7 он включен по умолчанию, но все еще считается экспериментальным. Подробности о соединениях SHM см. в разделе 21.4.3.12 «Соединения с общей памятью в кластере NDB».[sci]: Определяет соединения по интерфейсу Scalable Coherent Interface между узлами данных кластера. Не поддерживается в NDB 7.5 или 7.6.
Можно определить значения default для каждого раздела. Если используется, раздел default должен предшествовать другим разделам этого типа. Например, раздел [ndbd default] должен появляться в файле конфигурации перед разделами [ndbd].
Имена параметров кластера NDB не чувствительны к регистру, если не указано в файлах my.cnf или my.ini сервера MySQL.
© 2025 Oracle
Licensed under the GPLv2 License.