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

OSCHINA-MIRROR/mirrors-Cetus

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
cetus-shard-admin.md 21 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 27.11.2024 21:41 e65dd39

Руководство по управлению версиями Cetus sharding

Введение

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

Получение справки

select * from help или select help — просмотр использования порта управления.

Команда Описание
select conn_details from backends отображение простаивающих соединений
select * from backends список бэкэндов и их состояние
show connectionlist [<num>] показать <num> подключений
select * from groups список бэкэндов и их групп
show allow_ip/deny_ip показать правила allow_ip модуля, в настоящее время admin
add allow_ip/deny_ip '<user>@<address>' добавить адрес в белый список модуля
delete allow_ip/deny_ip '<user>@<address>' удалить адрес из белого списка модуля
set reduce_conns (true|false) уменьшить количество простаивающих подключений, если установлено значение true
set maintain (true|false) ускорить закрытие подключения
set charset_check (true|false) проверить, что клиентская кодировка равна кодировке по умолчанию
refresh_conns обновить все подключения к серверу
show maintain status показать статус обслуживания
show variables [like '%pattern%']
select version версия cetus
select * from user_pwd [where user='']
select * from app_user_pwd [where user='']
update user_pwd set password='xx' where user=''
update app_user_pwd set password='xx' where user=''
delete from user_pwd where user=''
delete from app_user_pwd where user=''
insert into backends values ('<ip:port@group>', '(ro|rw)', '<state>') добавить экземпляр mysql в список бэкэндов
update backends set (type|state)=x where (backend_ndx=<index>|address=<'ip:port'>) обновить тип или состояние экземпляра mysql
delete from backends where (backend_ndx=<index> address=<'ip:port'>)
remove backend where (backend_ndx= address='ip:port')
remove backend backend_ndx
add master <'ip:port@group'> Результаты:

Версия управления sharding предоставляет различные команды для управления Cetus. Конкретные способы использования см. в следующем описании.

Конфигурация бэкэнда

Просмотр информации о бэкэнде

select * from backends

Просмотр информации о бэкэндах.

backend_ndx address state type slave delay uuid idle_conns used_conns total_conns group
1 127.0.0.1:3306 up rw NULL NULL 100 0 100 group1
2 127.0.0.1:3307 up rw NULL NULL 100 0 100 group2
3 127.0.0.1:3308 up rw NULL NULL 100 0 100 group3
4 127.0.0.1:3309 up rw NULL NULL 100 0 100 group4

Описание результатов:

  • backend_ndx: номер бэкэнда, упорядоченный по порядку добавления;
  • address: адрес бэкэнда в формате IP:PORT;
  • state: состояние бэкэнда (unknown|up|down|maintaining|deleted);
  • type: тип чтения и записи (rw|ro);
  • slave delay: время задержки главного и подчинённого серверов (единица измерения: миллисекунды), только если Cetus имеет подчинённый сервер и отслеживает задержку между главным и подчинённым серверами, будет отображаться значение slave delay;
  • uuid: временно не используется;
  • idle_conns: количество свободных соединений;
  • used_conns: количество используемых соединений;
  • total_conns: общее количество соединений;
  • group: группа бэкэндов.

Объяснение состояний: unknown: начальное состояние бэкэнда, соединение ещё не установлено; up: можно установить нормальное соединение с бэкэндом; down: невозможно подключиться к бэкэнду (если включено отслеживание состояния бэкэнда, автоматически становится UP после подключения); maintaining: бэкэнд находится в состоянии обслуживания, невозможно установить соединение или автоматически изменить состояние (это состояние устанавливается вручную администратором); deleted: бэкэнд был удалён, больше невозможно установить соединение. conn_details from backends

Посмотреть количество используемых и свободных соединений для каждого пользователя.

backend_ndx username idle_conns used_used_conns total_used_conns
1 test1 2 0 0
2 test2 11 0 0

Результаты:

  • backend_ndx — номер бэкенда;
  • username — имя пользователя;
  • idle_conns — количество свободных соединений;
  • used_used_conns — количество используемых соединений;
  • total_used_conns — общее количество соединений.

Просмотр информации о группах бэкендов

select * from groups

Посмотреть подробную информацию о группах бэкендов.

group master slaves
data1 127.0.0.1:3306 127.0.0.1:3316
data2 127.0.0.1:3307 127.0.0.1:3317
data3 127.0.0.1:3308 127.0.0.1:3318
data4 127.0.0.1:3309 127.0.0.1:3319

Результаты:

  • group — номер группы;
  • master — мастер-сервер;
  • slaves — серверы-слейвы.

Добавление бэкенда

add master '<ip:port@group>'

Добавить бэкенд с типом чтения и записи. Например:

add master '127.0.0.1:3307@group1'

add slave '<ip:port@group>'

Добавить бэкенд только для чтения. Например:

add slave '127.0.0.1:3306@group1'

insert into backends values ('<ip:port@group>', '(ro|rw)', '<state>')

Добавить новый бэкенд, указав тип чтения и записи и состояние. Например:

insert into backends values ('127.0.0.1:3306@group1', 'rw', 'up');

Удаление бэкенда

remove backend <backend_ndx> или delete from backends where backend_ndx = <backend_ndx>

Удалить бэкенд по номеру. Например:

remove backend 1

delete from backends where address = '<ip:port>'

Удалить бэкенд по адресу. Например:

delete from backends where address = '127.0.0.1:3306'

Изменение бэкенда

update backends se (type|state)='<value>' where (backend_ndx=<index>|address='<ip:port>')

Изменить тип или состояние бэкенда. Например:

update backends set type='rw' where address='127.0.0.1:3306' update backends set state='up' where backend_ndx=1

Примечание:

  • при изменении состояния на deleted состояние state может быть только up, down или maintaining;
  • удаление бэкенда устанавливает его состояние в deleted.

Базовая конфигурация

Просмотр пула соединений/общей конфигурации

config get [<item>]

config get — просмотр поддерживаемых типов конфигурации.

  • pool — конфигурация пула соединений.
  • common — общая конфигурация.

config get common — просмотр общей конфигурации.

  • common.check_slave_delay — проверять ли задержку от слейвов.
  • common.slave_delay_down_threshold_sec — если задержка больше этого значения (в секундах), установить состояние бэкенда в DOWN.
  • common.slave_delay_recover_threshold_sec — если задержка меньше этого значения (в секундах), установить состояние бэкенда в UP.

config get pool — просмотр конфигурации пула соединений.

  • pool.default_pool_size — размер пула по умолчанию.
  • pool.max_pool_size — максимальный размер пула.
  • pool.max_resp_len — максимальная длина результата.
  • pool.master_preferred — разрешать ли только мастер-соединения.

Изменение конфигурации

config set <key>=<value>

Например:

config set slave-delay-down = 3

Просмотр параметров конфигурации

show variables [like '%<pattern>%']

Все параметры являются параметрами запуска, см. Cetus Configuration Options (https://github.com/Lede-Inc/cetus/blob/master/doc/cetus-configuration.md).

Просмотр/установка информации о соединениях

Просмотр подробной информации о текущих соединениях

show connectionlist

Отобразить подробную информацию обо всех текущих соединениях в виде таблицы.

User Host db Command Time Trans PS State Xa Xid Server Info
test1 127.0.0.1:3306 test Sleep 0 N N READ_QUERY NX NULL NULL NULL
test2 127.0.0.1:3307 test Sleep 0 N N READ_QUERY NX NULL NULL NULL

Результаты:

  • User — имя пользователя.
  • Host — IP-адрес и порт клиента.
  • db — название базы данных.
  • Command — выполняемый SQL, «Sleep» означает, что соединение находится в режиме ожидания команды.
  • Time — время выполнения команды.
  • Trans — находится ли соединение в транзакции (Y|N).
  • PS — существует ли подготовленный запрос (Y|N).
  • State — текущее состояние соединения, «READ_QUERY» означает ожидание команды.
  • Xa — статус распределённой транзакции (NX|XS|XQ|XE|XP|XC|XR|XCO|XO).
  • Xid — идентификатор распределённой транзакции.
  • Server — адрес бэкенда.
  • Info — пока неизвестно.

Статус распределённой транзакции: NX — не находится в состоянии распределённой транзакции; XS — находится в состоянии XA START; XQ — находится в состоянии XA QUERY; XE — находится в состоянии XA END; XP — находится в состоянии XA PREPARE; XC — находится в состоянии XA COMMIT; XR — находится в состоянии XA ROLLBACK; XCO — находится в состоянии XA CANDIDATE OVER; XO — находится в состоянии XA OVER.

Посмотреть количество подключений пользователя к определённому бэкенду

select conn_num from backends where backend_ndx=<index> and user='<name>')

Например:

select conn_num from backends where backend_ndx=2 and user='root');

Установить уменьшение количества свободных подключений

set reduce_conns (true|false)

Например:

set reduce_conns true;

Уменьшить количество свободных подключений.

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

set maintain (true|false)

Например:

set maintain true;

Ускорить закрытие клиентских соединений с Cetus, обычно используется вместе с LVS.

Проверить, установлено ли ускорение закрытия всех клиентских подключений

show maintain status

Проверить, установлено ли ускорение закрытия всех клиентских подключений. Запрос:

user='root'; select * from app_user_pwd [where user='<name>']

Перевод:

Пользователь = 'root'; Выберите * из app_user_pwd, где пользователь = '<имя>';

Запрос:

查询某个用户连接 proxy 的密码, 同样是非明文。

Например:

select * from app_user_pwd where user='test';

密码添加/修改

update user_pwd set password='<password>' where user='<name>'

Добавление или изменение пароля для определённого пользователя на сервере (если пользователь не существует, то добавление, если существует, то замена).

Например:

update user_pwd set password='123456' where user='test'

update app_user_pwd set password='<password>' where user='<name>'

Добавление или изменение пароля определённого пользователя для подключения к proxy (если пользователь не существует, то добавление, если существует, то замена).

Например:

update app_user_pwd set password='123456' where user='root'

密码删除

delete from user_pwd where user='<name>'

Удаление пароля определённого пользователя.

Например:

delete from user_pwd where user='root'

delete from app_user_pwd where user='<name>'

Удаление пароля определённого пользователя для подключения к proxy.

Например:

delete from app_user_pwd where user='root'

Shard 端口 IP 白名单

Просмотр Shard 端口 IP 白名单

show allow_ip

Просмотр белого списка IP-адресов модуля shard. Если список пуст или равен *, то ограничений нет.

Добавление в белый список IP-адресов Shard

add allow_ip <address>

Добавить IP-адрес в белый список адресов shard. (IP необходимо заключить в кавычки)

<address>: [[user@]IP]

Описание: Конфигурируемый IP — это конкретный IP-адрес (например, 192.0.0.1), также поддерживается диапазон IP-адресов (например, 192.0.0.*).

Пример:

add allow_ip "127.0.0.1" add allow_ip "test@127.0.0.1"

Удаление из белого списка IP-адресов Shard

delete allow_ip <address>

Удалить IP-адрес из белого списка адресов shard. (IP необходимо заключить в кавычки)

<address>: [[user@]IP]

Пример:

delete allow_ip "127.0.0.1" delete allow_ip "test@127.0.0.1"

Shard 端口 IP 黑名单

Просмотр чёрного списка IP-адресов Shard

show deny_ip

Просмотр чёрного списка IP-адресов модуля shard. Если список пуст, то ограничений нет.

Добавление IP-адреса в чёрный список Shard

add deny_ip <address>

Добавить IP-адрес в чёрный список адресов shard. (IP необходимо заключить в кавычки)

<address>: [[user@]IP]

Описание: Конфигурируемый IP — это конкретный IP-адрес (например, 192.0.0.1), также поддерживается диапазон IP-адресов (например, 192.0.0.*).

Пример:

add deny_ip "127.0.0.1" add deny_ip "test@127.0.0.1"

Удаление IP-адреса из чёрного списка Shard

delete deny_ip <address>

Удалить IP-адрес из чёрного списка адресов shard. (IP необходимо заключить в кавычки)

<address>: [[user@]IP]

Пример:

delete deny_ip "127.0.0.1" delete deny_ip "test@127.0.0.1"

Примечание: белый список IP-адресов имеет более высокий приоритет, чем чёрный список.

Удаленное управление

Перезагрузка конфигурации сегментов

reload shard

Требуется «remote-conf-url = <url>» и «disable-threads = false» для запуска. Перезагрузить конфигурацию shard из удалённой конфигурации.

Сохранение последней конфигурации

save settings

Сохранить текущую последнюю конфигурацию в основной путь установки cetus (например, /home/user/cetus_install/).

Описание: Сохранённая текущая последняя конфигурация — это shard.conf, старая конфигурация всё ещё существует и переименована в shard.conf.old.

Просмотр общей информации

Просмотр статистической информации

stats get [<item>]

stats get просмотр поддерживаемых типов статистики

  • client_query количество клиентских SQL-запросов
  • proxyed_query количество SQL-запросов, отправленных на сервер
  • query_time_table гистограмма времени запроса
  • server_query_details количество SQL-запросов, полученных каждым сервером
  • query_wait_table гистограмма ожидаемого времени

stats get client_query stats get proxyed_query просмотр количества операций чтения/записи SQL

stats get server_query_details просмотр количества операций чтения/записи SQL каждого сервера

stats get query_time_table stats get query_wait_table просмотр количества SQL для каждого значения времени, например:

name value
query_time_table.1 3
query_time_table.2 5
query_time_table.5 1

Означает, что SQL с временем выполнения 1 миллисекунда имеет 3 строки, SQL с временем выполнения 2 миллисекунды имеет 5 строк, а SQL с временем выполнения 5 миллисекунд имеет 1 строку.

Описание: stats reset: сброс статистической информации.

Просмотр общего состояния

cetus

Включая версию программы, количество подключений, QPS, TPS и другую информацию.

Просмотр текущей версии cetus

select version

Опубликовать ( 0 )

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

1
https://api.gitlife.ru/oschina-mirror/mirrors-Cetus.git
git@api.gitlife.ru:oschina-mirror/mirrors-Cetus.git
oschina-mirror
mirrors-Cetus
mirrors-Cetus
master