Использование руководства Cetus sharding
Cetus sharding поддерживает разделение базы данных для серверной части и может распределённо развёртывать большие таблицы по hash/range, что повышает общую производительность и ёмкость системы.
Подготовка
Установка Cetus поддерживает только Linux и подробно описан в руководстве по установке.
Развёртывание Во время развёртывания Cetus архитектура выглядит следующим образом: Cetus находится между приложением и базой данных MySQL, выступая в качестве интерфейса связи между ними. Приложение подключается к узлу LVS, который перенаправляет запросы на несколько сервисов Cetus, которые, в свою очередь, подключаются к серверной базе данных через пул соединений. MySQL и Cetus могут быть установлены на одном сервере или на разных серверах, но обычно LVS и keepalived размещаются на отдельном сервере от MySQL и Cetus.
Запуск Для запуска Cetus можно использовать bin/cetus:
bin/cetus --defaults-file=conf/shard.conf [--conf-dir=/home/user/cetus_install/conf/]
При запуске Cetus можно добавить параметры командной строки, --defaults-file используется для загрузки файла конфигурации запуска, а перед запуском необходимо убедиться, что права доступа к файлу конфигурации равны 660. --conf-dir является необязательным параметром для загрузки других файлов конфигурации (.json), и по умолчанию используется каталог conf текущего каталога. Cetus может запускать фоновые процессы и автоматически перезапускать их при неожиданном завершении. Эти настройки можно выполнить с помощью параметров запуска.
Термины
Принципы проектирования Данные группируются в соответствии с внутренними связями (например, поддержка одного и того же бизнес-модуля или необходимость совместного доступа или изменения), чтобы обеспечить высокую степень внутренней связности данных в каждой группе и низкую степень независимости между группами. В каждой группе выбирается общий атрибут в качестве ключа разделения, и данные разделяются на основе этого атрибута для формирования таблиц разделения. VDB должен быть определён на ранней стадии бизнес-проектирования, и последующие операции с данными нижнего уровня и верхнего уровня будут тесно связаны с этим, поэтому разработка и администраторы баз данных должны работать вместе над проектированием. Вот конкретный пример:
1. Функция пула соединений В Cetus пул соединений автоматически создаётся при запуске с использованием учётных данных по умолчанию для подключения к серверной части. Параметры базы данных настраиваются администратором базы данных в соответствии с реальной ситуацией. Это гарантирует, что основные бизнес-запросы не требуют временного создания соединения и переключения баз данных. 2. Функция разделения данных Cetus позволяет разделять данные серверной базы данных и распределять их по разным базам данных на основе hash/range. Разделение данных улучшает общую производительность системы и её пропускную способность. Из-за разделения данных целостность данных нарушается, поэтому для обеспечения согласованности результатов запросов необходимо анализировать и переписывать SQL-запросы перед отправкой их в разные серверные базы данных. 3. Обработка распределённых транзакций Если SQL выполняется во время транзакции (start transaction), то по умолчанию будет использоваться распределённая обработка транзакций (если не включена аннотация для запуска одноточечных транзакций). Если транзакция не запущена, SQL отправляется напрямую, и Cetus определяет, следует ли запускать распределённую обработку транзакций во время обработки. 4. Сжатие результатов запроса Сжатие результатов полезно при больших задержках в сети, поскольку оно может значительно сократить время передачи данных и повысить производительность. Чем больше задержка в сети, тем больше преимуществ даёт сжатие результатов. Когда задержка в сети невелика, использование сжатия результатов может привести к снижению производительности из-за дополнительных шагов сжатия и распаковки, поэтому его не рекомендуется использовать в таких случаях. 5. Управление безопасностью Функции управления безопасностью включают управление серверной частью, базовую настройку, просмотр информации о соединении, управление паролями пользователей, управление IP-разрешениями, управление удалённой конфигурацией и общий запрос информации. Пользователи могут войти в систему управления через порт управления и выполнять такие действия, как просмотр состояния серверной части, добавление, удаление и изменение определённых серверных частей, просмотр и изменение базовой конфигурации (включая конфигурацию пула соединений и обнаружение задержки ведомого устройства), просмотр текущей информации о соединениях, запрос и изменение паролей пользователей, подключённых к Cetus, просмотр и добавление/удаление разрешений IP (можно указать разрешённые исходные IP-адреса для каждого пользователя или администратора, но невозможно предоставить разные разрешения для одного и того же пользователя из разных исходных IP-адресов), перезагрузка удалённой конфигурации и запрос общей информации о состоянии Cetus и т. д. Подробные инструкции по управлению см. в «Руководстве по администрированию Cetus Sharding». 6. Мониторинг состояния Cetus имеет встроенную функцию мониторинга, которую можно включить или отключить с помощью конфигурации. После включения Cetus периодически связывается с серверной частью для проверки состояния серверной части и основной/ведомой задержки. Состояние серверной части можно просмотреть, выполнив SELECT * FROM backends через порт управления. Состояние серверной части включает unknown (начальное состояние серверной части до установления соединения), up (нормальное соединение с серверной частью и предоставление услуг), down (невозможно установить соединение с серверной частью), maintaining (серверная часть находится в обслуживании и соединение не может быть установлено) и delete (серверная часть была удалена). Основная/ведомая задержка обнаружения проверяет значения порогов slave-delay-down и slave-delay-recover. Если основная/ведомая задержка превышает slave-delay-down, состояние серверной части устанавливается в DOWN. Если основная/ведомая задержка меньше slave-delay-recover, состояние серверной части восстанавливается до UP. 7. TCP потоковая передача Потоковая передача TCP полезна при обработке больших объёмов данных, поскольку она может уменьшить нагрузку на память и улучшить производительность. Ограничения DML-операторов:
Типы ключей фрагментации
Столбцы, используемые для фрагментации, могут быть типа int или char. Тип int соответствует различным типам целых чисел в MySQL, а тип char — различным типам строк фиксированной и переменной длины. Если в SQL обрабатывать даты как строки, то они также будут поддерживаться. В будущем будет поддерживаться определённый формат представления времени в виде символьных типов, таких как YYYY-MM-DD и YYYY-MM-DD HH24:MI:SS. Формат времени не поддерживает преобразование часовых поясов и использует местное время.
Комментарии о фрагментации Cetus предоставляет функцию комментариев для решения повседневных задач обслуживания (часто используемых администраторами баз данных) и некоторых специфических требований переднего плана (например, принудительное выполнение данного SQL только через основную или подчинённую базу данных).
Формат комментария: /*# key=value */.
Он начинается с символов /*#, где символы # и * не должны разделяться пробелами, и заканчивается символами */. Значения записываются в формате ключ-значение. Если значение содержит какие-либо специальные символы, кроме [a-zA-Z0-9_-.], то оно должно быть заключено в двойные кавычки. Значения ключа и значения могут быть записаны в любом регистре, но рекомендуется использовать нижний регистр.
Поддерживаемые ключи для версии с фрагментацией: table|group|mode|transaction. Поддерживаемые значения включают all/readwrite/readonly/single_node.
Примечание: если вы используете комментарии, добавьте параметр -c при подключении к Cetus, например, mysql --prompt="proxy> " --comments -hxxx.xxx.xxx.xxx -Pxxxx -uxxxx -pxxx -c.
Примеры использования функции комментариев:
Использование ключа table: /*#table=employee*/ SQL: select /*# table=employee key=123*/emp_no, emp_name from employee; Объяснение: SQL будет направлен на фрагмент, где находится ключ 123, для выполнения.
Использование ключа group: /*# group=dataA*/ SQL: select /*# group=dataA */ count(*) from employee; Объяснение: подсчитывает количество записей в таблице employee на узле dataA.
Использование ключа mode: /*# mode=readwrite */ SQL: select /*# mode=readwrite */ count(*) fromemployee; Объяснение: этот запрос будет выполнен на основном сервере вместо подчинённого сервера по умолчанию.
Использование ключа transaction: /*# transaction=single_node */ SQL: update /*# transaction=single_node */ departmentsset dept_name='ecbj' where dept_no='d010'; Объяснение: эта команда DML будет выполняться как нераспределённая транзакция. Если Cetus определит, что должна использоваться распределённая транзакция, он вернёт ошибку.
Комбинированное использование: /*# table=employee key=123*/ /*#mode=readwrite*/ SQL: select /*# table=employee key=123*/ /*#mode=readwrite*/ emp_no,emp_name from employee; Объяснение: направляет SQL на фрагмент с ключом 123 для выполнения и принудительно выполняет чтение с основного сервера этого фрагмента.
Обратите внимание, что ключи table и group являются взаимоисключающими, то есть можно использовать либо table, либо group, но не оба одновременно, иначе будет возвращена ошибка. Кроме того, комментарий должен быть помещён после первого ключевого слова. Как только используется комментарий, его приоритет выше, чем у последующих условий where (если таковые имеются) в информации о маршрутизации разделов.
Пример применения Cetus:
Подключение к Cetus: $ mysql --prompt="proxy> " --comments -h**...** -P**** -u**** -p*** proxy>
При подключении к Cetus используйте имя пользователя и пароль, подтверждённые в файле конфигурации, чтобы войти в систему. IP-адрес и порт подключения должны соответствовать IP-адресу и порту, на которых Cetus ожидает подключения. Можно одновременно запускать Cetus на одном и том же IP-адресе, но на разных портах.
Управление Cetus: $ mysql --prompt="admin> " --comments -h**...** -P**** -u**** -p*** admin> show connectionist;
Используйте имя пользователя и пароль admin, указанные в файле конфигурации, для входа в MySQL для управления Cetus. Адрес администратора — это адрес MySQL, указанный в admin-address. Например, чтобы просмотреть подробную информацию о соединениях Cetus, можно выполнить команду show connectionlist, которая покажет сопоставление портов между передним и задним концами, а также связанную информацию xa.
Для получения более подробной информации см. руководство по управлению версией Cetus для сегментирования (sharding).
Просмотр параметров Cetus: $ cd /home/user/cetus_install/ bin/cetus --help | -h
Можно просмотреть справку и получить параметры запуска и их значения для Cetus.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )