TDengine升级手册

发布时间 2023-05-22 18:16:44作者: 沾沾自喜的混子
TDengine升级手册

一、说明

1、手册说明:

1、本手册从TDengine从3.0.1.6版本升级到3.0.4.1版本
2、TDengine采用rpm和deb软件包进行部署
3、此次升级的TDengine中只有root用户,若涉及到自建其他用户建议测试后再操作(升级后版本是否需要再次新建用户)

2、TDengine说明

下载好tdengine后自动生成配置文件目录、数据库目录、日志目录;
配置文件缺省目录:/etc/taos/taos.cfg, 软链接到 /usr/local/taos/cfg/taos.cfg;
数据库缺省目录:/var/lib/taos, 软链接到 /usr/local/taos/data;
日志缺省目录:/var/log/taos, 软链接到 /usr/local/taos/log;
/usr/local/taos/bin 目录下的可执行文件,会软链接到 /usr/bin 目录下;
/usr/local/taos/driver 目录下的动态库文件,会软链接到 /usr/lib 目录下;
/usr/local/taos/include 目录下的头文件,会软链接到到 /usr/include 目录下;
升级版本需要删除/var/lib/taos、/var/log/taos、/usr/local/taos/。

3、升级方案说明

升级之前要做好备份,备份方式选择taosdunmp进行数据备份,具体使用方法可以参考官网:https://docs.taosdata.com/reference/taosdump/
确认好新TDengine版本和旧版本及对应的taosdunmp版本(按照时间),并下载好对应的软件包
下载taosdump工具taosTools:https://docs.taosdata.com/releases/tools/
下载tdengine:https://docs.taosdata.com/releases/tdengine/

二、升级

1、ubuntu和debian系统升级

找一张表确认原数据(升级后再查看数据是否相同,可跳过)

taos> show users;
taos> show databases;
taos> use test;
taos> show tables;
taos> select * from test;

下载旧版本对应的taosdump工具

~# dpkg -i taosTools-2.2.7-Linux-x64.deb

停止taosadapter接口,保证数据这段时间无更新

~# systemctl stop taosadapter.service 

备份数据到taos_sql文件夹下

~# mkdir taos_sql
~# taosdump -o taos_sql -A -B 100

停止tdengine

~# systemctl stop taosd.service 

先卸载taostools再卸载就版本tdengine

~# dpkg --purge taostools
~# dpkg --purge tdengine

将原来的重要文件夹进行备份(备份后可以进行打包)

~# mv /var/lib/taos .
~# mv /etc/taos/taos.cfg .
~# mv /var/log/taos taos_log
~# mv /usr/local/taos/ taos_user

安装新版本的tdengine(一路回车)和对应的taosTools工具

~# dpkg -i TDengine-server-3.0.4.1-Linux-x64.deb
~# dpkg -i taosTools-2.5.0-Linux-x64-comp3.deb

根据之前的配置文件修改好新的主配置文件

~# vim /etc/taos/taos.cfg
主要修改hostname和时区

启动tdengine

~# systemctl start taosd.service

导入原来的局数据

~# taosdump -i taos_sql

登录tdengine查看之前表的数据,默认用户密码(root taosdata)可以不填

~# taos
taos> show users;
taos> show databases;
taos> use test;
taos> show tables;
taos> select * from test;
taos> q

查看数据量大小(比之前小正常,灾备份过程中sql做了压缩)

~# du -sh /var/lib/taos/*
8.0K	/var/lib/taos/dnode
924K	/var/lib/taos/mnode
193M	/var/lib/taos/vnode

没有问题后启动适配器并添加到开机自启

~# systemctl start taosadapter.service && systemctl enable taosadapter.service && systemctl enable taosd.service
~# systemctl status taosadapter.service

2、centos及redhat系统升级

主要过程与ubuntu和debain一样,不再重复,只是使用的命令可能存在差异

# systemctl stop taosadapter.service
# rpm -ivh taosTools-2.2.7-Linux-x64.rpm
# yum install libatomic
# mkdir sql
# taosdump -o sql -A -B 100
# rpm -qa|grep tdengin
# rpm -qa|grep taos
# rpm -e taostools-2.2.7-3.el7.x86_64
# rpm -e tdengine-3.0.1.6-3.el7.x86_64
# mv /var/lib/taos .
# mv /etc/taos/taos.cfg .
# mv /var/log/taos taos_log
# mv /usr/local/taos/ taos_user(centos卸载后此目录会自动删除)
mv: 无法获取'/usr/local/taos/' 的文件状态(stat): No such file or directory
# rpm -ivh TDengine-server-3.0.4.1-Linux-x64.rpm
# vim taos.cfg
# vim /etc/taos/taos.cfg
# systemctl start taosd
# systemctl status taosd
# rpm -ivh taosTools-2.5.0-Linux-x64-comp3.rpm
# taosdump -i sql
# systemctl start taosadapter.service && systemctl enable taosadapter.service && systemctl enable taosd.service

三、遇到的问题及解决方案

问题1:

现象:taosTools安装后taosdump无法使用

taosdump: error while loading shared libraries: libatomic.so.1: cannot open shared object file: No

方案:下载libatomic

# yum install libatomic

问题2:

现象:taosdump无法无法备份

taosdump: symbol lookup error: taosdump: undefined symbol: inflate

方案:taosTools和TDengine的版本不适配,按照官网的历史版本重新下载

问题3:

现象:应用服务连接TDengine失败

ERROR [iot-timeseries-data] [] 1 --- [io-11103-exec-3] c.h.c.e.HcGlobalExceptionHandler         : Handler dispatch failed; nested exception is java.lang.UnsatisfiedLinkError: /usr/lib/libtaos.so: libjemalloc.so.2: cannot open shared object file: No such file or directory

方案:宿主机上找到libjemalloc.so.2文件,添加到容器对应位置(应用部署在宿主机上就直接在对应的lib目录下添加)

 volumes:
   - /usr/local/taos/driver/libtaos.so.3.0.4.1:/usr/lib/libtaos.so
   - /usr/local/lib/libjemalloc.so.2:/usr/lib/libjemalloc.so.2