tdengine TDengine 是一款开源、云原生的时序数据库,专为物联网、工业互联网、金融、IT 运维监控等场景设计并优化。它能让大量设备、数据采集器每天产生的高达 TB 甚至 PB 级的数据得到高效实时的处理,对业务的运行状态进行实时的监测、预警,从大数据中挖掘出商业价值。
官网:https://www.taosdata.com/
github: https://github.com/taosdata/TDengine
tdengine组成 tdengine服务器端有三个核心组件,分别为:taosd、taosadapter、taoskeeper
taosd:
1 2 3 taosd是TDengine数据库的核心服务组件,也称为TDengine服务器。 taosd负责处理客户端的连接请求,接收和处理SQL查询、数据写入等操作。 它管理数据的存储、索引和查询执行,确保高性能和高可用性。
taosAdapter:
1 2 3 4 5 taosAdapter 是一个 TDengine 的配套工具,是 TDengine 集群和应用程序之间的桥梁和适配器。它提供了一种易于使用和高效的方式来直接从数据收集代理软件(如 Telegraf、StatsD、collectd 等)摄取数据。它还提供了 InfluxDB/OpenTSDB 兼容的数据摄取接口,允许 InfluxDB/OpenTSDB 应用程序无缝移植到 TDengine。 taosadapter是一个用于连接和集成TDengine数据库的软件组件。 taosadapter提供了与TDengine的交互接口,允许应用程序通过标准的数据库连接方式与TDengine进行通信。 它封装了与TDengine的通信细节,简化了应用程序与数据库之间的集成过程。 taosadapter充当应用程序和TDengine之间的中间层,提供了连接管理、数据传输和查询执行等功能。
taoskeeper:
1 2 taosKeeper 是 TDengine 3.0 版本监控指标的导出工具,通过简单的几项配置即可获取 TDengine 的运行状态。 taosKeeper 使用 TDengine RESTful 接口,所以不需要安装 TDengine 客户端即可使用,需要通过taosadapter来连接taosd。
这里需要注意的是默认情况下部署tdengine都会部署上述三个组件,其监听端口分别为:6030(taosd)、6041(taosAdapter)、6043(taoskeeper)。其中在生产使用中taosd和taosAdapter是必要启动项,taosd做为服务器端程序必须启动,而taosAdapter做为大部分程序服务连接taosd的接口程序也必须启动。taoskeeper作为监控服务为可选启动项。
部署 二进制部署 环境要求:
1 2 3 4 5 6 linux 内核版本 - 3.10.0-1160.83.1.el7.x86_64; glibc 版本 - 2.17; 如果通过clone源码进行编译安装,还需要满足: cmake版本 - 3.26.4或以上; gcc 版本 - 9.3.1或以上;
部署包下载可以在 官网-》文档-》发布历史 中找到,选择对应的版本号以及适合服务器的包,一般linux(centos)可以下载rpm包或者tar.gz压缩包
点击对应包会出现弹框,输入电子邮箱后点击下载官方会将安装包发送至邮箱,需要手动登录邮箱下载并上传至服务器。
1 2 3 4 5 6 但上面的方式太麻烦了,每次下载包都需要发邮件,由于这里官方的下载链接是固定的,所以可以直接拼接下载url链接下载。 例如我这里下载3.0.7.1的包下载地址为: https://www.taosdata.com/assets-download/3.0/TDengine-server-3.0.7.1-Linux-x64.rpm https://www.taosdata.com/assets-download/3.0/TDengine-server-3.0.7.1-Linux-x64.tar.gz 则这里可以得出3.x的tdengine下载地址为:https://www.taosdata.com/assets-download/3.0/包名 这样就无需每次都通过发送到邮箱这种麻烦的方式来部署。
下面是部署流程:
1 2 3 4 5 6 7 8 9 10 rpm部署: wget https://www.taosdata.com/assets-download/3.0/TDengine-server-3.0.7.1-Linux-x64.rpm rpm -ivh TDengine-server-3.0.7.1-Linux-x64.rpm 压缩包部署: wget https://www.taosdata.com/assets-download/3.0/TDengine-server-3.0.7.1-Linux-x64.tar.gz tar -xvf TDengine-server-3.0.7.1-Linux-x64.tar.gz cd TDengine-server-3.0.7.1 && bash install.sh #执行部署脚本会提示加入集群节点以及邮箱,如果是单节点直接跳过就行。(也可以部署了以后再加入集群) 启动: systemctl start taosd #tdengine服务器端 systemctl start taosadapter #tdengine的API接口服务
docker部署 1 2 3 4 5 镜像这里直接使用官方镜像部署: tdengine/tdengine:version 挂载端口至少需要挂载两个端口: 6030(taosd端口)和6041(taosadapter端口) ,taosd和taosadapter端口这两个服务是tdengine官方镜像默认启动的服务,所以启动这里除了监听端口无需其他操作。(taoskeeper官方镜像默认不启动) 挂载目录需要挂载tdengine日志目录/var/log/taos(非必须)和tdengine数据目录/var/lib/taos(必须)。 部署启动命令:docker run -d --name tdengine -p 6041:6041 -p 6030:6030 -v $PWD/log:/var/log/taos -v $PWD/lib:/var/lib/taos tdengine/tdengine:3.0.7.1
k8s部署 yaml部署 通过yaml文件部署,这里storageClassName需要修改为自己集群对应的storageclass,镜像版本这里部署为3.0.7.1,如有不同需要手动修改。
tdengine.yaml:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 --- apiVersion: v1 kind: Service metadata: name: "taosd" labels: app: "tdengine" spec: ports: - name: tcp6030 protocol: "TCP" port: 6030 - name: tcp6041 protocol: "TCP" port: 6041 selector: app: "tdengine" --- apiVersion: apps/v1 kind: StatefulSet metadata: name: "tdengine" labels: app: "tdengine" spec: serviceName: "taosd" replicas: 1 updateStrategy: type: RollingUpdate selector: matchLabels: app: "tdengine" template: metadata: name: "tdengine" labels: app: "tdengine" spec: containers: - name: "tdengine" image: tdengine/tdengine:3.0.7.1 imagePullPolicy: "IfNotPresent" ports: - name: tcp6030 protocol: "TCP" containerPort: 6030 - name: tcp6041 protocol: "TCP" containerPort: 6041 - name: tcp6043 protocol: "TCP" containerPort: 6043 env: # POD_NAME for FQDN config - name: POD_NAME valueFrom: fieldRef: fieldPath: metadata.name # SERVICE_NAME and NAMESPACE for fqdn resolve - name: SERVICE_NAME value: "taosd" - name: STS_NAME value: "tdengine" - name: STS_NAMESPACE valueFrom: fieldRef: fieldPath: metadata.namespace # TZ for timezone settings, we recommend to always set it. - name: TZ value: "Asia/Shanghai" # TAOS_ prefix will configured in taos.cfg, strip prefix and camelCase. - name: TAOS_SERVER_PORT value: "6030" # Must set if you want a cluster. - name: TAOS_FIRST_EP value: "$(STS_NAME)-0.$(SERVICE_NAME).$(STS_NAMESPACE).svc.cluster.local:$(TAOS_SERVER_PORT)" # TAOS_FQND should always be set in k8s env. - name: TAOS_FQDN value: "$(POD_NAME).$(SERVICE_NAME).$(STS_NAMESPACE).svc.cluster.local" volumeMounts: - name: taosdata mountPath: /var/lib/taos - name: taoslog mountPath: /var/log/taos volumeClaimTemplates: - metadata: name: taosdata spec: storageClassName: "nfs-storage" accessModes: - "ReadWriteOnce" resources: requests: storage: "100Gi" - metadata: name: taoslog spec: storageClassName: "nfs-storage" accessModes: - "ReadWriteOnce" resources: requests: storage: "100Gi"
helm方式部署 1 2 3 4 5 6 7 8 9 10 11 12 13 14 wget https://github.com/taosdata/TDengine-Operator/raw/3.0/helm/tdengine-3.0.2.tgz tar -xvf https://github.com/taosdata/TDengine-Operator/raw/3.0/helm/tdengine-3.0.2.tgz cd tdengine vi values.yaml ###下面是values.yaml中需要配置的配置项 replicaCount: 1 #tdengine pod的副本个数 image: tag: "3.0.7.1" #版本号 storage: className: "nfs-storage" #storageclass指定 dataSize: "100Gi" #数据目录大小 logSize: "10Gi" #日志目录大小 ### helm install tdengine . -n dev #-n后面指定名称空间
客户端 部署 1 2 3 4 5 6 7 8 9 10 客户端部署方式: 1.部署服务器端:当部署了服务器端以后服务器端是自带client端的 2.单独部署客户端: 和上面部署服务器端一样,在官网发布历史中除了服务器端的包以外,还可以看到客户端的部署安装包。这里也可以通过以下命令部署 wget https://www.taosdata.com/assets-download/3.0/TDengine-client-3.0.7.1-Linux-x64.tar.gz #这里是linux 3.0.7.1如果版本主机系统不同,可以在官网找到自己对应的包,然后将包名复制到官方下载的url后面如:https://www.taosdata.com/assets-download/3.0/包名 tar -xvf TDengine-client-3.0.7.1-Linux-x64.tar.gz && cd TDengine-client-3.0.7.1/ && bash install_client.sh 部署成功以后屏幕会打印如下信息: Start to install TDengine client... TDengine client is installed successfully!
客户端使用 登录 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 tdengine的客户端命令为taos,使用上与mysql类似。taos的参数如下: -h HOST: 要连接的 TDengine 服务端所在服务器的 FQDN, 默认为连接本地服务 -P PORT: 指定服务端所用端口号 -u USER: 连接时使用的用户名 -p PASSWORD: 连接服务端时使用的密码 -?, --help: 打印出所有命令行参数 还有更多其他参数: -a AUTHSTR: 连接服务端的授权信息 -A: 通过用户名和密码计算授权信息 -c CONFIGDIR: 指定配置文件目录,Linux 环境下默认为 /etc/taos,该目录下的配置文件默认名称为 taos.cfg -C: 打印 -c 指定的目录中 taos.cfg 的配置参数 -d DATABASE: 指定连接到服务端时使用的数据库 -E dsn: 使用 WebSocket DSN 连接云服务或者提供 WebSocket 连接的服务端 -f FILE: 以非交互模式执行 SQL 脚本文件。文件中一个 SQL 语句只能占一行 -k: 测试服务端运行状态,0: unavailable,1: network ok,2: service ok,3: service degraded,4: exiting -l PKTLEN: 网络测试时使用的测试包大小 -n NETROLE: 网络连接测试时的测试范围,默认为 client, 可选值为 client、server -N PKTNUM: 网络测试时使用的测试包数量 -r: 将时间输出出无符号 64 位整数类型(即 C 语音中 uint64_t) -R: 使用 RESTful 模式连接服务端 -s COMMAND: 以非交互模式执行的 SQL 命令 -t: 测试服务端启动状态,状态同-k -w DISPLAYWIDTH: 客户端列显示宽度 -z TIMEZONE: 指定时区,默认为本地时区 -V: 打印出当前版本号 上面是所有参数,常用的有: -u -p -P -h 例如连接tdengine服务器为192.168.110.1的6030端口,则: taos -h 192.168.110.1 -P 6030 -u root -p 这里需要注意的是taos命令的参数有缺省值,例如服务器端口-P默认为6030,服务器地址-h默认为127.0.0.1,用户名-u默认为root,密码-p默认为taosdata。 所以在登陆本地服务器的情况下,默认使用taos不用跟任何参数就可以登陆(由于传入默认缺省值的原因),如何要登陆其他服务器,只需要跟上-h即可,除非端口或者账号密码有改过。 还有个需要注意的点是如果需要手动指定-p参数输入密码,是不能直接在后面跟上密码登录的,taos像mysql一样指定了-p参数后会弹出输入密码的交互命令行,输入以后认证成功才能进入taos命令行界面
taos命令行 登录后的命令界面如下,界面和操作基本类似于mysql。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 locale not configured, set to system default:en_US.UTF-8 Welcome to the TDengine Command Line Interface, Client Version:3.0.4.1 Copyright (c) 2022 by TDengine, all rights reserved. ****************************** Tab Completion ********************************** * The TDengine CLI supports tab completion for a variety of items, * * including database names, table names, function names and keywords. * * The full list of shortcut keys is as follows: * * [ TAB ] ...... complete the current word * * ...... if used on a blank line, display all supported commands * * [ Ctrl + A ] ...... move cursor to the st[A]rt of the line * * [ Ctrl + E ] ...... move cursor to the [E]nd of the line * * [ Ctrl + W ] ...... move cursor to the middle of the line * * [ Ctrl + L ] ...... clear the entire screen * * [ Ctrl + K ] ...... clear the screen after the cursor * * [ Ctrl + U ] ...... clear the screen before the cursor * ************************************************************************************** Server is Community Edition. taos>
节点管理 查看数据节点: show dnodes;. 查看管理节点: show mondes; 添加数据节点: create dnode “ms05.dyq.com:6030” ; 删除数据节点: drop dnode “ms05.dyq.com:6030”;
用户管理 添加用户: create user test1 pass ‘test1’; 删除用户: drop user test1; 查看用户: show users; 修改用户密码: alter user test1 pass ‘test2’; 修改用户权限: alter user test1 privilege read;
数据库管理 查看数据库: show database; 或者 show databases\G; 删除数据库: drop database test; 修改数据库参数: alter database testdb database_options; 修改testdb数据库的参数,database_options为参数以及参数值。常用option:quorum、replica 、keep 、quorum 、blocks 。
修改数据库文件压缩标志位: alter database 库名 comp 位数;
修改数据库副本数: alter database 库名 replica 数量;
修改数据文件保存的天数: alter database 库名 keep 天数;
修改数据写入成功所需要的确认数: alter database 库名 quorum 数目;
修改每个VNODE (TSDB) 中有多少cache大小的内存块: alter database 库名 blocks 大小;
表操作 超级表 创建超级表: creates stable if not exists st(time timestamp, column_name int) tags (t1 nchar(50), t2 nchar(100));
1 2 3 4 5 创建STable, 与创建表的SQL语法相似,但需指定TAGS字段的名称和类型。说明: 1) TAGS 列的数据类型不能是timestamp类型; 2) TAGS 列名不能与其他列名相同; 3) TAGS 列名不能为预留关键字; 4) TAGS 最多允许128个,可以0个,总长度不超过16k个字符
查看超级表: show stables
查询包含某字符串的超级表: show stables like ‘%event%’;
显示超级表的创建语句: SHOW CREATE STABLE stb_name;
获取超级表的结构信息: DESCRIBE [db_name.]stb_name;
获取超级表中所有子表的标签信息: SHOW TABLE TAGS FROM stbname;
删除超级表: DROP STABLE [IF EXISTS] [db_name.]stb_name #删除 STable 会自动删除通过 STable 创建的子表以及子表中的所有数据。
修改超级表:
1 2 3 4 5 6 7 8 9 10 11 12 13 修改超级表的结构会对其下的所有子表生效。无法针对某个特定子表修改表结构。标签结构的修改需要对超级表下发,TDengine 会自动作用于此超级表的所有子表。 超级表增加列: ALTER STABLE stb_name ADD COLUMN col_name column_type; 超级表删除列: ALTER STABLE stb_name DROP COLUMN col_name; 添加标签: ALTER STABLE stb_name ADD TAG tag_name tag_type; 删除标签: ALTER STABLE stb_name DROP TAG tag_name; 修改标签名: ALTER STABLE stb_name RENAME TAG old_tag_name new_tag_name; 修改子表标签值(TAG): alter table item_table_name set tag column_key = “value”;
普通表 创建普通表: CREATE TABLE IF NOT EXISTS a(c timestamp,b int)
根据超级表创建子表: create table table_name using super_table tags (column_value,column_value……); #这样建表之后,子表会复制除去超级表里面的tags字段外的所有字段;
删除数据表: drop table if exists 表名;
显示当前数据库下的所有数据表信息: show tables; show tables like “%table_name%”;
获取表的结构信息: describe 表名;
表增加列: alter table mytable add column addfield int;
表删除列: alter table mytable drop column addfield;
grafana监控展示 taoskeeper 通过tdengine的taosKeeper 组件收集tdengine server服务的监控指标,然后将其在grafana上面展示出来。
首先这里要启动taoskeeper,在二进制部署的情况下,安装tdengine服务器端的时候会自动安装taoskeeper组件。但还需要做一些配置。
在运行 taosKeeper 之前要确保 TDengine 集群与 taosAdapter 已经在正确运行(因其taoskeeper是通过taosAdapter与tdengine集群进行通信)。
首先是tdengine集群的配置,修改taosd配置文件taos.cfg,在配置文件中添加以下两行配置(添加了配置以后需要重启taosd)
1 2 monitor 1 monitorFqdn localhost # taoskeeper 服务的 FQDN,如果是本地可以用localhost,如果是远程需要指定taoskeeper的fqdn,否则无法正常监控。
配置完毕以后启动taoskeeper
1 systemctl start taoskeeper
如果是本机监控的话(taosd和taoskeeper处于同一服务器),无需修改taoskeeper配置文件的任何配置,可以直接启动,但如果是远程监控的话,还需要在配置文件中(/etc/taos/taoskeeper.toml)指定taosd(tdengine)和taosAdapter的地址以及登录验证信息。如下为默认配置:
1 2 3 4 5 6 7 [tdengine] host = "tdengine" port = 6041 username = "root" password = "taosdata" [taosAdapter] address = ["tdengine:6041"]
启动以后如果taoskeeper能正常打印以下日志说明服务与taosd连接是正常的
1 [GIN] 2023/07/19 - 06:25:27 | 200 | 2.31681246s | 10.42.3.146 | POST "/report"
如果只有启动成功而没有post /report日志信息打印说明其连接taosd服务有问题或者taosd服务monitor配置有问题。如果是taosd与taoskeeper非同一主机部署还需要注意防火墙配置。
在服务启动成功以后,taoskeeper会导出tdengine的监控数据,并将其写入到tdengine的库里面,grafana通过读取tdengine指定的库来进行查询数据并展示页面。默认的库为log库,启动成功以后可以连接tdengine服务查看到。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 taos> show databases; name | ================================= information_schema | performance_schema | log | Query OK, 6 row(s) in set (0.002686s) taos> use log; Database changed. taos> show stables; stable_name | ================================= logs | log_dir | keeper_monitor | data_dir | taosadapter_restful_http_re... | m_info | cluster_info | taosadapter_system_cpu_percent | vgroups_info | d_info | taosadapter_restful_http_re... | taosadapter_restful_http_re... | taosadapter_restful_http_re... | dnodes_info | taosadapter_system_mem_percent | log_summary | vnodes_role | temp_dir | grants_info | Query OK, 19 row(s) in set (0.003757s)
但这里需要注意的是,如果taoskeeper成功连接到了taosd服务并且写入了表结构数据,说明taosd、taosAdapter、taoskeeper都是正常的,但这个时候如果还是没有打印 POST “/report” 日志输出字样,说明taosd服务的monitor配置有问题(一般都是monitorFqdn有误)
grafana 确认一切服务正常以后,还需要在grafana中部署一个tdengine的插件
如果服务器访问外部网络正常,在 Grafana 管理界面中的 Configurations > Plugins 页面直接搜索并按照提示安装 TDengine。
或者手动下载模块安装也可以
1 2 3 4 5 6 GF_VERSION=3.3.1 # from GitHub wget https://github.com/taosdata/grafanaplugin/releases/download/v$GF_VERSION/tdengine-datasource-$GF_VERSION.zip # from Grafana wget -O tdengine-datasource-$GF_VERSION.zip https://grafana.com/api/plugins/tdengine-datasource/versions/$GF_VERSION/download sudo unzip tdengine-datasource-$GF_VERSION.zip -d /var/lib/grafana/plugins/
安装完以后在Configurations > Data sources 中点击add data source添加数据源,搜索找到tdengine数据源
填入tdengine服务器的地址以及账号密码
添加完数据源以后在Dashboards > Browse > New > import 中导入监控图形模板
输入18180点击Load
选择添加的数据源并点击Import导入
模板页面展示效果:
docker以及k8s部署的tdengine 对于docker或在k8s部署的tdengine,在默认的官方镜像中,启动的时候仅启动taosd以及taosAdapter服务,默认不启动taoskeeper服务。这里如果想启动taoskeeper只能修改官方镜像添加一个taoskeeper的启动命令,但这里不推荐修改官方镜像的做法。这里推荐的部署方法是单独再部署一个taoskeeper。
首先需要构建一个taoskeeper的镜像,进入taoskeeper的官方github:https://github.com/taosdata/taoskeeper 。
构建taoskeeper镜像 1 2 3 4 5 git clone https://github.com/taosdata/taoskeeper.git #如果服务器没有通外网的话可以通过浏览器下载源码zip到服务器 cd taoskeeper/ sed -i 's/golang:1.17.6-alpine/golang:1.18-alpine/g' Dockerfile #如果是taoskeeper3.0需要将官方dockerfile里面的基础镜像改成1.18,否则构建会报错。 docker build . -f Dockerfile -t docker-registry.finsiot.com/finsiot/taoskeeper #使用官方的dockerfile构建镜像
docker部署 1 2 docker run -d --name taoskeeper -v $PWD/config:/etc/taos/ -p 6043:6043 docker-registry.finsiot.com/finsiot/taoskeeper 需要提前修改taoskeeper.toml中taosd以及taosAdapter的连接信息,这里是在taoskeeper的源码目录下面,其配置文件位于config/taoskeeper.toml,所以修改并挂载该目录即可。
k8s部署 下面直接附上部署yaml文件,镜像为上面构建的docker镜像,需要根据自身环境情况修改taoskeeper.toml配置文件中taosd以及taosAdapter的连接信息。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 --- apiVersion: v1 kind: Service metadata: name: "tdengine-taoskeeper" labels: app: "tdengine-taoskeeper" spec: ports: - name: tcp6043 protocol: "TCP" port: 6043 selector: app: "tdengine-taoskeeper" --- apiVersion: apps/v1 kind: StatefulSet metadata: name: "tdengine-taoskeeper" labels: app: "tdengine-taoskeeper" spec: serviceName: "taosd" replicas: 1 updateStrategy: type: RollingUpdate selector: matchLabels: app: "tdengine-taoskeeper" template: metadata: name: "tdengine-taoskeeper" labels: app: "tdengine-taoskeeper" spec: containers: - name: "tdengine-taoskeeper" image: docker-registry.finsiot.com/finsiot/taoskeeper imagePullPolicy: "IfNotPresent" ports: - name: tcp6043 protocol: "TCP" containerPort: 6043 volumeMounts: - name: taoskeeper mountPath: /etc/taos/taoskeeper.toml subPath: taoskeeper.toml volumes: - name: taoskeeper configMap: name: taoskeeper --- apiVersion: v1 data: taoskeeper.toml: | debug = true port = 6043 loglevel = "info" gopoolsize = 50000 RotationInterval = "1s" [tdengine] host = "tdengine" port = 6041 username = "root" password = "taosdata" [taosAdapter] address = ["tdengine:6041"] [metrics] prefix = "taos" database = "log" tables = [] [metrics.databaseoptions] cachemodel = "none" [environment] incgroup = false kind: ConfigMap metadata: name: taoskeeper
这里docker以及K8s的部署除了taoskeeper本身的配置文件的配置以外,还需要在taosd服务(/etc/taos/taos.conf)中添加monitor配置,例如我这里在K8s的部署方式下,taosd服务的monitor配置如下:
1 2 monitor 1 monitorFqdn tdengine-taoskeeper
备份与恢复 tdengine一般情况下使用taosdump工具来进行备份以及恢复。
taosdump 有两种安装方式:
安装 taosTools 官方安装包, 请从发布历史页面 页面找到 taosTools 并下载安装。
单独编译 taos-tools 并安装, 详情请参考 taos-tools 仓库。
这里部署的时候在官方发布历史页面找到对应版本的包,部署方式与tdengine server一样,这里不再赘述。这里针对taos-tools仍然可以使用域名拼接的方式直接下载而不用每次都发送邮箱,下面以最新的工具包部署为例:
1 2 3 wget https://www.taosdata.com/assets-download/3.0/taosTools-2.5.2-Linux-x64-comp3.tar.gz tar -xvf taosTools-2.5.2-Linux-x64-comp3.tar.gz cd taosTools-2.5.2/ && bash install-tools.sh
这里需要注意的是,如果是docker镜像部署的tdengine,其服务器端是自带taos-tools工具包的。
taosdump主要参数:
1 2 3 4 5 6 7 8 9 10 -o:指定输出文件的路径。文件会自动生成。一个dbs.sql文件,导出数据库、超级表;若干个XXX_tables.N.sql文件,文件名的规则:XXX是数据库名称,N是数字,从0开始递增 -u:用户名。 -p:密码。 -A:指示导出所有数据库的数据。 -D:表示指定数据库。 -i:表示输入目录。 -s:表示导出schema。 -t:指定导入到一个文件的表的个数。该参数可以控制输出文件的大小。(网上很多博客里面都有记录这个参数,但是好像taosdump已经不用这个参数了) -B:指定一条import语句中包含记录的条数。注意:不要让sql语句超过64k,否则后续导入会出错。该参数为了后续导入时,提高导入速率。 -T: 指定导出数据时,启动的线程数。建议设置成机器上core的2倍。
备份 备份库 1 2 3 4 5 6 7 8 9 10 taosdump -u 用户名 -p(输入密码) -h 服务器地址 -D 数据库名 -P 6030 -o 备份的路径 -u、-p、-h、-P本身和taos客户端连接一样,如果是本地且默认账号密码可以直接执行无需这些参数,例如: mkdir /tmp/logbackup && taosdump -D log -o /tmp/logbackup 例2: taosdump -h tdengine.dev.finsiot.com -u root -ptaosdata -o /tmp/db01 -T 8 -D db01 -h h tdengine.dev.finsiot.com 集群节点 -u root -ptaosdata 用户名、密码 -o /tmp/dump/db01 输出文件目录 -T 8 并发8个进程 -D db01 备份db01数据库
备份超级表/普通表 1 2 3 4 5 6 mkdir -p /tmp/stb1 mkdir -p /tmp/tb1 ##备份超级表stb1 taosdump -h h tdengine.dev.finsiot.com -u root -ptaosdata -o /tmp/dump/stb1 -T 8 db01 stb1 ##备份普通表tb1 taosdump -h h tdengine.dev.finsiot.com -u root -ptaosdata -o /tmp/dump/tb1 -T 8 db01 tb1
恢复库 1 taosdump -h ms06.dyq.com -u root -ptaosdata -i /tmp/db01 -T 8
恢复超级表/普通表 1 2 3 4 ##恢复超级表 taosdump -h ms06.dyq.com -u root -ptaosdata -i /tmp/stb1 -T 8 ##恢复普通表 taosdump -h ms06.dyq.com -u root -ptaosdata -i /tmp/tb1 -T 8