Skip to main content

介绍

本文档主要介绍如何添加 CloudCanal 节点,达到同步任务高可用目的。

本文档前置条件为已安装一套 CloudCanal ,如未安装,请先参考 CloudCanal社区版docker版安装(Linux/MacOS) 文档进行安装。

高可用特点如下:

  • 任务容灾自动切换
  • 任务手动调度
  • 自动分配任务至低负载机器

步骤

1. 环境准备

  • 新节点上,参考 安装文档软件准备 章节准备相关软件

2. 添加机器

  • CloudCanal 控制台 > 机器管理 > 点击集群名 > 点击新增机器

    a4c405c7-ef68-4c04-88b6-e5059f853e61-image.png

    1437e7bd-613a-48b4-bacc-dc10762994d2-image.png

  • 获取机器唯一识别配置信息

    b64bccae-b56a-4a20-bab5-ce10e4bdbb86-image.png

  • 唯一识别配置信息

    60acda31-94e2-43c1-93f8-114ee6b77975-image.png

3. 安装新 sidecar 容器

  • 将 CloudCanal 安装包在待部署的机器上解压

    7z x cloudcanal.7z -o./cloudcanal_home
  • 进入解压后目录,执行以下命令添加一个新的sidecar容器

    sh install_one_node.sh

    TIPS: 一台机器上不允许启动两个sidecar容器,请在新的机器上启动sidecar容器

  • 寻找并编辑指定配置文件

     ## 查看容器id
    docker ps | grep cloudcanal-sidecar

    ## 进入容器
    docker exec -it ${CONTAINER_ID} /bin/bash

    ## 修改配置文件
    vi /home/clougence/cloudcanal/global_conf/conf.properties
  • 将控制台 机器唯一识别配置信息 复制到配置文件(conf.properties),替换已存在内容

  • 将 cloudcanal.console.domain 的值为 cloudcanal-console 容器所在宿主机 ip

    3b3f4e08-ed8f-4754-8137-d7264ffe9065-image.png

  • 从 sidecar 容器检查 console 容器所在宿主机 7007 端口连通性

    docker exec -it ${CONTAINER_ID} /bin/bash

    ## 安装 telnet
    yum install -y telnet

    telnet ${console容器所在宿主机ip} 7007

4. 启动 sidecar 进程

  • 进入新添加 sidecar 容器,执行如下命令

    chown -R clougence.clougence cloudcanal

    ## 切换为clougence用户
    su - clougence

    ## 启动sidecar
    sh /home/clougence/cloudcanal/sidecar/bin/startSidecar.sh

    ## 查看日志,确认是否有异常。如果都为INFO或者WARN日志就是正常的
    tail -f /home/clougence/logs/cloudcanal/sidecar/sidecar.log

5.页面确认

  • 新加机器正常上线

    22b9e92c-e864-40ee-afc4-c70c711bad83-image.png

FAQ

使用 clougence 用户执行 sidecar.sh 脚本报错 Permission denied 怎么办?

  • 确认下 /home/clougence/cloudcanal 目录权限是否为 clougence:clougence,如果不是,执行以下操作

    chown -R  clougence:clougence /home/clougence/cloudcanal

properties in global config /home/clougence/cloudcanal/global_conf/conf.properties are empty

  • 请仔细检查 /home/clougence/cloudcanal/global_conf/conf.properties 文件的内容,是不是没复制粘贴完整