Spec-Zone.ru › MySQL 8.4

25.4.3.1 Настройка кластера NDB: базовый пример

Для поддержки кластера NDB необходимо обновить my.cnf, как показано в следующем примере. Вы также можете указать эти параметры в командной строке при вызове исполняемых файлов.

Примечание

Указанные здесь параметры не следует путать с параметрами, используемыми в config.ini глобальных файлах конфигурации. Глобальные параметры конфигурации обсуждаются позже в этом разделе.

# my.cnf
# example additions to my.cnf for NDB Cluster
# (valid in MySQL 8.4)

# 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

(Дополнительную информацию о строках подключения см. в разделе 25.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, см. раздел 25.4.3.9.2 «Переменные системы кластера NDB».

Файл глобальной конфигурации кластера NDB по умолчанию имеет имя config.ini (но это необязательно). При необходимости он читается ndb_mgmd при запуске и может быть размещён в любом расположении, доступном для него. Местоположение и имя конфигурации указываются с помощью --config-file=path_name с ndb_mgmd в командной строке. Этот параметр не имеет значения по умолчанию и игнорируется, если ndb_mgmd использует кэш конфигурации.

Глобальный файл конфигурации для кластера 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 и, скорее всего, не будет достаточной для производственных задач. См. раздел 25.4.3.2 «Рекомендуемая начальная конфигурация для кластера NDB», который содержит более полный пример начальной конфигурации.

Каждый узел имеет свой собственный раздел в файле config.ini. Например, этот кластер имеет два узла данных, поэтому в предыдущем файле конфигурации содержатся два раздела [ndbd], определяющие эти узлы.

Примечание

Не размещайте комментарии в одной строке с заголовком раздела в файле config.ini; это приводит к тому, что сервер управления не запускается, поскольку он не может разобрать файл конфигурации в таких случаях.

Разделы файла config.ini

В файле конфигурации config.ini можно использовать шесть различных разделов, как описано в следующем списке:

  • [computer]: Определяет узлы кластера. Это необязательно для настройки работоспособного кластера NDB, но может быть удобно при настройке большого кластера. Дополнительную информацию см. в разделе 25.4.3.4 «Определение компьютеров в кластере NDB».

  • [ndbd]: Определяет узел данных кластера (ndbd процесс). Подробности см. в разделе 25.4.3.6 «Определение узлов данных кластера NDB».

  • [mysqld]: Определяет узлы сервера MySQL кластера (также называемые узлами SQL или API). Обсуждение конфигурации узлов SQL см. в разделе 25.4.3.7 «Определение узлов SQL и других API-узлов в кластере NDB».

  • [mgm] или [ndb_mgmd]: Определяет узел сервера управления кластером (MGM). Сведения о конфигурации узлов управления см. в разделе 25.4.3.5 «Определение сервера управления кластером NDB».

  • [tcp]: Определяет TCP/IP соединение между узлами кластера, где TCP/IP является протоколом транспорта по умолчанию. Обычно разделы [tcp] или [tcp default] не требуются для настройки кластера NDB, поскольку кластер обрабатывает это автоматически; однако в некоторых ситуациях может потребоваться переопределить значения по умолчанию, предоставляемые кластером. Сведения о доступных параметрах конфигурации TCP/IP и способах их использования см. в разделе 25.4.3.10 «TCP/IP-соединения кластера NDB». (Возможно, раздел 25.4.3.11 «TCP/IP-соединения кластера NDB с использованием прямых подключений» будет интересен в некоторых случаях.)

  • [shm]: Определяет соединения обмена памятью между узлами. В MySQL 8.4 он включён по умолчанию, но всё ещё рассматривается как экспериментальный. Обсуждение межсоединений SHM см. в разделе 25.4.3.12 «Соединения обмена памятью кластера NDB».

  • [sci]: Определяет соединения Scalable Coherent Interface между узлами данных кластера. В NDB 8.4 не поддерживается.

Можно определять default значения для каждого раздела. Если используется, раздел default должен предшествовать любым другим разделам этого типа. Например, раздел [ndbd default] должен появляться в файле конфигурации перед любыми разделами [ndbd].

Имена параметров кластера NDB не чувствительны к регистру, если не указано в файлах MySQL Server my.cnf или my.ini.

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/mysql-8.4-en/mysql-cluster-config-example.html

Spec-Zone.ru

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