文档下载建议反馈入口

  • 单机升级
  • 集群升级

数据库升级

单机升级

KWDB 单机部署仅支持离线升级。

如果升级过程中出现错误,例如节点未安装 KWDB, KWDB 仍在运行中、版本有误或部署方式有误,系统将中止升级,并给与用户相应提示。

如果升级过程中因新版本导入失败导致升级失败,系统将保留数据目录、证书和配置文件,删除节点中的新版本安装文件,由用户自行决定后续手动安装新版本或旧版本。

注意

升级后无法简单降级到之前版本。如果需要降级,必须先卸载现有版本,使用原有版本安装后,并通过卸载前创建的备份将数据还原到数据库。数据库卸载步骤见卸载数据库

前提条件:

  • 待升级节点已安装 KWDB。
  • 已备份待升级节点的用户数据目录。
  • 已获取新版本的 KWDB 安装包,且新版本高于已安装版本。
  • 用户为 root 用户或者拥有 sudo 权限的普通用户。
    • root 用户和配置 sudo 免密的普通用户在执行命令时无需输入密码。
    • 未配置免密的普通用户在执行命令时需要输入密码进行提权。

    提示

    容器部署方式下,如果用户为非 root 用户,还需要通过 sudo usermod -aG docker $USER 命令将用户添加到 docker 组。

步骤:

以下步骤适用于 2.1.0 至 2.2.0 版本的单机升级:

  1. 将新版本的安装包拷贝到待升级的节点,解压安装包。

  2. 检查 KWDB 服务是否已停止,如果 KWDB 服务仍在运行中,需执行 systemctl stop kaiwudb 命令停止服务。

    systemctl status kaiwudb
    
  3. 在新版本的安装包目录执行本地升级命令。

    ./deploy.sh upgrade -l
    

    或者

    ./deploy.sh upgrade --local
    
  4. 启动 KWDB。

    systemctl start kaiwudb
    
  5. 启动成功后,检查数据库是否已正常运行。

    systemctl status kaiwudb
    

集群升级

多副本集群

KWDB 多副本集群支持以下升级方式:

  • 在线升级:通过逐一升级集群节点将 2.1.0 升级至 2.2.0 版本。在升级过程中,升级节点上的压缩与生命周期可能会执行失败,在升级完成后恢复正常。如果升级过程中出现错误,例如节点未安装 KWDB、节点状态异常或部署方式有误,系统将中止升级,并给与相应提示。
  • 导入导出升级:通过导入导出方式将 2.1.0 之前的版本升级至最新版本。具体操作,参见数据导出数据导入

提示

使用导入导出升级方式升级后,集群的高可用性可能会受到影响。

准备升级

步骤

  1. 确保客户端与多个节点通信,避免单节点升级时客户端通信中断。

  2. 查看集群状态。

    1. 检查集群节点状态。

      <kwbase_path>/kwbase node status [--host=<ip:port>] [--insecure | --certs-dir=<path>]
      
    2. 查看副本状态。

      SELECT sum((metrics->>'ranges.unavailable')::DECIMAL)::INT AS ranges_unavailable,
      sum((metrics->>'ranges.underreplicated')::DECIMAL)::INT As ranges_underreplicated
      FROM kwdb_internal.kv_store_status;
      
  3. 使用 SHOW JOBS SQL 命令检查是否存在正在执行的模式更改或批量导入操作。

  4. 使用 SELECT * from kwdb_internal.ranges SQL 命令检查集群内表的 leaseholder(租约持有者)和副本的分布是否均匀。

  5. 备份集群。如果升级失败,可以使用备份将集群还原到之前的状态。

执行升级

为集群中的每个节点,执行以下升级操作。确保每次只升级一个节点。该节点重新加入集群后,确认节点版本、状态无误后,再升级下一个节点。

前提条件

  • 待升级节点已安装 KWDB,且节点状态为存活状态(is_availableis_live均为true)。
  • 已备份待升级节点的用户数据目录。
  • 已获取新版本的 KWDB 安装包,且新版本高于已安装版本。

步骤

  1. 将新版本的安装包拷贝到待升级的节点,解压安装包。

  2. 检查 KWDB 服务是否已停止。如果 KWDB 服务仍在运行中,执行 systemctl stop kaiwudb 命令停止服务。

    systemctl status kaiwudb
    
  3. 在新版本的安装包目录执行本地升级命令。

    ./deploy.sh upgrade -l
    

    或者

    ./deploy.sh upgrade --local
    
  4. 启动 KWDB。

    systemctl start kaiwudb
    
  5. 启动成功后,检查数据库是否已正常运行。

    systemctl status kaiwudb
    

单副本集群

KWDB 单副本部署仅支持离线升级。

升级过程中,如果出现节点未安装 KWDB、KWDB 仍在运行中、版本有误或部署方式有误等错误,系统将中止升级,并给与用户相应提示。

升级过程中,如果因新版本导入失败导致升级失败,系统将保留数据目录、证书和配置文件,删除节点中的新版本安装文件,用户可以选择手动安装新版本或旧版本。

注意

升级后无法简单降级至之前版本。如果需要降级,必须先卸载当前版本,再使用原有版本安装 KWDB,然后使用卸载前创建的备份将数据还原到数据库。有关卸载集群的详细信息,参见卸载裸机部署的集群卸载容器部署的集群

前提条件

  • 待升级节点已安装 KWDB。
  • 已备份所有节点的用户数据目录。
  • 已获取新版本的 KWDB 安装包,且新版本高于已安装版本。
  • 用户为 root 用户或者拥有 sudo 权限的普通用户。
    • root 用户和配置 sudo 免密的普通用户在执行命令时无需输入密码。
    • 未配置 sudo 免密的普通用户在执行命令时,需要输入密码进行提权。
    • 容器部署方式下,如果用户为非 root 用户,需要通过 sudo usermod -aG docker $USER 命令将用户添加到 docker 组。

步骤

  1. 在集群所有节点执行停止数据库命令。

    systemctl stop kaiwudb
    
  2. 在每个节点执行以下升级操作:

    1. 将新版本安装包拷贝至待升级的节点,解压安装包。

    2. 在新版本的安装包目录执行本地升级命令。

      ./deploy.sh upgrade -l
      

      或者

      ./deploy.sh upgrade --local
      
  3. 所有节点完成升级后,在每个节点执行以下命令启动数据库。

    1. 启动数据库。

      systemctl start kaiwudb
      
    2. 启动成功后,检查数据库是否已正常运行。

      systemctl status kaiwudb