本章节介绍LightDB多发比对服务的安装。分为手动安装方式,和一键部署方式。

10.4.1. 手动部署方式

10.4.1.1. 下载比对服务(comparison)

  • 从官网下载最新的统一sql比对服务包: 下载使用-LightDB中间件-多发比对-比对服务下载

  • 比对服务的jar包(可独立启动) comparison-xx.xx.xx.jar,在比对服务包中路径为:LightDB1.0-comparison-Vxxxxxx-xx-xxx/comparison-xx.xx.xx.jar。

  • 解压到目标服务器的自定义目录下

10.4.1.2. 执行比对服务数据库初始化

  • 安装LightDB数据库(版本号需<=23.4) LightDB数据库下载

    首先获取<=LightDB 23.4 版本的安装包,解压后,参考 LightDB安装手册, 在机器上安装一个单机版实例。

    为了便于操作,安装程序会在 ~/.bashrc 中写入LightDB相关的环境变量,可以重新登录一下shell,或者执行 source ~/.bashrc 使得环境变量生效。

    我们演示环境把数据库实例安装在 /data/lightdb 目录下,您在具体操作时可以安装到其他目录下,只要lightdb用户有对应目录的权限即可。

    安装完成后,可以查看 LTHOMELTDATA 环境变量确定实际安装目录和实例目录:

    [lightdb@0b3770c2d30a ~]$ echo $LTHOME
    /data/lightdb/lightdb-x/13.8-22.4
    [lightdb@0b3770c2d30a ~]$ echo $LTDATA
    /data/lightdb/lightdb-x/13.8-22.4/data/defaultCluster/
    
  • 2.数据库初始化

    LightDB分布式功能是在 canopy 插件中实现的,在单机版环境中是没有启用``canopy``插件,需要在每台机器上手工启用一下。 首先编辑 $LTDATA/lightdb.conf 文件, 修改GUC参数 shared_preload_libraries ,在参数最开头加上 canopy

    # 原始值
    shared_preload_libraries='lt_stat_statements,lt_stat_activity,lt_prewarm,lt_cron,lt_hint_plan,lt_show_plans'
    
    # 修改后(注意要在开头加canopy,不能加在其他位置)
    shared_preload_libraries='canopy,lt_stat_statements,lt_stat_activity,lt_prewarm,lt_cron,lt_hint_plan,lt_show_plans'
    

    添加完成后,重启一下数据库让参数生效: lt_ctl restart。

    使用 ltsql 工具登录数据库,创建比对服务数据库 em 和 canopy 插件。

    [lightdb@0b3770c2d30a ~]$ ltsql
    ltsql (13.8-22.4)
    Type "help" for help.
    
    # 注: 创建em库用于测试
    lightdb@postgres=# create role em;
    CREATE ROLE
    lightdb@postgres=# create database em with owner em LIGHTDB_SYNTAX_COMPATIBLE_TYPE Oracle;
    NOTICE:  Canopy partially supports CREATE DATABASE for distributed databases
    DETAIL:  Canopy does not propagate CREATE DATABASE command to workers
    HINT:  You can manually create a database and its extensions on workers.
    CREATE DATABASE
    
    # 注: 切换到刚创建的em库中,(后续可以使用ltsql -d em直接登录到em库中)
    lightdb@postgres=# \c em
    You are now connected to database "em" as user "lightdb".
    
    # 注: 创建canopy插件
    lightdb@em=# CREATE EXTENSION canopy;
    CREATE EXTENSION
    

    在LightDB安装服务器上执行 comparison_init.sh 脚本即可完成比对服务数据库的初始化。

10.4.1.3. 修改比对服务配置文件(comparison)

  • 修改微服务配置文件 LightDB1.0-comparison-Vxxxxxx-xx-xxx/config/jrescloud.properties

app.web.domain=${IP}                   //换成应用所在机器ip
app.web.home=http://${IP}:17333/em     //换成应用所在机器ip

dyn.spring.datasources[0].url=jdbc:postgresql://${IP}:${PORT}/em     //换成实际的lightdb数据库ip、端口
dyn.spring.datasources[0].username=${USERNAME}                       //换成实际的lightdb数据库用户名
dyn.spring.datasources[0].password=${PASSWORD}                       //换成实际的lightdb数据库密码

jrescloud.properties中除以上罗列的参数外,其余参数按照默认配置

  • 修改统一sql配置文件 LightDB1.0-comparison-Vxxxxxx-xx-xxx/config/jrescloud.properties

multi.pulsarServiceUrl=pulsar://${IP}:${PORT}            //Pulsar服务端地址,样例数据:pulsar://10.20.47.203:6650
multi.topicName=persistent://public/default/${TOPIC}     //Pulsar的持久化主题,主题格式:persistent://<tenant>/<namespace>/<topic>,样例数据为:persistent://public/default/recordMonitorJingji
multi.subscriptionName=${SUBSCRIPTION}                   //在Pulsar中,订阅(Subscription)是用于消费主题消息的标识符。订阅名称是用来标识不同消费者或消费组在订阅相同主题时的唯一标识。合法字符串即可,比如jingjiTest
multi.dingding.accessToken=                              //钉钉机器人Webhook的accessToken
multi.dingding.secret=                                   //钉钉机器人消息的secret,安全设置选择加签时产生
multi.dingding.url=                                      //在消息中增加比对服务页面url方便跳转

10.4.1.4. 启动比对服务(comparison)

  • 执行启动脚本 comparison_start.sh 启动比对服务

  • 查看比对服务启动成功标志,日志文件comparison.log中包含关键字 server started

# 进入解压目录 LightDB1.0-comparison-Vxxxxxx-xx-xxx
[lightdb@hs-10-20-30-217 comparison]$ pwd
/home/lightdb/LightDB1.0-comparison-Vxxxxxx-xx-xxx
[lightdb@hs-10-20-30-217 comparison]$ sh comparison_start.sh  --help
修改多发配置文件jrescloud.properties中Pulsar消费者配置multi.pulsarServiceUrl(Pulsar服务端地址), multi.topicName(Pulsar的持久化主题), multi.subscriptionName(在Pulsar中客户端消费者订阅名称),multi.run.what(是否执行多发的总开关)
使用: sh comparison_start.sh 启动比对服务
[lightdb@hs-10-20-30-217 comparison]$ sh comparison_start.sh

10.4.2. 一键部署方式

开发中,待更新…