要启用读写分离,以下 router
选项必须启用
-
access_mode
: 必须设置为auto
。注意可以为每个会话定义
read_write
和read_only
access_mode
值,仅此而已。请参见 按会话配置。 connection_sharing
: 必须设置为1
。protocol
: 必须设置为classic
。destinations
: 必须设置为metadata-cache
URL,角色设置为PRIMARY_AND_SECONDARY
。
读写分离配置可以使用以下方法为每个会话定义
ROUTER SET
optionName
='value
'query_attributes router.
optionName
value
以下是可能的
和值optionNames
-
access_mode
设置为以下值之一read_write
: 所有会话流量都发送到 read_write 服务器。read_only
: 所有会话流量都发送到 read_only 服务器。auto
: 服务器的选择基于事务类型,读取针对 read_only 服务器,写入针对 read_write 服务器。
wait_for_my_writes [ 0 | 1 ]
: 如果启用,1
,只读查询将等待会话的最后写入事务。wait_for_my_writes_timeout [ 0 | 4294967295 ]
: 在回退到 read_write 目标之前,等待 read_only 目标应用写入事务的最大时间(以秒为单位)。默认值为 1。
如果客户端发送 change_user
或 reset_connection
,会话变量将重置为其初始值。
例如
SQL> ROUTER SET access_mode='read_write'
SQL> query_attribute router.access_mode read_write