跳到主要内容

版本升级(TGZ)

本文档主要介绍 TGZ 部署方式,更新升级 CloudCanal 版本。

前置条件

已通过 TGZ 方式部署 CloudCanal 控制台。

如还未安装, 请先按 全新安装(TGZ Linux) 文档进行安装。

步骤

获取新安装包

  1. 官网 获取新安装包下载链接。

  2. 部署机器切换到 clougence 用户。

    sudo su - clougence
  3. 将安装包下载到待更新的服务器 tar_gz 目录。

    cd tar_gz

    cat wgettgz.sh

    wgettgz.sh 脚本内容:

    #!/bin/bash
    echo "Begin to download cc.tgz"
    cd ~/tar_gz
    rm -rf ~/tar_gz/cloudcanal*
    wget "$1" -O cc.tgz
    if [ $? -eq 0 ];then
    echo "Download successful"
    tar xaf cc.tgz
    else
    echo "Download fail, please check."
    fi

    sh wgettgz.sh "{the CloudCanal download url from www.clougence.com}"

更新控制台 (Console)

  1. tar_gz 目录新建 upgrade_console.sh 脚本并编辑。

    cat upgrade_console.sh

    upgrade_console.sh 脚本内容:

    #!/bin/bash

    # check the user clougence
    if [ "$(whoami)" != "clougence" ]; then
    echo "Error: as 'clougence' user to execute this script."
    exit 1
    fi

    cd /home/clougence/tar_gz
    if [ ! -f "/home/clougence/tar_gz/cloudcanal-console.tar.gz" ];then
    echo "File not exist, extract package first."
    exit
    else
    tar xavf cloudcanal-console.tar.gz
    fi

    # stop current console
    cd /home/clougence/cloudcanal/console/bin && sh stopConsole.sh

    # backup directory check and build
    BACKUP_DIR="/home/clougence/backup"

    if [ ! -d "$BACKUP_DIR" ]; then
    mkdir -p "$BACKUP_DIR"
    echo "Directory $BACKUP_DIR is been created successfully."
    else
    echo "Directory $BACKUP_DIR is exist."
    fi

    # backup the old deployment
    TODAY=$(date +%F)
    TARGET_DIR="$BACKUP_DIR/console_$TODAY"
    SOURCE_DIR="/home/clougence/cloudcanal/console"

    if [ -d "$TARGET_DIR" ]; then
    rm -rf "$TARGET_DIR"
    echo "Same date backup is been deleted: $TARGET_DIR"
    else
    echo "$TARGET_DIR have no same date backup,continue."
    fi

    mv "$SOURCE_DIR" "$TARGET_DIR"

    # update console
    cp -r /home/clougence/tar_gz/cloudcanal/console /home/clougence/cloudcanal

    ORIGIN_CONF="$TARGET_DIR/conf/business-output.properties"
    cp "$ORIGIN_CONF" /home/clougence/cloudcanal/console/conf/

    # start console
    cd /home/clougence/cloudcanal/console/bin && sh startConsoleAndUpdDb.sh
  2. 执行脚本。

    sh upgrade_console.sh
  3. 可选)如果升级出现错误且无法提供正常服务,可进行如下 回滚 操作。

    cd /home/clougence/cloudcanal/

    mv console console_error_`date +%F`

    mv /home/clougence/backup/console_`date +%F` ./console

    cd console/bin && sh startConsole.sh

更新任务运行机器 (Sidecar)

自动升级

  1. 打通 控制台 (Console)任务运行机器 (Sidecar)SSH 访问权限。

  2. 登录控制台,点击 同步设置 > 同步机器 > 机器列表 > 更多 > 升级客户端

  3. 输入节点的 用户名密码密钥地址 即可进行升级。

  4. 可选)如果升级出现错误且无法提供正常服务,可进行 回滚 操作:点击 同步设置 > 同步机器 > 机器列表 > 更多 > 回滚客户端

手动升级

  1. tar_gz 目录新建 upgrade_sidecar.sh 脚本。

    cat upgrade_sidecar.sh 

    #!/bin/bash
    cd /home/clougence/tar_gz
    rm -rf cloudcanal cloudcanal-*
    if [ ! -f "/home/clougence/tar_gz/cloudcanal.tgz" ];then
    echo "file not exist,please check!!!!!!!"
    exit
    else
    tar xavf cloudcanal.tgz
    tar xaf cloudcanal-core.tar.gz && tar xaf cloudcanal-sidecar.tar.gz && tar xaf cloudcanal-ds.tar.gz
    fi

    source /etc/profile
    cd /home/clougence/cloudcanal

    mkdir /home/clougence/backup/cloudcanal_`date +%F`

    mv /home/clougence/cloudcanal/{cloudcanal,ds_lib,release_info,sidecar} /home/clougence/backup/cloudcanal_`date +%F`
    cp -r /home/clougence/tar_gz/cloudcanal/{cloudcanal,ds_lib,release_info,sidecar} /home/clougence/cloudcanal

    jps -l|grep -E 'task|SidecarApplication'|awk '{print $1}'|xargs kill -9

    cd /home/clougence/cloudcanal/sidecar/bin && sh startSidecar.sh
  2. 执行脚本。

    sh upgrade_sidecar.sh
  3. 可选)如果升级出现错误且无法提供正常服务,可进行如下 回滚 操作。

    mkdir /home/clougence/cloudcanal/cloudcanal_error_`date +%F`

    mv /home/clougence/cloudcanal/{cloudcanal,ds_lib,release_info,sidecar} /home/clougence/cloudcanal/cloudcanal_error_`date +%F`

    mv /home/clougence/cloudcanal/cloudcanal_`date +%F`/{cloudcanal,ds_lib,release_info,sidecar} /home/clougence/cloudcanal

    jps -l|grep -E 'task|SidecarApplication'|awk '{print $1}'|xargs kill -9

    cd /home/clougence/cloudcanal/sidecar/bin && sh startSidecar.sh