Поиск по сайту:
В программировании инварианты эфемерны. (Алан.Дж.Перлис)

Как установить и настроить сервер кластер MySQL на CentOS 7

08.10.2016
Как установить и настроить сервер кластер MySQL на CentOS 7

Заглавие

  1. Предпосылки
  2. Шаг 1 — Настройка узла управления
    1. A. Загрузка программного обеспечение кластера MySQL
    2. B. Установка и удаление пакетов
    3. C. Установка кластера MySQL
    4. D. Настройка кластера MySQL
    5. E. Старт узла управления
  3. Шаг 2 — Настройка в MySQL Cluster Data Nodes
    1. A. Войти как root пользователь и загрузить программное обеспечение кластера MySQL
    2. B. Установка и удаление пакетов
    3. C. Установить кластер MySQL
    4. D. Настройка узла данных
    5. E. Повторить шаг 2.А — 2.D на db3 сервере.
  4. Шаг 3 — Настройка SQL Node
    1. A. Вход в систему и загрузка кластера MySQL
    2. B. Установка и удаление пакетов
    3. C. Установка кластера MySQL
    4. D. Настройка SQL Node
    5. E. Повторить шаг 3.A — 3.D на DB5 сервере.
  5. Шаг 4 — Монитор кластера
  6. Шаг 5 — Тестирование кластера
  7. Вывод

MySQL Cluster предназначен для обеспечения совместимой базы данных MySQL с высокой доступностью и низкой задержкой. Технология кластера MySQL реализуется через механизмы хранения NDB (Network DataBase) и NDB кластер и обеспечивает неразделяемую кластеризацию и авто-шардинга для систем баз данных MySQL. В неразделяемой архитектуре, каждый из узлов имеет свою собственную память и диск, использование общего хранилища, такие как NFS, SANs не рекомендуется и поддерживается.

Для реализации кластера MySQL, мы должны установить три типа узлов. Каждый тип узлов будет установлен на его собственном сервере. Компоненты:

1. Узел управления — NDB_MGMD/MGM
Сервер управления кластера используется для управления другого узла кластера. Мы можем создавать и настраивать новые узлы, перезагрузки, удаление или резервирование узлов в кластере из узла управления.

2. Узлы данных — NDBD / NDB
Это слой, где происходит процесс синхронизации и репликации данных между узлами.

3. SQL Узлы — MYSQLD / API
Серверы интерфейса, которые используются приложениями для подключения к кластеру базы данных.

На этом уроке, я проведу вас через установку и конфигурацию кластера MySQL с CentOS 7. Мы настроим узел управления, два узла передачи данных и два узла SQL.

Предпосылки

  • ОС CentOS 7 — 64-битная.
  • 5 CentOS серверов или виртуальных машин. Я буду использовать имена хостов и IP-адреса, как показано ниже:
    • Узел управления
      DB1 = 192.168.1.220
    • Данные узлы
      db2 = 192.168.1.221
      db3 = 192.168.1.222
    • SQL узлы
      db4 = 192.168.1.223
      DB5 = 192.168.1.224

Шаг 1 — Настройка узла управления

Первый шаг заключается в создании «Узел управления» с CentOS 7 DB1 и IP 192.168.1.220 . Убедитесь , что вы вошли в сервер db1 в качестве пользователя root.

A. Загрузите программное обеспечение кластера MySQL

Я буду загружать его с сайта MySQL с помощью wget. Я использую здесь «Red Hat Enterprise Linux 7 / Oracle Linux 7 (x86, 64-разрядная версия), RPM Bundle», который совместим с CentOS 7. Затем извлекаем архивный файл.

cd ~
wget http://dev.mysql.com/get/Downloads/MySQL-Cluster-7.4/MySQL-Cluster-gpl-7.4.10-1.el7.x86_64.rpm-bundle.tar
tar -xvf MySQL-Cluster-gpl-7.4.10-1.el7.x86_64.rpm-bundle.tar

 

Загрузите программное обеспечение кластера MySQL

B. Установка и удаление пакетов

Перед тем как установить пакет MySQL Cluster, вам нужно установить Perl-Data-Dumper, который требуется серверу MySQL-кластера. И вам нужно удалить MariaDB-LIBS  прежде чем мы сможем установить MySQL Cluster.

yum -y install perl-Data-Dumper
yum -y remove mariadb-libs

 

C. Установить MySQL Cluster

Установить пакет MySQL Cluster с командой rpm :

cd ~
rpm -Uvh MySQL-Cluster-client-gpl-7.4.10-1.el7.x86_64.rpm
rpm -Uvh MySQL-Cluster-server-gpl-7.4.10-1.el7.x86_64.rpm
rpm -Uvh MySQL-Cluster-shared-gpl-7.4.10-1.el7.x86_64.rpm

 

Убедитесь, что нет никакой ошибки.

D. Настройка MySQL Cluster

Создайте новый каталог для файлов конфигурации. Я буду использовать каталог «/var/lib/mysql-cluster«.

mkdir -p /var/lib/mysql-cluster

 

Затем создайте новый файл конфигурации для управления кластерами под названием «config.ini » в каталоге MySQL-кластера.

cd /var/lib/mysql-cluster
vi config.ini

 

Вставьте следующую конфигурацию:

[ndb_mgmd default]
# Directory for MGM node log files
DataDir=/var/lib/mysql-cluster
 
[ndb_mgmd]
#Management Node db1
HostName=192.168.1.220
 
[ndbd default]
NoOfReplicas=2      # Number of replicas
DataMemory=256M     # Memory allocate for data storage
IndexMemory=128M    # Memory allocate for index storage
#Directory for Data Node
DataDir=/var/lib/mysql-cluster
 
[ndbd]
#Data Node db2
HostName=192.168.1.221
 
[ndbd]
#Data Node db3
HostName=192.168.1.222
 
[mysqld]
#SQL Node db4
HostName=192.168.1.223
 
[mysqld]
#SQL Node db5
HostName=192.168.1.224

 

Сохраните файл и выйдите.

E. Запустите узел управления

Далее запустите узел управления с командой ниже:

ndb_mgmd --config-file=/var/lib/mysql-cluster/config.ini

 

Результат должен быть похож на этот:

MySQL Cluster Management Server mysql-5.6.28 ndb-7.4.10
2016-10-08 18:26:05 [MgmtSrvr] INFO     — The default config directory ‘/usr/mysql-cluster’ does not exist. Trying to create it…
2016-10-08 18:26:05 [MgmtSrvr] INFO     — Successfully created config directory

Узел управления запускается, теперь вы можете использовать команду «ndb_mgm» для мониторинга узла:

ndb_mgm
show

 

Запустить узел управления

Вы можете увидеть, что узел управления был запущен с: MySQL-6.6 и ndb-7.4.

Шаг 2 — Настройка в MySQL Cluster Data Nodes

Мы будем использовать 2 сервера CentOS для узлов данных.

  1. db2 = 192.168.1.221
  2. db3 = 192.168.1.222

A. Войдите как пользователь root и загрузите программное обеспечение кластера MySQL

Вход на сервер DB2 с помощью SSH:

ssh root@192.168.1.221

 

Затем загрузите пакет MySQL Cluster и извлеките его:

cd ~
wget http://dev.mysql.com/get/Downloads/MySQL-Cluster-7.4/MySQL-Cluster-gpl-7.4.10-1.el7.x86_64.rpm-bundle.tar
tar -xvf MySQL-Cluster-gpl-7.4.10-1.el7.x86_64.rpm-bundle.tar

 

B. Установка и удаление пакетов

Установка Perl-Data-Dumper и удаление MariaDB-LIBS:

yum -y install perl-Data-Dumper
yum -y remove mariadb-libs

 

C. Установите MySQL Cluster

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

cd ~
rpm -Uvh MySQL-Cluster-client-gpl-7.4.10-1.el7.x86_64.rpm
rpm -Uvh MySQL-Cluster-server-gpl-7.4.10-1.el7.x86_64.rpm
rpm -Uvh MySQL-Cluster-shared-gpl-7.4.10-1.el7.x86_64.rpm

 

Убедитесь, что нет никакой ошибки.

D. Настройка узла данных

Создайте новый файл конфигурации в  директории /etc с помощью редактора vi:

vi /etc/my.cnf

 

Вставьте следующую конфигурацию:

[mysqld]
ndbcluster
ndb-connectstring=192.168.1.220     # IP address of Management Node
 
[mysql_cluster]
ndb-connectstring=192.168.1.220     # IP address of Management Node

 

Сохраните файл и выйдите.

Затем создайте новый каталог для данных базы данных, которое мы определили в файле конфигурации узла управления «config.ini».

mkdir -p /var/lib/mysql-cluster

 

Теперь запустите узел данных / NDBD:

ndbd

 

Результаты:

2016-10-08 19:35:56 [ndbd] INFO     — Angel connected to ‘192.168.1.220:1186’
2016-10-08 19:35:56 [ndbd] INFO     — Angel allocated nodeid: 2

Настройка узла данных

Узел данных DB2 подключен к узлу управления интеллектуальной собственностью 192.168.1.220.

E. Повторить шаг 2.А — 2.D на db3 сервере.

Так как мы имеем 2 узла данных, пожалуйста, повторить шаги 2.А — 2.d на нашем втором узле данных.

Шаг 3 — Настройка SQL Node

Это шаг содержит настройки для SQL Node, который предоставляет приложению доступ к базе данных. Мы используем 2 сервера CentOS для SQL узлов:

  1. DB4 = 192.168.1.223
  2. DB5 = 192.168.1.224

A. Войдите в систему и загрузите MySQL Cluster

Войдите на сервер db4 в качестве пользователя root:

ssh root@192.168.1.223

 

И загрузите пакет MySQL Cluster:

cd ~
wget http://dev.mysql.com/get/Downloads/MySQL-Cluster-7.4/MySQL-Cluster-gpl-7.4.10-1.el7.x86_64.rpm-bundle.tar
tar -xvf MySQL-Cluster-gpl-7.4.10-1.el7.x86_64.rpm-bundle.tar

 

B. Установка и удаление пакетов

Установите perl-Data-Dumper и удалите mariadb-libs, чтобы не было конфликта с MySQL Cluster.

yum -y install perl-Data-Dumper
yum -y remove mariadb-libs

 

C. Установите MySQL Cluster

Установите сервер MySQL Cluster, клиента и пакет с помощью команды rpm ниже:

cd ~
rpm -Uvh MySQL-Cluster-client-gpl-7.4.10-1.el7.x86_64.rpm
rpm -Uvh MySQL-Cluster-server-gpl-7.4.10-1.el7.x86_64.rpm
rpm -Uvh MySQL-Cluster-shared-gpl-7.4.10-1.el7.x86_64.rpm

 

D. Настройка SQL Node

Создайте новый файл my.cnf в каталоге /etc:

vi /etc/my.cnf

 

Скопируйте конфигурацию ниже:

[mysqld]
ndbcluster
ndb-connectstring=192.168.1.220       # IP address for server management node
default_storage_engine=ndbcluster     # Define default Storage Engine used by MySQL
 
[mysql_cluster]
ndb-connectstring=192.168.1.220       # IP address for server management node

 

Сохраните файл и выйдите из редактора.

Запустите SQL Node, запустив сервер MySQL:

service mysql start

 

E. Повторить шаг 3.A — 3.D на DB5 сервере.

Пожалуйста, повторите шаги 3.А — 3.D на втором сервере SQL (DB5).

Шаг 4 — Мониторинг кластера

Чтобы увидеть состояние кластера, мы должны войти в DB1 узел управления.

ssh root@192.168.1.120

 

Мы можем использовать команду ndb_mgm, чтобы увидеть состояние кластера:

ndb_mgm
ndb_mgm> show

 

Мониторинг кластера

Еще одна полезная команда:

ndb_mgm -e "all status"
ndb_mgm -e "all report memory"

 

Шаг 5 — Тестирование кластера

Для того, чтобы выполнить тест на нашем новом MySQL Cluster, мы должны войти в db4 или db5 узлов серверов SQL.

Вход на сервер db4:

ssh root@192.168.1.223

 

Измените в MySQL пароль по умолчанию, сохраненный в  файле «.mysql_secret» в корневом каталоге:

cd ~
cat .mysql_secret

 

это мой пример:

# The random password set for the root user at Tue Mar 21 19:44:07 2016 (local time): qna4AwbJOuOnw13T

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

mysql_secure_installation

 

Введите старый пароль MySQL, а затем введите новый, нажмите клавишу ВВОД, чтобы подтвердить.

Если все будет сделано, вы можете войти в оболочку MySQL с паролем:

mysql -u root -p

 

После того, как вы вошли в систему, создайте нового пользователя root для хоста » @ «, так что мы сможем получить доступ к MySQL извне.

CREATE USER 'root'@'%' IDENTIFIED BY 'andreyex123';

 

Заменить andreyex123 на ваш собственный надежный пароль!  Теперь вы можете увидеть нового пользователя root «@» в списке пользователей MySQL:

select user, host, password from mysql.user;

 

И предоставьте новому пользователю root привилегии: читать и написать доступ с удаленного узла:

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY PASSWORD '*94CC7BF027327993D738E11...(Encrypted PASSWORD)' WITH GRANT OPTION;

 

Тестирование кластера

Теперь попробуйте создать новую базу данных с сервера db4 и вы увидите базу данных на DB5 тоже.

Это просто результат выборки для тестирования репликации данных кластера.

MySQL Cluster успешно был установлен на CentOS 7 с 5 серверными узлами

MySQL Cluster успешно был установлен на CentOS 7 с 5 серверными узлами

Вывод

MySQL Cluster представляет собой технологию, которая обеспечивает высокую доступность и избыточность для баз данных MySQL. Он использует NDB или NDBCLUSTER в качестве механизма хранения и обеспечивает неразделяемую кластеризацию и авто-шардинг для баз данных MySQL. Для реализации кластера, нам нужно 3 компонента: Узел управления (MGM), Узлы данных (NDB) и SQL-узлы (API). Каждый из узлов должен иметь свою собственную память и диск. Не рекомендуется использовать сетевое хранилище, такие как NFS. Чтобы установить MySQL Cluster на минимальной системе CentOS 7, мы должны удалить пакет MariaDB-LIBS, MariaDB-LIBS конфликтует с MySQL кластер-сервером, и вы должны установить пакет Perl-Data-Dumper, это необходимо для MySQL-кластера-сервера. Кластер MySQL легко установить и настроить на нескольких серверах CentOS.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 5,00 из 5)
Загрузка...
Поделиться в соц. сетях:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

**ссылки nofollow

1 Комментарий
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
Олег

не подключается SQL Node на db4-5, ((

Читайте также

Спасибо!

Теперь редакторы в курсе.