读写分离
在已经配置好的DMDW中配置
dm_svc.conf
初始dm_svc.conf文件由DM安装时自动生成。不同的平台生成目录有所不同注意需要访问的通过服务名访问的用户对该文件需要有读权限。它必须和接口/客户端工具(tomcat|was中间件)位于同一台机器上才能生效。
1.32位的DM安装在Win32操作平台下,此文件位于%SystemRoot%\system32目录;
2.64位的DM安装在Win64操作平台下,此文件位于%SystemRoot%\system32目录;
3.32位的DM安装在Win64操作平台下,此文件位于%SystemRoot%\SysWOW64目录;
4.在Linux平台下,此文件位于/etc目录
编辑DM_svc.conf文件(注意符号都是英文的):
TIME_ZONE=(480)
LANGUAGE=(cn)
DM_RWC=(192.168.1.103:5236,192.168.1.107:5236,192.168.1.109:5236)
[DM_RWC]
LOGIN_MODE=(1)
RW_SEPARATE=(1)
RW_PERCENT=(30)
SWITCH_TIMES=(60)
SWITCH_INTERVAL=(1000)
读写分离一定要配置成:LOGIN_MODE=(1)
实时主备加强一致性一定要自动切换模式
DM_RWC=(192.168.1.103:5236,192.168.1.107:5236,192.168.1.109:5236)
中的DM_RWC是可以随便取的服务名,到时候给业务连接就可以提供这个名字,可以随便取
在主库备库中配置都可以,这个就是个客户端配置
测试
先打开SVR_LOG(记录sql的log,直接能看,redo_log二进制文件直接看不了)
在dm.ini中配置SVR_LOG=1打开,然后在数据库中SP_REFRESH_SVR_LOG_CONFIG();会从数据库中直接加载SVR_LOG的配置
然后
登陆数据库的时候要用DM_RWC来登陆实现读写分离
./disql sysdba/SYSDBA@DM_RWC
create table test1(id int primary key,name varchar(50));
insert into test1 (id,name) values (8,'aa'),(9,'ss'),(10,'dd'),(11,'ff');
以及执行select * from test1;
在主库中查看
tail -f dmsql_TMM2_20230705_231521.log
从库中查看
tail -f dmsql_TMM_20230705_231525.log
能看到主从读写分离了