TDengine 离线升级流程

注意事项:

  1. 强烈建议有升级需求的用户直接升级至各个版本分支的最新版本( https://www.taosdata.com/all-downloads );
  2. TDengine 在升级后不可以做版本回退。因此,请务必根据正文的升级流程,提前做好备份,从而避免出现不可预期的问题;
  3. 升级结束后,请第一时间验证数据库服务的完好性;
  4. 对于使用 RESTful 接口服务的用户,升级结束后,要记得用 systemctl start taosadapter 启动 taosadapter 服务,以保证 RESTful 接口可用;
  5. 以 2.0.16 为分界线,升级步骤稍有不同,请注意检查自己的数据库服务版本。(版本检查方式:在服务端的 taos shell 里执行 select server_version());

正文:

2.0-2.0.15 版本,向上升级到 2.0.16 以及之后的任意版本,操作如下(包含集群与单机):

  1. 升级前,请在服务器上准备好新版本的安装包(下载链接:https://www.taosdata.com/all-downloads);
  2. 确保当前节点处于正常工作的状态:
    1. ) show dnodes: 各 dnode status 均为 ready;
    2. ) show mnodes: 各 mnode role 均为 master 或者 slave;
    3. ) show 库名.vgroups: 各 vgroup status 均为 ready,且 role 均为 master 或者 slave;
    4. ) 数据库读写正常;
  3. 在所有节点停止数据库服务:systemctl stop taosd
  4. 备份所有节点数据文件目录下(默认为:/var/lib/taos)所有内容到其他路径或存储(vnode_bak 可清空);
  5. cd 进入各个节点数据文件目录下的 vnode 目录;
  6. ls -ltR | grep -i “wal” 检查”数据文件目录下所有 wal 文件是否为空(千万不要删除 mnode 目录下的wal);
  7. 如果为空,进入步骤 9;
  8. 如果非空,则启动该节点的数据库进程再关闭。一定要等到所有节点的该文件为空,才能进行下一步。(如果反复启停该目录仍然不能为空,请联系 TDengine 官方获得支持);
  9. 在数据库服务处于停止的状态下,在所有节点逐个执行 rmtaos(卸载方式取决于安装包类型,可参考:https://www.taosdata.com/blog/2019/08/09/566.html),然后安装新版本install.sh(或其他安装方式,参考同上);
  10. 所有节点升级完毕后,在各个节点的 Linux shell中使用 taosd –force-keep-file 命令启动服务进程;
  11. 新开一个 linux 终端,输入 taos -h xxxx -p 命令(根据实际情况填写用户密码),再次执行步骤 2 ,并对数据完整性进行检查。
  12. 确认无误后,可取消掉 taosd –force-keep-file 的进程。重新以 systemctl start taosd 方式启动 taosd 服务。
  13. 【可选】按需执行: systemctl start taosadapter;
  14. 再次执行步骤 2 ,并对数据完整性进行检查。
  15. 检查无误后,升级完毕。

2.0.16 版本及之后的版本,向上升级到任意版本,操作如下(包含集群与单机):

  1. 升级前,请在服务器上准备好新版本的安装包(下载链接:https://www.taosdata.com/all-downloads);
  2. 确保当前节点处于正常工作的状态:
    1. ) show dnodes: 各 dnode status 均为 ready;
    2. ) show mnodes: 各 mnode role 均为 master 或者 slave;
    3. ) show 库名.vgroups: 各 vgroup status 均为 ready,且 role 均为 master 或者 slave;
    4. ) 数据库读写正常;
  3. 在所有节点停止数据库服务:systemctl stop taosd
  4. 备份所有节点数据文件目录下(默认为:/var/lib/taos)所有内容到其他路径或存储(vnode_bak 可清空);
  5. cd 进入各个节点数据文件目录下的 vnode 目录;
  6. ls -ltR | grep -i “wal” 检查”数据文件目录下所有 wal 文件是否为空(千万不要删除 mnode 目录下的wal);
  7. 如果为空,进入步骤 9;
  8. 如果非空,则启动该节点的数据库进程再关闭。一定要等到所有节点的该文件为空,才能进行下一步。(如果反复启停该目录仍然不能为空,请联系 TDengine 官方获得支持);
  9. 在数据库服务处于停止的状态下,在所有节点逐个执行 rmtaos(卸载方式取决于安装包类型,可参考:https://www.taosdata.com/blog/2019/08/09/566.html),然后安装新版本 install.sh(或其他安装方式,参考同上);
  10. 在各个节点启动数据库服务:systemctl start taosd;
  11. 【可选】按需执行: systemctl start taosadapter;
  12. 再次执行步骤 2 ,并对数据完整性进行检查。
  13. 检查无误后,升级完毕。