本章节介绍LightDB多发服务的安装部署
多发服务部署后可通过HTTP接口的形式,调用多发。多发后可通过比对服务进行比对(比对服务需要单独部署,参考: 比对服务部署)。
10.5.1. 手动部署
10.5.1.1. 下载多发应用服务包
从官网下载最新的统一sql多发应用服务包: 下载使用-LightDB中间件-多发比对-多发服务下载
多发服务的ZIP包
LightDB1.0-multiplex-Vxxxxxx-xx-xxx.zip
。解压到目标服务器的自定义目录下
10.5.1.2. 解压安装包
解压到指定路径
[lightdb@hs-10-20-30-217 multiplex_oracle]$ pwd /home/lightdb/multiplex_oracle [lightdb@hs-10-20-30-217 multiplex_oracle]$ ls LightDB1.0-multiplex-V202501-00-000.zip [lightdb@hs-10-20-30-217 multiplex_oracle]$ unzip LightDB1.0-multiplex-V202501-00-000.zip
10.5.1.3. 修改多发服务配置文件
- 修改统一SQL配置文件 LightDB1.0-multiplex-Vxxxxxx-xx-xxx/config/unisql.conf
指定统一SQL动态库路径。统一SQL动态库可以从官网下载最新的: 下载使用-LightDB中间件-统一SQL-下载(动态库)
# 解压统一SQL包,将下载的动态库放于指定的路径下,例如:/home/lightdb/multiplex_oracle/LightDB1.0-unisql-V202501-00-000/c/x86_64/lib/unisql.linux.x86_64.so [lightdb@hs-10-20-30-217 multiplex_oracle]$ unzip LightDB1.0-unisql-V202501-00-000.zip [lightdb@hs-10-20-30-217 multiplex_oracle]$ pwd /home/lightdb/multiplex_oracle [lightdb@hs-10-20-30-217 multiplex_oracle]$ ls LightDB1.0-multiplex-V202501-00-000 LightDB1.0-multiplex-V202501-00-000.zip LightDB1.0-unisql-V202501-00-000 LightDB1.0-unisql-V202501-00-000.zip # 然后修改unisql.conf指定刚刚的路径 [lightdb@hs-10-20-30-217 multiplex_oracle]$ vi LightDB1.0-multiplex-V202501-00-000/config/unisql.conf unisql.lib.full-path = /home/lightdb/multiplex_oracle/LightDB1.0-unisql-V202501-00-000/c/x86_64/lib/unisql.linux.x86_64.so
- 增加多发服务需要的数据源配置。LightDB1.0-multiplex-Vxxxxxx-xx-xxx/config/jrescloud.properties
从配置文件模版jrescloud.properties.sample拷贝一份为jrescloud.properties。
[lightdb@hs-10-20-30-217 multiplex_oracle]$ cd LightDB1.0-multiplex-V202501-00-000/config/ [lightdb@hs-10-20-30-217 config]$ ls jrescloud.properties.sample mysql2gaussdb500_oracle.json oracle2dm.json oracle2lightdb_oracle.json oracle2ocean_base_oracle.json oracle2tdsql_mysql.json unisql.conf log4j2.properties mysql2goldendb_mysql.json oracle2gaussdb_oracle.json oracle2ocean_base_mysql.json oracle2postgresql.json oracle2tdsql_pg_oracle.json [lightdb@hs-10-20-30-217 config]$ cp jrescloud.properties.sample jrescloud.properties
修改jrescloud.properties 文件:填写服务的端口,比对服务端地址,以及http请求上送sql执行前后数据变化到到比对服务的url。
# 应用程序的端口 server.port=12317 # 比对服务端地址,样例数据:http://ip:port/em multi.compareServiceUrl=http://10.20.30.217:17333/em # http请求上送sql执行前后数据变化到到比对服务的url,默认值为空,url格式为http://ip:port/em/compare/upload/change/data multi.send.change.data.http.url=http://10.20.30.217:17333/em/compare/upload/change/data # 注释 Pulsar服务端地址配置 # multi.pulsarServiceUrl=pulsar://${IP}:${PORT}
填写jrescloud.properties 文件中源库和目标库数据源连接信息。例如我想部署一个oracle为源端,gaussdb_oracle、ocean_base_oracle、dm、lightdb_oracle为目标端多发服务配置,替换如下的${IP}、${PORT}、${DBNAME}、${USER}、${PASSWORD}为实际的连接信息。
# oracle(oracle as source datasource) # mode表示兼容模式,多发模式下必须配置为MULTIPLEX # sourceDialect表示源方言,用于在统一SQL转换时,作为源方言 # targetDialect表示目标数据库方言,用于在统一SQL转换时,作为目标方言 # multiplexTargetDialects 指定多发和统一sql转换的目标库,多个目标库用英文逗号隔开。 # 源库oracle数据源url配置后需要配置multiplexTargetDialects指定多发和统一sql转换的目标库,多个目标库用英文逗号隔开。 multiplex.datasource.oracle.url=jdbc:unisql:oracle:thin:@//${IP}:${PORT}/${DBNAME}?mode=MULTIPLEX&sourceDialect=oracle&targetDialect=oracle&multiplexTargetDialects=oracle,gaussdb_oracle,ocean_base_oracle,dm,lightdb_oracle multiplex.datasource.oracle.username=${USER} multiplex.datasource.oracle.password=${PASSWORD} # lightdb_oracle multiplex.datasource.lightdb_oracle.url=jdbc:postgresql://${IP}:${PORT}/${DBNAME}?sourceDialect=oracle&targetDialect=lightdb_oracle&options=-c%20search_path=public,oracle multiplex.datasource.lightdb_oracle.username=${USER} multiplex.datasource.lightdb_oracle.password=${PASSWORD} # gaussdb_oracle(version 505) multiplex.datasource.gaussdb_oracle.url=jdbc:opengauss://${IP}:${PORT}/${DBNAME}?sourceDialect=oracle&targetDialect=gaussdb_oracle¤tSchema=public multiplex.datasource.gaussdb_oracle.username=${USER} multiplex.datasource.gaussdb_oracle.password=${PASSWORD} # ocean_base_oracle --换成OB3.0版本 multiplex.datasource.ocean_base_oracle.url=jdbc:oceanbase://${IP}:${PORT}/${DBNAME}?sourceDialect=oracle&targetDialect=ocean_base_oracle multiplex.datasource.ocean_base_oracle.username=${USER} multiplex.datasource.ocean_base_oracle.password=${PASSWORD} # dm multiplex.datasource.dm.url=jdbc:dm://${IP}:${PORT}/${DBNAME}?sourceDialect=oracle&targetDialect=dm&schema=UNISQL_AUTOTEST multiplex.datasource.dm.username=${USER} multiplex.datasource.dm.password=${PASSWORD} # 删除或注释其余数据源配置信息
警告
目前暂不支持配置多个源库的情况,部署时源端oracle和源端mysql需要分别部署。即配置了oracle为源时,又想用mysql为源,需要重新部署一套mysql为源的服务。
jrescloud.properties中除以上罗列的参数外,其余参数按照默认配置,如果没有使用到的配置中存在${xxx}变量,请删除或者注释,否则变量${xxx}解析会报错。
10.5.1.4. 启动多发服务
进入安装包目录,执行启动脚本
start.sh
启动多发服务
[lightdb@hs-10-20-30-217 multiplex_oracle]$ pwd
/home/lightdb/multiplex_oracle
[lightdb@hs-10-20-30-217 multiplex_oracle]$ ls
LightDB1.0-multiplex-V202501-00-000 LightDB1.0-multiplex-V202501-00-000.zip LightDB1.0-unisql-V202501-00-000 LightDB1.0-unisql-V202501-00-000.zip
[lightdb@hs-10-20-30-217 multiplex_oracle]$ cd LightDB1.0-multiplex-V202501-00-000/
[lightdb@hs-10-20-30-217 LightDB1.0-multiplex-V202501-00-000]$ ls
c config deploy multiplex-25.1.0.jar start.sh stop.sh VERSION
[lightdb@hs-10-20-30-217 LightDB1.0-multiplex-V202501-00-000]$ ./start.sh
日志文件在
LightDB1.0-multiplex-V202501-00-000/logs/lightdb-multiplex
下
[lightdb@hs-10-20-30-217 LightDB1.0-multiplex-V202501-00-000]$ pwd
/home/lightdb/multiplex_oracle/LightDB1.0-multiplex-V202501-00-000
[lightdb@hs-10-20-30-217 LightDB1.0-multiplex-V202501-00-000]$ ls
c config deploy logs multiplex-25.1.0.jar multiplex.pid start.sh stop.sh VERSION
[lightdb@hs-10-20-30-217 LightDB1.0-multiplex-V202501-00-000]$ cd logs/lightdb-multiplex/
[lightdb@hs-10-20-30-217 lightdb-multiplex]$ ls
lightdb-multiplex-error.log lightdb-multiplex.log lightdb-multiplex-warn.log
停止脚本
stop.sh
停止多发服务
[lightdb@hs-10-20-30-217 LightDB1.0-multiplex-V202501-00-000]$ ./stop.sh
10.5.1.5. 多发服务启动后,接口使用案例
请参考:多发比对 http接口 章节、统一SQL http接口 章节。