RussianLDP Рейтинг@Mail.ru
WebMoney: 
WMZ Z294115950220 
WMR R409981405661 
WME E134003968233 
Visa 
4274 3200 2453 6495 

Глава 4. Установка NDB Cluster

Эта секция описывает основы для планирования, установки, формирования и управления NDB Cluster. Принимая во внимание, что примеры в главе 5 предоставляют больше всесторонней информации о множестве конфигураций кластера, результаты следующих рекомендаций и процедур, обрисованных в общих чертах здесь, должны быть применимы NDB Cluster, который отвечает минимальным требованиям доступности и охраны данных.

Для получения информации о модернизации NDB Cluster между версиями выпуска, посмотрите раздел 4.9.

Эта секция покрывает аппаратные и программные требования, организацию сети, установку NDB Cluster, проблемы базовой конфигурации, старт, остановку и перезапуск, загрузка базы данных-образца и выполнение запросов.

Установка GUI. NDB Cluster предоставляет NDB Cluster Auto-Installer, web-установщик, как часть NDB Cluster. Auto-Installer может использоваться, чтобы выполнить базовую установку на одной (для тестирования) или больше машин. Автоинсталлятор был обновлен для NDB 7.6 и отличается во многих отношениях от версии в NDB 7.5 и ранее. Раздел 4.1 имеет информацию об автоинсталляторе для NDB 7.5, если вы используете NDB 7.6, посмотрите раздел 4.2.

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

Узлы и хосты. Кластер состоит из четырех узлов, каждый на отдельном хосте, каждый с закрепленным сетевым адресом в типичной сети Ethernet, как показано здесь:

Таблица 4.1. Адреса узлов в кластере в качестве примера

Узел IP-адрес
Узел управления ( mgmd)198.51.100.10
Узел SQL (mysqld )198.51.100.20
Узел данных "A" ( ndbd)198.51.100.30
Узел данных "B" ( ndbd) 198.51.100.40

Эту установку также показывают на следующей диаграмме:

Рис. 4.1. Мультикомпьютерная установка NDB Cluster

Most content is described in the surrounding text. The four nodes each
connect to a central switch that connects to a network.

Сетевая адресация. В интересах простоты (и надежности) это How-To использует только числовые IP-адреса. Однако, если разрешение DNS доступно в вашей сети, возможно использовать имена хоста вместо IP-адресов. Альтернативно можно использовать файл hosts (обычно /etc/hosts в Linux и Unix, C:\WINDOWS\system32\drivers\etc\hosts в Windows) для обеспечения средства сделать поиск хоста, если такой доступен.

Потенциальные проблемы файла hosts. Типичная проблема, пытаясь использовать имена хоста для узлов возникает из-за пути, которым некоторые операционные системы (включая некоторые дистрибутивы Linux) настраивают собственное имя хоста системы в /etc/hosts во время установки. Рассмотрите две машины с именами хоста ndb1 и ndb2, оба в сетевом домене cluster. Red Hat Linux (включая некоторые производные, такие как CentOS и Fedora) помещает следующие записи в эти файлы /etc/hosts:

#ndb1 /etc/hosts:
127.0.0.1 ndb1.cluster ndb1 localhost.localdomain localhost

#ndb2 /etc/hosts:
127.0.0.1 ndb2.cluster ndb2 localhost.localdomain localhost

SUSE Linux (включая OpenSUSE) помещает эти записи в файлы /etc/hosts:

#ndb1 /etc/hosts:
127.0.0.1 localhost
127.0.0.2 ndb1.cluster ndb1

#ndb2 /etc/hosts:
127.0.0.1 localhost
127.0.0.2 ndb2.cluster ndb2

В обоих случаях ndb1 маршрутизирует ndb1.cluster к кольцевому IP-адресу, но получает общественный IP-адрес от DNS для ndb2.cluster, где ndb2 маршрутизирует ndb2.cluster к кольцевому IP-адресу, но получает общественный адрес для ndb1.cluster. Результат состоит в том, что каждый узел данных соединяется с сервером управления, но не может сказать, когда любые другие узлы данных соединились, и таким образом, узлы данных, кажется, висят, стартуя.

Вы не можете смешать localhost и другие имена хоста или IP-адреса в config.ini. По этим причинам, решение в таких случаях (кроме как использовать IP-адреса для всех записей HostName в config.ini) это удалить полностью компетентные имена хоста из /etc/hosts и использовать их в config.ini для всех хостов кластера.

Тип компьютера. Каждый компьютер в нашем инсталляционном сценарии это основанный на х86 настольный ПК, управляющий поддержанной операционной системой, установленной на диске в стандартной конфигурации и не управляющий никакими ненужными сервисами. Основная операционная система со стандартными сетевыми возможностями TCP/IP должна быть достаточной. Также ради простоты, мы также предполагаем, что файловые системы на всех хостах настраиваются тождественно. Если это не так, необходимо приспособить эти инструкции соответственно.

Сетевые аппаратные средства. Стандартные карты Ethernet на 1 гигабит или на 100 Мбит/с устанавливаются на каждой машине, наряду с надлежащими драйверами для карт, все четыре хоста связаны через стандартный Ethernet, например, через коммутатор. Все машины должны использовать сетевые платы с той же самой пропускной способностью. Таким образом, у всех четырех машин в группе должны быть карты на 100 Мбит/с или на 1 Gbps. NDB Cluster работает в сети на 100 Мбит/с, однако, гигабитный Ethernet обеспечивает лучшую работу.

NDB Cluster не предназначается для использования в сети, для которой пропускная способность составляет меньше 100 Мбит/с или у которой высокое время ожидания. Поэтому (среди других причин), попытка управлять NDB Cluster по глобальной сети, такой как Интернет, вряд ли будет успешной и не поддерживается в производстве.

Типовые данные. Мы используем базу данных world, которая доступна для скачивания с веб-сайта MySQL (см. https://dev.mysql.com/doc/index-other.html). Мы предполагаем, что у каждой машины есть достаточная память для управления операционной системой, необходимыми процессами кластера NDB и (на узлах данных) хранения базы данных.

Для получения общей информации об установке MySQL посмотрите Installing and Upgrading MySQL. Для получения информации об установке кластера NDB на Linux и других подобных Unix операционных системах посмотрите раздел 4.3. Для получения информации об установке кластера NDB на операционных системах Windows посмотрите раздел 4.4.

Для получения общей информации об аппаратных средствах кластера NDB, программном обеспечении и сетевых требованиях см. раздел 3.3.

4.1. NDB Cluster Auto-Installer (NDB 7.5)

Эта секция описывает веб-графический инсталлятор, включенный как часть кластера в NDB Cluster 7.5. При использовании NDB 7.6 посмотрите раздел 4.2.

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

NDB Cluster Auto-Installer составлен из двух компонентов. Фронтэнд это клиент GUI, осуществленный как веб-страница, которая загружается и работает в стандартном веб-браузере, таком как Firefox или Microsoft Internet Explorer. Бэкэнд это серверный процесс ( ndb_setup.py), который работает на местной машине или на другом хосте, к которому у вас есть доступ.

Эти два компонента (клиент-сервер) общаются друг с другом, используя стандартные запросы HTTP и ответы. Бэкэнд может управлять программами кластера NDB на любом хосте, где пользователь бэкэнда предоставил доступ. Если программное обеспечение NDB Cluster находится на ином хосте, бэкэнд полагается на SSH для доступа.

4.1.1. Требования NDB Cluster Auto-Installer

Эта секция предоставляет информацию о поддержанных операционных платформах и программном обеспечении, требуемом программном обеспечении и других предпосылках для управления NDB Cluster Auto-Installer.

Поддерживаемые платформы. NDB Cluster Auto-Installer доступен с большей частью дистрибутивов NDB 7.5.2 и позже для последних версий Linux, Windows, Solaris и macOS. Для более подробной информации о поддержке платформ NDB Cluster и NDB Cluster Auto-Installer см. https://www.mysql.com/support/supportedplatforms/cluster.html.

NDB Cluster Auto-Installer не поддерживается с NDB 7.5.0 или 7.5.1 (Bug #79853, Bug #22502247).

Поддержанные веб-браузеры. Веб-инсталлятор поддерживается с последними версиями Firefox и Microsoft Internet Explorer. Это должно также работать с последними версиями Opera, Safari и Chrome, хотя мы не полностью проверили на совместимость с этими браузерами.

Необходимое программное обеспечение: сервер. Следующее программное обеспечение должно быть установлено на хосте, где выполняется Auto-Installer:

  • Python 2.6 или выше. Auto-Installer требует Python и стандартных библиотек. Если они не устанавливаются в системе, можно добавить их используя диспетчер пакетов системы. Иначе они могут быть загружены с http://python.org/download/.

  • Paramiko 1.7.7.1 или выше. Можно загрузить это с http://www.lag.net/paramiko/, если это не доступно из диспетчера пакетов системы.

  • Pycrypto version 1.9 или выше. Этот модуль криптографии требуется Paramiko. Если это недоступно с использованием пакета вашей системы, можно загрузить его с https://www.dlitz.net/software/pycrypto/.

Все программное обеспечение в предыдущем списке включено в версию Windows инструмента конфигурирования и не должно быть установлено отдельно.

Необходимое программное обеспечение: удаленные хосты. Единственное программное обеспечение для удаленных хостов, где вы хотите развернуть узлы кластера NDB, это сервер SSH, который обычно устанавливается по умолчанию на системах Linux и Solaris. Несколько альтернатив доступны для Windows, для обзора их см. http://en.wikipedia.org/wiki/Comparison_of_SSH_servers.

Дополнительное требование, используя многократных хосты: возможность подтвердить подлинность любому из отдаленных хостов, используя SSH и надлежащие ключи или удостоверения пользователя, как обсуждено в следующих нескольких параграфах:

Идентификация и безопасность. Три основных механизма безопасности или аутентификации для удаленного доступа доступны Auto-Installer:

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

    Вы никогда не должны использовать системный логин root для удаленного доступа, поскольку это чрезвычайно опасно. Кроме того, mysqld не может обычно запускаться от имени root. По этим и другим причинам необходимо обеспечить доступ SSH для обычного пользователя на целевой системе, а не для системного root. См. How to Run MySQL as a Normal User.

  • HTTPS. Удаленная связь между фронтэндом веб-браузера и бэкэндом не зашифрована по умолчанию, что означает, что информация, такая как пароль пользователя SSH передана как открытый текст, который является удобочитаемым любому. Для коммуникации с удаленным клиентом, которая будет зашифрована, у бэкэнда должен быть сертификат, а фронтэнд должен общаться с бэкэндом, используя HTTPS, а не HTTP. Предоставление возможности HTTPS достигается наиболее легко посредством издания самоподписанного сертификата. Как только он сделан, необходимо удостовериться, что он используется. Можно сделать это, запустив ndb_setup.py из командной строки с опциями --use-https и --cert-file.

  • Основанная на сертификате идентификация. Бэкэнд ndb_setup.py может выполнить команды на местном хосте, а также отдаленных хостах. Это означает, что любой соединяющийся с бэкэндом может взять на себя ответственность, как выполняются команды. Чтобы отклонить нежелательные связи с бэкэндом, сертификат может требоваться для идентификации клиента. В этом случае он должен быть выпущен пользователем, установлен в браузере и сделан доступным для бэкэнда в целях идентификации. Можно выполнить это требование (вместе с или вместо пароля или ключевой идентификации), запустив ndb_setup.py с опцией --ca-certs-file.

Нет никакой потребности или требования для безопасной аутентификации, когда браузер клиента работает на том же самом хосте, где бэкэнд Auto-Installer.

См. также раздел 7.12, который обсуждает соображения безопасности, которые надо принять во внимание, развертывая кластер NDB, а также Security для более общей информации о безопасности MySQL.

4.1.2. Применение NDB Cluster Auto-Installer

NDB Cluster Auto-Installer состоит из нескольких страниц, каждая соответствует шагу в процессе формирования и развертывания кластера NDB, и перечислены здесь:

  • Welcome: Начните использовать автоинсталлятор, приняв решение формировать новый кластер NDB или продолжить формировать существующий.

  • Define Cluster: Установите основную информацию в целом, такую как имя кластера и хосты. Здесь можно также установить тип аутентификации SSH для доступа к отдаленным хостам в случае необходимости.

  • Define Hosts: Опознайте хосты, где вы намереваетесь управлять процессами кластера NDB.

  • Define Processes: Назначьте один или несколько процессов данного типа или типов каждому хосту кластера.

  • Define Attributes: Настройте параметры для процессов или типов процессов.

  • Deploy Cluster: Разверните кластер с заданной ранее конфигурацией, запустите и остановите развернутый кластер.

Следующие разделы описывают более подробно цель и функцию каждой из этих страниц.

Запуск NDB Cluster Auto-Installer

Auto-Installer поставляется вместе с NDB Cluster. См. главу 4. Существующая секция объясняет, как его запустить. Можно сделать это, вызвав ndb_setup.py.

Необходимо управлять ndb_setup.py как обычный пользователь, никакие специальные привилегии не необходимы, чтобы сделать это. Вы не должны управлять этой программой как пользователь mysql, root или Administrator, это может вызвать сбой установки.

ndb_setup.py лежит в подкаталоге bin установочного каталога NDB Cluster, обычно это /usr/local/mysql/bin в Linux или C:\Program Files\MySQL\MySQL Server 5.6\bin в Windows, но это может измениться согласно тому, где программное обеспечение NDB Cluster устанавливается в вашей системе.

В Windows можно также начать инсталлятор, управляя setup.bat в каталоге установки NDB Cluster. Когда вызван из командной строки, это принимает те же самые опции, как ndb_setup.py.

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

  1. Перейдите в терминале в каталог NDB Cluster bin и вызовите его из командной строки без любых дополнительных аргументов:

    shell> ndb_setup
    

    Это работает независимо от операционной платформы.

  2. Перейдите в менеджере файлов в каталог NDB Cluster bin (например, подойдут Windows Explorer в Windows, Konqueror, Dolphin или Nautilus в Linux) и активируйте (обычно дважды щелкая) файл ndb_setup.py. Это работает в Windows и должно работать с наиболее распространенными рабочими столами Linux.

    В Windows можно также перейти к инсталляционному каталогу кластера NDB и активировать значок файла setup.bat.

В любом случае как только вызван ndb_setup.py, Auto-Installer Welcome screen должен открыться в веб-браузере системы по умолчанию.

В некоторых случаях можно хотеть использовать параметры настройки не по умолчанию для инсталлятора, такие как определение различного порта для включенного веб-сервера Auto-Installer, в этом случае необходимо вызвать ndb_setup.py с одной или более опциями запуска с параметрами, отвергающими необходимые умолчания. Те же самые опции запуска могут использоваться в системах Windows с файлом setup.bat , поставляемым для таких платформ в дистрибутиве NDB Cluster. Это может быть сделано, используя командную строку, но если вы хотите или должны запустить инсталлятор с настольного или файлового браузера, подразумевая одну или больше опций, также возможно создать скрипт, содержащий надлежащий вызов, затем дважды щелкнуть по значку файла в файловом браузере, чтобы запустить инсталлятор. В системах Linux вы, возможно, также должны были бы сначала сделать исполняемым файл скрипта. Для получения информации о продвинутых опциях запуска для автоинсталлятора кластера NDB посмотрите раздел 6.27.

Экран Welcome в NDB Cluster Auto-Installer

Экран Welcome загружается в браузере по умолчанию, когда запускается ndb_setup.py:

Рис. 4.2. Экран Welcome NDB Cluster Auto-Installer

Content is described in the surrounding text.

Этот экран обеспечивает следующие два выбора для входа в инсталлятор, один из которых должен быть выбран, чтобы продолжить:

  1. Create New NDB Cluster: Начните с абсолютно нового кластера, который будет настроен и развернут.

  2. Continue Previous Cluster Configuration: Начните в том же самом пункте, где закончена предыдущая сессия со всеми предыдущими сохраненными параметрами настройки.

Второй вариант требует, чтобы браузер был в состоянии получить доступ к своим cookies от предыдущей сессии, поскольку они обеспечивают механизм, которым сохранены конфигурация и другая информация, произведенная во время сессии. Другими словами, чтобы продолжить предыдущую работу с Auto-Installer, необходимо использовать тот же самый веб-браузер, работающий на том же самом хосте, как в предыдущей сессии.

Экран Define Cluster NDB Cluster Auto-Installer

Экран Define Cluster это первый экран, который появится после выбора, сделанного на шаге Welcome, и используется для урегулирования общих свойств кластера. Вид экрана Define Cluster:

Рис. 4.3. Экран Define Cluster NDB Cluster Auto-Installer

Content is described in the surrounding text.

Экран Define Cluster позволяет вам устанавливать много общих свойств для кластера, как описано в этом списке:

  • Cluster name: имя, которое определяет кластер. По умолчанию MyCluster.

  • Host list: разграниченный запятой список из одного или более хостов, где процессы кластера должны работать. По умолчанию это 127.0.0.1. Если вы добавляете удаленные хосты, необходимо быть в состоянии соединиться с ними, используя поставляемые SSH Credentials.

  • Application type: Выберите:

    1. Simple testing: Минимальное использование ресурсов для небольшого тестирования. Это умолчание. Не предназначено для производственных сред.

    2. Web: Максимизировать производительность для данных аппаратных средств.

    3. Real-time: Максимизировать производительность максимизируя чувствительность к тайм-аутам, чтобы минимизировать время, за котрое надо обнаружить зависшие процессы кластера.

  • Write load: Выберите уровень ожидаемого количества записей для кластера в целом. Можно выбрать любой из следующих уровней:

    1. Low: ожидаемая нагрузка включает меньше 100 транзакций записи в секунду.

    2. Medium: ожидаемая нагрузка включает от 100 до 1000 транзакций записи в секунду.

    3. High: ожидаемая нагрузка включает свыше 1000 транзакций записи в секунду.

  • SSH Credentials: выберите Key-Based SSH или введите User и Password. Ключ SSH или имя пользователя с паролем требуются для соединения с любыми удаленными хостами, определенными в Host list. По умолчанию выбран Key-Based SSH, User и Password пустые.

Экран Define Hosts NDB Cluster Auto-Installer

Экран Define Hosts обеспечивает средство просмотра и определения нескольких ключевых свойств каждого хоста кластера:

Рис. 4.4. Экран Define Hosts NDB Cluster

Content is described in the surrounding text.

Хосты, в настоящее время вводимые, показаны в сетке с различными сведениями. Можно добавить хосты, нажимая Add hosts и вводя в список один или несколько отделенных запятой имен хоста, IP-адреса или оба (редактируя список хостов на экране Define Cluster).

Точно так же можно удалить один или более хостов, используя маркированную кнопку Remove selected host(s). Когда вы удаляете хост этим способом, любой процесс, который формировался для того хоста, также удален.

Если выбрано поле Automatically get resource information for new hosts в меню Settings, Auto-Installer пытается получить название платформы, объем памяти и количество ядер процессора и заполнить их автоматически. Статус этого показан в колонке Resource info. Установка информации от удаленных хостов не мгновенна и может занять время, особенно от удаленных хостов под Windows.

Если параметры пользователя SSH на экране Define Cluster изменяются, инструмент пытается освежить информацию об аппаратных средствах от любых хостов, для которых отсутствует информация. Однако, если данная область была уже отредактирована, указанная пользователями информация не переписана никаким значением от того хоста.

Информация об аппаратном ресурсе, название платформы, инсталляционный каталог и каталог данных могут быть отредактированы пользователем, щелкнув по соответствующей клетке в сетке, выбирая один или более хостов и нажимая кнопку маркированную Edit selected host(s). Это заставляет появляться диалоговое окно, в котором эти области могут быть отредактированы, как показано здесь:

Рис. 4.5. Диалог Edit Hosts в NDB Cluster Auto-Installer

Content is described in the surrounding text.

Когда больше, чем один хост выбран, любые отредактированные значения применяются ко всем выбранным хостам.

Экран Define Processes NDB Cluster Auto-Installer

Экран Define Processes обеспечивает способ назначить процессы кластера NDB (узлы) хостам:

Рис. 4.6. Диалог Define Processes NDB Cluster Auto-Installer

Content is described in the surrounding text. The example process
tree topology includes "Any host" and "127.0.0.1", as defined earlier.
The 127.0.0.1 example includes the following processes: Management mode
1, API node 1, API node 2, API node 3, SQL node 1, SQL node 2,
Multi threaded data node 1, and Multi threaded data node 2. This panel also
includes "Add process" and "Delete process" buttons.

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

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

Процессы NDB Cluster имеют следующие типы:

  • Узел управления. Выполняет задачи администрирования, такие как остановка отдельных узлов данных, запрос узла и статуса кластера и создание резервных копий. Исполняемый файл: ndb_mgmd.

  • Однопоточный узел данных. Хранит данные и выполняет запросы. Исполняемый файл: ndbd.

  • Мультипоточный узел данных. Хранит данные и выполняет запросы с многократными рабочими потоками, выполняющимися параллельно. Исполняемый файл: ndbmtd.

  • Узел SQL. Сервер MySQL для выполнения SQL-запросов в NDB. Исполняемый файл: mysqld .

  • Узел API. Клиент, получающий доступ к данным в NDB посредством API NDB или другого клиента низкого уровня API, а не при помощи SQL. Посмотрите MySQL NDB Cluster API Developer Guide.

См. раздел 3.1.

Процессы, показанные в дереве, пронумерованы последовательно типом для каждого хоста, например, SQL node 1, SQL node 2 и так далее, чтобы упростить идентификацию.

Каждый узел управления, узел данных или процесс SQL должны быть назначены на определенный хост и не позволены ни на каком другом хосте. Узел API может быть назначен на единственный хост, но это не требуется. Вместо этого можно назначить его на специальное предложение Any host , которое дерево также содержит в дополнение к любым другим хостам, и которое действует как заполнитель для процессов, которым позволяют работать на любом хосте. Так можно только с процессами API .

Добавление процессов. Чтобы добавить новый процесс к данному хосту, щелкните правой кнопкой мыши по входу того хоста в дереве, затем выберите Add process, когда это появляется, или выберите хост в дереве процесса и нажмите Add process ниже дерева процесса. Выполнение любого из этих действий открывает диалог add process:

Рис. 4.7. Диалог Add Process в NDB Cluster Auto-Installer

Most content is described in the surrounding text. Shows a window titled
"Add new process" with two options: "Select process type:" that shows a
select box with "API node" selected, and "Enter process name:" with
"API node 4" entered as plain text. Action buttons include
"Cancel" and "Add".

Здесь можно выбрать из числа доступных типов процесса, можно также ввести произвольное имя процесса, чтобы занять место предложенного значения при желании.

Удаление процессов. Чтобы удалить процесс, щелкните правой кнопкой мыши по процессу в дереве и выберите delete process или выберите процесс, затем используйте кнопку delete process ниже дерева процесса.

Когда процесс выбран в дереве процесса, информация об этом процессе показана в информационной группе, где можно поменять имя процесса и возможно его тип. В настоящее время можно изменить однопоточный узел данных ( ndbd) на мультипоточный ( ndbmtd) или наоборот, никакие другие изменения типа процесса не позволены. Если вы хотите внести изменение между какими-либо другими типами процесса, необходимо удалить оригинальный процесс сначала, затем добавить новый процесс желаемого типа.

Экран Define Attributes NDB Cluster Auto-Installer

Экран похож на Define Processes, включая дерево процессов. В отличие от дерева того экрана, дерево процессов Define Attributes организовано процессом или типом узла, с однопоточными и многопоточными узлами данных, считающимися того же самого типа с этой целью, в группах, маркированных Management Layer, Data Layer, SQL Layer и API Layer. Информационная панель показывает информацию относительно пункта, в настоящее время выбранного. Экран Define Attributes:

Рис. 4.8. Экран Define Attributes в NDB Cluster Auto-Installer

Content is described in the surrounding text.

Флажок Show advanced configuration, когда выбран, делает расширенные настройки видимыми в информационной панели. Эти опции устанавливаются и используются, видимы ли они.

Можно отредактировать признаки для единственного процесса, выбрав тот процесс из дерева, или для всех процессов того же самого типа в группе, выбрав одну из папок Layer. Набор значений для каждого процесса для данного признака отвергает любое урегулирование уровня кластера для того признака, который иначе относился бы к рассматриваемому процессу. Пример такой информационной панели (для процесса SQL):

Рис. 4.9. Define Attributes Detail с атрибутами процееса SQL

Most content is described in the surrounding text.
SQL Node 1 is selected and displays property fields for "NodeId",
"HostName", "DataDir", "Port", and "Socket". The "DataDir", "Port",
and "Socket" rows include a green plus sign button on the right indicating
that they can be edited.

Для некоторых признаков, показанных в информационной панели, показана кнопка, имеющая знак "плюс", что означает, что значение признака может быть отвергнуто. Эта кнопка + активирует входной виджет для признака, позволяя вам изменить его значение. Когда оно перекрыто, эта кнопка изменена на кнопку с X:

Рис. 4.10. Define Attributes Detail, отвергая значение по умолчанию признака

Most content is described in the surrounding text. Is like the
previous image but with the green plus sign button was clicked and its entry
can now be edited. The green plus sign was replaced with a red X.

Нажатие на X рядом с признаком отменяет любые изменения, внесенные в него, это немедленно возвращается к предопределенному значению.

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

Экран Deploy Cluster в NDB Cluster Auto-Installer

Этот экран позволяет вам выполнять следующие задачи:

  • Команды запуска процесса и конфигурационные файлы, которые будут применены.

  • Распределите конфигурационные файлы, создав любые необходимые файлы и каталоги на всех хостах кластера, то есть, разверните кластер, как в настоящее время формируется.

  • Запустите и остановите кластер.

Экран Deploy Cluster:

Рис. 4.11. Экран Deploy Cluster Configuration в NDB Cluster Auto-Installer

Content is described in the surrounding text.

Подобно экрану Define Attributes, этот экран показывает дерево процессов, которое организовано типом процесса. Рядом с каждым процессом в дереве есть значок состояния, указывающий на текущий статус процесса: связанный (CONNECTED), запускается (STARTING), работает (STARTED), останавливается (STOPPING) или отключен (NO_CONTACT). Символ зеленый, если процесс связан или работает, желтый, если это начинается или останавливается, красный, если процесс остановлен, или сервер управления не может связаться.

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

Этот экран также содержит три кнопки, описанные в следующем списке:

  • Deploy cluster: Проверьте, что конфигурация действительна. Создайте любые каталоги, требуемые на хостах кластера, и распределите конфигурационные файлы на хостов. Индикатор выполнения показывает, как далеко зашло развертывание.

  • Start cluster: Кластер развернут, как с Deploy cluster, после которой все процессы кластера начаты в правильном порядке.

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

    Рис. 4.12. Индикатор выполнения со статусом процесса запуска узла

    Progress bar showing status of node startup process. The small window
is titled "Starting cluster" with a progress bar at 40% in the "Starting
Cluster processes" phase of the operation.

    Значки состояния процесса, примыкающие к дереву процесса, упомянутому ранее, также обновляются в соответствии со статусом каждого процесса.

  • Stop cluster: После того, как кластер был запущен, можно остановить его, используя эту кнопку. Как со стартом кластера, закрытие кластера не мгновенно и может потребовать некоторого времени. Индикатор выполнения, подобный показанному во время запуска кластера, показывает приблизительный текущий статус процедуры закрытия кластера, как и значки состояния процесса, примыкающие к дереву процессов.

Auto-Installer производит файл my.cnf, содержащий подходящие опции для каждого процесса mysqld кластера.

4.2. NDB Cluster Auto-Installer (NDB 7.6)

Эта секция описывает веб-графический инсталлятор конфигурации, включенный как часть NDB Cluster 7.6. Эта версия инсталлятора отличается во многих отношениях от поставляемого с NDB 7.5 и более ранними выпусками, если вы используете NDB 7.5, посмотрите раздел 4.1. Некоторые ключевые улучшения перечисляются здесь:

  • Постоянное хранение в зашифрованном файле как альтернатива основанному на cookie хранению, теперь используется по умолчанию.

  • Безопасные связи (HTTPS) по умолчанию.

  • Модернизированная библиотека безопасности Paramiko.

  • Способность использовать пароли для зашифрованных закрытых ключей и использовать различные параметры авторизации с различными хостами.

  • Улучшенный информационный поиск хоста.

  • Улучшенная конфигурация; продвинутые параметры конфигурации.

См. раздел 3.4.2.

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

NDB Cluster Auto-Installer составлен из двух компонентов. Фронтэнд это клиент GUI, осуществленный как веб-страница, которая загружается и работает в стандартном веб-браузере, таком как Firefox или Microsoft Internet Explorer. Бэкэнд это серверный процесс ( ndb_setup.py), который работает на местной машине или на другом хосте, к которому у вас есть доступ.

Эти два компонента (клиент-сервер) общаются друг с другом используя стандартные запросы HTTP и ответы. Бэкэнд может управлять программами кластера NDB на любом хосте, где пользователь бэкэнда предоставил доступ. Если программное обеспечение NDB Cluster находится на ином хосте, бэкэнд полагается на SSH для доступа, пользуясь библиотекой Paramiko для выполнения команд удаленно (см. раздел 4.2.1).

4.2.1. Требования NDB Cluster Auto-Installer

Эта секция предоставляет информацию о поддержанных операционных платформах и программном обеспечении, требуемом программном обеспечении и других предпосылках для управления NDB Cluster Auto-Installer.

Поддерживаемые платформы. NDB Cluster Auto-Installer доступен с NDB 8.0 для последних версий Linux, Windows, Solaris и macOS. Для более подробной информации о поддержке платформ для кластера NDB и NDB Cluster Auto-Installer см. https://www.mysql.com/support/supportedplatforms/cluster.html.

Поддержанные веб-браузеры. Веб-инсталлятор поддерживается с последними версиями Firefox и Microsoft Internet Explorer. Это должно также работать с последними версиями Opera, Safari и Chrome, хотя мы не полностью проверили на совместимость с этими браузерами.

Необходимое программное обеспечение: сервер. Следующее программное обеспечение должно быть установлено на хосте, где выполняется Auto-Installer:

  • Python 2.6 или выше. Auto-Installer требует Python и стандартных библиотек. Если они еще не стоят в системе, можно добавить их, используя диспетчер пакетов системы. Иначе можно загрузить их с http://python.org/download/.

  • Paramiko 2 или выше. Это требуется, чтобы общаться с удаленными хостами, использующими SSH. Можно загрузить его с http://www.lag.net/paramiko/. Paramiko может также быть доступным от диспетчера пакетов вашей системы.

  • Pycrypto version 2.6 или выше. Этот модуль криптографии требуется Paramiko и может быть установлен через pip install cryptography. Если pip не устанавливается, и модуль недоступен с использованием пакета вашей системы, можно загрузить его с https://www.dlitz.net/software/pycrypto/.

Все программное обеспечение в предыдущем списке включено в версию Windows инструмента конфигурирования и не должно быть установлено отдельно.

Библиотеки Paramiko и Pycrypto требуются, только если вы намереваетесь развернуть узлы кластера NDB на удаленных хостах и не необходимы, если все узлы находятся на том же самом хосте.

Необходимое программное обеспечение: удаленные хосты. Единственное программное обеспечение для удаленных хостов, где вы хотите развернуть узлы кластера NDB, это сервер SSH, который обычно устанавливается по умолчанию на системах Linux и Solaris. Несколько альтернатив доступны для Windows, для обзора их см. http://en.wikipedia.org/wiki/Comparison_of_SSH_servers.

Дополнительное требование, используя много хостов, возможно подтвердить подлинность любому из удаленных хостов, использующих SSH и надлежащие ключи или удостоверения пользователя, как обсуждено в следующих нескольких параграфах:

Идентификация и безопасность. Три основных механизма безопасности или аутентификации для удаленного доступа доступны Auto-Installer:

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

    Вы никогда не должны использовать системного пользователя root на удаленный доступ, поскольку это чрезвычайно опасно. Кроме того, mysqld не может обычно выполняться как root. По этим и другим причинам необходимо обеспечить параметры доступа SSH для обычного пользователя на целевой системе, а не для системного root. См. How to Run MySQL as a Normal User.

  • HTTPS. Удаленная связь между фронтэндом веб-браузера и бэкэндом не зашифрована по умолчанию, что означает, что информация, такая как пароль пользователя SSH, передана как открытый текст, который является удобочитаемым любому. Для коммуникации от удаленного клиента, которая будет зашифрована, у бэкэнда должно быть сертификат, а фронтэнд должен общаться с бэкэндом, используя HTTPS, а не HTTP. Предоставление возможности HTTPS достигается наиболее легко посредством издания самоподписанного сертификата. Как только он выпущен, необходимо удостовериться, что он используется. Можно сделать это, запустив ndb_setup.py из командной строки с опциями --use-https (-S) и --cert-file (-c).

    Типовой файл сертификата cfg.pem включен и используется по умолчанию. Этот файл расположен в каталоге mcc в каталоге установки, в Linux полный путь к файлу обычно /usr/share/mysql/mcc/cfg.pem. В Windows это обычно C:\Program Files\MySQL\MySQL Server 5.7\share\mcc\cfg.pem. Для целей тестирования можно просто запустить инсталлятор с опцией -S, чтобы использовать связь HTTPS между браузером и бэкэндом.

    Auto-Installer сохраняет конфигурационный файл для данного кластера mycluster01 как mycluster01.mcc в корневом каталоге пользователя, вызвавшего ndb_setup.py. Этот файл зашифрован с паролем, поставляемым пользователем (используя Fernet), потому что HTTP передает пароль открытым текстом, сильно рекомендуется, чтобы вы всегда использовали связь HTTPS, чтобы получить доступ к Auto-Installer.

  • Авторизация по сертификату. Бэкэнд ndb_setup.py может выполнить команды на местном хосте, а также на удаленных хостах. Это означает, что любой соединяющийся с бэкэндом может взять на себя ответственность, как выполняются команды. Чтобы отклонить нежелательные связи с бэкэндом, может требоваться сертификат для идентификации клиента. В этом случае он должен быть выпущен пользователем, установлен в браузере и сделан доступным для бэкэнда в целях идентификации. Можно выполнить это требование (вместе с или вместо пароля или ключевой идентификации), запустив ndb_setup.py с опцией --ca-certs-file (-a).

Нет никакой потребности для безопасной аутентификации, когда браузер клиента работает на том же самом хосте, где Auto-Installer.

См. раздел 7.12 и Security.

4.2.2. Применение NDB Cluster Auto-Installer

Интерфейс NDB Cluster Auto-Installer составлен из нескольких страниц, каждая соответствует шагу в процессе настройки и развертывания кластерп NDB. Эти страницы перечисляются здесь:

  • Welcome: Начните использовать Auto-Installer, приняв решение формировать новый кластер NDB или продолжить формировать существующий.

  • Define Cluster: Установите основную информацию в целом, такую как имя и хосты. Здесь можно также установить тип аутентификации SSH для доступа к удаленным хостам в случае необходимости.

  • Define Hosts: Опознайте хосты, где вы намереваетесь управлять процессами кластера NDB.

  • Define Processes: Назначьте один или несколько процессов данного типа или типов каждому хосту кластера.

  • Define Parameters: Конфигурация приписывает атрибуты для процессов или типов процессов.

  • Deploy Configuration: Разверните кластер с набором конфигурации, запустите и остановите развернутый кластер.

Меню Settings и Help в NDB Cluster Installer

Эти меню показывают на всех экранах за исключением Welcome. Они обеспечивают доступ к параметрам настройки инсталлятора и информации. Меню Settings показывают здесь более подробно:

Рис. 4.13. Меню Settings в NDB Cluster Auto-Installer

Content is described in the surrounding text.
  • Automatically save configuration as cookies: Сохраните свою конфигурационную информацию, такую как имена хоста, данные и значения параметров, как cookie в браузере. Когда этот параметр выбран, вся информация кроме любого пароля SSH сохранена. Это означает, что можно оставить и перезапустить браузер и продолжить работать над той же самой конфигурацией. Этот выбор позволен по умолчанию.

    Пароль SSH никогда не сохранен, если вы используете его, необходимо поставлять его в начале каждой новой сессии.

  • Show advanced configuration options: Показывать по умолчанию продвинутые параметры конфигурации, где это возможно.

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

    Вы можете также переключить показ продвинутых параметров для отдельных процессов на экране Define Parameters.

    Этот выбор отключен по умолчанию.

  • Automatically get resource information for new hosts: Запросить новые хосты автоматически для информации об аппаратном ресурсе, чтобы предварительно наполнить много параметров конфигурации. В этом случае предложенные значения не обязательны, но они используются, если явно не изменены, используя соответствующие опции редактирования в инсталляторе.

    Этот выбор позволен по умолчанию.

Меню Help установщика:

Рис. 4.14. Меню Help в NDB Cluster Auto-Installer

Content is described in the surrounding text.

Меню Help предоставляет несколько возможностей, описанных в следующем списке:

  • Contents: Покажите встроенное руководство пользователя. Это открыто в отдельном окне браузера, так, чтобы оно могло использоваться одновременно с инсталлятором, не прерывая технологический процесс.

  • Current page: Откройте встроенное руководство пользователя для секции, описывающей страницу, в настоящее время показываемую в инсталляторе.

  • About: Откройте диалог, показывающий название инсталлятора и номер версии NDB Cluster.

Auto-Installer также обеспечивает контекстно-зависимую помощь в форме всплывающих подсказок для большинства входных виджетов.

Кроме того, названия большинства параметров конфигурации NDB связаны с их описаниями в онлайн-документации. Документация показана в отдельном окне браузера.

Следующая секция обсуждает старт Auto-Installer. Секции после нее описывают более подробно цель и функцию каждой из этих страниц.

Запуск NDB Cluster Auto-Installer

Auto-Installer предоставляют вместе с программным обеспечением NDB Cluster. Отдельные пакеты RPM и .deb, содержащие только Auto-Installer, также доступны для многих дистрибутивов Linux. См. главу 4.

Существующая секция объясняет, как запустить инсталлятор. Можно это сделать, вызвав ndb_setup.py.

Необходимо управлять ndb_setup.py как обычный пользователь; никакие специальные привилегии не необходимы. Вы не должны выполнять управлять этой программой как пользователь mysql, root или Administrator, это приведет к ошибке.

ndb_setup.py находится в подкаталоге bin каталога установки NDB Cluster, как правило, это /usr/local/mysql/bin в Linux или C:\Program Files\MySQL\MySQL Server 5.7\bin в Windows. Это может измениться согласно тому, где программное обеспечение NDB Cluster устанавливается на вашей системе и методу установки.

В Windows можно также запустить файл setup.bat в каталоге установки NDB Cluster. Когда вызван из командной строки, этот пакетный файл принимает те же самые опции, как ndb_setup.py.

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

  1. Перейдите в каталог NDB Cluster bin в терминале и вызовите файл из командной строки без любых дополнительных аргументов:

    shell> ndb_setup.py
    Running out of install dir: /usr/local/mysql/bin
    Starting web server on port 8081
    URL is https://localhost:8081/welcome.html
    deathkey=627876
    Press CTRL+C to stop web server.
    The application should now be running in your browser.
    (Alternatively you can navigate to https://localhost:8081/welcome.html to start it)
    

    Это работает независимо от операционной платформы.

  2. Перейдите в каталог NDB Cluster bin в файловом браузере (таком как Windows Explorer в Windows, Konqueror, Dolphin или Nautilus в Linux) и активируйте (обычно дважды щелкая) файл ndb_setup.py. Это работает в Windows и должно работать с наиболее распространенными рабочими столами в Linux.

    В Windows также можно перейти в каталог установки NDB Cluster и активировать значок файла setup.bat.

В любом случае, как только вызван ndb_setup.py, страница Auto-Installer Welcome должна открыться в веб-браузере системы по умолчанию. В противном случае необходимо быть в состоянии открыть страницу http://localhost:8081/welcome.html или https://localhost:8081/welcome.html вручную.

В некоторых случаях можно хотеть использовать параметры настройки не по умолчанию для инсталлятора, такие как определение HTTPS для связей или другой порт для включенного веб-сервера Auto-Installer, в этом случае необходимо вызвать ndb_setup.py с опциями. Те же самые опции запуска могут использоваться в системах Windows с файлом setup.bat, поставляемым для таких платформ в NDB Cluster. Это может быть сделано, используя командную строку, но если вы хотите или должны начать инсталлятор с настольного или файлового браузера, используя один или больше этих вариантов, также возможно создать скрипт, затем дважды щелкнуть по значку файла в файловом браузере, чтобы начать инсталлятор. В системах Linux вы, возможно, также должны были бы сделать файл исполняемым. Если вы планируете использовать Auto-Installer с удаленного хоста, необходимо использовать опцию -S. См. раздел 6.27.

Экран Welcome в NDB Cluster Auto-Installer

Экран Welcome загружается в браузере по умолчанию, когда запускается ndb_setup.py. В первый запуск Auto-Installer (или если по некоторой другой причине нет никаких существующих конфигураций), этот экран появляется как показано здесь:

Рис. 4.15. Экран Welcome NDB Cluster Auto-Installer, первый запуск

Content is described in the surrounding text.

В этом случае единственный выбор кластера для конфигурации это новый кластер, и обе кнопки View Cfg и Continue неактивны.

Чтобы создать новую конфигурацию, введите и подтвердите пароль в обеспеченных текстовых окнах. Когда это было сделано, можно нажать Continue, чтобы перейти к экрану Define Cluster, где можно назначить имя.

Если вы ранее создали один или более кластеров в Auto-Installer, они перечисляются по имени. Этот пример показывает существующий кластер mycluster-1:

Рис. 4.16. Экран Welcome в NDB Cluster Auto-Installer с ранее созданным кластером mycluster-1

Content is described in the surrounding text.

Чтобы рассмотреть конфигурацию и работать с этим кластером, выберите кнопку рядом с его именем в списке, затем введите пароль, который использовался, чтобы создать кластер. Когда вы сделали это правильно, можно нажать View Cfg, чтобы рассмотреть и отредактировать конфигурацию кластера.

Экран Define Cluster в NDB Cluster Auto-Installer

Экран Define Cluster появляется после экрана Welcome и используется для урегулирования общих свойств кластера. Общий вид экрана Define Cluster:

Рис. 4.17. Экран Define Cluster в NDB Cluster Auto-Installer

Content is described in the surrounding text.

Этот экран и последующие экраны также включают меню Settings и Help, которые описаны в этой секции, см. здесь.

Экран Define Cluster позволяет вам устанавливать три вида свойств для кластера: свойства кластера, свойства SSH и инсталляционные свойства.

Свойства кластера, которые могут быть установлены на этом экране, перечисляются здесь:

  • Cluster name: имя, которое определяет кластер, в этом примере это mycluster-1. Имя определяется на предыдущем экране и не может быть изменено здесь.

  • Host list: разграниченный запятой список из одного или более хостов, где процессы кластера должны работать. По умолчанию это 127.0.0.1. Если вы добавляете удаленные хосты, необходимо быть в состоянии соединиться с ними, используя параметры, поставляемые как свойства SSH.

  • Application type: Выберите из следующего:

    1. Simple testing: Минимальное использование ресурсов для небольшого тестирования. Это умолчание. Не предназначено для производственных сред.

    2. Web: Максимизируйте производительность для данных аппаратных средств.

    3. Real-time: Максимизируйте производительность, максимизируя чувствительность к тайм-аутам, чтобы минимизировать время, за которое должны быть обнаружены зависшие процессы кластера.

  • Write load: Выберите уровень для ожидаемого количества записей для кластера в целом. Можно выбрать любой из следующих уровней:

    1. Low: До 100 транзакций записи в секунду.

    2. Medium: От 100 до 100 транзакций записи в секунду, это умолчание.

    3. High: До 1000 транзакций записи в секунду.

Свойства SSH описаны в следующем списке:

  • Key-Based SSH: Поставьте этот флажок, чтобы использовать доступ по ключу для удаленного хоста. Если включено, ключевой пользователь и пароль должны также быть заданы, иначе пользователь и пароль для удаленного входа в систему необходимы.

  • User: Имя пользователя с доступом удаленного входа в систему.

  • Password: Пароль для удаленного пользователя.

  • Key user: Имя пользователя, для которого ключ действителен, если не то же самое, как пользователь операционной системы.

  • Key passphrase: Пароль для ключа при необходимости.

  • Key file: Путь к файлу ключей. Умолчание ~/.ssh/id_rsa.

Свойства SSH на этой странице относятся ко всем хостам в кластере. Они могут быть отвергнуты для данного хоста, редактируя свойства хостов на экране Define Hosts.

Два инсталляционных свойства могут также быть установлены на этом экране:

  • Install MySQL Cluster: Это определяет источник, из которого Auto-Installer устанавливает NDB Cluster, если таковые имеются, на хосты кластера. Возможные значения и их эффекты перечисляются здесь:

    1. DOCKER: Попытайтесь установить MySQL Cluster Docker image из https://hub.docker.com/r/mysql/mysql-cluster/ .

    2. REPO: Попытайтесь установить NDB Cluster из MySQL Repositories.

    3. BOTH: Попытайтесь установить Docker image или программное обеспечение от хранилища, отдав предпочтение хранилищу.

    4. NONE: Не устанавливайте программное обеспечение NDB Cluster на хостах, это умолчание.

  • Open FW Ports: Проверьте этот флажок, чтобы инсталлятор попытался открыть порты, требуемые процессами кластера NDB на всех хостах.

Следующие данные показывают страницу Define Cluster с параметрами настройки для маленького испытательного кластера со всеми узлами на localhost:

Рис. 4.18. Экран Define Cluster в NDB Cluster Auto-Installer для тестового кластера

Content is described in the surrounding text.

После создания желаемых параметров настройки можно сохранить их к конфигурационному файлу и продолжить двигаться к экрану Define Hosts, нажав кнопку Save & Next.

Если вы выходите из инсталлятора без сохранения, никакие изменения не внесены в конфигурационный файл.

Экран Define Hosts в NDB Cluster Auto-Installer

Экран Define Hosts обеспечивает средство просмотра и определения нескольких ключевых свойств каждого хоста кластера:

Рис. 4.19. Экран Define Hosts в NDB Cluster

Content is described in the surrounding text.

Показанные свойства включают следующее:

  • Host: Имя или IP-адрес этого хоста

  • Res.info: Показывает OK, если установщик смог получить информацию ресурса от этого хоста

  • Platform: Операционная система или платформа

  • Memory (MB): Сумма RAM на этом хосте

  • Cores: Количество ядер процессора, доступных на этом хосте

  • MySQL Cluster install directory: Путь к каталогу, где программное обеспечение NDB Cluster устанавливается на этом хосте, по умолчанию /usr/local/bin

  • MySQL Cluster data directory: Путь к каталогу, используемому для данных NDB Cluster, по умолчанию /var/lib/mysql-cluster

  • DiskFree: Свободное пространство на диске в байтах

    Для хостов с несколькими дисками показывают только пространство, доступное на диске, используемом для каталога данных

Этот экран также предоставляет расширенное представление каждого хоста, которое включает следующие свойства:

  • FDQN: полностью компетентное доменное имя этого хоста, используемое инсталлятором, чтобы соединиться с ним.

  • Internal IP: Адрес IP, используемый для связи с процессами кластера, работающими на этом хосте, процессами, работающими в другом месте.

  • OS Details: Подробное имя операционной системы и информация о версии.

  • Open FW: Если этот флажок позволен, установщик пытается открыть порты в брандмауэре хоста, необходимые процессам кластера.

  • REPO URL: URL репозитория MySQL NDB Cluster

  • DOCKER URL: URL MySQL NDB CLuster Docker image, для NDB 8.0 это mysql/mysql-cluster:8.0.

  • Install: Если этот флажок позволен, Auto-Installer пытается установить программное обеспечение NDB Cluster на этом хосте.

Расширенное представление показывают здесь:

Рис. 4.20. Расширенное представление экрана Define Hosts в NDB Cluster

Content is described in the surrounding text.

Все клетки редактируемые, за исключениями в столбцах Host, Res.info и FQDN.

Знайте, что получение информации от удаленных хостов может занять время. Области, для которых не могла быть получена никакая информация, обозначаются эллипсом. Можно повторить установку информации о ресурсе от одного или более хостов, выбрав хосты в списке и затем нажать кнопку Refresh selected host(s).

Добавление и удаление хостов

Можно добавить один или более хостов, нажав кнопку Add Host и введя необходимые свойства, где обозначено в диалоге Add new host:

Рис. 4.21. Диалог NDB Cluster Add Host

Content is described in the surrounding text.

Этот диалог включает следующие области:

  • Host name: список разделенных запятой значений из одного или более имен хоста, IP-адресов или обоих. Они должны быть доступными от хоста, где работает Auto-Installer.

  • Host internal IP (VPN): Если вы настраиваете кластер, чтобы работать на VPN или другой внутренней сети, введите IP-адрес или адреса, используемые для контакта с узлами кластера на других хостах.

  • Key-based auth: Если включено, позволяет основанную на ключе идентификацию. Можно задать любую дополнительную необходимую информацию в User, Passphrase и Key file.

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

  • Open FW ports: Выбор этого флажка позволяет попытку открыть любые порты, необходимые процессам кластера в брандмауэре этого хоста.

  • Configure installation: Выбор этого позволяет Auto-Install пытаться настроить программное обеспечение NDB Cluster на этом хосте.

Чтобы сохранить новый хост и его свойства, нажмите Add. Если вы хотите отменить изменения, нажмите Cancel.

Точно так же можно удалить один или более хостов, используя кнопку, маркированную Remove selected host(s). Когда вы удаляете хост, любой процесс, который формировался для того хоста, также удален.

Remove selected host(s) работает немедленно. Нет никакого диалога подтверждения. Если вы удаляете хост по ошибке, необходимо повторно ввести его имя и свойства вручную, используя Add host.

Если параметры пользователя SSH на экране Define Cluster изменяются, Auto-Installer пытается освежить информацию о ресурсе от любых хостов, для которых отсутствует информация.

Можно отредактировать название платформы хоста, информацию об аппаратном ресурсе, инсталляционный каталог и каталог данных, щелкая по соответствующей клетке в сетке, выбирая один или более хостов и нажимая кнопку, маркированную Edit selected host(s). Это заставляет появляться диалоговое окно, в котором эти области могут быть отредактированы, как показано здесь:

Рис. 4.22. Диалог Edit Hosts в NDB Cluster Auto-Installer

Content is described in the surrounding text.

Когда больше, чем один хост выбран, любые отредактированные значения применяются ко всем выбранным хостам.

Как только вы ввели всю желаемую информацию о хосте, можно использовать кнопку Save & Next, чтобы сохранить информацию в конфигурационном файле кластера и продолжить на экране Define Processes, где можно настроить процессы кластера NDB на одном или более хостах.

Экран Define Processes в NDB Cluster Auto-Installer

Экран Define Processes обеспечивает способ назначить узлы кластера NDB, чтобы сгруппировать хосты:

Рис. 4.23. Диалог Define Processes в NDB Cluster Auto-Installer

Content is described in the surrounding text. The example process
tree topology includes "Any host" and "localhost", as defined earlier.
The localhost tree includes the following processes: Management mode 1,
API node 1, API node 2, API node 3, SQL node 1, SQL node 2, Multi threaded
data node 1, and Multi threaded data node 2. This panel also includes
"Add process" and "Del[ete] process" buttons.

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

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

Процессы NDB Cluster имеют типы, описанные в этом списке:

  • Узел управления. Выполняет задачи администрирования, такие как остановка отдельных узлов данных, запрос статуса узла и кластера и создания резервных копий. Исполняемый файл: ndb_mgmd.

  • Однопоточный узел данных. Хранит данные и выполняет запросы. Исполняемый файл: ndbd.

  • Многопоточный узел данных. Хранит данные и выполняет запросы с многократными рабочими потоками, выполняющимися параллельно. Исполняемый файл: ndbmtd.

  • Узел SQL. Сервер MySQL для выполнения SQL-запросов к NDB. Исполняемый файл: mysqld.

  • Узел API. Клиент, получающий доступ к данным в NDB посредством API NDB или другого клиента низкого уровня API, а не при помощи SQL. Посмотрите MySQL NDB Cluster API Developer Guide.

См. раздел 3.1.

Процессы, показанные в дереве, пронумерованы последовательно по типу для каждого хоста, например, SQL node 1, SQL node 2 и так далее, чтобы упростить идентификацию.

Каждый узел управления, узел данных или процесс SQL должны быть назначены на определенный хост и им не позволено работать ни на каком другом хосте. Узел API может быть назначен на единственный хост, но это не требуется. Вместо этого можно назначить его на специальное предложение Any host, которое дерево также содержит в дополнение к любым другим хостам, и которое действует как заполнитель для процессов, которым позволяют работать на любом хосте. Так можно только с процессами API.

Добавление процессов. Чтобы добавить новый процесс к данному хосту, щелкните правой кнопкой мыши по входу того хоста в дереве, затем выберите Add process, когда это появляется, или выберите хост в дереве процесса и нажмите Add process ниже дерева процессов. Выполнение любого из этих действий открывает диалог add process:

Рис. 4.24. Диалог Add Process в NDB Cluster Auto-Installer

Most content is described in the surrounding text. Shows a window titled
"Add new process" with two options: "Select process type:" that shows a
select box with "API node" selected, and "Enter process name:" with
"API node 4" entered as plain text. Action buttons include
"Cancel" and "Add".

Здесь можно выбрать из числа доступных типов процессов, можно также ввести произвольное имя процесса, чтобы занять место предложенного значения при желании.

Удаление процессов. Чтобы удалить процесс, выберите тот процесс в дереве и используйте кнопку Del process.

Когда вы выбираете процесс в дереве процессов, информация о том процессе показана в информационной панели, где можно поменять имя процесса и возможно его тип. Можно изменить многопоточный узел данных ( ndbmtd) на однопоточный ( ndbd) или наоборот. Никакие другие изменения типа процесса не позволены. Если вы хотите внести изменение между какими-либо другими типами процесса, необходимо удалить оригинальный процесс сначала, затем добавить новый процесс желаемого типа.

Экран Define Parameters в NDB Cluster Auto-Installer

Подобно Define Processes, этот экран включает дерево процессов, для Define Parameters оно организовано процессом или типом узла в группы, маркированные Management Layer, Data Layer, SQL Layer и API Layer. Информационная панель показывает информацию относительно пункта, в настоящее время выбираемого. Экран Define Attributes:

Рис. 4.25. Экран Define Parameters в NDB Cluster Auto-Installer

Content is described in the surrounding text.

Show advanced configuration, когда включен, делает расширенные настройки для узла данных и процессов узла SQL видимыми в информационной панели. Можно также позволить это поведение глобально, установив Show advanced configuration options в Settings (см. здесь).

Можно отредактировать признаки для единственного процесса, выбрав тот процесс из дерева, или для всех процессов того же самого типа в кластере, выбрав одну из папок Layer. Установка значений для каждого процесса для данного признака отвергает любое значение уровня кластера для этого признака, которое иначе относилось бы к рассматриваемому процессу. Пример такой информационной группы (для процесса SQL) показывают здесь:

Рис. 4.26. Указание параметров процесса

Content is described in the surrounding text.

Признаки, значения которых могут быть отвергнуты, показывают в информационной группе с кнопкой, имеющей знак "плюс". Эта кнопка + активирует входной виджет для признака, позволяя вам изменить его значение. Когда значение было отвергнуто, эта кнопка изменяется на кнопку X, она отменяет любые изменения, внесенные в данный признак, который немедленно возвращается к предопределенному значению.

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

Экран Deploy Configuration в NDB Cluster Auto-Installer

Этот экран позволяет вам выполнять следующие задачи:

  • Проверить команды запуска процесса и конфигурационные файлы, которые будут применены.

  • Распределить конфигурационные файлы, создав любые необходимые файлы и каталоги на всех хостах кластера, то есть, развернуть кластер.

  • Запустить и остановить кластер.

Экран Deploy Configuration:

Рис. 4.27. Экран Deploy Configuration в NDB Cluster Auto-Installer

Content is described in the surrounding text.

Подобно Define Parameters, этот экран показывает дерево процессов, которое организовано типом процесса. Рядом с каждым процессом в дереве есть значок состояния, указывающий на текущий статус процесса: связанный (CONNECTED), запускается (STARTING), работает (STARTED), остановлен (STOPPING) или отсоединен (NO_CONTACT). Символ зеленый, если процесс связан или работает, желтый, если это стартует или останавливается, красный, если процесс остановлен, или сервер управления не может связаться.

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

Этот экран также содержит четыре кнопки:

  • Install cluster: Нефункционально в этом выпуске, предназначается для будущего выпуска.

  • Deploy cluster: Проверьте, что конфигурация действительна. Создайте любые каталоги, требуемые на хостах кластера, и распределите конфигурационные файлы на хосты. Индикатор выполнения показывает, как далеко развертывание зашло:

    Рис. 4.28. Процесс развертывания кластера

    Content is described in the surrounding text.
  • Start cluster: Кластер развернут через Deploy cluster, после чего все процессы кластера начаты в правильном порядке.

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

    Рис. 4.29. Процесс запуска кластера

    Content is described in the surrounding text.

    Значки состояния процесса рядом с пунктами, показанными в дереве процесса обновляются со статусом каждого процесса.

    Диалог подтверждения показывает, когда процесс запуска закончил работу:

    Рис. 4.30. Диалог Process Completed при запуске кластера

    Content is described in the surrounding text.
  • Stop cluster: После того, как кластер был запущен, можно остановить его, используя это. Как со стартом кластера, закрытие кластера не мгновенно и может потребовать некоторого времени. Индикатор выполнения, подобный показанному во время запуска кластера, показывает приблизительный текущий статус процедуры закрытия кластера, как и значки состояния процесса, примыкающие к дереву процесса.

    Рис. 4.31. Процесс Cluster Shutdown

    Content is described in the surrounding text.

    Диалог подтверждения указывает, когда процесс закрытия завершен:

    Рис. 4.32. Диалог Process Completed

    Content is described in the surrounding text.

Auto-Installer создает файл config.ini, содержащий параметры узла NDB для каждого узла управления, а также файл my.cnf, содержащий подходящие опции для каждого процесса mysqld в кластере. Никакие конфигурационные файлы не создаются для узлов данных или узлов API.

4.3. Установка NDB Cluster в Linux

Эта секция покрывает методы установки для кластера NDB на Linux и других подобных Unix операционных системах. В то время как следующие несколько секций обращаются к операционной системе Linux, инструкции и процедуры, данные там, должны быть легко приспосабливаемы на другие подобные Unix платформы. Для инструкций по установке для систем Windows посмотрите раздел 4.4.

На каждый хост NDB Cluster нужно установить правильные исполняемые программы. Хост, управляющий узлом SQL, должен иметь MySQL Server (mysqld). Узлы управления требуют демона сервера управления ( ndb_mgmd), узлы данных требуют демона узла данных daemon ( ndbd или ndbmtd). Не надо ставить MySQL Server на хостах узла управления и хостах узла данных. Рекомендуется, чтобы вы также установили клиент управления ( ndb_mgm) на хосте сервера управления.

Установка NDB Cluster в Linux может быть сделана, используя предварительно собранные объекты от Oracle (загружены как архив .tar.gz), с RPM-пакетами (также доступны от Oracle) или из исходного текста. Все три этих метода установки описаны ниже.

4.3.1. Установка двоичного NDB Cluster в Linux

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

Для подготовки кластера, используя предварительно собранные объекты, первый шаг в процессе установки для каждого хоста кластера должен загрузить архив с NDB Cluster downloads page. Для нового 64-битного выпуска NDB 7.5 это mysql-cluster-gpl-7.5.17-linux-glibc2.12-x86_64.tar.gz. Мы предполагаем, что вы поместили этот файл на каждую машину в каталог /var/tmp.

Если вы требуете свою сборку, см. Installing MySQL Using a Development Source Tree.

После завершения установки не запускайте ни один из исполняемых модулей. Это надо сделать после конфигурации узлов (см. раздел 4.5).

Узлы SQL. На каждой из машин, определяемых, чтобы принять узлы SQL, выполните следующие шаги как системный root:

  1. Проверьте /etc/passwd и /etc/group, чтобы узнать, есть ли уже группа и пользователь mysql. Некоторые версии OS создают их как часть процесса установки операционной системы. Если они не присутствуют, создайте новую группу mysql и в ней пользователя mysql:

    shell> groupadd mysql
    shell> useradd -g mysql -s /bin/false mysql
    

    Синтаксис для useradd и groupadd может немного отличаться в различных версиях Unix, или у них могут быть различные имена, такие как adduser и addgroup.

  2. Измените местоположение к каталогу, содержащему загруженный файл, распакуйте архив и создайте символьную ссылку mysql к каталогу mysql.

    Фактический файл и имена каталогов варьируются согласно номеру версии кластера NDB.

    shell> cd /var/tmp
    shell> tar -C /usr/local -xzvf mysql-cluster-gpl-7.5.17-linux-glibc2.12-x86_64.tar.gz
    shell> ln -s /usr/local/mysql-cluster-gpl-7.5.17-linux-glibc2.12-x86_64 /usr/local/mysql
    
  3. Измените местоположение к каталогу mysql и настройте системные базы данных, используя mysqld --initialize:

    shell> cd mysql
    shell> mysqld --initialize
    

    Это производит случайный пароль для MySQL root. Если вы не хотите, чтобы случайный пароль был произведен, можно подставить --initialize-insecure вместо --initialize. В любом случае необходимо смотреть Initializing the Data Directory для получения дополнительной информации прежде, чем выполнить этот шаг. См. также mysql_secure_installation .

  4. Установите необходимые разрешения для сервера MySQL и каталогов данных:

    shell> chown -R root .
    shell> chown -R mysql data
    shell> chgrp -R mysql .
    
  5. Скопируйте скрипт запуска MySQL к соответствующему каталогу, сделайте его выполнимым и установите его в автозапуск:

    shell> cp support-files/mysql.server /etc/rc.d/init.d/
    shell> chmod +x /etc/rc.d/init.d/mysql.server
    shell> chkconfig --add mysql.server
    

    Каталог скриптов запуска может измениться в зависимости от вашей операционной системы и версии, например, в некоторых дистрибутивах Linux, это /etc/init.d.

    Здесь мы используем Red Hat chkconfig для создания связей со скриптами запуска, используйте любые средства, соответствующие этой цели на вашей платформе, например, update-rc.d в Debian.

Помните, что предыдущие шаги должны быть повторены на каждой машине, где узел SQL должен быть.

Узлы данных. Установка узлов данных не требует mysqld. Только исполняемый файл узла данных NDB Cluster ndbd (один поток) или ndbmtd (несколько потоков). Эти объекты могут также быть найдены в архиве .tar.gz.

Системный root (то есть, после использования sudo, su root или эквивалент вашей системы для того, чтобы временно принять привилегии системного администратора), выполняют следующие шаги, чтобы установить объекты узла данных на хостах узла данных:

  1. Измените местоположение к /var/tmp и распакуйте ndbd и ndbmtd из архива в /usr/local/bin:

    shell> cd /var/tmp
    shell> tar -zxvf mysql-cluster-gpl-7.5.17-linux-glibc2.12-x86_64.tar.gz
    shell> cd mysql-cluster-gpl-7.5.17-linux-glibc2.12-x86_64
    shell> cp bin/ndbd /usr/local/bin/ndbd
    shell> cp bin/ndbmtd /usr/local/bin/ndbmtd
    

    Можно безопасно удалить каталог, созданный, распаковав загруженный архив и файлы, которые он содержит, в /var/tmp после копирования ndb_mgm и ndb_mgmd.

  2. Измените местоположение к каталогу, в который вы скопировали файлы, и сделайте их обоих исполняемыми:

    shell> cd /usr/local/bin
    shell> chmod +x ndb*
    

Предыдущие шаги должны быть повторены на каждом хосте узла данных.

Хотя только один из исполняемых файлов узла данных требуется, чтобы управлять узлом данных, мы показали вам, как установить ndbd и ndbmtd. Мы рекомендуем, чтобы вы сделали это, устанавливая или модернизируя кластер NDB, даже если вы планируете использовать только одного из них, так как это сэкономит время.

Каталог данных на каждой машине, принимающей узел данных, это /usr/local/mysql/data. Эта информация важна, формируя узел управления. См. (See раздел 4.5.

Узлы управления. Установка узла управления не требует mysqld. Нужен только сервер управления NDB Cluster ( ndb_mgmd), вы, скорее всего, хотите установить также клиент управления ( ndb_mgm). Оба этих объекта есть в архиве .tar.gz.

Как системный root выполните следующие шаги, чтобы установить ndb_mgmd и ndb_mgm:

  1. Измените местоположение к /var/tmp и распакуйте ndb_mgm и ndb_mgmd из архива в подходящий каталог, такой как /usr/local/bin:

    shell> cd /var/tmp
    shell> tar -zxvf mysql-cluster-gpl-7.5.17-linux-glibc2.12-x86_64.tar.gz
    shell> cd mysql-cluster-gpl-7.5.17-linux-glibc2.12-x86_64
    shell> cp bin/ndb_mgm* /usr/local/bin
    
  2. Измените местоположение к каталогу, в который вы скопировали файлы, затем сделайте их обоих исполняемыми:

    shell> cd /usr/local/bin
    shell> chmod +x ndb_mgm*
    

В разделе 4.5 мы создаем конфигурационные файлы для всех узлов в нашем примере кластера NDB.

4.3.2. Установка NDB Cluster из RPM

Эта секция покрывает шаги, необходимые, чтобы установить правильные исполняемые файлы для каждого типа узла кластера NDB, используя пакеты RPM, поставляемые Oracle, начиная с NDB 7.5.4. Для получения информации о RPM для предыдущих версий кластера NDB посмотрите здесь.

Как альтернатива методу, описанному в этой секции, Oracle обеспечивает MySQL Repositories для NDB Cluster 7.5.6 и позже, которые совместимы со многими общими дистрибутивами Linux. Два хранилища, перечисленные здесь, доступны для основанных на RPM дистрибутивов:

RPM доступны для 32-битных и для 64-битных платформ Linux. Имена файлов для этих RPM используют следующий образец:

mysql-cluster-community-data-node-7.5.8-1.el7.x86_64.rpm
mysql-cluster-license-component-ver-rev.distro.arch.rpm
license: {commercial | community}
component: {management-server | data-node | server | client | other see text}
ver: major.minor.release
rev: major[.minor]
distro: {el6 | el7 | sles12}
arch: {i686 | x86_64}

license указывает, является ли RPM частью коммерческого выпуска или выпуска сообщества кластера NDB. В остатке от этой секции мы предполагаем для примеров, что вы устанавливаете выпуск сообщества.

Возможные значения для component с описаниями:

Таблица 4.2. Компоненты NDB Cluster RPM

Компонент Описание
auto-installer NDB Cluster Auto Installer, см. раздел 4.1
client Клиенты MySQL и NDB, включает клиент mysql, клиент ndb_mgm и прочие клиентские инструменты
common Набор символов и информация о сообщении об ошибке, необходимые серверу MySQL
data-node Объекты узла данных ndbd и ndbmtd
devel Заголовки и файлы библиотеки для развития клиента MySQL
embedded Встраиваемый MySQL server
embedded-compat Встраиваемый MySQL server для обратной совместимости
embedded-devel Заголовок и файлы библиотеки для разработки приложений для встраиваемого MySQL
java JAR-файлы для приложений ClusterJ
libs Библиотеки клиента MySQL
libs-compat Библиотеки клиента MySQL для обратной совместимости
management-server Сервер управления NDB Cluster ( ndb_mgmd)
memcached Файлы для ndbmemcache
minimal-debuginfo Отладочная информация для минимального серверного пакета, полезны, разрабатывая приложения, которые используют этот пакет или отлаживая этот пакет
ndbclient Библиотека клиента NDB для управления приложениями NDB API и MGM API (libndbclient)
ndbclient-devel Заголовки и другие файлы для развития приложений NDB API и MGM API
nodejs Файлы поддержки Node.JS в NDB Cluster
server MySQL server (mysqld) с поддержкой NDB и связанные программы сервера MySQL
server-minimal Минимальная установка сервера MySQL для NDB и связанных инструментов
test mysqltest другие тестовые программы MySQL и файлы поддержки

Единый архив (файл .tar) всего кластера NDB RPM для данной платформы и архитектуры также доступен. Название этого файла следует за образцом, показанным здесь:

mysql-cluster-license-ver-rev.distro.arch.rpm-bundle.tar

Можно извлечь отдельные файлы RPM из этого файла, используя tar.

Компоненты, требуемые, чтобы устанавливать три главных типа узлов кластера NDB, даны в следующем списке:

  • Узел управления: management-server

  • Узел данных: data-node

  • Узел SQL: server и common

Кроме того, клиентский RPM должен быть установлен, чтобы предоставить клиент управления ndb_mgm по крайней мере на одном узле управления. Можно также хотеть установить его на узлах SQL, чтобы иметь mysql и другие программы клиента MySQL, доступные на них. Мы обсуждаем установку узлов по типу позже в этой секции.

ver представляет трехчастный номер версии NDB в формате 7.5.x, в этих примерах 7.5.17. rev обеспечивает число пересмотра RPM в формате major. minor. В примерах, показанных в этой секции, мы используем для этого значения 1.1.

distro (дистрибутив Linux) это одно из rhel5 (Oracle Linux 5, Red Hat Enterprise Linux 4 и 5), el6 (Oracle Linux 6, Red Hat Enterprise Linux 6), el7 (Oracle Linux 7, Red Hat Enterprise Linux 7) или sles12 (SUSE Enterprise Linux 12). Для примеров в этой секции мы предполагаем, что хост работает с Oracle Linux 7, Red Hat Enterprise Linux 7 или аналогом (el7).

arch это i686 для 32-bit RPM или x86_64 для версий 64-bit. В примерах, показанных здесь, мы принимаем 64-битную платформу.

Версия NDB Cluster в именах файлов RPM (показанная здесь как 7.5.17) может измениться согласно версии, которую вы на самом деле используете. Очень важно, чтобы у всего кластера RPM, который будет установлен, был тот же самый номер версии. Архитектура должна также соответствовать машине, на которой должен быть установлен RPM; в частности необходимо иметь в виду, что 64-битный RPM (x86_64) нельзя использовать с 32-битными операционными системами (i686).

Узлы данных. На компьютере, который должен принять узел данных NDB Cluster, необходимо установить только data-node RPM. Чтобы сделать это, скопируйте этот RPM на хост узла данных и управляйте следующей командой как системный пользователь root, заменяя имя для RPM по мере необходимости:

shell> rpm -Uhv mysql-cluster-community-data-node-7.5.17-1.el7.x86_64.rpm

Это устанавливает ndbd и ndbmtd в /usr/sbin. Любой из них может использоваться, чтобы управлять процессом узла данных на этом хосте.

Узлы SQL. Скопируйте server и common RPM на каждую машину, которая будет использоваться для узла SQL NDB Cluster (server требует common). Установите server RPM, выполняя следующую команду как системный пользователь root, заменяя имя RPM по смыслу:

shell> rpm -Uhv mysql-cluster-community-server-7.5.17-1.el7.x86_64.rpm

Это устанавливает MySQL server (mysqld) с поддержкой NDB в каталог /usr/sbin. Это также устанавливает файлы поддержки MySQL Server и полезные программы сервера MySQL, включая стартовые скрипты mysql.server и mysqld_safe/usr/share/mysql и /usr/bin, соответственно). Инсталлятор RPM должен заботиться об общих проблемах конфигурации (таких как создание пользователя и группы mysql, если надо) сам.

Необходимо использовать версии этих RPM, выпущенные для кластера NDB, выпущенные для стандартного сервера MySQL не оказывают поддержку для NDB.

Чтобы управлять узлом SQL (сервером MySQL), необходимо также установить client RPM:

shell> rpm -Uhv mysql-cluster-community-client-7.5.17-1.el7.x86_64.rpm

Это устанавливает клиент mysql и другие программы клиента MySQL, такие как mysqladmin и mysqldump в /usr/bin.

Узлы управления. Чтобы установить сервер управления кластером NDB, необходимо использовать management-server RPM. Скопируйте этот RPM на компьютер, предназначенный, чтобы принять узел управления, и затем установите его, управляя следующей командой как системный пользователь root (заменив имя RPM по смыслу):

shell> rpm -Uhv mysql-cluster-commercial-management-server-7.5.17-1.el7.x86_64.rpm

Этот RPM устанавливает сервер управления ndb_mgmd в каталог /usr/sbin. В то время как это единственная программа, на самом деле требуемая для управления, также хорошая идея иметь клиент управления NDB Cluster ndb_mgm. Можно получить эту программу, а также другие программы клиента NDB, например, ndb_desc и ndb_config, установив client RPM, как описано выше.

Ранее ndb_mgm был установлен тем же самым RPM, используемым, чтобы установить сервер управления. В NDB 7.5.4 и позже все программы клиента NDB получены из того же самого client RPM, откуда mysql и другие клиенты MySQL.

См. здесь для получения общей информации об установке MySQL, используя RPM, поставляемый Oracle.

После установки из RPM все еще необходимо формировать кластер, см. раздел 4.5.

Установка, используя RPM в старом стиле (NDB 7.5.3 и ранее). Информация в остатке этой секции применяется только к NDB 7.5.3 и ранее и обеспечивает шаги, необходимые, чтобы установить правильные исполняемые файлы для каждого типа узла кластера NDB, используя пакеты RPM старого стиля, как поставляется Oracle до NDB 7.5.4. Имена файлов для этих RPM используют следующий образец:

MySQL-Cluster-component-producttype-ndbversion-revision.distribution.architecture.rpm
component:= {server | client [| other]}
producttype:= {gpl | advanced}
ndbversion:= major.minor.release
distribution:= {sles11 | rhel5 | el6}
architecture:= {i386 | x86_64}

component может быть server или client. Другие значения возможны, но с тех пор только server и client требуются для работы установки кластера NDB, мы не обсуждаем их здесь. producttype для Community RPM доступны на https://dev.mysql.com/downloads/cluster/ это всегда gpl, advanced используется, чтобы указать на коммерческие версии. ndbversion представляет трехчастный номер версии NDB в формате 7.5.x, мы используем 7.5.3 всюду в остальной части этой секции. RPM revision показана как 1 в примерах далее. distribution может быть одним из sles12 (SUSE Enterprise Linux 12), rhel6 (Oracle Linux 6, Red Hat Enterprise Linux 6) или el7 (Oracle Linux 7, Red Hat Enterprise Linux 7). architecture это i386 для 32-bit RPM или x86_64 для 64-bit.

Для кластера NDB возможно требуются два RPM:

  • The server RPM (например, MySQL-Cluster-server-gpl-7.5.3-1.sles11.i386.rpm ), который поставляет основные файлы для работы MySQL Server с NDBCLUSTER (то есть, как узел SQL кластера NDB), а также все исполняемые файлы кластера NDB, включая узел управления, узел данных и клиент ndb_mgm. Этот RPM всегда требуется для установки кластера NDB.

  • Если у вас нет своего собственного клиентского приложения, способного к управлению сервером MySQL, необходимо также получить и установить client RPM (например, MySQL-Cluster-client-gpl-7.5.3-1.sles11.i386.rpm ), который ставит клиент mysql.

Очень важно, чтобы у всех Cluster RPM был тот же самый номер версии. architecture должно также соответствовать машине, на которой должен быть установлен RPM, в частности необходимо иметь в виду, что 64-битный RPM не может использоваться с 32-битными операционными системами.

Узлы данных. На компьютере, который должен принять узел данных, необходимо установить только server RPM. Чтобы сделать это, скопируйте этот RPM на хост узла данных и управляйте следующей командой как системный пользователь root, заменяя имя RPM:

shell> rpm -Uhv MySQL-Cluster-server-gpl-7.5.17-1.sles11.i386.rpm

Хотя это устанавливает все объекты кластера NDB, только программа program ndbd или ndbmtd (обе в /usr/sbin) на самом деле необходима, чтобы управлять узлом данных.

Узлы SQL. На каждой машине, которая будет использоваться для узла SQL, установите server RPM (имя корректируется по смыслу):

shell> rpm -Uhv MySQL-Cluster-server-gpl-7.5.17-1.sles11.i386.rpm

Это устанавливает MySQL server (mysqld) с поддержкой NDB в каталог /usr/sbin, а также все файлы поддержки MySQL Server. Это также устанавливает скрипты mysql.server и mysqld_safe/usr/share/mysql и /usr/bin, соответственно). Инсталлятор RPM должен заботиться об общих проблемах конфигурации сам.

Чтобы управлять узлом SQL (сервером MySQL), необходимо также установить client RPM:

shell> rpm -Uhv MySQL-Cluster-client-gpl-7.5.17-1.sles11.i386.rpm

Это устанавливает программу клиента mysql.

Узлы управления. Чтобы установить сервер управления кластера NDB, необходимо использовать только server RPM. Скопируйте этот RPM на компьютер, предназначенный, чтобы принять узел управления, а затем установите его, управляя следующей командой как системный пользователь root:

shell> rpm -Uhv MySQL-Cluster-server-gpl-7.3.28-1.sles11.i386.rpm

Хотя этот RPM устанавливает много других файлов, только сервер управления ndb_mgmd (в каталоге /usr/sbin) реально требуется для управления. server RPM также ставит клиент управления ndb_mgm.

См. здесь для получения общей информации об установке MySQL, используя RPM, поставляемый Oracle. Посмотрите раздел 4.5.

4.3.3. Установка NDB Cluster с применением файлов .deb

Секция предоставляет информацию об установке кластера NDB на Debian и связанных дистрибутивах Linux, например, Ubuntu, используя файлы .deb, поставляемые Oracle с этой целью.

Для NDB Cluster 7.5.6 и позже Oracle также предоставляет хранилище APT Debian и другим дистрибутивам. Посмотрите здесь.

Oracle предлагает файлы инсталлятора .deb для кластера NDB 7.5 для 32-битных и 64-битных платформ. Для Debian-системы необходим только единственный файл инсталлятора. Этот файл называют, используя образец, показанный здесь, согласно применимой версии кластера NDB, версии Debian и архитектуре:

mysql-cluster-gpl-ndbver-debiandebianver-arch.deb

ndbver это номер версии NDB, debianver основная версия Debian (8 или 9), arch одно из i686 или x86_64. В примерах, которые следуют, мы предполагаем, что вы хотите установить NDB 7.5.17 на 64-битной системе Debian 9, в этом случае файл инсталлятора называют mysql-cluster-gpl-7.5.17-debian9-x86_64.deb-bundle.tar.

Как только вы загрузили соответствующий файл .deb, можно установить его из командной строки через dpkg так:

shell> dpkg -i mysql-cluster-gpl-7.5.17-debian9-i686.deb

Можно также удалить его с использованием dpkg:

shell> dpkg -r mysql

Файл инсталлятора должен также быть совместим с большинством графических диспетчеров пакетов .deb, например, GDebi для Gnome.

Файл .deb ставит NDB Cluster в /opt/mysql/server- version/, где version версия выпуска с 2 частями для сервера MySQL. Для NDB 7.5 это всегда 5.7. Расположение каталогов совпадает с заданным для универсального дистрибутива Linux (см. MySQL Installation Layout for Generic Unix/Linux Binary Package ) за исключением того, что скрипты запуска и конфигурационные файлы будут в support-files вместо share. Все исполняемые модули NDB Cluster, например, ndb_mgm, ndbd и ndb_mgmd, будут в каталоге bin.

4.3.4. Сборка NDB Cluster в Linux из исходного текста

Эта секция предоставляет информацию о компилировании кластера NDB в Linux и других подобных Unix платформах. Сборка кластера NDB аналогична сборке стандартного MySQL Server, хотя это отличается по нескольким ключевым отношениям, обсужденным здесь. Для получения общей информации о сборке MySQL см. Installing MySQL from Source. Для получения информации о компилировании кластера NDB на платформах Windows посмотрите раздел 4.4.2.

Сборка NDB Cluster требует исходных текстов NDB Cluster. Они доступны со страницы загрузок кластера NDB https://dev.mysql.com/downloads/cluster/. У заархивированного исходного файла должно быть имя, подобное mysql-cluster-gpl-7.5.17.tar.gz. Можно также получить исходные тексты NDB Cluster с GitHub https://github.com/mysql/mysql-server/tree/cluster-7.5 (NDB 7.5) и https://github.com/mysql/mysql-server/tree/cluster-7.6 (NDB 7.6). Сборка NDB Cluster 7.5 или 7.6 из исходных текстов обычного MySQL Server 5.7 не поддерживается.

Опция WITH_NDBCLUSTER_STORAGE_ENGINE для CMake заставляет собрать объекты для узлов управления, узлов данных и других программ кластера NDB. Это также заставляет mysqld включить поддержку NDB. Этот выбор (или его псевдоним WITH_NDBCLUSTER) требуется, строя кластер NDB.

Опция WITH_NDB_JAVA позволена по умолчанию. Это означает, что по умолчанию, если CMake не может найти местоположение Явы на вашей системе, процесс конфигурации терпит неудачу, если вы не хотите позволять поддержку Явы и ClusterJ, необходимо указать на это явно, формируя сборку с -DWITH_NDB_JAVA=OFF. Надо использовать WITH_CLASSPATH, чтобы обеспечить Java classpath, если требуется.

Для получения дополнительной информации о вариантах CMake, определенных для сборки кластера NDB, посмотрите Options for Compiling NDB Cluster.

После того, как вы выполните make && make install (или эквивалент в вашей системе), результат подобен тому, что получено, распаковав предварительно собранный архив.

Узлы управления. При сборке и запуске make install сервер управления и объекты клиента управления ( ndb_mgmd и ndb_mgm) будут по умолчанию в /usr/local/mysql/bin. Только ndb_mgmd требуется на хосте узла управления, однако, также хорошая идея иметь ndb_mgm на той же самой хост-машине. Ни один из этих исполняемых файлов не требует определенного местоположения в файловой системе хост-машины.

Узлы данных. Единственный исполняемый файл, требуемый на хосте узла данных, является ndbd или ndbmtd ( mysqld, например, не должен присутствовать на хост-машине). По умолчанию, собирая из исходного текста, этот файл помещается в каталог /usr/local/mysql/bin. Для установки на многих хостах узла данных только ndbd или ndbmtd должны быть скопированы к другой хост-машине или машинам. Это предполагает, что все хосты узла данных используют ту же самую архитектуру и операционную систему, иначе вы, возможно, должны собрать модули отдельно для каждой платформы. Исполняемый файл для узла данных не должен быть ни в каком конкретном местоположении в файловой системе хоста, пока местоположение известно.

Собирая кластер NDB, никакие специальные опции не требуются для сборки многопоточных модулей узла данных. Формирование сборки с поддержкой NDB заставляет собрать ndbmtd автоматически, make install помещает ndbmtd в установочный каталог bin с mysqld, ndbd и ndb_mgm.

Узлы SQL. Если вы собираете MySQL с поддержкой кластера и выполняете стандартную установку (с использованием make install от имени root ), mysqld будет в /usr/local/mysql/bin. Выполните шаги, данные в Installing MySQL from Source, чтобы подготовить mysqld к работе. Если вы хотите управлять многими узлами SQL, можно использовать копию того же самого mysqld и его связанных файлов поддержки на нескольких машинах. Самый легкий способ сделать это: скопировать каталог /usr/local/mysql и все каталоги и файлы в нем другому хосту узла SQL, затем повторите шаги в Installing MySQL from Source на каждой машине. Если вы формируете сборку с опцией PREFIX, необходимо приспособить каталог соответственно.

В разделе 4.5 мы создаем конфигурационные файлы для всех узлов в нашем примере кластера NDB.

4.4. Установка NDB Cluster в Windows

Эта секция описывает процессы установки для кластера NDB на хостах Windows. Кластер NDB 7.5 для Windows можно скачать с https://dev.mysql.com/downloads/cluster/. Для получения информации об установке кластера NDB в Windows из архива Oracle см. раздел 4.4.1.

Также возможно собрать и установить кластер NDB из исходных текстов в Windows с помощью Microsoft Visual Studio. См. раздел 4.4.2.

4.4.1. Установка NDB Cluster в Windows из двоичного архива

Эта секция описывает базовую установку кластера NDB в Windows, используя двоичный выпуск no-install NDB Cluster от Oracle, используя ту же самую установку с 4 узлами, обрисованную в общих чертах в начале этой секции (см. главу 4):

Таблица 4.3. Адреса узлов в качестве примера

Узел IP-адрес
Узел управления ( mgmd) 198.51.100.10
Узел SQL (mysqld ) 198.51.100.20
Узел данных "A" ( ndbd) 198.51.100.30
Узел данных "B" ( ndbd) 198.51.100.40

Как на других платформах, главный компьютер кластера NDB, управляющий узлом SQL, должен иметь MySQL Server (mysqld.exe). У вас должен также быть клиент MySQL (mysql.exe) на этом хосте. Для узлов управления и узлов данных не надо ставить MySQL Server, однако, каждый узел управления требует демона сервера управления ( ndb_mgmd.exe), каждый узел данных требует демона узла данных ( ndbd.exe или ndbmtd.exe). Для этого примера мы именуем ndbd.exe как исполняемый файл узла данных, но можно установить ndbmtd.exe, многопоточную версию этой программы, вместо этого, точно таким же образом. Необходимо также установить клиента управления ( ndb_mgm.exe) на хосте сервера управления. Эта секция покрывает шаги, необходимые, чтобы установить правильные объекты Windows для каждого типа узла кластера NDB.

Как с другими Windows-программами, исполняемые файлы кластера NDB имеют расширение .exe. Однако, не надо его указывать, вызывая эти программы из командной строки. Поэтому мы часто просто обращаемся к этим программам в этой документации как mysqld, mysql, ndb_mgmd и т.д. Необходимо понять, что, обращаемся ли мы (например), к mysqld или mysqld.exe, любое имя означает то же самое (программа MySQL Server).

Для подготовки кластера NDB, используя архив Oracles no-install, первый шаг в процессе установки должен загрузить последний архив NDB Cluster Windows ZIP с https://dev.mysql.com/downloads/cluster/. У этого архива есть имя файла mysql-cluster-gpl- ver-winarch.zip, где ver это номер версии NDB (например, 7.5.17) и arch это архитектура (32 для 32-bit и 64 для 64-bit). Например, архив NDB Cluster 7.5.17 для 64-bit Windows называется mysql-cluster-gpl-7.5.17-win64.zip.

Можно управлять 32-битными модулями кластера NDB на 32-битных и 64-битных версиях Windows, однако, 64-битные объекты кластера NDB могут использоваться только на 64-битных версиях Windows. При использовании 32-битной версии Windows на компьютере, у которого есть 64-битный CPU, необходимо использовать 32-битные объекты кластера NDB.

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

Узел SQL. Мы предполагаем, что вы поместили копию архива в каталог C:\Documents and Settings\username\My Documents\Downloads на машине с IP 198.51.100.20, где username имя нынешнего пользователя. Можно получить это имя через ECHO %USERNAME% в командной строке. Чтобы установить и управлять исполняемыми файлами кластера NDB как службами Windows, этот пользователь должен быть членом группы Administrators.

Извлеките все файлы из архива. Extraction Wizard, объединенный с Windows Explorer, достаточен для этой задачи. При использовании другой программы архива, гпдо быть уверенными, что она извлекает все файлы и каталоги из архива, и что она сохраняет структуру каталогов архива. Когда вас попросят задать каталог назначения, укажите C:\, что заставляет Extraction Wizard извлекать архив к каталогу C:\mysql-cluster-gpl- ver-winarch . Переименуйте этот каталог в C:\mysql.

Возможно установить объекты кластера NDB в каталогах кроме C:\mysql\bin, однако, если вы делаете так, необходимо изменить пути, показанные в этой процедуре соответственно. В частности, если MySQL Server (узел SQL) устанавливается в местоположении кроме C:\mysql или C:\Program Files\MySQL\MySQL Server 5.7 или если каталог данных узла SQL находится в местоположении кроме C:\mysql\data или C:\Program Files\MySQL\MySQL Server 5.7\data, дополнительные параметры конфигурации должны использоваться в командной строке или добавляться к файлу my.ini или my.cnf, начиная узел SQL. Для получения дополнительной информации о формировании MySQL Server, чтобы работать в нестандартном местоположении посмотрите Installing MySQL on Microsoft Windows Using a noinstall ZIP Archive.

Для MySQL Server с поддержкой NDB Cluster, чтобы работать как часть кластера NDB, это должно быть запущено с опциями --ndbcluster и --ndb-connectstring. В то время как можно определить эти опции в командной строке, обычно более удобно разместить их в файле. Чтобы сделать это, создайте новый текстовый файл в Блокноте или другом текстовом редакторе. Введите следующую конфигурационную информацию в этот файл:

[mysqld]
# Options for mysqld process:
ndbcluster                        # run NDB storage engine
ndb-connectstring=198.51.100.10   # location of management server

Можно добавить другие опции, используемые этим MySQL Server при желании (см. Creating an Option File), но файл должен содержать эти опции, как минимум. Сохраните этот файл как C:\mysql\my.ini. Это заканчивает установку для узла SQL.

Узлы данных. Узел данных на хосте Windows требует только единственного исполняемого файла, одного из ndbd.exe или ndbmtd.exe. Для этого примера мы предполагаем, что вы используете ndbd.exe, но те же самые инструкции применяются, используя ndbmtd.exe. На каждом компьютере, где вы хотите управлять узлом данных (компьютеры, имеющие IP-адреса 198.51.100.30 и 198.51.100.40), создайте каталоги C:\mysql, C:\mysql\bin и C:\mysql\cluster-data, на компьютере, где вы загрузили и распаковали архив no-install, определите местонахождение ndbd.exe в каталоге C:\mysql\bin. Скопируйте этот файл в каталог C:\mysql\bin на каждом из двух хостов с узлами данных.

Чтобы функционировать как часть кластера NDB, каждому узлу данных нужно дать адрес или имя хоста сервера управления. Можно предоставить эту информацию в командной строке, используя --ndb-connectstring или -c при запуске. Однако, обычно предпочтительно поместить эту информацию в файл. Чтобы сделать это, создайте новый текстовый файл в Блокноте или другом текстовом редакторе и введите следующий текст:

[mysql_cluster]
# Options for data node process:
ndb-connectstring=198.51.100.10   # location of management server

Сохраните этот файл как C:\mysql\my.ini на хосте узла данных. Создайте другой текстовый файл, содержащий ту же самую информацию, и сохраните его как C:mysql\my.ini на другом хосте узла данных. Оба хоста узла данных теперь готовы использоваться в NDB Cluster.

Узел управления. Единственная исполняемая программа, требуемая на компьютере, используемом для узла управления NDB Cluster, это сервер управления ndb_mgmd.exe. Однако, чтобы управлять NDB Cluster необходимо также установить программу клиента управления ndb_mgm.exe на той же самой машине, где сервер управления. Определите местонахождение этих двух программ на машине, где вы загрузили и распаковали архив no-install, это должно быть каталогом C:\mysql\bin на хосте узла SQL. Создайте каталог C:\mysql\bin на компьютере, имеющем IP-адрес 198.51.100.10, затем скопируйте обе программы к этому каталогу.

Необходимо теперь создать два конфигурационных файла для использования ndb_mgmd.exe:

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

    Чтобы создать этот файл, начните новый текстовый файл в Блокноте или другом текстовом редакторе и напишите:

    [mysql_cluster]
    # Options for management node process
    config-file=C:/mysql/bin/config.ini
    

    Сохраните этот файл как текстовый C:\mysql\bin\my.ini.

  2. Глобальный конфигурационный файл, из которого узел управления может получить конфигурационную информацию, управляющую NDB Cluster в целом. Как минимум этот файл должен содержать секцию для каждого узла в NDB Cluster и IP-адреса или имена хоста для узла управления и всех узлов данных (параметр HostName). Также желательно включать следующую дополнительную информацию:

    • IP-адрес или имя хоста любых узлов SQL

    • Память данных и память индекса ассигнуются каждому узлу данных (параметры DataMemory и IndexMemory)

    • Количество точных копий, используя параметр NoOfReplicas (см. раздел 3.2).

    • Каталог, где каждый узел данных хранит его файл данных и файл журнала и каталог, где узел управления держит свои файлы журнала (в обоих случаях параметр DataDir)

    Создайте новый текстовый файл, используя текстовый редактор, такой как Блокнот, и введите следующую информацию:

    [ndbd default]
    # Options affecting ndbd processes on all data nodes:
    NoOfReplicas=2   # Number of replicas
    DataDir=C:/mysql/cluster-data   # Directory for each data node's data files
    # Forward slashes used in directory path,
    # rather than backslashes. This is correct;
    # see Important note in text
    DataMemory=80M   # Memory allocated to data storage
    IndexMemory=18M  # Memory allocated to index storage
    # For DataMemory and IndexMemory, we have used the
    # default values. Since the "world" database takes up
    # only about 500KB, this should be more than enough for
    # this example Cluster setup.
    [ndb_mgmd]
    # Management process options:
    HostName=198.51.100.10   # Hostname or IP address of management node
    DataDir=C:/mysql/bin/cluster-logs   # Directory for management node log files
    [ndbd]
    # Options for data node "A":
    # (one [ndbd] раздел per data node)
    HostName=198.51.100.30# Hostname or IP address
    [ndbd]
    # Options for data node "B":
    HostName=198.51.100.40# Hostname or IP address
    [mysqld]
    # SQL node options:
    HostName=198.51.100.20# Hostname or IP address
    

    Сохраните этот файл как текстовый C:\mysql\bin\config.ini.

Единственный символ наклонной черты влево (\) не может использоваться, определяя пути к каталогам в опциях программы или конфигурационных файлах, используемых NDB Cluster в Windows. Вместо этого необходимо экранировать каждый символ наклонной черты влево второй наклонной чертой влево (\\) или заменить наклонную черту влево символом наклонной черты вправо (/). Например, следующая строка раздела [ndb_mgmd] файла config.ini не работает:

DataDir=C:\mysql\bin\cluster-logs

Вместо этого можно использовать любое из следующего:

DataDir=C:\\mysql\\bin\\cluster-logs  # Escaped backslashes
DataDir=C:/mysql/bin/cluster-logs     # Forward slashes

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

4.4.2. Компиляция NDB Cluster в Windows

Oracle предлагает собранные файлы NDB Cluster для Windows, которые должны быть достаточны для большинства пользователей. Однако, при необходимости также возможно собрать кластер NDB для Windows из исходного текста. Процедура того, чтобы сделать это, почти идентична процедуре сборке обычного MySQL Server для Windows и использует те же самые инструменты. Однако, есть два существенных различия:

  • Сборка NDB Cluster требует исходных текстов именно NDB Cluster. Скачать их можно с https://dev.mysql.com/downloads/cluster/. У заархивированного файла должно быть имя, подобное mysql-cluster-gpl-7.5.17.tar.gz. Можно также получить их с GitHub https://github.com/mysql/mysql-server/tree/cluster-7.5 (NDB 7.5) и https://github.com/mysql/mysql-server/tree/cluster-7.6 (NDB 7.6). Сборка NDB Cluster 7.5 или 7.6 из исходных текстов обычного MySQL Server 5.7 не поддерживается .

  • Необходимо формировать сборку с использованием опций WITH_NDBCLUSTER_STORAGE_ENGINE или WITH_NDBCLUSTER в дополнение к любым другим опциям сборки, которые вы хотите использовать с CMake. (WITH_NDBCLUSTER поддерживается как псевдоним для WITH_NDBCLUSTER_STORAGE_ENGINE и работает точно таким же образом.

Опция WITH_NDB_JAVA позволена по умолчанию. Это означает, что по умолчанию, если CMake не может найти местоположение Java на вашей системе, процесс конфигурации терпит неудачу, если вы не хотите позволять поддержку Java и ClusterJ, необходимо указать на это явно, формируя сборку с применением -DWITH_NDB_JAVA=OFF (Bug #12379735). Используйте WITH_CLASSPATH, чтобы обеспечить Java classpath, если надо.

Для получения дополнительной информации о вариантах CMake для сборки NDB Cluster см. Options for Compiling NDB Cluster.

Как только процесс сборки завершен, можно создать архив Zip, содержащий собранные объекты, Installing MySQL Using a Standard Source Distribution обеспечивает команды, которые должны выполнить эту задачу на системах Windows. Объекты кластера NDB могут быть найдены в каталоге bin получающегося архива, который эквивалентен архиву no-install и может устанавливаться и формироваться таким же образом. Для получения дополнительной информации посмотрите раздел 4.4.1.

4.4.3. Начальный запуск кластера NDB в Windows

Как только исполняемые файлы кластера NDB и необходимые конфигурационные файлы существуют, выполнение начального запуска кластера является просто запросом старта исполняемых файлов кластера NDB для всех узлов. Каждый процесс узла кластера должен быть начат отдельно и на своем компьютере. Узел управления должен запуститься первым, за ним узлы данных, а затем любые узлы SQL.

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

    C:\mysql\bin> ndb_mgmd
    2010-06-23 07:53:34 [MgmtSrvr] INFO -- NDB Cluster Management Server. mysql-5.7.29-ndb-7.5.17
    2010-06-23 07:53:34 [MgmtSrvr] INFO -- Reading cluster configuration from 'config.ini'
    

    Процесс узла управления продолжает печатать вывод на консоль. Это нормально, потому что узел управления не работает как служба Windows. Если вы использовали кластер NDB на подобной Unix платформе, такой как Linux, можно заметить, что поведение узла управления по умолчанию в этом отношении в Windows это противоположность своего поведения на системах Unix, где это работает по умолчанию как процесс демона Unix. Это поведение также верно для процессов узла данных NDB Cluster в Windows. Поэтому не закрывайте окно, в котором работает ndb_mgmd.exe, это закроет процесс узла управления. См. раздел 4.4.4 о том, как установить и управлять процессами кластера NDB как службами Windows.

    Необходимая опция -f говорит узлу управления, где найти глобальный конфигурационный файл (config.ini). Длинная форма этого выбора: --config-file.

    Узел управления NDB Cluster кэширует данные конфигурации из файла config.ini, как только кэш создан, процесс игнорирует config.ini на последующих запусках, если не вызван, чтобы сделать иначе. Это означает, что если узел управления не начинается из-за ошибки в этом файле, необходимо чтобы узел управления перечитал config.ini после того, как вы исправили любые ошибки в нем. Можно сделать это, начав ndb_mgmd.exe с опцией --reload или --initial в командной строке. Любой из этих вариантов работает, чтобы освежить кэш конфигурации.

    Не надо использовать любой из этих вариантов в файле my.ini узла управления.

    Для получения дополнительной информации о вариантах, которые могут использоваться с ndb_mgmd, см. разделы 6.4 и 6.32.

  2. На каждом из хостов узла данных управляйте командой, которая, как показывают здесь, запустила процессы узла данных:

    C:\mysql\bin> ndbd
    2010-06-23 07:53:46 [ndbd] INFO -- Configuration fetched from 'localhost:1186', generation: 1
    

    В каждом случае первая строка вывода процесса узла данных должна напомнить то, что показывают в предыдущем примере и сопровождается дополнительными строками. Как с процессом узла управления, это нормально, потому что узел данных не работает как служба Windows. Поэтому не закрывайте консоль, в которой работает процесс узла данных. Для получения дополнительной информации посмотрите раздел 4.4.4.

  3. Пока не запускайте узел SQL: он не может соединиться с кластером, пока узлы данных не закончили запуск, что может занять время. Вместо этого в новой консоли на хосте узла управления запустите клиент управления ndb_mgm.exe, который должен быть в C:\mysql\bin на хосте узла управления. Не пытайтесь снова использовать консоль, где работает ndb_mgmd.exe. CTRL+ C прерывает узел управления. Получающийся вывод должен быть похож на это:

    C:\mysql\bin> ndb_mgm
    -- NDB Cluster -- Management Client --
    ndb_mgm>
    

    Когда запрос ndb_mgm> появляется, это указывает, что клиент управления готов получить команды управления NDB Cluster. Можно наблюдать статус узлов данных вводя ALL STATUS в клиенте управления. Эта команда вызывает бегущее сообщение о последовательности запуска узлов данных, которое должно выглядеть примерно так:

    ndb_mgm> ALL STATUS
    Connected to Management Server at: localhost:1186
    Node 2: starting (Last completed phase 3) (mysql-5.7.29-ndb-7.5.17)
    Node 3: starting (Last completed phase 3) (mysql-5.7.29-ndb-7.5.17)
    Node 2: starting (Last completed phase 4) (mysql-5.7.29-ndb-7.5.17)
    Node 3: starting (Last completed phase 4) (mysql-5.7.29-ndb-7.5.17)
    Node 2: Started (version 7.5.17)
    Node 3: Started (version 7.5.17)
    ndb_mgm>
    

    Команды, данные в клиенте управления, нечувствительны к регистру, мы используем верхний регистр в качестве канонической формы этих команд, но вы не обязаны соблюдать это соглашение, вводя их в ndb_mgm. См. раздел 7.2.

    Вывод, произведенный ALL STATUS изменится в зависимости от того, что показывают здесь, согласно скорости, на которой узлы данных в состоянии стартовать, номера релизной версии программного обеспечения NDB Cluster, которое вы используете, и других факторов. Важно, что, когда вы видите, что оба узла данных стартовали, вы готовы запустить узел SQL.

    Можно оставить работающим ndb_mgm.exe, это не оказывает негативного влияния на исполнение кластера NDB, и мы используем его на следующем шаге, чтобы проверить, что узел SQL связан с кластеромпосле того, как вы его запустите.

  4. На компьютере, определяемом как хост узла SQL, откройте консоль и перейдите в каталог, где вы распаковали объекты кластера NDB (если вы следуете нашему примеру, это C:\mysql\bin).

    Запустите узел SQL, вызвав mysqld.exe из командной строки:

    C:\mysql\bin> mysqld --console
    

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

    В консоли, где работает клиент управления ( ndb_mgm.exe) на хосте узла управления, введите команду SHOW, которая должна произвести примерно следующее:

    ndb_mgm> SHOW
    Connected to Management Server at: localhost:1186
    Cluster Configuration
    ---------------------
    [ndbd(NDB)] 2 node(s)
    id=2@198.51.100.30(Version: 5.7.29-ndb-7.5.17, Nodegroup: 0, *)
    id=3@198.51.100.40(Version: 5.7.29-ndb-7.5.17, Nodegroup: 0)
    [ndb_mgmd(MGM)] 1 node(s)
    id=1@198.51.100.10(Version: 5.7.29-ndb-7.5.17)
    [mysqld(API)] 1 node(s)
    id=4@198.51.100.20(Version: 5.7.29-ndb-7.5.17)
    

    Можно также проверить, что узел SQL связан с NDB Cluster в клиенте mysql (mysql.exe), используя запрос SHOW ENGINE NDB STATUS.

Необходимо теперь быть готовым работать с объектами базы данных и данными, используя кластер NDB. См. раздел 4.7.

Можно также установить ndb_mgmd.exe, ndbd.exe и ndbmtd.exe как сервис Windows. См. раздел 4.4.4).

4.4.4. Установка NDB Cluster как Windows Services

Как только вы удовлетворены, что кластер NDB работает, как надо, можно установить узлы управления и узлы данных как службы Windows, так, чтобы эти процессы были начаты и остановлены автоматически каждый раз вместе с Windows. Это также позволяет управлять этими процессами из командной строки с соответствующими командами SC START и SC STOP или с использованием графической утилиты Windows Services. NET START и NET STOP также пригодны.

Устанавка программ как служб Windows обычно должна делаться, используя учетную запись с правами Administrator.

Чтобы установить узел управления как сервис Windows, вызовите ndb_mgmd.exe из командной строки с опцией --install:

C:\> C:\mysql\bin\ndb_mgmd.exe --install
Installing service 'NDB Cluster Management Server'
as '"C:\mysql\bin\ndbd.exe" "--service=ndb_mgmd"'
Service successfully installed.

Устанавливая программу кластера NDB как службу Windows, необходимо всегда определять полный путь, иначе сервисная установка может потерпеть неудачу с ошибкой The system cannot find the file specified.

Опция --install должна использоваться сначала перед любыми другими опциями, которые могли бы быть определены для for ndb_mgmd.exe. Однако, предпочтительно определить такие опции в файле вместо этого. Если ваш файл не находится в одном из местоположений по умолчанию, как показано в выводе ndb_mgmd.exe --help, можно определить местоположение, используя опцию --config-file.

Теперь вы в состоянии начать и остановить сервер управления:

C:\> SC START ndb_mgmd
C:\> SC STOP ndb_mgmd

При использовании NET можно также начать или остановить сервер управления как службу Windows, используя описательное имя, как показано здесь:

C:\> NET START 'NDB Cluster Management Server'
The NDB Cluster Management Server service is starting.
The NDB Cluster Management Server service was started successfully.

C:\> NET STOP'NDB Cluster Management Server'
The NDB Cluster Management Server service is stopping..
The NDB Cluster Management Server service was stopped successfully.

Обычно более просто определить короткое сервисное название или разрешить сервисному названию по умолчанию использоваться, устанавливая сервис, а затем ссылаться на имя, запуская или останавливая сервис. Чтобы определить сервисное имя, кроме ndb_mgmd, укажите его, как в этом примере:

C:\> C:\mysql\bin\ndb_mgmd.exe --install=mgmd1
Installing service 'NDB Cluster Management Server'
as '"C:\mysql\bin\ndb_mgmd.exe" "--service=mgmd1"'
Service successfully installed.

Теперь вы в состоянии начать и остановить сервер управления:

C:\> SC START mgmd1
C:\> SC STOP mgmd1

Чтобы удалить сервис узла управления, используйте SC DELETE service_name:

C:\> SC DELETE mgmd1

Альтернативно, вызовите ndb_mgmd.exe с опцней --remove:

C:\> C:\mysql\bin\ndb_mgmd.exe --remove
Removing service 'NDB Cluster Management Server'
Service successfully removed.

Если вы установили сервис, используя сервисное название кроме умолчания, передайте сервисное название как значение ndb_mgmd.exe --remove:

C:\> C:\mysql\bin\ndb_mgmd.exe --remove=mgmd1
Removing service 'mgmd1'
Service successfully removed.

Установка процесса узла данных как службы Windows может быть сделана подобным способом, используя опцию --install для ndbd.exe (или ndbmtd.exe):

C:\> C:\mysql\bin\ndbd.exe --install
Installing service 'NDB Cluster Data Node Daemon' as '"C:\mysql\bin\ndbd.exe" "--service=ndbd"'
Service successfully installed.

Теперь можно начать или остановить узел данных как показано в следующем примере:

C:\> SC START ndbd
C:\> SC STOP ndbd

Чтобы удалить сервис узла данных, используйте SC DELETE service_name:

C:\> SC DELETE ndbd

Или вызовите ndbd.exe с опцией --remove:

C:\> C:\mysql\bin\ndbd.exe --remove
Removing service 'NDB Cluster Data Node Daemon'
Service successfully removed.

Как с ndb_mgmd.exemysqld.exe), устанавливая ndbd.exe как сервис Windows, можно также определить название сервиса как значение --install и затем использовать его, начиная или останавливая сервис:

C:\> C:\mysql\bin\ndbd.exe --install=dnode1
Installing service 'dnode1' as '"C:\mysql\bin\ndbd.exe" "--service=dnode1"'
Service successfully installed.
C:\> SC START dnode1
C:\> SC STOP dnode1

Если вы определили сервисное название, устанавливая сервис узла данных, можно использовать это имя, удаляя его:

C:\> SC DELETE dnode1

Альтернативно, можно передать сервисное название как значение опции --remove:

C:\> C:\mysql\bin\ndbd.exe --remove=dnode1
Removing service 'dnode1'
Service successfully removed.

Установка узла SQL как службы Windows, начиная, останавливая и удаляя сервис, сделана подобным способом, используя mysqld --install, SC START, SC STOP, и SC DELETE (или mysqld --remove). Команды NET могут также использоваться, чтобы начать или остановить сервис. Для получения дополнительной информации посмотрите Starting MySQL as a Windows Service.

4.5. Начальная конфигурация для NDB Cluster

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

NDB Cluster также предоставляет инсталлятор GUI, который может использоваться, чтобы выполнить конфигурацию без потребности отредактировать текстовые файлы в отдельном приложении. Для получения дополнительной информации посмотрите раздел 4.1.

Для нашего кластера NDB с четырьмя хостами и с четырьмя узлами (см. здесь) необходимо написать четыре конфигурационных файла, по одному на хост узла.

  • Каждый узел данных или узел SQL требует файл my.cnf, который обеспечивает два типа сведений: connection string, которая говорит узлу, где найти узел управления, и строку, говорящую серверу MySQL на этом хосте включить NDBCLUSTER.

    См. раздел 5.3.3.

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

Формирование узлов данных и узлов SQL. Файл my.cnf, необходимый для узлов данных, довольно прост. Конфигурационный файл должен быть расположен в каталоге /etc и может быть отредактирован, используя любой текстовый редактор. Создайте файл, если он не существует. Например:

shell> vi /etc/my.cnf

Мы показываем vi, но любой текстовый редактор должен работать точно так же.

Для каждого узла данных и узла SQL в нашей установке в качестве примера my.cnf должен быть похожим на это:

[mysqld]
# Options for mysqld process:
ndbcluster    # run NDB storage engine

[mysql_cluster]
# Options for NDB Cluster processes:
ndb-connectstring=198.51.100.10    # location of management server

Сохраните этот файл и выйдите из текстового редактора. Сделайте это для машин узлов данных A, B и узла SQL.

Как только вы начали процесс mysqld с параметрами ndbcluster и ndb-connectstring в разделах [mysqld] и [mysql_cluster] файла my.cnf, вы не можете выполнить CREATE TABLE или ALTER TABLE не запустив на самом деле кластер. Иначе эти запросы потерпят неудачу с ошибкой. Это дизайн.

Формирование узла управления. Первый шаг в формировании узла управления должен создать каталог, в котором конфигурационный файл может быть найден, а затем создать сам файл. Например (работая как root):

shell> mkdir /var/lib/mysql-cluster
shell> cd /var/lib/mysql-cluster
shell> vi config.ini

Для нашей представительной установки файл config.ini:

[ndbd default]
# Options affecting ndbd processes on all data nodes:
NoOfReplicas=2    # Number of replicas
DataMemory=80M    # How much memory to allocate for data storage
IndexMemory=18M   # How much memory to allocate for index storage
# For DataMemory and IndexMemory, we have used the
# default values. Since the "world" database takes up
# only about 500KB, this should be more than enough for
# this example NDB Cluster setup.
# NOTE: IndexMemory is deprecated in NDB 7.6 и выше; in
# these versions, resources for all data and indexes are
# allocated by DataMemory and any that are set for IndexMemory
# are added to the DataMemory resource pool
ServerPort=2202    # This the default value; however, you can use any
# port that is free for all the hosts in the cluster
# Note1: It is recommended that you do not specify the port
# number at all and simply allow the default value to be used instead
# Note2: The port was formerly specified using the PortNumber
# TCP parameter; this parameter is no longer available in NDB Cluster 7.5.
[ndb_mgmd]
# Management process options:
HostName=198.51.100.10   # Hostname or IP address of MGM node
DataDir=/var/lib/mysql-cluster   # Directory for MGM node log files
[ndbd]
# Options for data node "A":
# (one [ndbd] раздел per data node)
HostName=198.51.100.30   # Hostname or IP address
NodeId=2   # Node ID for this data node
DataDir=/usr/local/mysql/data   # Directory for this data node's data files
[ndbd]
# Options for data node "B":
HostName=198.51.100.40   # Hostname or IP address
NodeId=3   # Node ID for this data node
DataDir=/usr/local/mysql/data   # Directory for this data node's data files
[mysqld]
# SQL node options:
HostName=198.51.100.20   # Hostname or IP address
# (additional mysqld connections can be
# specified for this node for various
# purposes such as running ndb_restore)

БД world можно скачать с https://dev.mysql.com/doc/index-other.html.

После того, как все конфигурационные файлы были созданы, и эти минимальные опции были определены, вы готовы возобновить старт кластера проверяя, что все процессы работают. Мы обсуждаем, как это сделано в разделе 4.6.

Для более подробной информации о доступных параметрах NDB Cluster и их использовании посмотрите раздел 5.3 и главу 5. Для конфигурации кластера NDB в том, что касается создания резервных копий, посмотрите раздел 7.3.3.

Порт по умолчанию для узлов управления 1186, порт по умолчанию для узлов данных 2202. Однако, кластер может автоматически ассигновать порты для узлов данных из тех, которые свободны.

4.6. Начальный запуск NDB Cluster

Старт кластера не очень трудный после того, как это сформировалось. Каждый процесс узла кластера должен быть начат отдельно, и на хосте, где он работает. Узел управления должен начинаться первым, затем узлы данных и наконец узлы SQL:

  1. На хосте управления дайте следующую команду из системной оболочки, чтобы начать процесс узла управления:

    shell> ndb_mgmd -f /var/lib/mysql-cluster/config.ini
    

    Первое время, когда это начато, ndb_mgmd должно быть сказано, где найти его конфигурационный файл, используя опцию -f или --config-file, см. раздел 6.4.

    Для дополнительных опций, которые могут использоваться с ndb_mgmd, см. раздел 6.32 .

  2. На каждом из хостов узла данных управляйте этой командой, чтобы запустить ndbd:

    shell> ndbd
    
  3. Если вы использовали файлы RPM, чтобы установить MySQL на хосте кластера, где должен быть узел SQL, вы можете использовать поставляемый скрипт запуска, чтобы начать серверный процесс MySQL на узле SQL.

Если все подходит, а кластер был настроен правильно, кластер должен теперь быть готов к эксплуатации. Можно проверить это, вызвав клиент узла управления ndb_mgm. Вывод должен быть похож на показанный здесь, хотя вы могли бы видеть некоторые незначительные различия в зависимости от точной версии MySQL, которую вы используете:

shell> ndb_mgm
-- NDB Cluster -- Management Client --
ndb_mgm> SHOW
Connected to Management Server at: localhost:1186
Cluster Configuration
---------------------
[ndbd(NDB)] 2 node(s)
id=2@198.51.100.30(Version: 5.7.29-ndb-7.5.17, Nodegroup: 0, *)
id=3@198.51.100.40(Version: 5.7.29-ndb-7.5.17, Nodegroup: 0)
[ndb_mgmd(MGM)] 1 node(s)
id=1@198.51.100.10(Version: 5.7.29-ndb-7.5.17)
[mysqld(API)] 1 node(s)
id=4@198.51.100.20(Version: 5.7.29-ndb-7.5.17)

На узел SQL ссылаются здесь как на [mysqld(API)], это отражает то, что процесс mysqld действует как узел API кластера NDB.

IP-адрес, показанный для данноого NDB Cluster SQL или другого узла API в выводе SHOW , это адрес, используемый узлом SQL или API, чтобы соединиться с узлами данных, а не с любым узлом управления.

Необходимо теперь быть готовым работать с базами данных, таблицами и данными в NDB Cluster. См. раздел 4.7.

4.7. Пример кластера NDB с таблицами и данными

Информация в этой секции относится к NDB Cluster на платформах Unix и Windows.

Работа с таблицами базы данных и данными в NDB Cluster не отличается от выполнения этого в стандартном MySQL. Есть два ключевых пункта, которые надо иметь в виду:

  • Для таблицы, которая будет копироваться в кластере, это должно использовать NDBCLUSTER. Чтобы определить это, используйте ENGINE=NDBCLUSTER или ENGINE=NDB, составляя таблицу:

    CREATE TABLE tbl_name (col_name column_definitions) ENGINE=NDBCLUSTER;
    

    Альтернативно, для существующей таблицы, которая использует другой механизм хранения, надо использовать ALTER TABLE, чтобы использовать NDBCLUSTER :

    ALTER TABLE tbl_name ENGINE=NDBCLUSTER;
    
  • Каждая таблица NDBCLUSTER имеет первичный ключ. Если никакой первичный ключ не определяется пользователем, когда таблица составлена, NDBCLUSTER автоматически производит скрытый. Такой ключ занимает место, как любой другой индекс таблицы. Весьма распространено столкнуться с проблемами из-за недостаточной памяти для размещения этих автоматически созданных индексов.

Если вы импортируете таблицы из существующей базы данных, используя mysqldump, можно открыть скрипт SQL в текстовом редакторе и добавить опцию ENGINE к любым запросам создания таблицы или заменить любой существующий ENGINE. Предположим, что вы имеете базу данных-образец world на другом сервере MySQL, который не поддерживает кластер NDB, и вы хотите экспортировать таблицу City:

shell> mysqldump --add-drop-table world City > city_table.sql

Получающийся файл city_table.sql будет содержать этот запрос создания таблицы (и запросы INSERT, чтобы импортировать данные):

DROP TABLE IF EXISTS `City`;
CREATE TABLE `City` (`ID` int(11) NOT NULL auto_increment,
                     `Name` char(35) NOT NULL default '',
                     `CountryCode` char(3) NOT NULL default '',
                     `District` char(20) NOT NULL default '',
                     `Population` int(11) NOT NULL default '0',
                     PRIMARY KEY(`ID`)) ENGINE=MyISAM DEFAULT CHARSET=latin1;
INSERT INTO `City` VALUES (1,'Kabul','AFG','Kabol',1780000);
INSERT INTO `City` VALUES (2,'Qandahar','AFG','Qandahar',237500);
INSERT INTO `City` VALUES (3,'Herat','AFG','Herat',186800);
(remaining INSERT statements omitted)

Необходимо удостовериться, что MySQL использует NDBCLUSTER для этой таблицы. Есть два способа, которыми это может быть достигнуто. Один из них должен изменить определение таблицы перед импортом ее в базу данных кластера. Используя таблицу City как пример, измените опцию ENGINE:

DROP TABLE IF EXISTS `City`;
CREATE TABLE `City` (`ID` int(11) NOT NULL auto_increment,
                     `Name` char(35) NOT NULL default '',
                     `CountryCode` char(3) NOT NULL default '',
                     `District` char(20) NOT NULL default '',
                     `Population` int(11) NOT NULL default '0',
                     PRIMARY KEY(`ID`)) 
                     ENGINE=NDBCLUSTER DEFAULT CHARSET=latin1;
INSERT INTO `City` VALUES (1,'Kabul','AFG','Kabol',1780000);
INSERT INTO `City` VALUES (2,'Qandahar','AFG','Qandahar',237500);
INSERT INTO `City` VALUES (3,'Herat','AFG','Herat',186800);
(remaining INSERT statements omitted)

Это должно быть сделано для определения каждой таблицы, которая должна быть частью сгруппированной базы данных. Самый легкий способ достигнуть этого состоит в том, чтобы сделать поиск и замену в файле, который содержит определения, и заменить все TYPE=engine_name или ENGINE=engine_name на ENGINE=NDBCLUSTER. Если вы не хотите изменять файл, можно использовать неизмененный файл, чтобы составить таблицы, а затем использовать ALTER TABLE, чтобы изменить их механизм хранения. Подробные сведения даны позже в этой секции.

Предположим, что вы уже создали базу данных world на узле SQL, тогда можно использовать клиент mysql, чтобы читать city_table.sql, создать и наполнить соответствующую таблицу обычным способом:

shell> mysql world < city_table.sql

Очень важно иметь в виду, что предыдущая команда должна быть выполнена на хосте, где узел SQL работает (в этом случае на машине с IP-адресом 198.51.100.20).

Чтобы создать копию всей базы данных world на узле SQL, примените mysqldump на сервере, чтобы экспортировать базу данных в файл world.sql (например, в каталоге /tmp). Затем измените определения таблицы, как ранее описано и импортируйте файл в узел SQL кластера:

shell> mysql world < /tmp/world.sql

Если вы сохранили файл в другом месте, отрегулируйте предыдущие инструкции соответственно.

Выполнение SELECT на узле SQL не отличаются от выполнения на любом другом экземпляре сервера MySQL. Для выполнения запросов из командной строки сначала необходимо авторизоваться в MySQL Monitor обычным способом (укажите пароль root в ответ на запрос Enter password:):

shell> mysql -u root -p
Enter password:
Welcome to the MySQL monitor.Commands end with ; or \g.
Your MySQL connection id is 1 to server version: 5.7.29-ndb-7.5.17
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql>

Мы просто используем пользователя сервера MySQL root и предполагаем, что вы следовали мерам предосторожности стандартной защиты для установки сервера MySQL, включая определение сильного пароля для root. См. Securing the Initial MySQL Account.

Стоит принять во внимание, что узлы кластера не используют систему привилегии MySQL, получая доступ друг к другу. Создание или изменение учетных записей пользователей MySQL (включая root) влияет только на запросы, которые получают доступ к узлу SQL, но не на взаимодействие между узлами. Посмотрите раздел 7.12.2.

Если вы не изменили ENGINE в определениях таблицы до импортирования SQL, необходимо управлять следующими запросами:

mysql> USE world;
mysql> ALTER TABLE City ENGINE=NDBCLUSTER;
mysql> ALTER TABLE Country ENGINE=NDBCLUSTER;
mysql> ALTER TABLE CountryLanguage ENGINE=NDBCLUSTER;

Выбор базы данных и выполнение SELECT для таблицы в той базе данных также достигаются обычным способом:

mysql> USE world;
mysql> SELECT Name, Population FROM City ORDER BY Population DESC LIMIT 5;
+----------+------------+
| Name     | Population |
+----------+------------+
| Bombay   | 10500000   |
| Seoul    | 9981619    |
| So Paulo | 9968485    |
| Shanghai | 9696300    |
| Jakarta  | 9604900    |
+----------+------------+
5 rows in set (0.34 sec)
mysql> \q
Bye
shell>

Запросы, которые используют MySQL, могут использовать стандартный API для доступа к таблицам NDB. Важно помнить, что ваш запрос должен получить доступ к узлу SQL, а не узлам данных или управления. Этот краткий пример показывает, как мы могли бы выполнить SELECT при помощи расширения PHP 5.X mysqli на веб-сервере в другом месте в сети:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  <title>SIMPLE mysqli SELECT</title>
</head>

<body>
<?php
# connect to SQL node:
$link = new mysqli('198.51.100.20', 'root', 'root_password', 'world');
# parameters for mysqli constructor are: host, user, password, database
if (mysqli_connect_errno())
   die("Connect failed: " . mysqli_connect_error());
$query = "SELECT Name, Population FROM City ORDER BY Population DESC LIMIT 5";
# if no errors...
if ($result = $link->query($query))
{
   ?>
     <table border="1" width="40%" cellpadding="4" cellspacing ="1">
     <tbody>
     <tr>
       <th width="10%">City</th>
       <th>Population</th>
     </tr>
   <?
   # then display the results...
   while($row = $result->fetch_object())
     printf("<tr>\n<td align=\"center\">%s</td><td>%d</td>\n</tr>\n",
     $row->Name, $row->Population);
   ?>
   </tbody
   </table>
   <?
   # ...and verify the number of rows that were retrieved
   printf("<p>Affected rows: %d</p>\n", $link->affected_rows);
}
else
# otherwise, tell us what went wrong
echo mysqli_error();
# free the result set and the mysqli connection object
$result->close();
$link->close();
?>
</body>
</html>

Мы предполагаем, что процесс, работающий на веб-сервере, может достичь IP-адреса узла SQL.

Подобным способом можно использовать MySQL C API, Perl-DBI, Python-mysql или MySQL Connectors, чтобы выполнить задачи определения данных и манипуляции, как обычно в MySQL.

4.8. Безопасное закрытие и перезапуск кластера NDB

Чтобы закрыть кластер, введите следующую команду на машине с узлом управления:

shell> ndb_mgm -e shutdown

Опция -e здесь используется, чтобы передать команду ndb_mgm из оболочки. См. раздел 6.32. Команда заставляет ndb_mgm, ndb_mgmd и любой процесс ndbd или ndbmtd заканчиваться нормально. Любые узлы SQL могут быть закончены, используя mysqladmin shutdown и другие средства. На платформах Windows, предполагая, что вы установили узел SQL как службу Windows, можно использовать SC STOP service_name или NET STOP service_name.

Чтобы перезапустить кластер на платформах Unix, управляйте этими командами:

  • На хосте управления (198.51.100.10):

    shell> ndb_mgmd -f /var/lib/mysql-cluster/config.ini
    
  • На каждом из хостов узла данных (198.51.100.30 и 198.51.100.40):

    shell> ndbd
    
  • Используйте клиент ndb_mgm, чтобы проверить, что оба узла данных запущены успешно.

  • На хосте SQL (198.51.100.20):

    shell> mysqld_safe &
    

В Windows, предполагая, что вы установили все процессы кластера NDB как службы Windows, используя сервисные названия по умолчанию (см. раздел 4.4.4 ), можно перезапустить кластер следующим образом:

  • На хосте управления (198.51.100.10:

    C:\> SC START ndb_mgmd
    
  • На каждом из хостов узла данных (198.51.100.30 и 198.51.100.40):

    C:\> SC START ndbd
    
  • На хосте узла управления используйте клиент ndb_mgm, чтобы проверить, что узел управления и оба узла данных запущены успешно (см. раздел 4.4.3).

  • На хосте узла SQL (198.51.100.20):

    C:\> SC START mysql
    

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

4.9. Модернизация и понижение кластера NDB

Следующие разделы предоставляют информацию о модернизации и понижении кластера NDB 7.5 и 7.6.

4.9.1. Модернизация и понижение NDB 7.5

Эта секция предоставляет информацию о совместимости между различными NDB Cluster 7.5 относительно выполнения модернизаций, а также матриц совместимости и примечаний. Дополнительная информация может также быть найдена здесь относительно снижений от NDB 7.5 до предыдущего ряда выпусков NDB. Необходимо уже быть знакомым с установкой и настройкой кластера NDB до попытки модернизации или снижения. См. главу 5.

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

Только совместимость между версиями MySQL относительно NDBCLUSTER принята во внимание в этой секции, но есть вероятные другие проблемы. Как с любым другим обновлением программного обеспечения MySQL, сильно рекомендуется рассмотреть соответствующие части MySQL Manual для версий MySQL, от которых и к которым вы намереваетесь мигрировать, прежде, чем делать попытку модернизации программного обеспечения NDB Cluster. См. Upgrading MySQL. Для получения информации о модернизациях NDB 7.6 посмотрите раздел 4.9.2.

Таблица предоставляет информацию о модернизации кластера NDB и совместимости снижения среди различных выпусков NDB 7.5. Дополнительные примечания о модернизациях и снижениях к, от, или в NDB Cluster 7.5 могут быть найдены после таблицы.

Рис. 4.33. Модернизация кластера NDB и совместимость снижения для кластер MySQL NDB 7.5

Graphical representation of the upgrade/downgrade matrix contained in
the file storage/ndb/src/common/util/version.cpp from the NDB 7.5 source tree.

Поддержка версии. Следующие версии кластера NDB поддерживаются для модернизаций выпусков GA NDB Cluster 7.5 (7.5.4 и выше):

  • NDB Cluster 7.4 GA releases (7.4.4 и выше)

  • NDB Cluster 7.3 GA releases (7.3.2 и выше)

  • NDB Cluster 7.2 GA releases (7.2.4 и выше)

Известные проблемы. Следующие проблемы, которые происходят модернизируя до или между выпусками NDB 7.5:

  • Модернизируя от NDB 7.5.2 или 7.5.3 к более поздней версии, mysqld с опциями --initialize и --ndbcluster (именно вместе!) вызвали проблемы при запуске mysql_upgrade.

    Когда работает с опцией --initialize, сервер не требует поддержку NDB, наличие включенного NDB в это время может вызвать проблемы с таблицами ndbinfo. Чтобы помешать этому, опция --initialize теперь заставляет mysqld игнорировать опцию --ndbcluster, если она также определяется.

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

    1. Выполните катящийся перезапуск всего кластера

    2. Удалите все файлы .frm из каталога data/ndbinfo

    3. Выполните mysql_upgrade.

    Bug #81689, Bug #82724, Bug #24521927, Bug #23518923

  • Во время модернизации онлайн от кластера NDB 7.3 до NDB 7.4 (или позже) сбои нескольких узлов данных с более низкой версией во время местных контрольных точек (LCP) и только до модернизации этих узлов, привели к дополнительным сбоям узла после модернизации. Это происходило из-за непрекращающихся элементов протокола EMPTY_LCP, начатых более старыми узлами как часть последовательности LCP плюс перезапуск, которые больше не используются в NDB 7.4 и позже из-за оптимизации LCP, осуществленной в этих версиях. Эта проблема была устранена в NDB 7.5.4 (Bug #23129433).

  • Начиная с NDB 7.5.2, таблица ndb_binlog_index использует InnoDB. Использование MyISAM для этой таблицы продолжает поддерживаться для обратной совместимости.

    Модернизируя предыдущий выпуск до NDB 7.5.2 или позже, можно использовать --force --upgrade-system-tables с mysql_upgrade, чтобы это выполнило ALTER TABLE ... ENGINE=INNODB для таблицы ndb_binlog_index.

    См. раздел 8.4.

  • Модернизации онлайн от предыдущих версий кластера NDB до NDB 7.5.1 не были возможны из-за недостающих записей в матрице, используемой, чтобы проверить совместимость модернизации между версиями (Bug #22024947).

    Также в NDB 7.5.1, mysql_upgrade не модернизировал схему sys, если каталог базы данных sys существовал, но был пуст (Bug #81352, Bug #23249846, Bug #22875519).

4.9.2. Модернизация и понижение NDB 7.6

Эта секция предоставляет информацию о совместимости между различными NDB Cluster 7.6 относительно выполнения модернизаций и снижениями, а также матрицы совместимости и примечания. Дополнительная информация может также быть найдена здесь относительно снижений от NDB 7.6 до предыдущего ряда выпусков NDB. Необходимо уже быть знакомы с установкой и конфигурацией кластера NDB до попытки модернизации или снижения. См. главу 5.

Таблица предоставляет информацию о модернизации кластера NDB и совместимости снижения среди различных выпусков NDB 7.6. Дополнительные примечания о модернизациях и снижениях к, от, или в NDB Cluster 7.6 могут быть найдены после таблицы.

Рис. 4.34. Модернизация кластера NDB и совместимость с MySQL NDB Cluster 7.6

Graphical representation of the upgrade/downgrade matrix contained in
the file storage/ndb/src/common/util/version.cpp from the
NDB 7.6 source tree.

Поддержка версии. Следующие версии кластера NDB поддерживаются для модернизаций версий GA NDB Cluster 7.6 (7.6.6 и выше):

  • NDB Cluster 7.5 GA releases (7.5.4 и выше)

  • NDB Cluster 7.4 GA releases (7.4.4 и выше)

  • NDB Cluster 7.3 GA releases (7.3.2 и выше)

Известные проблемы. Следующие проблемы происходят, модернизируя до, понижая от или между выпусками NDB 7.6:

Изменение формата Disk Data file. Из-за изменений в формате, модернизация до или понижение от любой из версий, перечисленных здесь, требует начального перезапуска узла каждого узла данных:

  • NDB 7.6.2

  • NDB 7.6.4

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

При использовании таблиц Disk Data снижение от любой версии NDB 7.6 до любого NDB 7.5 или более раннего выпуска требует, чтобы вы перезапустили все узлы данных с опцией --initial как часть процесса снижения. Это вызвано тем, что NDB 7.5 и более ранний ряд выпусков не в состоянии прочитать новый формат Disk Data.

Изменения в IndexMemory. Если вы понижаете от NDB 7.6 до NDB 7.5 (или ранее), необходимо установить явное значение для IndexMemory в файле кластерной конфигурации, если его там еще нет. Это вызвано тем, что NDB 7.6.2 (и позже) не использует этот параметр и устанавливает его в 0 по умолчанию, тогда как он требуется в NDB 7.5 и более ранних выпусках, в которых кластер отказывается стартовать с ошибкой Invalid configuration received from Management Server..., если IndexMemory не установлен в ненулевое значение.

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

Когда такой перезапуск выполняется как часть модернизации NDB 7.6.4 или позже, любые существующие файлы LCP проверяются на присутствие LCP Sysfile, указывающего, что существующая файловая система узла данных была написана, используя NDB 7.6.4 или позже. Если такая файловая система узла существует, но не содержит Sysfile, и если какие-либо узлы данных перезапущены без опции --initial, NDB заставляет перезапуск отмениться с соответствующим сообщением об ошибке.

Необходимо также знать, что никакая такая защита невозможна, понижая от NDB 7.6.4 или позже к выпуску до NDB 7.6.4.

Поиск

 

Найди своих коллег!

Вы можете направить письмо администратору этой странички, Алексею Паутову. mailto:alexey.v.pautov@mail.ru