本章节为使用者介绍多发比对配置相关内容。
7.1.3.1. 多发配置管理
7.1.3.1.1. unisql.conf
配置说明
参数(值) |
说明 |
示例 |
是否可运行修改 |
应用范围 |
unisql.multi.sendCompareService |
是否开启比对服务 |
unisql.multi.sendCompareService=1 |
否 |
不限制 |
unisql.run.what |
多发比对运行模式,2 表示多发,4 表示比对,6表示多发+比对 |
unisql.run.what=2 |
否 |
不限制 |
unisql.multi.pulsarServiceUrl |
多发消息中间件服务IP及端口 |
unisql.multi.pulsarServiceUrl=pulsar://127.0.0.0:6650 |
否 |
不限制 |
unisql.multi.topicName |
多发消息主题 |
unisql.multi.topicName=persistent://public/default/multiplex |
否 |
不限制 |
unisql.multi.subscriptionName |
多发消息订阅名称 |
unisql.multi.subscriptionName=multiplexSubscription |
否 |
不限制 |
7.1.3.1.2. jrescloud.properties 配置说明
多发数据源配置文件jrescloud.properties中的参数配置以key=value形式存在。 多发数据源配置以该格式为前缀:multiplex.datasource.${targetDialect}.${configProperty},其中 ${targetDialect} 表示目标方言,当前支持 lightdb_oracle、gaussdb_oracle、ocean_base_oracle、dm。${configProperty} 表示连接参数配置,当前支持 url、username、password。
参数(值) |
说明 |
示例 |
是否可运行修改 |
应用范围 |
url |
启用unisql代理的多发目标数据库连接串 |
multiplex.datasource.lightdb_oracle.url=jdbc:postgresql://10.20.30.218:5432/postgres?sourceDialect=oracle&targetDialect=lightdb_oracle&options=-c%20search_path=public |
否 |
不限制 |
username |
用于连接多发目标数据库的用户名 |
multiplex.datasource.lightdb_oracle.username=USERNAME |
否 |
不限制 |
password |
用于连接多发目标数据库的密码 |
multiplex.datasource.lightdb_oracle.password=PASSWORD |
否 |
不限制 |
7.1.3.2. 比对配置管理
7.1.3.2.1. 配置文件
比对服务配置文件
jrescloud.properties
在comparison/deploy/config
文件夹下,供比对服务初始化加载调用。比对服务过滤规则在
comparison/rule
文件夹下,供比对服务在对比某些数据时特殊处理使用。
custome_define_rules.conf
default_sqltype_rules.conf
7.1.3.2.2. jrescloud.properties 文件说明
比对服务配置文件jrescloud.properties中的参数配置以key=value形式存在
7.1.3.2.2.1. 比对服务通用配置
app通常指的是一个独立的服务实例,负责处理特定的业务需求
参数(值) |
说明 |
示例 |
是否可运行修改 |
应用范围 |
app.web.domain |
表示 Web 应用程序的域名 |
app.web.domain=ip; #ip要替换成实际部署比对服务的机器ip |
否 |
不限制 |
app.web.home |
表示应用程序的主页或根路径 |
app.web.home=http://ip:17334/em; #ip要替换成实际部署比对服务的机器ip |
否 |
不限制 |
7.1.3.2.2.2. 比对服务数据源配置
参数(值) |
说明 |
示例 |
是否可运行修改 |
应用范围 |
name |
多数据源[0]的名称 |
dyn.spring.datasources[0].name=default |
否 |
不限制 |
driverClassName |
驱动类名称 |
dyn.spring.datasources[0].driverClassName=org.postgresql.Driver |
否 |
不限制 |
url |
数据库连接地址 |
dyn.spring.datasources[0].url=jdbc:postgresql://10.20.165.223:5434/em |
否 |
不限制 |
username |
数据库用户名 |
dyn.spring.datasources[0].username=USERNAME |
否 |
不限制 |
password |
数据库密码 |
dyn.spring.datasources[0].password=PASSWORD |
否 |
不限制 |
7.1.3.2.3. rules 比对规则文件说明
7.1.3.2.3.1. custome_define_rules.conf:用户自定义规则
{"targetDialect":"oracle","ruleType":"replaceRule","ruleValue":1,"tableName":"unisql_rownum_test","ruleColumns":[{"columnName":"timestamp_with_n"}]}
#用户自定义替换规则(规则名为:replaceRule;ruleValue为替换的值):针对目标库Oracle,把其中表'unisql_rownum_test'中的列'timestamp_with_n'替换为值1
{"targetDialect":"gaussdb_oracle","ruleType":"ignoreCaseRule","ruleValue":0,"tableName":"tabs","ruleColumns":[{"columnName":"table_name"}]}
#用户自定义大小写忽略规则(规则名为:ignoreCaseRule;其中ruleValue--其中'1'都转成大写,'0'都转成小写):针对目标库gaussdb_oracle,把其中表'tabs'中的列'table_name'中的值都转为小写;
{"targetDialect":"tdsql_pg_oracle","ruleType":"precisionRule","ruleValue":6,"tableName":"tabs","ruleColumns":[{"columnName":"num_column"}]}
#用户自定义精度截取规则(规则名为:precisionRule):针对目标库tdsql_pg_oracle,把其中表'tabs'中的列'num_column'最多保留小数点后6位;
总共4种自定义规则,定义如下:
替换规则(replaceRule)
“ruleType”:”replaceRule”,”ruleValue”:1,”ruleColumns”:[{“columnName”:”timestamp_with_n”}],即用ruleValue中的值替换timestamp_with_n列的值
字符截取规则(extractRule)
“ruleType”:”extractRule”,”ruleValue”:3,”ruleColumns”:[{“columnName”:”timestamp_with_n”}],按字符从左到右顺序最大截取6个字符
忽略大小写规则(ignoreCaseRule)
“ruleType”:”ignoreCaseRule”,”ruleValue”:0,”ruleColumns”:[{“columnName”:”table_name”}],0把查询结果都转成小写,1把查询结果转换成大写
精度截取规则(precisionRule)
“ruleType”:”precisionRule”,”ruleValue”:6,”ruleColumns”:[{“columnName”:”num_column”}],截取数字最长6位精度
7.1.3.2.3.2. default_sqltype_rules.conf:系统默认规则
{"targetDialect":"oracle","ruleType":"extractRule","ruleValue":19,"sqlType":"timestamp"}
#系统默认规则:针对目标库ORACLE,把其中所有数据库类型为'timestamp',按字符串进行从左到到右截取前19位;
系统默认规则定义和 用户自定义规则
相同。