administrator-ch.md 20.0 KB
Newer Older
陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
1
# TDengine的运营与维护
2

陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
3
## 容量规划
4

陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
5
使用TDengine来搭建一个物联网大数据平台,计算资源、存储资源需要根据业务场景进行规划。下面分别讨论系统运行所需要的内存、CPU以及硬盘空间。
6

陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
7
### 内存需求
8

陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
9
每个DB可以创建固定数目的vnode,默认与CPU核数相同,可通过maxVgroupsPerDb配置;每个vnode会占用固定大小的内存(大小与数据库的配置参数blocks和cache有关);每个Table会占用与标签总长度有关的内存;此外,系统会有一些固定的内存开销。因此,每个DB需要的系统内存可通过如下公式计算:
10

H
haojun Liao 已提交
11
```
陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
12
Memory Size = maxVgroupsPerDb * (blocks * cache + 10Mb) + numOfTables * (tagSizePerTable + 0.5Kb)
H
haojun Liao 已提交
13
```
S
slguan 已提交
14

陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
15
示例:假设是4核机器,cache是缺省大小16M, blocks是缺省值6,假设有10万张表,标签总长度是256字节,则总的内存需求为:4\*(16\*6+10) + 100000*(0.25+0.5)/1000 = 499M。 
S
slguan 已提交
16

陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
17
实际运行的系统往往会根据数据特点的不同,将数据存放在不同的DB里。因此做规划时,也需要考虑。
S
slguan 已提交
18

陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
19
如果内存充裕,可以加大Blocks的配置,这样更多数据将保存在内存里,提高查询速度。
S
slguan 已提交
20

陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
21
### CPU需求
S
slguan 已提交
22

陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
23
CPU的需求取决于如下两方面:
H
haojun Liao 已提交
24

陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
25 26
* __数据插入__ TDengine单核每秒能至少处理一万个插入请求。每个插入请求可以带多条记录,一次插入一条记录与插入10条记录,消耗的计算资源差别很小。因此每次插入,条数越大,插入效率越高。如果一个插入请求带200条以上记录,单核就能达到每秒插入100万条记录的速度。但对前端数据采集的要求越高,因为需要缓存记录,然后一批插入。
* __查询需求__ TDengine提供高效的查询,但是每个场景的查询差异很大,查询频次变化也很大,难以给出客观数字。需要用户针对自己的场景,写一些查询语句,才能确定。
H
haojun Liao 已提交
27

陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
28
因此仅对数据插入而言,CPU是可以估算出来的,但查询所耗的计算资源无法估算。在实际运营过程中,不建议CPU使用率超过50%,超过后,需要增加新的节点,以获得更多计算资源。
H
haojun Liao 已提交
29

陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
30
### 存储需求
H
haojun Liao 已提交
31

陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
32
TDengine相对于通用数据库,有超高的压缩比,在绝大多数场景下,TDengine的压缩比不会低于5倍,有的场合,压缩比可达到10倍以上,取决于实际场景的数据特征。压缩前的原始数据大小可通过如下方式计算:
S
slguan 已提交
33

陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
34 35 36
```
Raw DataSize = numOfTables * rowSizePerTable * rowsPerTable
```
S
slguan 已提交
37

陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
38
示例:1000万台智能电表,每台电表每15分钟采集一次数据,每次采集的数据128字节,那么一年的原始数据量是:10000000\*128\*24\*60/15*365 = 44851T。TDengine大概需要消耗44851/5=8970T, 8.9P空间。 
S
slguan 已提交
39

陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
40
用户可以通过参数keep,设置数据在磁盘中的最大保存时长。为进一步减少存储成本,TDengine还提供多级存储,最冷的数据可以存放在最廉价的存储介质上,应用的访问不用做任何调整,只是读取速度降低了。
S
slguan 已提交
41

陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
42
为提高速度,可以配置多快硬盘,这样可以并发写入或读取数据。需要提醒的是,TDengine采取多副本的方式提供数据的高可靠,因此不再需要采用昂贵的磁盘阵列。
S
slguan 已提交
43

陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
44
### 物理机或虚拟机台数
S
slguan 已提交
45

陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
46
根据上面的内存、CPU、存储的预估,就可以知道整个系统需要多少核、多少内存、多少存储空间。如果数据副本数不为1,总需求量需要再乘以副本数。
H
haojun Liao 已提交
47

陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
48
因为TDengine具有很好的水平扩展能力,根据总量,再根据单个物理机或虚拟机的资源,就可以轻松决定需要购置多少台物理机或虚拟机了。
H
haojun Liao 已提交
49

陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
50
## 容错和灾备
H
haojun Liao 已提交
51

陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
52
### 容错
H
haojun Liao 已提交
53

陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
54
TDengine支持**WAL**(Write Ahead Log)机制,实现数据的容错能力,保证数据的高可用。
H
haojun Liao 已提交
55

陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
56
TDengine接收到应用的请求数据包时,先将请求的原始数据包写入数据库日志文件,等数据成功写入数据库数据文件后,再删除相应的WAL。这样保证了TDengine能够在断电等因素导致的服务重启时从数据库日志文件中恢复数据,避免数据的丢失。
H
haojun Liao 已提交
57

陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
58
涉及的系统配置参数有两个:
S
slguan 已提交
59

陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
60 61
- walLevel:WAL级别,0:不写wal; 1:写wal, 但不执行fsync; 2:写wal, 而且执行fsync。
- fsync:当walLevel设置为2时,执行fsync的周期。设置为0,表示每次写入,立即执行fsync。
S
slguan 已提交
62

陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
63
如果要100%的保证数据不丢失,需要将walLevel设置为2,fsync设置为0。这时写入速度将会下降。但如果应用侧启动的写数据的线程数达到一定的数量(超过50),那么写入数据的性能也会很不错,只会比fsync设置为3000毫秒下降30%左右。
H
haojun Liao 已提交
64

陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
65
### 灾备
H
haojun Liao 已提交
66

陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
67
TDengine的集群通过多个副本的机制,来提供系统的高可用性,实现灾备能力。
H
haojun Liao 已提交
68

陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
69
TDengine集群是由mnode负责管理的,为保证mnode的高可靠,可以配置多个mnode副本,副本数由系统配置参数numOfMnodes决定,为了支持高可靠,需要设置大于1。为保证元数据的强一致性,mnode副本之间通过同步方式进行数据复制,保证了元数据的强一致性。
H
haojun Liao 已提交
70

陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
71
TDengine集群中的时序数据的副本数是与数据库关联的,一个集群里可以有多个数据库,每个数据库可以配置不同的副本数。创建数据库时,通过参数replica 指定副本数。为了支持高可靠,需要设置副本数大于1。
H
haojun Liao 已提交
72

陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
73
TDengine集群的节点数必须大于等于副本数,否则创建表时将报错。
H
haojun Liao 已提交
74

陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
75
当TDengine集群中的节点部署在不同的物理机上,并设置多个副本数时,就实现了系统的高可靠性,无需再使用其他软件或工具。TDengine企业版还可以将副本部署在不同机房,从而实现异地容灾。
H
haojun Liao 已提交
76

陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
77
## 服务端配置
H
haojun Liao 已提交
78

陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
79
TDengine系统后台服务由taosd提供,可以在配置文件taos.cfg里修改配置参数,以满足不同场景的需求。配置文件的缺省位置在/etc/taos目录,可以通过taosd命令行执行参数-c指定配置文件目录。比如taosd -c /home/user来指定配置文件位于/home/user这个目录。
H
haojun Liao 已提交
80

陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
81
下面仅仅列出一些重要的配置参数,更多的参数请看配置文件里的说明。各个参数的详细介绍及作用请看前述章节,而且这些参数的缺省配置都是工作的,一般无需设置。**注意:配置修改后,需要重启*taosd*服务才能生效。**
H
haojun Liao 已提交
82

陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
83 84 85 86 87 88 89 90 91 92 93 94 95
- firstEp: taosd启动时,主动连接的集群中第一个dnode的end point, 缺省值为 localhost:6030。
- secondEp: taosd启动时,如果first连接不上,尝试连接集群中第二个dnode的end point, 缺省值为空。
- fqdn:数据节点的FQDN。如果为空,将自动获取操作系统配置的第一个, 缺省值为空。
- serverPort:taosd启动后,对外服务的端口号,默认值为6030。
- httpPort: RESTful服务使用的端口号,所有的HTTP请求(TCP)都需要向该接口发起查询/写入请求。
- dataDir: 数据文件目录,所有的数据文件都将写入该目录。默认值:/var/lib/taos。
- logDir:日志文件目录,客户端和服务器的运行日志文件将写入该目录。默认值:/var/log/taos。
- arbitrator:系统中裁决器的end point, 缺省值为空。
- role:dnode的可选角色。0-any; 既可作为mnode,也可分配vnode;1-mgmt;只能作为mnode,不能分配vnode;2-dnode;不能作为mnode,只能分配vnode
- debugFlag:运行日志开关。131(输出错误和警告日志),135( 输出错误、警告和调试日志),143( 输出错误、警告、调试和跟踪日志)。默认值:131或135(不同模块有不同的默认值)。
- numOfLogLines:单个日志文件允许的最大行数。默认值:10,000,000行。
- maxSQLLength:单条SQL语句允许最长限制。默认值:65380字节。
- maxBinaryDisplayWidth:Shell中binary 和 nchar字段的显示宽度上限,超过此限制的部分将被隐藏。默认值:30。可在 shell 中通过命令 set max_binary_display_width nn动态修改此选项。
H
haojun Liao 已提交
96

陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
97
**注意:**对于端口,TDengine会使用从serverPort起11个连续的TCP和UDP端口号,请务必在防火墙打开。因此如果是缺省配置,需要打开从6030都6040共11个端口,而且必须TCP和UDP都打开。
98 99 100

不同应用场景的数据往往具有不同的数据特征,比如保留天数、副本数、采集频次、记录大小、采集点的数量、压缩等都可完全不同。为获得在存储上的最高效率,TDengine提供如下存储相关的系统配置参数:

陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
101 102 103 104 105 106 107 108 109 110 111
- days:一个数据文件存储数据的时间跨度,单位为天,默认值:10。
- keep:数据库中数据保留的天数,单位为天,默认值:3650。
- minRows: 文件块中记录的最小条数,单位为条,默认值:100。
- maxRows: 文件块中记录的最大条数,单位为条,默认值:4096。
- comp: 文件压缩标志位,0:关闭,1:一阶段压缩,2:两阶段压缩。默认值:2。
- walLevel:WAL级别。1:写wal, 但不执行fsync; 2:写wal, 而且执行fsync。默认值:1。
- fsync:当wal设置为2时,执行fsync的周期。设置为0,表示每次写入,立即执行fsync。单位为毫秒,默认值:3000。
- cache: 内存块的大小,单位为兆字节(MB),默认值:16。
- blocks: 每个VNODE(TSDB)中有多少cache大小的内存块。因此一个VNODE的用的内存大小粗略为(cache * blocks)。单位为块,默认值:4。
- replica:副本个数,取值范围:1-3。单位为个,默认值:1
- precision:时间戳精度标识,ms表示毫秒,us表示微秒。默认值:ms
112

陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
113
对于一个应用场景,可能有多种数据特征的数据并存,最佳的设计是将具有相同数据特征的表放在一个库里,这样一个应用有多个库,而每个库可以配置不同的存储参数,从而保证系统有最优的性能。TDengine允许应用在创建库时指定上述存储参数,如果指定,该参数就将覆盖对应的系统配置参数。举例,有下述SQL: 
114 115

```
陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
116
 create database demo days 10 cache 32 blocks 8 replica 3;
117 118
```

陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
119
该SQL创建了一个库demo, 每个数据文件存储10天数据,内存块为32兆字节,每个VNODE占用8个内存块,副本数为3,而其他参数与系统配置完全一致。
H
haojun Liao 已提交
120

陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
121
TDengine集群中加入一个新的dnode时,涉及集群相关的一些参数必须与已有集群的配置相同,否则不能成功加入到集群中。会进行校验的参数如下:
122

陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
123 124 125 126 127 128 129 130 131 132 133
- numOfMnodes:系统中管理节点个数。默认值:3。
- balance:是否启动负载均衡。0:否,1:是。默认值:1。
- mnodeEqualVnodeNum: 一个mnode等同于vnode消耗的个数。默认值:4。
- offlineThreshold: dnode离线阈值,超过该时间将导致该dnode从集群中删除。单位为秒,默认值:86400*10(即10天)。
- statusInterval: dnode向mnode报告状态时长。单位为秒,默认值:1。
- maxTablesPerVnode: 每个vnode中能够创建的最大表个数。默认值:1000000。
- maxVgroupsPerDb: 每个数据库中能够使用的最大vnode个数。
- arbitrator: 系统中裁决器的end point,缺省为空
- timezone:时区。从系统中动态获取当前的时区设置。
- locale:系统区位信息及编码格式。系统中动态获取,如果自动获取失败,需要用户在配置文件设置或通过API设置。
- charset:字符集编码。系统中动态获取,如果自动获取失败,需要用户在配置文件设置或通过API设置。
134

陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
135
## 客户端配置 
H
haojun Liao 已提交
136

陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
137
TDengine系统的前台交互客户端应用程序为taos,它与taosd共享同一个配置文件taos.cfg。运行taos时,使用参数-c指定配置文件目录,如taos -c /home/cfg,表示使用/home/cfg/目录下的taos.cfg配置文件中的参数,缺省目录是/etc/taos。更多taos的使用方法请见[Shell命令行程序](#_TDengine_Shell命令行程序)。本节主要讲解taos客户端应用在配置文件taos.cfg文件中使用到的参数。
H
haojun Liao 已提交
138

陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
139
客户端配置参数列表及解释
H
haojun Liao 已提交
140

陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
141 142 143 144
- firstEp: taos启动时,主动连接的集群中第一个taosd实例的end point, 缺省值为 localhost:6030。
- secondEp: taos启动时,如果first连接不上,尝试连接集群中第二个taosd实例的end point, 缺省值为空。
- charset:字符集编码。系统中动态获取,如果自动获取失败,需要用户在配置文件设置或通过API设置。
- locale:系统区位信息及编码格式。系统中动态获取,如果自动获取失败,需要用户在配置文件设置或通过API设置。
H
haojun Liao 已提交
145

陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
146
日志的配置参数,与server的配置参数完全一样。
H
haojun Liao 已提交
147

陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
148
启动taos时,也可以从命令行指定一个taosd实例的end point,否则就从taos.cfg读取。
H
haojun Liao 已提交
149

陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
150
## 用户管理
H
haojun Liao 已提交
151

陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
152
系统管理员可以在CLI界面里添加、删除用户,也可以修改密码。CLI里SQL语法如下:
H
haojun Liao 已提交
153 154

```
陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
155
CREATE USER <user_name> PASS <‘password’>;
H
haojun Liao 已提交
156 157
```

陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
158
创建用户,并指定用户名和密码,密码需要用单引号引起来
H
haojun Liao 已提交
159 160

```
陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
161
DROP USER <user_name>;
H
haojun Liao 已提交
162 163
```

陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
164
删除用户,限root用户使用
H
haojun Liao 已提交
165 166

```
陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
167
ALTER USER <user_name> PASS <‘password’>;
H
haojun Liao 已提交
168 169
```

陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
170
修改用户密码, 为避免被转换为小写,密码需要用单引号引用
H
haojun Liao 已提交
171 172

```
陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
173
SHOW USERS;
H
haojun Liao 已提交
174
```
H
haojun Liao 已提交
175

陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
176
显示所有用户
H
haojun Liao 已提交
177

陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
178
**注意:**SQL 语法中,< >表示需要用户输入的部分,但请不要输入< >本身
179

陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
180
## 数据导入
181

陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
182
TDengine提供多种方便的数据导入功能,一种按脚本文件导入,一种按数据文件导入,一种是taosdump工具导入本身导出的文件。
H
haojun Liao 已提交
183

陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
184
**按脚本文件导入**
185

陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
186
TDengine的shell支持source filename命令,用于批量运行文件中的SQL语句。用户可将建库、建表、写数据等SQL命令写在同一个文件中,每条命令单独一行,在shell中运行source命令,即可按顺序批量运行文件中的SQL语句。以‘#’开头的SQL语句被认为是注释,shell将自动忽略。
187

陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
188
**按数据文件导入**
189

陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
190
TDengine也支持在shell对已存在的表从CSV文件中进行数据导入。CSV文件只属于一张表且CSV文件中的数据格式需与要导入表的结构相同, 在导入的时候,其语法如下
191

陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
192 193
```mysql
INSERT INTO <tb_name> FILE <'path/data.csv'>;
194
```
陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
195
注意:如果CSV文件首行存在描述信息,请手动删除后再导入
196

陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
197
例如,现在存在一个子表d1001, 其表结构如下:
198

陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
199 200 201 202 203 204 205 206 207 208
```mysql
taos> DESCRIBE d1001
             Field              |        Type        |   Length    |    Note    |
=================================================================================
 ts                             | TIMESTAMP          |           8 |            |
 current                        | FLOAT              |           4 |            |
 voltage                        | INT                |           4 |            |
 phase                          | FLOAT              |           4 |            |
 location                       | BINARY             |          64 | TAG        |
 groupid                        | INT                |           4 | TAG        |
209
```
陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
210
要导入的data.csv的格式如下:
211

陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
212 213 214 215 216 217 218 219 220 221 222 223
```csv
'2018-10-04 06:38:05.000',10.30000,219,0.31000
'2018-10-05 06:38:15.000',12.60000,218,0.33000
'2018-10-06 06:38:16.800',13.30000,221,0.32000
'2018-10-07 06:38:05.000',13.30000,219,0.33000
'2018-10-08 06:38:05.000',14.30000,219,0.34000
'2018-10-09 06:38:05.000',15.30000,219,0.35000
'2018-10-10 06:38:05.000',16.30000,219,0.31000
'2018-10-11 06:38:05.000',17.30000,219,0.32000
'2018-10-12 06:38:05.000',18.30000,219,0.31000
```
那么可以用如下命令导入数据
224 225

```
陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
226 227
taos> insert into d1001 file '~/data.csv';
Query OK, 9 row(s) affected (0.004763s)
228 229 230
```


陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
231
**taosdump工具导入**
232

陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
233
TDengine提供了方便的数据库导入导出工具taosdump。用户可以将taosdump从一个系统导出的数据,导入到其他系统中。具体使用方法,请参见博客:<a href='https://www.taosdata.com/blog/2020/03/09/1334.html'>TDengine DUMP工具使用指南</a>
234 235 236 237 238 239 240 241 242 243

## 数据导出

为方便数据导出,TDengine提供了两种导出方式,分别是按表导出和用taosdump导出。

**按表导出CSV文件**

如果用户需要导出一个表或一个STable中的数据,可在shell中运行

```
陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
244
SELECT * FROM <tb_name> >> <data.csv>;
245 246
```

陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
247
这样,表tb_name中的数据就会按照CSV格式导出到文件data.csv中。
248 249 250

**用taosdump导出数据**

陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
251
TDengine提供了方便的数据库导出工具taosdump。用户可以根据需要选择导出所有数据库、一个数据库或者数据库中的一张表,所有数据或一时间段的数据,甚至仅仅表的定义。具体使用方法,请参见博客:<a href='https://www.taosdata.com/blog/2020/03/09/1334.html'>TDengine DUMP工具使用指南</a>
252 253 254 255 256 257

## 系统连接、任务查询管理

系统管理员可以从CLI查询系统的连接、正在进行的查询、流式计算,并且可以关闭连接、停止正在进行的查询和流式计算。CLI里SQL语法如下:

```
陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
258
SHOW CONNECTIONS;
259 260 261 262 263
```

显示数据库的连接,其中一列显示ip:port, 为连接的IP地址和端口号。

```
陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
264
KILL CONNECTION <connection-id>;
265 266
```

陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
267
强制关闭数据库连接,其中的connection-id是SHOW CONNECTIONS中显示的第一列的数字。
268 269

```
陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
270
SHOW QUERIES;
271 272
```

陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
273
显示数据查询,其中第一列显示的以冒号隔开的两个数字为query-id,为发起该query应用连接的connection-id和查询次数。
274 275

```
陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
276
KILL QUERY <query-id>;
277 278
```

陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
279
强制关闭数据查询,其中query-id是SHOW QUERIES中显示的 connection-id:query-no字串,如“105:2”,拷贝粘贴即可。
280 281

```
陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
282
SHOW STREAMS;
283 284
```

陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
285
显示流式计算,其中第一列显示的以冒号隔开的两个数字为stream-id, 为启动该stream应用连接的connection-id和发起stream的次数。
286 287

```
陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
288
KILL STREAM <stream-id>;
289 290
```

陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
291 292 293
强制关闭流式计算,其中的中stream-id是SHOW STREAMS中显示的connection-id:stream-no字串,如103:2,拷贝粘贴即可。

注意:SQL语法中,< >表示需要用户输入的部分,但请不要输入< >本身
294 295 296

## 系统监控

陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325
TDengine启动后,会自动创建一个监测数据库SYS,并自动将服务器的CPU、内存、硬盘空间、带宽、请求数、磁盘读写速度、慢查询等信息定时写入该数据库。TDengine还将重要的系统操作(比如登录、创建、删除数据库等)日志以及各种错误报警信息记录下来存放在SYS库里。系统管理员可以从CLI直接查看这个数据库,也可以在WEB通过图形化界面查看这些监测信息。

这些监测信息的采集缺省是打开的,但可以修改配置文件里的选项enableMonitor将其关闭或打开。

## 文件目录结构

安装TDengine后,默认会在操作系统中生成下列目录或文件:

| 目录/文件                 | 说明                                                         |
| ------------------------- | :----------------------------------------------------------- |
| /usr/local/taos/bin       | TDengine可执行文件目录。其中的执行文件都会软链接到/usr/bin目录下。 |
| /usr/local/taos/connector | TDengine各种连接器目录。                                     |
| /usr/local/taos/driver    | TDengine动态链接库目录。会软链接到/usr/lib目录下。           |
| /usr/local/taos/examples  | TDengine各种语言应用示例目录。                               |
| /usr/local/taos/include   | TDengine对外提供的C语言接口的头文件。                        |
| /etc/taos/taos.cfg        | TDengine默认[配置文件]                                       |
| /var/lib/taos             | TDengine默认数据文件目录,可通过[配置文件]修改位置.           |
| /var/log/taos             | TDengine默认日志文件目录,可通过[配置文件]修改位置            |

**可执行文件**

TDengine的所有可执行文件默认存放在 _/usr/local/taos/bin_ 目录下。其中包括:

- _taosd_:TDengine服务端可执行文件
- _taos_: TDengine Shell可执行文件
- _taosdump_:数据导入导出工具
- remove.sh:卸载TDengine的脚本, 请谨慎执行,链接到/usr/bin目录下的rmtaos命令。会删除TDengine的安装目录/usr/local/taos,但会保留/etc/taos、/var/lib/taos、/var/log/taos。

您可以通过修改系统配置文件taos.cfg来配置不同的数据目录和日志目录。
326

X
xieyinglin 已提交
327 328