本章节为使用者介绍多发比对配置相关内容。

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. 配置文件

  1. 比对服务配置文件 jrescloud.propertiescomparison/deploy/config 文件夹下,供比对服务初始化加载调用。

  2. 比对服务过滤规则在 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种自定义规则,定义如下:

  1. 替换规则(replaceRule)

    • “ruleType”:”replaceRule”,”ruleValue”:1,”ruleColumns”:[{“columnName”:”timestamp_with_n”}],即用ruleValue中的值替换timestamp_with_n列的值

  2. 字符截取规则(extractRule)

    • “ruleType”:”extractRule”,”ruleValue”:3,”ruleColumns”:[{“columnName”:”timestamp_with_n”}],按字符从左到右顺序最大截取6个字符

  3. 忽略大小写规则(ignoreCaseRule)

    • “ruleType”:”ignoreCaseRule”,”ruleValue”:0,”ruleColumns”:[{“columnName”:”table_name”}],0把查询结果都转成小写,1把查询结果转换成大写

  4. 精度截取规则(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位;

系统默认规则定义和 用户自定义规则 相同。