Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
4f99dad7
T
TDengine
项目概览
taosdata
/
TDengine
1 年多 前同步成功
通知
1185
Star
22016
Fork
4786
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
1
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
T
TDengine
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
1
Issue
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
4f99dad7
编写于
3月 23, 2022
作者:
W
wade zhang
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
server side configuration change and related doc optimization
上级
26c285c9
变更
5
展开全部
隐藏空白更改
内联
并排
Showing
5 changed file
with
183 addition
and
148 deletion
+183
-148
docs-cn/10-cluster/01-prerequisites.md
docs-cn/10-cluster/01-prerequisites.md
+28
-9
docs-cn/11-operation/11-optimize.md
docs-cn/11-operation/11-optimize.md
+89
-0
docs-cn/14-reference/07-docker/07-docker.md
docs-cn/14-reference/07-docker/07-docker.md
+3
-2
docs-cn/14-reference/08-server-config/08-server-config.md
docs-cn/14-reference/08-server-config/08-server-config.md
+62
-136
docs-cn/14-reference/08-server-config/_category_.yml
docs-cn/14-reference/08-server-config/_category_.yml
+1
-1
未找到文件。
docs-cn/10-cluster/01-prerequisites.md
浏览文件 @
4f99dad7
# 准备工作
# 准备工作
第零步:规划集群所有物理节点的 FQDN,将规划好的 FQDN 分别添加到每个物理节点的/etc/hostname;修改每个物理节点的/etc/hosts,将所有集群物理节点的 IP 与 FQDN 的对应添加好。【如部署了 DNS,请联系网络管理员在 DNS 上做好相关配置】
## 第零步
第一步:如果搭建集群的物理节点中,存有之前的测试数据、装过 1.X 的版本,或者装过其他版本的 TDengine,请先将其删除,并清空所有数据(如果需要保留原有数据,请联系涛思交付团队进行旧版本升级、数据迁移),具体步骤请参考博客《TDengine 多种安装包的安装和卸载》。
规划集群所有物理节点的 FQDN,将规划好的 FQDN 分别添加到每个物理节点的/etc/hostname;修改每个物理节点的/etc/hosts,将所有集群物理节点的 IP 与 FQDN 的对应添加好。【如部署了 DNS,请联系网络管理员在 DNS 上做好相关配置】
**注意 1:**
因为 FQDN 的信息会写进文件,如果之前没有配置或者更改 FQDN,且启动了 TDengine。请一定在确保数据无用或者备份的前提下,清理一下之前的数据(rm -rf /var/lib/taos/
*
);
## 第一步
**注意 2:**
客户端也需要配置,确保它可以正确解析每个节点的 FQDN 配置,不管是通过 DNS 服务,还是修改 hosts 文件
。
如果搭建集群的物理节点中,存有之前的测试数据、装过 1.X 的版本,或者装过其他版本的 TDengine,请先将其删除,并清空所有数据(如果需要保留原有数据,请联系涛思交付团队进行旧版本升级、数据迁移),具体步骤请参考博客《TDengine 多种安装包的安装和卸载》
。
第二步:建议关闭所有物理节点的防火墙,至少保证端口:6030 - 6042 的 TCP 和 UDP 端口都是开放的。强烈建议先关闭防火墙,集群搭建完毕之后,再来配置端口;
:::note
因为 FQDN 的信息会写进文件,如果之前没有配置或者更改 FQDN,且启动了 TDengine。请一定在确保数据无用或者备份的前提下,清理一下之前的数据(rm -rf /var/lib/taos/
*
);
:::
第三步:在所有物理节点安装 TDengine,且版本必须是一致的,但不要启动 taosd。安装时,提示输入是否要加入一个已经存在的 TDengine 集群时,第一个物理节点直接回车创建新集群,后续物理节点则输入该集群任何一个在线的物理节点的 FQDN:端口号(默认 6030);
:::note
客户端也需要配置,确保它可以正确解析每个节点的 FQDN 配置,不管是通过 DNS 服务,还是修改 hosts 文件。
:::
第四步:检查所有数据节点,以及应用程序所在物理节点的网络设置:
## 第二步
建议关闭所有物理节点的防火墙,至少保证端口:6030 - 6042 的 TCP 和 UDP 端口都是开放的。强烈建议先关闭防火墙,集群搭建完毕之后,再来配置端口;
## 第三步
在所有物理节点安装 TDengine,且版本必须是一致的,但不要启动 taosd。安装时,提示输入是否要加入一个已经存在的 TDengine 集群时,第一个物理节点直接回车创建新集群,后续物理节点则输入该集群任何一个在线的物理节点的 FQDN:端口号(默认 6030);
## 第四步
检查所有数据节点,以及应用程序所在物理节点的网络设置:
每个物理节点上执行命令hostname -f,查看和确认所有节点的 hostname 是不相同的(应用驱动所在节点无需做此项检查);
每个物理节点上执行命令hostname -f,查看和确认所有节点的 hostname 是不相同的(应用驱动所在节点无需做此项检查);
...
@@ -21,7 +36,9 @@
...
@@ -21,7 +36,9 @@
每个数据节点的 End Point 就是输出的 hostname 外加端口号,比如h1.taosdata.com:6030。
每个数据节点的 End Point 就是输出的 hostname 外加端口号,比如h1.taosdata.com:6030。
第五步:修改 TDengine 的配置文件(所有节点的文件/etc/taos/taos.cfg 都需要修改)。假设准备启动的第一个数据节点 End Point 为 h1.taosdata.com:6030,其与集群配置相关参数如下:
## 第五步
修改 TDengine 的配置文件(所有节点的文件/etc/taos/taos.cfg 都需要修改)。假设准备启动的第一个数据节点 End Point 为 h1.taosdata.com:6030,其与集群配置相关参数如下:
```
```
// firstEp 是每个数据节点首次启动后连接的第一个数据节点
// firstEp 是每个数据节点首次启动后连接的第一个数据节点
...
@@ -52,4 +69,6 @@ arbitrator ha.taosdata.com:6042
...
@@ -52,4 +69,6 @@ arbitrator ha.taosdata.com:6042
| 8 | maxTablesPerVnode | 每个 vnode 中能够创建的最大表个数 |
| 8 | maxTablesPerVnode | 每个 vnode 中能够创建的最大表个数 |
| 9 | maxVgroupsPerDb | 每个 DB 中能够使用的最大 vgroup 个数 |
| 9 | maxVgroupsPerDb | 每个 DB 中能够使用的最大 vgroup 个数 |
备注:在 2.0.19.0 及更早的版本中,除以上 9 项参数外,dnode 加入集群时,还会要求 locale 和 charset 参数的取值也一致。
:::note
在 2.0.19.0 及更早的版本中,除以上 9 项参数外,dnode 加入集群时,还会要求 locale 和 charset 参数的取值也一致。
:::
docs-cn/11-operation/11-optimize.md
浏览文件 @
4f99dad7
...
@@ -9,3 +9,92 @@ COMPACT VNODES IN (vg_id1, vg_id2, ...)
...
@@ -9,3 +9,92 @@ COMPACT VNODES IN (vg_id1, vg_id2, ...)
COMPACT 命令对指定的一个或多个 VGroup 启动碎片重整,系统会通过任务队列尽快安排重整操作的具体执行。COMPACT 指令所需的 VGroup id,可以通过
`SHOW VGROUPS;`
指令的输出结果获取;而且在
`SHOW VGROUPS;`
中会有一个 compacting 列,值为 2 时表示对应的 VGroup 处于排队等待进行重整的状态,值为 1 时表示正在进行碎片重整,为 0 时则表示并没有处于重整状态(未要求进行重整或已经完成重整)。
COMPACT 命令对指定的一个或多个 VGroup 启动碎片重整,系统会通过任务队列尽快安排重整操作的具体执行。COMPACT 指令所需的 VGroup id,可以通过
`SHOW VGROUPS;`
指令的输出结果获取;而且在
`SHOW VGROUPS;`
中会有一个 compacting 列,值为 2 时表示对应的 VGroup 处于排队等待进行重整的状态,值为 1 时表示正在进行碎片重整,为 0 时则表示并没有处于重整状态(未要求进行重整或已经完成重整)。
需要注意的是,碎片重整操作会大幅消耗磁盘 I/O。因此在重整进行期间,有可能会影响节点的写入和查询性能,甚至在极端情况下导致短时间的阻写。
需要注意的是,碎片重整操作会大幅消耗磁盘 I/O。因此在重整进行期间,有可能会影响节点的写入和查询性能,甚至在极端情况下导致短时间的阻写。
## 存储参数优化
不同应用场景的数据往往具有不同的数据特征,比如保留天数、副本数、采集频次、记录大小、采集点的数量、压缩等都可完全不同。为获得在存储上的最高效率,TDengine 提供如下存储相关的系统配置参数(既可以作为 create database 指令的参数,也可以写在 taos.cfg 配置文件中用来设定创建新数据库时所采用的默认值):
| # | 配置参数名称 | 单位 | 含义 |
**取值范围**
|
**缺省值**
|
| --- | ------------ | ---- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | ---------- |
| 1 | days | 天 | 一个数据文件存储数据的时间跨度 | | 10 |
| 2 | keep | 天 | (可通过 alter database 修改)数据库中数据保留的天数。 | 3650 |
| 3 | cache | MB | 内存块的大小 | | 16 |
| 4 | blocks | | (可通过 alter database 修改)每个 VNODE(TSDB)中有多少个 cache 大小的内存块。因此一个 VNODE 使用的内存大小粗略为(cache
\*
blocks)。 | | 6 |
| 5 | quorum | | (可通过 alter database 修改)多副本环境下指令执行的确认数要求 | 1-2 | 1 |
| 6 | minRows | | 文件块中记录的最小条数 | | 100 |
| 7 | maxRows | | 文件块中记录的最大条数 | | 4096 |
| 8 | comp | | (可通过 alter database 修改)文件压缩标志位 | 0:关闭,1:一阶段压缩,2:两阶段压缩 | 2 |
| 9 | walLevel | | (作为 database 的参数时名为 wal;在 taos.cfg 中作为参数时需要写作 walLevel)WAL 级别 | 1:写 wal,但不执行 fsync;2:写 wal, 而且执行 fsync | 1 |
| 10 | fsync | 毫秒 | 当 wal 设置为 2 时,执行 fsync 的周期。设置为 0,表示每次写入,立即执行 fsync。 | | 3000 |
| 11 | replica | | (可通过 alter database 修改)副本个数 | 1-3 | 1 |
| 12 | precision | | 时间戳精度标识(2.1.2.0 版本之前、2.0.20.7 版本之前在 taos.cfg 文件中不支持此参数。)(从 2.1.5.0 版本开始,新增对纳秒时间精度的支持) | ms 表示毫秒,us 表示微秒,ns 表示纳秒 | ms |
| 13 | update | | 是否允许数据更新(从 2.1.7.0 版本开始此参数支持 0 ~ 2 的取值范围,在此之前取值只能是 [0, 1];而 2.0.8.0 之前的版本在 SQL 指令中不支持此参数。) | 0:不允许;1:允许更新整行;2:允许部分列更新。 | 0 |
| 14 | cacheLast | | (可通过 alter database 修改)是否在内存中缓存子表的最近数据(从 2.1.2.0 版本开始此参数支持 0 ~ 3 的取值范围,在此之前取值只能是 [0, 1];而 2.0.11.0 之前的版本在 SQL 指令中不支持此参数。)(2.1.2.0 版本之前、2.0.20.7 版本之前在 taos.cfg 文件中不支持此参数。) | 0:关闭;1:缓存子表最近一行数据;2:缓存子表每一列的最近的非 NULL 值;3:同时打开缓存最近行和列功能 | 0 |
对于一个应用场景,可能有多种数据特征的数据并存,最佳的设计是将具有相同数据特征的表放在一个库里,这样一个应用有多个库,而每个库可以配置不同的存储参数,从而保证系统有最优的性能。TDengine 允许应用在创建库时指定上述存储参数,如果指定,该参数就将覆盖对应的系统配置参数。举例,有下述 SQL:
```
mysql
CREATE DATABASE demo DAYS 10 CACHE 32 BLOCKS 8 REPLICA 3 UPDATE 1;
```
该 SQL 创建了一个库 demo, 每个数据文件存储 10 天数据,内存块为 32 兆字节,每个 VNODE 占用 8 个内存块,副本数为 3,允许更新,而其他参数与系统配置完全一致。
一个数据库创建成功后,仅部分参数可以修改并实时生效,其余参数不能修改:
|
**参数名**
|
**能否修改**
|
**范围**
|
**修改语法示例**
|
| ----------- | ------------ | ------------------------------------------ | -------------------------------------- |
| name | | | |
| create time | | | |
| ntables | | | |
| vgroups | | | |
| replica |
**YES**
| 在线 dnode 数目为 1:1-1;2:1-2;>=3:1-3 | ALTER DATABASE <dbname
\>
REPLICA _n_ |
| quorum |
**YES**
| 1-2 | ALTER DATABASE <dbname
\>
QUORUM _n_ |
| days | | | |
| keep |
**YES**
| days-365000 | ALTER DATABASE <dbname
\>
KEEP _n_ |
| cache | | | |
| blocks |
**YES**
| 3-1000 | ALTER DATABASE <dbname
\>
BLOCKS _n_ |
| minrows | | | |
| maxrows | | | |
| wal | | | |
| fsync | | | |
| comp |
**YES**
| 0-2 | ALTER DATABASE <dbname
\>
COMP _n_ |
| precision | | | |
| status | | | |
| update | | | |
| cachelast |
**YES**
| 0
\|
1
\|
2
\|
3 | ALTER DATABASE <dbname
\>
CACHELAST _n_ |
**说明:**
在 2.1.3.0 版本之前,通过 ALTER DATABASE 语句修改这些参数后,需要重启服务器才能生效。
TDengine 集群中加入一个新的 dnode 时,涉及集群相关的一些参数必须与已有集群的配置相同,否则不能成功加入到集群中。会进行校验的参数如下:
-
numOfMnodes:系统中管理节点个数。默认值:3。(2.0 版本从 2.0.20.11 开始、2.1 及以上版本从 2.1.6.0 开始,numOfMnodes 默认值改为 1。)
-
mnodeEqualVnodeNum: 一个 mnode 等同于 vnode 消耗的个数。默认值:4。
-
offlineThreshold: dnode 离线阈值,超过该时间将导致该 dnode 从集群中删除。单位为秒,默认值:86400
\*
10(即 10 天)。
-
statusInterval: dnode 向 mnode 报告状态时长。单位为秒,默认值:1。
-
maxTablesPerVnode: 每个 vnode 中能够创建的最大表个数。默认值:1000000。
-
maxVgroupsPerDb: 每个数据库中能够使用的最大 vgroup 个数。
-
arbitrator: 系统中裁决器的 end point,缺省为空。
-
timezone、locale、charset 的配置见客户端配置。(2.0.20.0 及以上的版本里,集群中加入新节点已不要求 locale 和 charset 参数取值一致)
-
balance:是否启用负载均衡。0:否,1:是。默认值:1。
-
flowctrl:是否启用非阻塞流控。0:否,1:是。默认值:1。
-
slaveQuery:是否启用 slave vnode 参与查询。0:否,1:是。默认值:1。
-
adjustMaster:是否启用 vnode master 负载均衡。0:否,1:是。默认值:1。
为方便调试,可通过 SQL 语句临时调整每个 dnode 的日志配置,系统重启后会失效:
```
mysql
ALTER DNODE <dnode_id> <config>
```
-
dnode_id: 可以通过 SQL 语句"SHOW DNODES"命令获取
-
config: 要调整的日志参数,在如下列表中取值
> resetlog 截断旧日志文件,创建一个新日志文件
> debugFlag < 131 | 135 | 143 > 设置 debugFlag 为 131、135 或者 143
例如:
```
alter dnode 1 debugFlag 135;
```
docs-cn/14-reference/07-docker/07-docker.md
浏览文件 @
4f99dad7
...
@@ -313,12 +313,13 @@ password: taosdata
...
@@ -313,12 +313,13 @@ password: taosdata
taoslog-td2:
taoslog-td2:
```
```
:::note
:::note
-
`VERSION`
环境变量被用来设置 tdengine image tag
-
`VERSION`
环境变量被用来设置 tdengine image tag
-
在新创建的实例上必须设置
`TAOS_FIRST_EP`
以使其能够加入 TDengine 集群;如果有高可用需求,则需要同时使用
`TAOS_SECOND_EP`
-
在新创建的实例上必须设置
`TAOS_FIRST_EP`
以使其能够加入 TDengine 集群;如果有高可用需求,则需要同时使用
`TAOS_SECOND_EP`
-
`TAOS_REPLICA`
用来设置缺省的数据库副本数量,其取值范围为[1,3]
-
`TAOS_REPLICA`
用来设置缺省的数据库副本数量,其取值范围为[1,3]
在双副本环境下,推荐使用 arbitrator, 用 TAOS_ARBITRATOR 来设置
在双副本环境下,推荐使用 arbitrator, 用 TAOS_ARBITRATOR 来设置
:::
2.
启动集群
2.
启动集群
...
...
docs-cn/14-reference/08-server-config/08-server-config.md
浏览文件 @
4f99dad7
此差异已折叠。
点击以展开。
docs-cn/14-reference/08-server-config/_category_.yml
浏览文件 @
4f99dad7
label
:
服务的配置
label
:
服务端配置
\ No newline at end of file
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录