1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/gitcrazy-cetus

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
cetus-quick-try.md 13 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 30.11.2024 15:50 8feb600

Cetus: быстрое начало работы

Описание среды

Рекомендуется использовать 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 есть два способа запуска:

  • запуск с использованием локального файла конфигурации;
  • удалённый запуск с использованием конфигурационной библиотеки. Пользователи могут выбрать способ запуска в зависимости от ситуации. Ниже приведён пример запуска с использованием локального файла конфигурации. Перед запуском убедитесь, что права доступа к файлу конфигурации (proxy.conf/shard.conf) составляют не менее 660. Вы можете изменить права доступа с помощью следующей команды:
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.

  • pymysql: Примечание: необходимо установить параметр соединения autocommit=None
#!/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
  • MySQLdb:
#!/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).

Поддержка MGR

В настоящее время 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 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/gitcrazy-cetus.git
git@api.gitlife.ru:oschina-mirror/gitcrazy-cetus.git
oschina-mirror
gitcrazy-cetus
gitcrazy-cetus
master