为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】DM8
【操作系统】CentOS 8
【CPU】X86
【问题描述】
实时主备集群可以配置读写分离么?
【测试步骤】
实时主备集群环境,客户端按照读写分离方式配置dm_svc.conf,并不能实现读写分离的效果,SELECT还是在主库执行。该如何实现读写分离?
$ cat /etc/dm_svc.conf
###全局配置区
TIME_ZONE(480)
LANGUAGE=(en)
DMRW=(192.168.1.176:5236,192.168.1.177:5236)
###服务配置
[DMRW]
LOGIN_MODE=(1)
RW_SEPARATE=(1)
RW_PERCENT=(30)
SWITCH_TIMES(60)
SWITCH_INTERVAL(1000)
可以的
检查下集群以下两个文件的配置:
dmarch.ini
ARCH_WAIT_APPLY=1
ARCH_TYPE = REALTIME
dmwatcher.ini
DW_MODE = AUTO
配置的没问题在dm_svc里才可以启用读写分离
当前dm_svc配置实测可以读写分离。
您可以开启DPI_TRACE查看连接细节。
如确实无法读写分离需进一步确认主备集群配置,或数据库及驱动版本,或代码实现