Как установить кластер Percona XtraDB на CentOS 7
На этой странице
- Шаг 1. Настройте файл hosts
- Шаг 2. Настройка Firewalld
- Шаг 3. Установите репозиторий Epel и Socat
- Шаг 4. Установите кластер Percona XtraDB
- Шаг 5. Настройка кластера Percona XtraDB
- Шаг 6. Запустите сервер кластера Percona XtraDB
- Шаг 7. Тестирование
- Справочник
В этом руководстве я покажу вам, как установить и настроить Percona XtraDB Cluster на сервере CentOS 7. Мы будем использовать Percona XtraDB Cluster 5.6, который полностью совместим с MySQL и Percona Server.
Percona — это компания экспертов по базам данных MySQL и MongoDB, основанная в 2006 году. Percona создает и поддерживает программное обеспечение с открытым исходным кодом для MySQL и MongoDB: Percona Server (сервер базы данных для MySQL с повышенной производительностью высокой доступности), Percona XtraDB Cluster (решение высокой доступности для MySQL кластер), Percona Server для MongoDB и другие инструменты для управления базами данных, такие как набор инструментов Percona, инструменты мониторинга Percona и Percona XtraBackup.
Условие
- 3 узла сервера CentOS 7.
- Привилегии root.
- Базовые знания CentOS 7.
Шаг 1 - Настройте файл hosts
Первое, что нужно сделать, это настроить имена хостов всех серверов. Ive 3 сервера с CentOS 7, как указано ниже:
Node Server IP Hostname
Node1 - 192.168.43.36 percona1
Node2 - 192.168.43.166 percona2
Node3 - 192.168.43.148 percona3
Подключитесь ко всем серверам с помощью вашего терминала:
ssh
Если вы вошли на все серверы, отредактируйте файл /etc/hosts на каждом сервере с помощью vim:
vim /etc/hosts
Вставьте конфигурацию хостов ниже:
192.168.43.36 percona1
192.168.43.166 percona2
192.168.43.148 percona3
Замените IP-адреса на те, которые соответствуют конфигурации вашей локальной сети. Сохранить и выйти.
Шаг 2 — Настройте Firewalld
Firewalld — это новый интерфейс брандмауэра по умолчанию в CentOS 7. Команда firewall-cmd используется для настройки брандмауэра. Мы можем определить и настроить определенные группы или зоны, или мы можем настроить брандмауэр для таких сервисов, как ssh, базы данных MySQL, веб-сервер nginx/apache и т. д.
На этом этапе мы будем использовать firewalld для настройки брандмауэра. Мы будем использовать команду firewall-cmd, чтобы открыть порт сервера percona и другие порты, необходимые для кластера.
Запустите firewalld с помощью этой команды systemctl:
systemctl start firewalld
Затем выполните приведенную ниже команду, чтобы открыть порт, используемый сервером MySQL/percona:
firewall-cmd --zone=public --add-service=mysql --permanent
Затем добавьте другие порты для кластера с помощью команды ниже:
firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --zone=public --add-port=4567/tcp --permanent
firewall-cmd --zone=public --add-port=4568/tcp --permanent
firewall-cmd --zone=public --add-port=4444/tcp --permanent
firewall-cmd --zone=public --add-port=4567/udp --permanent
Перезагрузите правила брандмауэра:
firewall-cmd --reload
Чтобы просмотреть список всех правил брандмауэра, используйте параметр --list-all:
firewall-cm --list-all
Шаг 3 — Установите репозиторий Epel и Socat
Чтобы Percona XtraDB Cluster работал на сервере, нам нужно установить socat, и он доступен в epel-репозитории. Поэтому нам нужно сначала установить репозиторий Epel, а затем установить socat. Далее мы должны удалить mariadb-libs с сервера, потому что они конфликтуют с Percona XtraDB Cluster.
Установите epel-репозиторий и socat:
yum -y install epel-release
yum -y install socat
Удалите mariadb-libs, чтобы избежать конфликта пакетов между mariadb-libs и Percona XtraDB Cluster:
yum -y remove mariadb-libs
Репозиторий Epel и socat установлены.
Шаг 4. Установите кластер Percona XtraDB.
На этом этапе мы установим кластер Percona xtradb со всеми зависимостями пакетов. Нам нужно добавить репозиторий Percona для установки, а затем мы запускаем сервер Percona и настраиваем пользователя root и пароль для сервера базы данных.
Установите репозиторий Percona с помощью yum:
yum -y install http://www.percona.com/downloads/percona-release/redhat/0.1-3/percona-release-0.1-3.noarch.rpm
Теперь установите кластер Percona XtraDB и другие пакеты, необходимые для этого руководства:
yum install Percona-XtraDB-Cluster-server-56 Percona-XtraDB-Cluster-client-56 Percona-XtraDB-Cluster-shared-56 percona-toolkit percona-xtrabackup Percona-XtraDB-Cluster-galera-3 rsync nc
Кластер Percona XtraDB установлен, запустите сервер Percona командой zhis systemctl:
systemctl start mysql
Затем настройте пароль root для всех серверов percona/mysql:
mysql_secure_installation
Установите пароль percona/mysql:
Enter current password for root (enter for none): PRESS ENTER
Set root password? [Y/n] Y
New password: TYPE YOUR PASSWORD
Re-enter new password: REPEAT PASSWORD
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Reload privilege tables now? [Y/n] Y
Примечание:
Выполните шаги 1–4 на всех трех серверах CentOS.
Шаг 5. Настройка кластера Percona XtraDB
На шаге 4 мы уже установили Percona XtraDB Cluster и настроили пароль root для всех серверных узлов Percona/Mysql. На этом этапе мы создадим нового пользователя для аутентификации SST и отредактируем конфигурацию MySQL my.cnf на каждом из серверов.
SST (передача моментальных снимков состояния) — это полная копия данных с одного сервера в качестве донора на другой сервер в качестве присоединяемого. Для аутентификации SST нам нужно создать нового пользователя с именем sstuser и паролем [email . А для метода SST мы будем использовать xtrabackup-v2 вместо rsync. Пожалуйста, используйте другой и безопасный пароль для вашего кластера!
Войдите в оболочку percona/mysql на каждом сервере:
mysql -u root -p
TYPE YOUR PASSWORD
И создайте нового пользователя sstuser с паролем [email :
create user '%';
flush privileges;
Затем остановите службу MySQL на каждом сервере перед редактированием файла конфигурации:
systemctl stop mysql
Затем отредактируйте файл конфигурации mysql my.cnf на каждом сервере с помощью редактора vim.
На сервере Percona1:
vim /etc/my.cnf
Измените всю строку wsrep с конфигурацией ниже:
wsrep_cluster_address = gcomm://
wsrep_provider = /usr/lib64/galera3/libgalera_smm.so
wsrep_slave_threads = 8
wsrep_cluster_name = Cluster Percona XtraDB
wsrep_node_name = percona1
wsrep_node_address = percona1
wsrep_sst_method = xtrabackup-v2
wsrep_sst_auth = sstuser:
Сохранить и выйти.
На сервере Percona2:
vim /etc/my.cnf
Измените всю строку wsrep с конфигурацией ниже:
wsrep_cluster_address = gcomm://percona1,percona3
wsrep_provider = /usr/lib64/galera3/libgalera_smm.so
wsrep_slave_threads = 8
wsrep_cluster_name = Cluster Percona XtraDB
wsrep_node_name = percona2
wsrep_node_address = percona2
wsrep_sst_method = xtrabackup-v2
wsrep_sst_auth = sstuser:
Сохранить и выйти.
На сервере Percona3:
vim /etc/my.cnf
Измените всю строку wsrep с конфигурацией ниже:
wsrep_cluster_address = gcomm://percona1,percona2
wsrep_provider = /usr/lib64/galera3/libgalera_smm.so
wsrep_slave_threads = 8
wsrep_cluster_name = Cluster Percona XtraDB
wsrep_node_name = percona3
wsrep_node_address = percona3
wsrep_sst_method = xtrabackup-v2
wsrep_sst_auth = sstuser:
Сохранить и выйти.
Скриншот с сервера percona2.
Шаг 6. Запустите кластерный сервер Percona XtraDB
Мы настроили кластер Percona XtraDB на всех серверах, и теперь мы можем запустить сервер.
На сервере Percona1 загрузка или запуск кластера:
systemctl start
Затем запустите сервер Percona/MySQL на серверах percona2 и percona3 с помощью следующей команды:
systemctl start mysql
убедитесь, что нет сообщений об ошибках. Если после ввода для запуска MySQL возникает ошибка, проверьте файл журнала /var/log/messages.
Шаг 7 — Тестирование
Мы должны войти в оболочку percona/mysql на каждом сервере для тестирования кластера Percona XtraDB.
Войдите в оболочку Percona/MySQL на всех серверах/нодах:
mysql -u root -p
TYPE YOUR PASSWORD
Тестирование высокой доступности с помощью команды mysql:
SHOW STATUS LIKE 'wsrep_local_state_comment';
Попробуйте выполнить эту команду на каждом узле. Если в результате вы увидите \Синхронизировано\, то этот узел готов к обработке трафика.
Тестирование доступных узлов кластера:
show global status like 'wsrep_cluster_size';
Вы получите текущее количество узлов в кластере Percona.
Для получения полных результатов вы можете использовать следующую команду:
show global status like 'wsrep%';
Ссылка
- http://galeracluster.com/documentation-webpages/firewalld.html