1 TD简介
TDengine 是一款开源、云原生的时序数据库,专为物联网、工业互联网、金融、IT运维监控等场景设计并优化。它能让大量设备、数据采集器每天产生的高达 TB 甚至 PB级的数据得到高效实时的处理,对业务的运行状态进行实时的监测、预警,从大数据中挖掘出商业价值。
TDengine 完整的软件包包括服务端(taosd)、应用驱动(taosc)、用于与第三方系统对接并提供 RESTful 接口的 taosAdapter、命令行程序(CLI,taos)和一些工具软件。目前 taosdump、TDinsight 仅在 Linux 系统上安装和运行,后续将支持 Windows、macOS 等系统。TDengine 除了提供多种语言的连接器之外,还通过 taosAdapter 提供 RESTful 接口。
1.1 下载地址
https://docs.taosdata.com/get-started/package/
2 TD常用操作
2.1 Deb 安装
2.2 RPM 安装
2.3 tar.gz 安装
2.4 apt-get
2.5 Windows 安装
2.6 macOS 安装
3 TD常用操作(Linux 系统)
3.1 启动
启动服务进程:systemctl start taosd
停止服务进程:systemctl stop taosd
重启服务进程:systemctl restart taosd
查看服务状态:systemctl status taosd
3.2 创建库
CREATE DATABASE power KEEP 365 DURATION 10 BUFFER 16 WAL_LEVEL 1;
注意:创建一个名为 power 的库,这个库的数据将保留 365 天(超过 365 天将被自动删除),每 10 天一个数据文件,每个 VNode 的写入内存池的大小为 16 MB,对该数据库入会写 WAL 但不执行 FSYNC。
3.3 切换数据库
USE power;
3.4 创建超级表
CREATE STABLE meters (ts timestamp, current float, voltage int, phase float) TAGS (location binary(64), groupId int);
3.5 创建表
CREATE TABLE d1001 USING meters TAGS ("California.SanFrancisco", 2);
3.6 自动创建表
INSERT INTO d1001 USING meters TAGS ("California.SanFrancisco", 2) VALUES (NOW, 10.2, 219, 0.32);
注意:记录(NOW, 10.2, 219, 0.32)插入表 d1001。如果表 d1001 还未创建,则使用超级表 meters 做模板自动创建,同时打上标签值 “California.SanFrancisco”, 2。
4 taosAdapter
5 TD运行过程中问题
现象1: TD集群中taos占用内存过高
解决思路:
第一步:先通过【top】找到内存消耗高进程pid
第二步:通过pid 杀掉相应的kill -9 pid
第三步:执行【system start taos
】
第四步:验证taos是否正常运行
方式一:进入TD服务里边,通过运行show dnodes;
查看节点的状态
方式二:在TD节点上,执行相应的SQL:curl -u 【user】:【passwd】 -d 'describe device_log_xxxxx' http://xx.xx.xx.xx:xxx/xxx/sql/xxx
现象2: TD集群中taosadapter占用内存过高
排查思路:
通过告警提示TD的内存占用过高,然后到对应节点查看,其中taos的内存很高,于是就先杀掉taos的进程,然后重新启动TD;但是发现没过两个小时,又开始报警;对比其他节点,发现该节点的taosadapter占用内存比其他节点都高。
然后想着内存能自己回收,就没管,于是后边就出现,内存使用率从75.066%飙升到99.998%
磁盘IO出现繁忙情况
磁盘IO等待时间是279.971ms
紧接着出现tdengine-xx实例状态offline或异常
告警对象:summary=TDengineMnodeInstanceException
告警内容:TDengine Mnode tdengine-xx实例状态offline或异常
解决方法:
第一步:进入终端 ,通过show dnodes;
发现确实一个TD节点异常
第二步:通过【systemctl stop taosd
】,在每个TD节点上执行,停止TD集群
第三步:通过【systemctl start taosd
】,在每个TD节点上执行,启动TD集群
第四步:通过【top
】,查看TD所有的进程是否都启动
现象3: TD集群中一个节点的taosadapter没有启动
排查思路:
通过【top】,发现TD一个节点中的taosadapter进程没有;然后,通过【systemctl status taosadapter】,查看 taosadapter的状态是disabled。
解决方法:
第一步:通过【systemctl start taosadapter】,启动taosadapter
第二步:通过【top】进行查看,发现之前taosadapter占用CPU和内存过高的问题,都不存在。
总结:遇到taosadapter和taos占用内存过高时,需要单独停止和启用。