3.5.1 Настройка
Для включения разделения чтений и записей необходимо включить следующие параметры:
-
access_mode: должно быть установлено в значениеauto.ПримечаниеМожно определить значения
read_writeиread_onlyaccess_modeтолько на уровне сессии. См. Настройка на уровне сессии. connection_sharing: должно быть установлено в значение1.protocol: должно быть установлено в значениеclassic.destinations: должно быть установлено в значениеmetadata-cacheURL с ролью, установленной в значениеPRIMARY_AND_SECONDARY.
Настройка на уровне сессии
Настройка разделения чтений и записей может быть определена на уровне сессии, используя следующие параметры:
ROUTER SEToptionName='value'query_attributes router.optionNamevalue
Возможные значения и их описания:
-
access_modeможет быть установлено в одно из следующих значений:read_write: весь трафик сессии отправляется на сервер read_write.read_only: весь трафик сессии отправляется на сервер read_only.auto: сервер выбирается на основе типа транзакции, чтения направляются на серверы read_only, записи — на серверы read_write.
wait_for_my_writes [ 0 | 1 ]: Если включено,1запросы read-only ожидают завершения последней записи в сессии.wait_for_my_writes_timeout [ 0 | 4294967295 ]: Максимальное время ожидания в секундах для read_only целевого назначения для применения записанной транзакции перед переключением на read_write. По умолчанию 1.
Переменные сессии сбрасываются до начальных значений, если клиент отправляет change_user или reset_connection.
Например:
SQL> ROUTER SET access_mode='read_write'
SQL> query_attribute router.access_mode read_write
Инициализация
При инициализации MySQL Router создается конфигурация по умолчанию со следующими значениями:
[DEFAULT]
max_idle_server_connections=64
[router:read_write_split]
bind_port=6450
destinations=metadata-cache://mycluster/?role=PRIMARY_AND_SECONDARY
routing_strategy=round-robin
access_mode=auto
protocol=classic
connection_sharing=1
Чтобы отключить эту конфигурацию, необходимо произвести инициализацию с --disable-rw-split.
© 2025 Oracle
Licensed under the GPLv2 License.