Рекомендуется использовать MySQL версии 5.7.16 и выше. Если используется функция разделения чтения и записи, необходимо настроить главный и подчинённый серверы MySQL. Если используется функция сегментирования, необходимо разработать стратегию сегментирования в соответствии с требованиями бизнеса. Создайте пользователя и пароль и убедитесь, что Cetus может удалённо подключаться к MySQL. Подробные инструкции см. в разделе «Подготовка MySQL для Cetus» (https://github.com/Lede-Inc/cetus/blob/master/doc/cetus-mysql-prepare.md).
Cetus поддерживает только операционную систему Linux. Инструкции по установке см. в разделе «Инструкции по установке Cetus» (https://github.com/Lede-Inc/cetus/blob/master/doc/cetus-install.md). После успешной установки Cetus предоставляет пример файла конфигурации в каталоге /home/user/cetus_install/conf/. Пользователи могут изменять его в соответствии со своими потребностями. Подробности о файлах конфигурации для версий Cetus с разделением чтения и записи см. в разделе «Файлы конфигурации для версии Cetus с разделением чтения и записи» (https://github.com/Lede-Inc/cetus/blob/master/doc/cetus-rw-profile.md), а подробности о файлах конфигурации для сегментированных версий Cetus см. в разделе «Файлы конфигурации для сегментированной версии Cetus» (https://github.com/Lede-Inc/cetus/blob/master/doc/cetus-shard-profile.md).
Если используется разделение чтения и записи, можно настроить один главный сервер и несколько подчинённых серверов. Если используется сегментирование, можно настроить несколько баз данных на основе правил сегментирования.
У Cetus есть два способа запуска:
chmod 660 proxy.conf
1. Запуск из командной строки
bin/cetus --defaults-file=conf/proxy.conf|shard.conf [--conf-dir=/home/user/cetus_install/conf/]
2. Запуск с использованием команды service В папке scripts в исходном каталоге есть файл cetus.service, который предоставляет сценарии запуска, остановки и перезапуска Cetus. Пользователи системы CentOS могут скопировать этот файл в каталог /etc/init.d/, переименовать его в cetus и изменить значение CETUS_HOME на фактический путь установки Cetus. В зависимости от используемой версии Cetus (с разделением чтения и записи или сегментированная версия) измените значение CETUS_CONF. Используйте следующие команды для управления Cetus:
service cetus start
service cetus stop
service cetus restart
Cetus предоставляет два типа портов: порт прокси/сегмента и порт администратора. Порт прокси/сегмента — это порт приложения Cetus, используемый для взаимодействия с базой данных и приложением. Порт администратора — это порт управления Cetus, который позволяет пользователям подключаться и просматривать и изменять состояние и параметры конфигурации Cetus.
1. Подключение к порту приложения Cetus При подключении к Cetus используйте имя пользователя и пароль, подтверждённые в файле конфигурации, для входа в систему. IP-адрес и порт должны соответствовать IP-адресу и порту, которые прослушивает Cetus в proxy-address. Можно одновременно запускать Cetus для прослушивания одного и того же IP-адреса на разных портах. После подключения к порту приложения вы можете отправлять совместимые с Cetus операторы SQL. Подробности об использовании Cetus в зависимости от версии см. в разделах «Руководство по использованию Cetus с разделением чтения и записи» (https://github.com/Lede-Inc/cetus/blob/master/doc/cetus-rw.md) и «Руководство по использованию сегментированного Cetus» (https://github.com/Lede-Inc/cetus/blob/master/doc/cetus-sharding.md).
2. Подключение к порту администратора Cetus 2.1 Подключение с использованием клиента MySQL
$ mysql --prompt="admin> " --comments -h**.**.**.** -P**** -u**** -p***
admin> show maintain status;
2.2 Подключение с использованием Python Поддерживаются модули pymysql и MySQLdb в Python.
#!/usr/bin/python
# -*- coding: utf-8 -*-
import pymysql as connector
conn = connector.connect(host="127.0.0.1", user="admin", passwd="admin", port=6666, autocommit=None )
cursor = conn.cursor()
cursor.execute("show maintain status")
data = cursor.fetchone()
print "maintain status: %s" % data
#!/usr/bin/python
# -*- coding: utf-8 -*-
import MySQLdb as connector
conn = connector.connect(host="127.0.0.1", user="admin", passwd="admin", port=6666)
cursor = conn.cursor()
cursor.execute("show maintain status")
data = cursor.fetchone()
print "maintain status: %s" % data
Вы можете использовать имя пользователя и пароль администратора, указанные в файле конфигурации, чтобы войти в систему и управлять Cetus. Например, при запросе подробной информации о Cetus вы можете выполнить команду select * from backends, которая отображает информацию о порте, состоянии, типе чтения и записи каждого сегмента, а также о задержке чтения и записи и количестве подключений. Подробности об управлении Cetus в зависимости от версии см. в разделах «Справочник администратора для Cetus с разделением чтения и записи» (https://github.com/Lede-Inc/cetus/blob/master/doc/cetus-rw-admin.md) и «Справочник администратора сегментированного Cetus» (https://github.com/Lede-Inc/cetus/blob/master/doc/cetus-shard-admin.md).
Примечание. Ограничения использования Cetus с разделением чтения и записи и сегментированной версией см. в «Ограничениях использования Cetus» (https://github.com/Lede-Inc/cetus/blob/master/doc/cetus-constraint.md).
В настоящее время Cetus поддерживает режим MGR с одним главным сервером. Чтобы включить поддержку MGR, установите параметр group-replication-mode = 1 в файле *.conf. По умолчанию этот параметр равен 0, что означает, что поддерживается только обычный кластер репликации главного и подчинённого серверов MySQL. Этот параметр можно динамически устанавливать через порт администратора. Обратите внимание, что таблицы performance_schema.global_status и performance_schema.replication_group_members используются для получения информации о кластере MGR после включения параметра group-replication-mode. Поэтому при предоставлении прав доступа default-username необходимо учитывать это. Например, предоставление прав доступа может быть таким:
## Создание учётной записи default-username (например, в конфигурации *.conf указано default-username=cetus_app, default-db=test)
CREATE USER 'cetus_app'@'172.17.0.*' IDENTIFIED BY 'Cetus_2019,2,18';
## Предоставление прав доступа default-username к default-db/бизнес-базе данных
GRANT SELECT, INSERT, UPDATE, DELETE ON test.* TO 'cetus_app'@'172.17.0.*';
## Предоставить права доступа для таблиц, связанных с MGR
GRANT SELECT ON `performance_schema`.`replication_group_members` TO 'cetus_app'@'172.17.0.*';
GRANT SELECT ON `performance_schema`.`global_status` TO 'cetus_app'@'172.17.0.*';
``` Поскольку в MySQL 8.0 появился плагин аутентификации caching_sha2_password, который используется по умолчанию при создании новых пользователей, MySQL 55/56/57 не поддерживает этот способ аутентификации. Поэтому при использовании Cetus, скомпилированного с библиотеками MySQL 55/56/57, необходимо настроить учётную запись default-username на MySQL, указав плагин mysql_native_password при создании учётной записи. В противном случае мониторинговый поток Cetus не сможет работать, что повлияет на нормальное использование Cetus.
Пример конфигурации:
create user 'default-user'@'%' identified with mysql_native_password by 'my_password'; grant all privileges on . to 'default-user'@'%';
## Особое внимание
1. При использовании cetus **не** устанавливайте глобальный режим автоматической фиксации (autocommit) для MySQL на уровне сервера в положение OFF/0. Если вам нужно использовать неявную фиксацию, вы можете настроить этот параметр на прикладном уровне, например, в jdbcUrl Java-клиента, установив autoCommit=false.
2. Не используйте неявно фиксирующие SQL-запросы (например, DDL) в распределённых транзакциях, иначе XA-протокол выдаст ошибку: ERROR 1399 (XAE07): XAER_RMFAIL.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )