Как установить кластер Percona XtraDB на Rocky Linux 9

Percona XtraDB Cluster — это решение для кластеризации баз данных MySQL с открытым исходным кодом. Оно позволяет создавать серверы MySQL высокой доступности с надежной и высокой производительностью. Последняя версия Percona XtraDB Cluster — 8.0, которая полностью совместима с MySQL Server Comunity Edition 8.0.

Percona XtraDB Cluster предоставляет такие возможности, как синхронная репликация, репликация из нескольких источников, автоматическая инициализация узлов, автоматическая настройка SSL-шифрования и оптимизированная производительность.

Percona XtraDB Cluster обеспечивает высокую доступность сервера баз данных, линейную масштабируемость, предотвращает простои и потерю данных.

Это руководство покажет вам, как настроить кластер MySQL с помощью Percona XtraDB Cluster (PXC) на серверах Rocky Linux 9. Вы установите Percona XtraDB Cluster на несколько систем Rocky Linux, настроите Percona XtraDB Cluster для включения репликации базы данных между серверами, а также проверите, вставив данные на один сервер и проверив данные с другого сервера.

Prerequisistes

Чтобы выполнить это руководство, у вас должно быть два или более сервера под управлением Rocky Linux 9. Кроме того, на всех серверах должен быть пользователь, не являющийся root, с правами администратора sudo/root. Кроме того, SELinux будет работать в разрешительном режиме.

В данном примере будут использоваться три сервера Rocky Linux 9. Ниже приведена подробная информация о серверах:

Hostname       IP Address
--------------------------
pxc-rock01       192.168.5.80
pxc-rock02       192.168.5.81
pxc-rock03       192.168.5.82

Если все требования готовы, можно приступать к установке Percona XtraDB Cluster.

Настройка /etc/hosts и Firewalld

В этом первом шаге вы настроите файл /etc/hosts и firewalld на всех серверах Rocky Linux. Вы измените файл /etc/hosts и добавите сведения об IP-адресах и именах хостов для каждого сервера, затем вы добавите некоторые порты, которые будут использоваться кластером Percona XtraDB.

Ниже приведены сведения о портах Percona XtraDB Cluster, которые вы должны открыть на вашем брандмауэре.

Ports   Used for
---------------------------
3306    MySQL client connection and SST (State Snapshot Transfer)
4444    SST via Percona XtraBackup
4567    write-set replication traffic (over TCP) and multicast replication (over TCP and UDP)
4568    IST (Incremental State Transfer)

Для начала откройте ‘/etc/hosts’ файл с помощью следующей команды редактора nano.

sudo nano /etc/hosts

Добавьте сведения об имени хоста и IP-адресе, которые будут использоваться для кластера. Не забудьте изменить эти данные в соответствии с окружением вашего сервера.

192.168.5.80  pxc-rock01
192.168.5.81  pxc-rock02
192.168.5.82  pxc-rock03

После завершения работы сохраните и закройте файл.

Далее введите следующую команду ‘firewall-cmd‘ добавьте подсеть своей внутренней сети в качестве доверенного источника. Таким образом, только доверенным сетям будет разрешен доступ ко всем серверам.

sudo firewall-cmd --permanent --add-source=192.168.5.0/24

Теперь откройте несколько портов для Percona XtraDB Cluster и перезагрузите firewalld, чтобы применить изменения. Вывод ‘успех‘ подтверждает, что новое правило было добавлено в firewalld.

sudo firewall-cmd --add-port={3306/tcp,4444/tcp,4567/tcp,4567/udp,4568/tcp} --permanent
sudo firewall-cmd --reload

Наконец, введите следующую команду ‘firewall-cmd’, чтобы проверить список включенных правил в firewalld.

sudo firewall-cmd --list-all

Следующий вывод будет распечатан в оболочке терминала. Убедитесь, что в списке указаны все порты, которые будут использоваться кластером Percona XtraDB.

настройка имени хоста и firewalld

С помощью /etc/hosts файл и настроен firewalld, далее вы установите пакеты Percona XtraDB Cluster.

Установка Percona XtraDB Cluster

В этом разделе вы установите Percona XtraDB Cluster на все ваши серверы Rocky Linux. Вы настроите репозиторий Percona XtraDB, затем установите пакет Percona XtraDB Cluster. Также в конце вы измените стандартный пароль корня MySQL на всех ваших серверах.

Сначала необходимо добавить и включить репозиторий EPEL. Введите следующую команду ‘dnf install’, чтобы добавить репозиторий EPEL.

sudo dnf install epel-release

Теперь введите следующую команду для установки приложения Percona release. Введите y, когда появится запрос, и нажмите ENTER, чтобы продолжить. Этот пакет предоставляет инструмент командной строки ‘percona-release‘, который можно использовать для управления репозиториями Percona.

sudo dnf install https://repo.percona.com/yum/percona-release-latest.noarch.rpm -y

добавить percona repo

Далее выполните следующую команду ‘percona-release‘, чтобы включить репозиторий Percona XtraDB Cluster v8.0. В процессе вам будет предложено отключить репозиторий MySQL по умолчанию, введите y для подтверждения и нажмите ENTER для продолжения.

sudo percona-release setup pxc-80

На выходе появится сообщение ‘Все готово!‘ подтверждает успешное выполнение операции.

включить percona xtradb repo

Проверьте список включенных репозиториев, введя команду ‘dnf repolist’ ниже. Вы должны увидеть включенный репозиторий ‘pxc-80-release’ и список с некоторыми дополнительными репозиториями, такими как ‘prel-release’ и ‘tools-release’.

sudo dnf repolist

список репозиториев

Теперь введите следующее ‘dnf install’ команда для установки пакета Percona XtraDB Cluster. Введите y, когда появится запрос на подтверждение, и нажмите ENTER, чтобы продолжить.

sudo dnf install percona-xtradb-cluster

установить percona xtradb cluster

Когда появится запрос на принятие ключа Percona GPG, введите y и нажмите ENTER для подтверждения.

принять ключ gpg

После установки Percona XtraDB Cluster введите следующую командную утилиту systemctl для запуска и включения службы MySQL.

sudo systemctl start mysql
sudo systemctl enable mysql

Теперь проверьте статус службы MySQL с помощью следующей команды. Вывод ‘активен (работает)‘ подтверждает, что MySQL запущен. А вывод ‘…; включено..» подтверждает, что MySQL будет запускаться автоматически при старте системы.

sudo systemctl status mysql

проверка службы mysql

Запустив кластер Percona XtraDB, измените стандартный пароль root для всех ваших серверов MySQL.

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

sudo grep 'temporary password' /var/log/mysqld.log

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

sudo mysql -u root -p

После входа в систему вы должны увидеть оболочку MySQL с подсказкой следующего вида ‘mysql>‘.

вход в оболочку mysql

Введите следующий запрос MySQL для изменения пароля по умолчанию для пользователя MySQL root, выйдите из системы и завершите работу.

ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewP4ssr00tMySQL';
quit

изменить пароль по умолчанию для пользователя mysql root

Наконец, перед настройкой кластера Percona XtraDB Cluster необходимо остановить службу MySQL. Введите следующую команду ‘systemctl’, чтобы остановить службу MySQL на всех серверах.

sudo systemctl stop mysql

После установки кластера Percona XtraDB Cluster, настройки корня MySQL и остановки службы MySQL вы будете готовы к конфигурированию и настройке кластера.

Копирование сертификатов SSL/TLS

Начиная с версии Percona XtraDB Cluster 8.0, соединение между серверами кластера по умолчанию должно быть зашифровано. Чтобы установить зашифрованное соединение между серверами, необходимо иметь одинаковые сертификаты SSL/TLS на всех серверах.

В этом разделе вы скопируете сгенерированные по умолчанию сертификаты SSl/TLS из файла ‘pxc-rock01‘ сервер на ‘pxc-rock02‘ и ‘pxc-rock03‘ Серверы.

На ‘pxc-rock01‘ сервера, введите следующую команду для проверки доступных сертификатов. После этого необходимо скопировать файлы сертификатов ‘server-cert.pem‘, ‘server-key.pem‘, и ‘ca.pem‘ для обоих pxc-rock02 и pxc-rock03 сервера.

ls /var/lib/mysql/*.pem

список сертификатов

Переместите рабочий каталог в ‘/var/lib/mysql‘.

cd /var/lib/mysql

Теперь введите следующее scp команда для копирования файлов сертификатов SSL/TLS на оба компьютера pxc-rock02 и pxc-rock03 сервера.

scp server-key.pem server-cert.pem ca.pem root@pxc-rock02:/var/lib/mysql
scp server-key.pem server-cert.pem ca.pem root@pxc-rock03:/var/lib/mysql

Ниже приведен вывод в процессе копирования сертификатов SSL/TLS из файла pxc-rock01 к pxc-rock02 сервер.

копирование сертификатов pxc-rock02

Ниже приведен вывод в процессе копирования сертификатов SSL/TLS из файла pxc-rock01 к pxc-rock03 сервер.

копия сертификатов pxc-rock03

Инициализация кластера Percona XtraDB на pxc-rock01

Сначала вы инициализируете кластер Percona XtraDB Cluster на сервере pxc-rock01. Для этого вам нужно будет изменить файл конфигурации сервера MySQL ‘/etc/my.cnf‘, затем запустите команду ‘mysql@bootstrap‘ service.

Откройте файл конфигурации MySQL ‘/etc/my.cnf’ с помощью следующей команды редактора nano.

sudo nano /etc/my.cnf

Добавьте список IP-адресов вашего сервера Percona XtraDB Cluster в папку ‘wsrep_cluster_address‘ параметр и добавьте параметр ‘default_storage_engine=InnoDB‘.

# Cluster connection URL contains the IPs of pxc-rock01, pxc-rock02, and pxc-rock03
wsrep_cluster_address=gcomm://192.168.5.80,192.168.5.81,192.168.5.82

# Using the MyISAM storage engine is not recommended.
default_storage_engine=InnoDB

движок wsrep движок хранилища по умолчанию

Измените значение ‘wsrep_node_address‘ с текущим IP-адресом сервера, параметр ‘wsrep_node_name‘ с именем системного хоста, а ‘wsrep_cluster_name‘ с именем вашего кластера.

# Node 1 address
wsrep_node_address=192.168.5.80
# Node Name
wsrep_node_name=pxc-rock01

# Cluster name
wsrep_cluster_name=pxc-cluster

адрес имени узла и имя кластера

Наконец, в нижней части строки добавьте следующий конфиг, чтобы включить безопасное SSL/TLS-соединение между серверами Percona XtraDB Cluster и sst-соединением.

# enable ssl/tls connection
wsrep_provider_options="socket.ssl_key=server-key.pem;socket.ssl_cert=server-cert.pem;socket.ssl_ca=ca.pem"

[sst]
encrypt=4
ssl-key=server-key.pem
ssl-ca=ca.pem
ssl-cert=server-cert.pem

включить ssl tls

Сохраните и закройте файл после завершения работы.

Далее введите следующую команду systemctl, чтобы запустить ‘mysql@bootstrap‘ и инициализируйте первый сервер Percona XtraDB Cluster.

systemctl start [email protected]

Чтобы проверить и убедиться в успехе инициализации Percona XtraDB Cluster, необходимо войти в оболочку MySQL и проверить ‘wsrep%‘ статус.

Введите следующую команду ‘mysql’, чтобы войти на сервер MySQL в качестве ‘root‘ пользователь. Введите новый пароль пользователя MySQL root, когда появится запрос.

sudo mysql -u root -p

После входа в систему введите следующий запрос, чтобы проверить детали ‘wsrep%‘ статус.

SHOW STATUS LIKE 'wsrep%';

Вы должны получить следующее сообщение — На ‘wsrep_cluster_size‘ в разделе вы увидите значение ‘1‘, что означает, что кластер Percona XtraDB Cluster инициализируется со значением 1 сервер. Вы также получите IP-адреса серверов на странице ‘wsrep_incoming_address‘ раздел. Наконец, узел находится в разделе . состояние, означающее, что он полностью подключен и готов к репликации с набором записей.

проверка кластера percona xtradb

После этого первый сервер кластера Percona XtraDB ‘pxc-rock01‘ сервер инициализирован. На следующем этапе вы добавите сервер ‘pxc-rock02‘ и ‘pxc-rock03‘ Серверы в кластере.

Добавление сервера pxc-rock02 в кластер Percona XtraDB

После того как первый кластер Percona XtraDb Cluster будет инициализирован, добавьте в него сервер pxc-rock02 сервер в кластер. Способ добавления сервера в кластер Percona XtraDB Cluster аналогичен процессу инициализации, вам нужно изменить стандартный файл конфигурации сервера MySQL ‘/etc/my.cnf’ и определите список серверов для кластера, затем запустите службу MySQL обычным способом.

Введите следующую команду редактора nano, чтобы открыть файл конфигурации MySQL ‘/etc/my.cnf‘.

sudo nano /etc/my.cnf

Добавьте список IP-адресов вашего сервера Percona XtraDB Cluster в ‘wsrep_cluster_address‘ параметр и добавьте параметр ‘default_storage_engine=InnoDB‘.

# Cluster connection URL contains the IPs of pxc-rock01, pxc-rock02, and pxc-rock03
wsrep_cluster_address=gcomm://192.168.5.80,192.168.5.81,192.168.5.82

# Using the MyISAM storage engine is not recommended.
default_storage_engine=InnoDB

адрес wsrep и движок базы данных по умолчанию

Измените ‘wsrep_node_address‘ с текущим IP-адресом сервера, параметр ‘wsrep_node_name‘ с именем системного хоста, а ‘wsrep_cluster_name‘ с именем вашего кластера.

# Node #2 address
wsrep_node_address=192.168.5.81
# Node Name
wsrep_node_name=pxc-rock02

# Cluster name
wsrep_cluster_name=pxc-cluster

имя узла адрес узла и имя кластера

Наконец, в нижней части строки добавьте следующий конфиг, чтобы включить безопасное SSL/TLS-соединение между серверами Percona XtraDB Cluster и sst-соединением.

# enable ssl/tls connection
wsrep_provider_options="socket.ssl_key=server-key.pem;socket.ssl_cert=server-cert.pem;socket.ssl_ca=ca.pem"

[sst]
encrypt=4
ssl-key=server-key.pem
ssl-ca=ca.pem
ssl-cert=server-cert.pem

включить ssl tls

Сохраните и закройте файл после завершения работы.

Далее введите следующую команду systemctl, чтобы запустить службу MySQL. Это также приведет к тому, что ‘pxc-rock02‘ сервер присоединяется к инициализированному кластеру Percona XtraDB.

sudo systemctl start mysql

Наконец, чтобы убедиться, что pxc-rock02 сервер добавлен в Percona XtraDB Cluster, вы должны войти в оболочку MySQL как пользователь root, выполнив следующую команду. При появлении запроса введите пароль пользователя MySQL root.

sudo mysql -u root -p

Теперь введите следующий запрос для проверки деталей ‘wsrep%‘ статус.

SHOW STATUS LIKE 'wsrep%';

Вы должны получить следующее сообщение — На ‘wsrep_cluster_size‘ в разделе вы увидите значение ‘2‘, что означает наличие двух серверов в кластере Percona XtraDB. Вы также получите IP-адреса серверов на странице ‘wsrep_incoming_address‘ раздел, в котором указаны pxc-rock01 и pxc-rock02 IP-адреса серверов. Наконец, узел находится в . состояние, означающее, что он полностью подключен и готов к репликации с набором записей.

кластер verofy pxc

Добавление сервера pxc-rock03 в кластер Percona XtraDB

В этом разделе вы добавите третий сервер pxc-rock03 в кластер Percona XtraDB Cluster.

Откройте файл конфигурации ‘/etc/my.cnf‘ файл с помощью следующей команды редактора nano.

sudo nano /etc/my.cnf

Добавьте список IP-адресов вашего сервера Percona XtraDB Cluster в ‘wsrep_cluster_address‘ параметр и добавьте параметр ‘default_storage_engine=InnoDB‘.

# Cluster connection URL contains the IPs of pxc-rock01, pxc-rock02, and pxc-rock03
wsrep_cluster_address=gcomm://192.168.5.80,192.168.5.81,192.168.5.82

# Using the MyISAM storage engine is not recommended.
default_storage_engine=InnoDB

адрес wsrep и механизм хранения по умолчанию

Измените значение ‘wsrep_node_address’ с текущим IP-адресом сервера, параметр ‘wsrep_node_name‘ с именем системного хоста, а ‘wsrep_cluster_name‘ с именем вашего кластера.

# Node #3 address
wsrep_node_address=192.168.5.82
# Node Name
wsrep_node_name=pxc-rock02

# Cluster name
wsrep_cluster_name=pxc-cluster

имя узла и имя кластера и ip-адрес

Наконец, в нижней части строки добавьте следующий конфиг, чтобы включить безопасное SSL/TLS-соединение между серверами Percona XtraDB Cluster и sst-соединением.

# enable ssl/tls connection
wsrep_provider_options="socket.ssl_key=server-key.pem;socket.ssl_cert=server-cert.pem;socket.ssl_ca=ca.pem"

[sst]
encrypt=4
ssl-key=server-key.pem
ssl-ca=ca.pem
ssl-cert=server-cert.pem

enable ssl/tls pxc-rock3

После завершения работы сохраните и закройте файл.

Далее введите следующую команду systemctl, чтобы запустить службу MySQL и присоединить текущий сервер pxc-rock03 к кластеру Percona XtraDB.

sudo systemctl start mysql

Наконец, введите следующую команду mysql, чтобы войти в оболочку MySQL и проверить ‘wsrep%‘ статус. При появлении запроса введите пароль корня MySQL.

sudo mysql -u root -p

Теперь введите следующий запрос, чтобы проверить детали ‘wsrep%‘ статус.

SHOW STATUS LIKE 'wsrep%';

Вы должны получить следующее сообщение — На ‘wsrep_cluster_size‘ в разделе вы увидите значение ‘3‘, что означает, что в кластере Percona XtraDB Cluster доступно три сервера. Вы также получите IP-адреса серверов в разделе ‘wsrep_incoming_address’, которые являются pxc-rock01, pxc-rock02, и pxc-rock03 IP-адреса серверов. Наконец, узел находится в . состояние, означающее, что он полностью подключен и готов к репликации с набором записей.

проверка кластера pxc-roc03

На данный момент вы настроили Percona XtraDB Cluster с тремя различными серверами Rocky Linux 9. При этом репликация базы данных должна работать между серверами в Percona XtraDB Cluster. На следующем этапе вы проверите репликацию базы данных между несколькими серверами.

Тестирование репликации базы данных

В этом разделе вы проверите репликацию базы данных на Percona XtraDB CLuster. Это позволит убедиться, что установка прошла успешно и завершена.

Сначала войдите в оболочку MySQL из папки pxc-rock02 сервера и создайте новую базу данных под названием ‘testdb‘.

sudo mysql -u root -p
CREATE DATABASE testdb;

создать базу данных pxc-rock02

Теперь перейдите в раздел pxc-rock03 сервера, подключитесь к оболочке MySQL под пользователем root, затем измените рабочую базу данных по умолчанию на ‘testdb‘.

sudo mysql -u root -p
USE testdb;

Введите следующий запрос, чтобы создать новую таблицу под названием ‘таблица1‘.

CREATE TABLE table1 (node_id INT PRIMARY KEY, node_name VARCHAR(30));

создать таблицу pxc-rock03

Далее перейдите в раздел pxc-rock01 сервера, войдите в оболочку MySQL, затем вставьте новые данные в базу данных ‘testdb‘ через ‘INSERT‘ запрос ниже.

sudo mysql -u root -p
INSERT INTO testdb.table1 VALUES (1, 'pxc-rock01');
INSERT INTO testdb.table1 VALUES (2, 'pxc-rock02');
INSERT INTO testdb.table1 VALUES (3, 'pxc-rock03');

вставить данные

Когда данные будут добавлены, вернитесь в раздел pxc-rock02 сервера и введите приведенный ниже запрос SELECT для получения всех доступных данных в базе данных ‘testdb‘ и таблица ‘таблица1‘.

SELECT * FROM testdb.table1;

Если репликация прошла успешно, вставленные данные должны быть доступны на pxc-rock02 сервер. Ваши данные будут храниться на всех серверах кластера Percona XtraDB.

проверить данные

Это подтверждает, что установка кластера Percona XtraDB на серверы Rocky Linux 9 прошла успешно.

Заключение

В этом руководстве вы установили и развернули Percona XtraDB Cluster на трех серверах Rocky Linux 9. Вы узнали, как установить Percona XtraDB Cluster, защитить развертывание с помощью firewalld, инициализировать кластер, а также добавить узлы в кластер.

Кроме того, вы также защитили установку Percona XtraDB Cluster, зашифровав трафик между всеми серверами с помощью сертификатов SSL/TLS и опции ‘pxc-encrypt-cluster-traffic’, которая по умолчанию включена в Percona XtraDB Cluster 8.0.

С ее помощью вы можете добавить дополнительные серверы в текущий кластер Percona XtraDB Cluster, используя шаги, которые вы изучили при добавлении серверов pxc-rock02 и pxc-rock03. Также вы можете настроить балансировку нагрузки и высокую доступность с помощью сторонних приложений, таких как ProxySQL и HAPROXY. Чтобы узнать больше, посетите официальную документацию по кластеру Percona XtraDB Cluster.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *