本章节介绍LightDB多发服务的安装部署

多发服务部署后可通过HTTP接口的形式,调用多发。多发后可通过比对服务进行比对(比对服务需要单独部署,参考: 比对服务部署)。

10.5.1. 手动部署

10.5.1.1. 下载多发应用服务包

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. 修改多发服务配置文件

  1. 修改统一SQL配置文件 LightDB1.0-multiplex-Vxxxxxx-xx-xxx/config/unisql.conf
    # 解压统一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
    
  2. 增加多发服务需要的数据源配置。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&currentSchema=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接口 章节。