docs: minor changes

This commit is contained in:
Simon Guan 2025-03-04 23:33:52 +08:00
parent 10ca97b6cf
commit 8aa2573ebf
10 changed files with 106 additions and 111 deletions

View File

@ -16,7 +16,7 @@ TDengine OSS 是一个开源的高性能时序数据库,与其他时序数据
在 TDengine OSS 的基础上TDengine Enterprise 提供了增强的辅助功能包括数据的备份恢复、异地容灾、多级存储、视图、权限控制、安全加密、IP 白名单、支持 MQTT、OPC-UA、OPC-DA、PI、Wonderware、Kafka 等各种数据源。这些功能为企业提供了更为全面、安全、可靠和高效的时序数据管理解决方案。更多的细节请看 [TDengine Enterprise](https://www.taosdata.com/tdengine-pro)。
此外TDengine Cloud 作为一种全托管的云服务,存储与计算分离,分开计费,为企业提供了企业级的工具和服务,彻底解决了运维难题,尤其适合中小规模的用户使用。更多的细节请看[TDengine 云服务](https://cloud.taosdata.com/?utm_source=menu&utm_medium=webcn)
此外TDengine Cloud 作为一种全托管的云服务,存储与计算分离,分开计费,为企业提供了企业级的工具和服务,彻底解决了运维难题,尤其适合中小规模的用户使用。更多的细节请看 [TDengine 云服务](https://cloud.taosdata.com/?utm_source=menu&utm_medium=webcn)
## TDengine 主要功能与特性

View File

@ -12,37 +12,37 @@ sidebar_label: 集群维护
## 数据重整
TDengine 面向多种写入场景而很多写入场景下TDengine 的存储会导致数据存储的放大或数据文件的空洞等。这一方面影响数据的存储效率另一方面也会影响查询效率。为了解决上述问题TDengine 企业版提供了对数据的重整功能,即 DATA COMPACT 功能,将存储的数据文件重新整理,删除文件空洞和无效数据,提高数据的组织度,从而提高存储和查询的效率。数据重整功能在 3.0.3.0 版本第一次发布,此后又经过了多次迭代优化,建议使用最新版本。
TDengine 面向多种写入场景而很多写入场景下TDengine 的存储会导致数据存储的放大或数据文件的空洞等。这一方面影响数据的存储效率另一方面也会影响查询效率。为了解决上述问题TDengine 企业版提供了对数据的重整功能,即 data compact 功能,将存储的数据文件重新整理,删除文件空洞和无效数据,提高数据的组织度,从而提高存储和查询的效率。数据重整功能在 3.0.3.0 版本第一次发布,此后又经过了多次迭代优化,建议使用最新版本。
### 语法
```SQL
COMPACT DATABASE db_name [start with 'XXXX'] [end with 'YYYY']
COMPACT [db_name.]VGROUPS IN (vgroup_id1, vgroup_id2, ...) [start with 'XXXX'] [end with 'YYYY']
SHOW COMPACTS
SHOW COMPACT compact_id;
KILL COMPACT compact_id
compact DATABASE db_name [start with 'XXXX'] [end with 'YYYY']
compact [db_name.]vgroups IN (vgroup_id1, vgroup_id2, ...) [start with 'XXXX'] [end with 'YYYY']
show compacts
show compact compact_id;
kill compact compact_id
```
### 效果
- 扫描并压缩指定的 DB 中所有 VGROUP 中 VNODE 的所有数据文件
- 扫描并压缩 DB 中指定的 VGROUP 列表中 VNODE 的所有数据文件, 若 db_name 为空,则默认为当前数据库
- COMPCAT 会删除被删除数据以及被删除的表的数据
- COMPACT 会合并多个 STT 文件
- 可通过 start with 关键字指定 COMPACT 数据的起始时间
- 可通过 end with 关键字指定 COMPACT 数据的终止时间
- COMPACT 命令会返回 COMPACT 任务的 ID
- COMPACT 任务会在后台异步执行,可以通过 SHOW COMPACTS 命令查看 COMPACT 任务的进度
- SHOW 命令会返回 COMPACT 任务的 ID可以通过 KILL COMPACT 命令终止 COMPACT 任务
- 扫描并压缩指定的 DB 中所有 vgroup 中 vnode 的所有数据文件
- 扫描并压缩 DB 中指定的 vgroup 列表中 vnode 的所有数据文件, 若 db_name 为空,则默认为当前数据库
- compact 会删除被删除数据以及被删除的表的数据
- compact 会合并多个 STT 文件
- 可通过 start with 关键字指定 compact 数据的起始时间
- 可通过 end with 关键字指定 compact 数据的终止时间
- compact 命令会返回 compact 任务的 ID
- compact 任务会在后台异步执行,可以通过 show compacts 命令查看 compact 任务的进度
- show 命令会返回 compact 任务的 ID可以通过 kill compact 命令终止 compact 任务
### 补充说明
- COMPACT 为异步,执行 COMPACT 命令后不会等 COMPACT 结束就会返回。如果上一个 COMPACT 没有完成则再发起一个 COMPACT 任务,则会等上一个任务完成后再返回。
- COMPACT 可能阻塞写入,尤其是在 stt_trigger = 1 的数据库中,但不阻塞查询。
- compact 为异步,执行 compact 命令后不会等 compact 结束就会返回。如果上一个 compact 没有完成则再发起一个 compact 任务,则会等上一个任务完成后再返回。
- compact 可能阻塞写入,尤其是在 stt_trigger = 1 的数据库中,但不阻塞查询。
## Vgroup Leader 再平衡
## vgroup leader 再平衡
当多副本集群中的一个或多个节点因为升级或其它原因而重启后,有可能出现集群中各个 dnode 负载不均衡的现象,极端情况下会出现所有 vgroup 的 leader 都位于同一个 dnode 的情况。为了解决这个问题,可以使用下面的命令,该命令在 3.0.4.0 版本中首次发布,建议尽可能使用最新版本。
@ -58,11 +58,11 @@ balance vgroup leader database <database_name>; # 再平衡一个 database 内
### 注意
Vgroup 选举本身带有随机性所以通过选举的重新分布产生的均匀分布也是带有一定的概率不会完全的均匀。该命令的副作用是影响查询和写入在vgroup重新选举时从开始选举到选举出新的 leader 这段时间,这 个vgroup 无法写入和查询。选举过程一般在秒级完成。所有的vgroup会依次逐个重新选举。
vgroup 选举本身带有随机性,所以通过选举的重新分布产生的均匀分布也是带有一定的概率,不会完全的均匀。该命令的副作用是影响查询和写入,在 vgroup 重新选举时,从开始选举到选举出新的 leader 这段时间,这 个vgroup 无法写入和查询。选举过程一般在秒级完成。所有的 vgroup 会依次逐个重新选举。
## 恢复数据节点
当集群中的某个数据节点dnode的数据全部丢失或被破坏比如磁盘损坏或者目录被误删除可以通过 restore dnode 命令来恢复该数据节点上的部分或全部逻辑节点,该功能依赖多副本中的其它副本进行数据复制,所以只在集群中 dnode 数量大于等于 3 且副本数为 3 的情况下能够工作。
当集群中的某个数据节点dnode的数据全部丢失或被破坏比如磁盘损坏或者目录被误删除可以通过 `restore dnode` 命令来恢复该数据节点上的部分或全部逻辑节点,该功能依赖多副本中的其它副本进行数据复制,所以只在集群中 dnode 数量大于等于 3 且副本数为 3 的情况下能够工作。
```sql
restore dnode <dnode_id># 恢复dnode上的mnode所有vnode和qnode
@ -78,7 +78,7 @@ restore qnode on dnode <dnode_id># 恢复dnode上的qnode
## 分裂虚拟组
当一个 vgroup 因为子表数过多而导致 CPU 或 Disk 资源使用量负载过高时,增加 dnode 节点后可通过split vgroup命令把该vgroup分裂为两个虚拟组。分裂完成后新产生的两个 vgroup 承担原来由一个 vgroup 提供的读写服务。该命令在 3.0.6.0 版本第一次发布,建议尽可能使用最新版本。
当一个 vgroup 因为子表数过多而导致 CPU 或 Disk 资源使用量负载过高时,增加 dnode 节点后,可通过 `split vgroup` 命令把该 vgroup 分裂为两个虚拟组。分裂完成后,新产生的两个 vgroup 承担原来由一个 vgroup 提供的读写服务。该命令在 3.0.6.0 版本第一次发布,建议尽可能使用最新版本。
```sql
split vgroup <vgroup_id>
@ -96,8 +96,6 @@ split vgroup <vgroup_id>
从 3.1.1.0 版本开始TDengine Enterprise 支持在线热更新 `supportVnodes` 这个很重要的 dnode 配置参数。这个参数的原始配置方式是在 `taos.cfg` 配置文件中,表示该 dnode 能够支持的最大的 vnode 数量。当创建一个数据库时需要分配新的 vnode当删除一个数据库时其 vnode 都会被销毁。
但在线更新 `supportVnodes` 不会产生持久化,当系统重启后,允许的最大 vnode 数量仍然由 taos.cfg 中配置的 `supportVnodes` 决定。
如果通过在线更新或配置文件方式设置的 `supportVnodes` 小于 dnode 当前已经实际存在的 vnode 数量,已经存在的 vnode 不会受影响。但当尝试创建新的 database 时,是否能够创建成功则仍然受实际生效的 `supportVnodes` 参数决定。
## 双副本
@ -106,7 +104,7 @@ split vgroup <vgroup_id>
### 查看 Vgroups 的状态
通过以下 SQL 命令参看双副本数据库中各 Vgroup 的状态:
通过以下 SQL 命令参看双副本数据库中各 vgroup 的状态:
```sql
show arbgroups;
@ -120,15 +118,15 @@ select * from information_schema.ins_arbgroups;
```
is_sync 有以下两种取值:
- 0: Vgroup 数据未达成同步。在此状态下,如果 Vgroup 中的某一 Vnode 不可访问,另一个 Vnode 无法被指定为 `AssignedLeader` role该 Vgroup 将无法提供服务。
- 1: Vgroup 数据达成同步。在此状态下,如果 Vgroup 中的某一 Vnode 不可访问,另一个 Vnode 可以被指定为 `AssignedLeader` role该 Vgroup 可以继续提供服务。
- 0: vgroup 数据未达成同步。在此状态下,如果 vgroup 中的某一 vnode 不可访问,另一个 vnode 无法被指定为 `AssignedLeader` role该 vgroup 将无法提供服务。
- 1: vgroup 数据达成同步。在此状态下,如果 vgroup 中的某一 vnode 不可访问,另一个 vnode 可以被指定为 `AssignedLeader` role该 vgroup 可以继续提供服务。
assigned_dnode
- 标识被指定为 AssignedLeader 的 Vnode 的 DnodeId
- 标识被指定为 AssignedLeader 的 vnode 的 DnodeId
- 未指定 AssignedLeader 时,该列显示 NULL
assigned_token
- 标识被指定为 AssignedLeader 的 Vnode 的 Token
- 标识被指定为 AssignedLeader 的 vnode 的 Token
- 未指定 AssignedLeader时该列显示 NULL
### 最佳实践

View File

@ -40,7 +40,7 @@ taosKeeper 的配置文件默认位于 `/etc/taos/taoskeeper.toml`。 详细配
#### 导入仪表盘
TDengine 数据源插件已提交至 Grafana 官网,如何安装 TDengine 数据源插件和配置数据源请参考[安装 Grafana Plugin 并配置数据源](../../third-party/visual/grafana/#安装-grafana-plugin-并配置数据源)。完成插件的安装和数据源的创建后,可以进行 TDinsight 仪表盘的导入。
TDengine 数据源插件已提交至 Grafana 官网,如何安装 TDengine 数据源插件和配置数据源请参考 [安装 Grafana Plugin 并配置数据源](../../third-party/visual/grafana/#安装-grafana-plugin-并配置数据源)。完成插件的安装和数据源的创建后,可以进行 TDinsight 仪表盘的导入。
在 Grafana 的 “Home” -> “Dashboards” 页面,点击位于右上角的 “New” -> “import” 按钮,即可进入 Dashboard 的导入页面,它支持以下两种导入方式。
- Dashboard ID18180。

View File

@ -4,7 +4,7 @@ title: 可视化管理工具
toc_max_heading_level: 4
---
为方便用户更高效地使用和管理 TDengineTDengine 3.0 版本推出了一个全新的可视化组件taosExplorer。这个组件旨在帮助用户在不熟悉 SQL 的情况下,也能轻松管理 TDengine 集群。通过 taosExplorer用户可以轻松查看 TDengine 的运行状态、浏览数据、配置数据源、实现流计算和数据订阅等功能。此外用户还可以利用taosExplorer 进行数据的备份、复制和同步操作,以及配置用户的各种访问权限。这些功能极大地简化了数据库的使用过程,提高了用户体验。
为方便用户更高效地使用和管理 TDengineTDengine 3.0 版本推出了一个全新的可视化组件 taosExplorer。这个组件旨在帮助用户在不熟悉 SQL 的情况下,也能轻松管理 TDengine 集群。通过 taosExplorer用户可以轻松查看 TDengine 的运行状态、浏览数据、配置数据源、实现流计算和数据订阅等功能。此外,用户还可以利用 taosExplorer 进行数据的备份、复制和同步操作,以及配置用户的各种访问权限。这些功能极大地简化了数据库的使用过程,提高了用户体验。
本节介绍可视化管理的基本功能。
@ -38,7 +38,7 @@ toc_max_heading_level: 4
下面通过创建数据库,来熟悉数据浏览器页面的功能和操作,接下来看创建数据库的两种方式:
1. 通过点击图中的 + 号,跳转到创建数据数库页面,点击 创建 按钮,如下图:
1. 通过点击图中的 + 号,跳转到创建数据数库页面,点击“创建”按钮,如下图:
第一步 点击 + 号;
![explorer-02-createDbentry.jpeg](./pic/explorer-02-createDbentry.jpeg "点开 + 号创建数据库")
@ -50,7 +50,7 @@ toc_max_heading_level: 4
弟三步 点击“创建”按钮之后,如下图左边出现数据库名称则创建数据库成功。
![explorer-05-createDbtest01.jpeg](./pic/explorer-05-createDbtest01.jpeg "创建数据库 test01")
2. 通过在 Sql 编辑器中数据 sql 语句,点击 执行 按钮,如下图:
2. 通过在 SQL 编辑器中数据 sql 语句,点击 执行 按钮,如下图:
第一步 输入 sql 语句;
![explorer-06-sqlCreateDb.jpeg](./pic/explorer-06-sqlCreateDb.jpeg "通过 sql 创建数据库")
@ -201,11 +201,11 @@ toc_max_heading_level: 4
## 工具
通过 “工具” 页面,用户可以了解如下 TDengine 周边工具的使用方法。
- TDengine CLI
- taosBenchmark
- taosdump
- TDengine 与 BI 工具的集成,例如 Google Data Studio、Power BI、永洪 BI 等
- TDengine 与 Grafana、Seeq 的集成
- TDengine CLI
- taosBenchmark
- taosdump
- TDengine 与 BI 工具的集成,例如 Google Data Studio、Power BI、永洪 BI 等
- TDengine 与 Grafana、Seeq 的集成
## 系统管理

View File

@ -8,9 +8,7 @@ toc_max_heading_level: 4
# 1. 基于 taosdump 进行数据备份恢复
taosdump 是一个开源工具,用于支持从运行中的 TDengine 集群备份数据并将备份的数据恢复到相同或另一个正在运行的 TDengine
集群中。taosdump 可以将数据库作为逻辑数据单元进行备份也可以对数据库中指定时间段内的数据记录进行备份。在使用taosdump
可以指定数据备份的目录路径。如果不指定目录路径taosdump 将默认将数据备份到当前目录。
taosdump 是一个开源工具,用于支持从运行中的 TDengine 集群备份数据并将备份的数据恢复到相同或另一个正在运行的 TDengine 集群中。taosdump 可以将数据库作为逻辑数据单元进行备份,也可以对数据库中指定时间段内的数据记录进行备份。在使用 taosdump 时可以指定数据备份的目录路径。如果不指定目录路径taosdump 将默认将数据备份到当前目录。
以下为 taosdump 执行数据备份的使用示例。
@ -18,14 +16,11 @@ taosdump 是一个开源工具,用于支持从运行中的 TDengine 集群备
taosdump -h localhost -P 6030 -D dbname -o /file/path
```
执行上述命令后taosdump 会连接 localhost:6030 所在的 TDengine 集群,查询数据库 dbname 中的所有数据,并将数据备份到 /f
ile/path 下。
执行上述命令后taosdump 会连接 localhost:6030 所在的 TDengine 集群,查询数据库 dbname 中的所有数据,并将数据备份到 /file/path 下。
在使用 taosdump 时如果指定的存储路径已经包含数据文件taosdump
会提示用户并立即退出,以避免数据被覆盖。这意味着同一存储路径只能用于一次备份。如果你看到相关提示,请谨慎操作,以免误操作导致数据丢失。
在使用 taosdump 时如果指定的存储路径已经包含数据文件taosdump 会提示用户并立即退出,以避免数据被覆盖。这意味着同一存储路径只能用于一次备份。如果你看到相关提示,请谨慎操作,以免误操作导致数据丢失。
要将本地指定文件路径中的数据文件恢复到正在运行的 TDengine 集群中,可以通过指定命令行参数和数据文件所在路径来执行 taosdump
命令。以下为 taosdump 执行数据恢复的示例代码。
要将本地指定文件路径中的数据文件恢复到正在运行的 TDengine 集群中,可以通过指定命令行参数和数据文件所在路径来执行 taosdump 命令。以下为 taosdump 执行数据恢复的示例代码。
```shell
taosdump -i /file/path -h localhost -P 6030

View File

@ -27,10 +27,8 @@ TDengine 支持 WAL 机制,实现数据的容错能力,保证数据的高可
- 第 3 步,访问 TDengine 集群 B创建一个与集群 A 中数据库 db1 参数配置相同的数据库 db2。
- 第 4 步,通过 Web 浏览器访问集群 B 的 taosExplorer 服务,在 “数据浏览器” 页面找到 db2在 “查看数据库配置” 选项中可以获取该数据库的 DSN例如 taos+ws://root:taosdata@clusterB:6041/db2
- 第 4 步,通过 Web 浏览器访问集群 B 的 taosExplorer 服务,在 “数据浏览器” 页面找到 db2在 “查看数据库配置” 选项中可以获取该数据库的 DSN例如 `taos+ws://root:taosdata@clusterB:6041/db2`
- 第 5 步,在 taosExplorer 服务的“系统管理 - 数据同步”页面新增一个数据同步任务,在任务配置信息中填写需要同步的数据库 db1 和目标数据库 db2 的 DSN完成创建任务后即可启动数据同步。
- 第 6 步,访问集群 B可以看到集群 B 中的数据库 db2 源源不断写入来自集群 A 数据库 db1 的数据,直至两个集群的数据库数据量基本保持一致。至此,一个简单的基于
TDengine Enterprise 的数据灾备体系搭建完成。
- 第 6 步,访问集群 B可以看到集群 B 中的数据库 db2 源源不断写入来自集群 A 数据库 db1 的数据,直至两个集群的数据库数据量基本保持一致。至此,一个简单的基于 TDengine Enterprise 的数据灾备体系搭建完成。

View File

@ -5,10 +5,10 @@ toc_max_heading_level: 4
---
本节介绍 TDengine Enterprise 特有的多级存储功能,其作用是将较近的热度较高的数据存储在高速介质上,而时间久远热度很低的数据存储在低成本介质上,达成了以下目标:
- 降低存储成本 -- 将数据分级存储后,海量极冷数据存入廉价存储介质带来显著经济性
- 提升写入性能 -- 得益于每级存储可支持多个挂载点WAL 预写日志也支持 0 级的多挂载点并行写入,极大提升写入性能(实际场景测得支持持续写入每秒 3 亿测点以上),在机械硬盘上可获得极高磁盘 IO 吞吐(实测可达 2GB/s
- 方便维护 -- 配置好各级存储挂载点后,系统数据迁移等工作,无需人工干预;存储扩容更灵活、方便
- 对 SQL 透明 -- 无论查询的数据是否跨级,一条 SQL 可返回所有数据,简单高效
- **降低存储成本**将数据分级存储后,海量极冷数据存入廉价存储介质带来显著经济性
- **提升写入性能**得益于每级存储可支持多个挂载点WAL 预写日志也支持 0 级的多挂载点并行写入,极大提升写入性能(实际场景测得支持持续写入每秒 3 亿测点以上),在机械硬盘上可获得极高磁盘 IO 吞吐(实测可达 2GB/s
- **方便维护**配置好各级存储挂载点后,系统数据迁移等工作,无需人工干预;存储扩容更灵活、方便
- **对 SQL 透明**无论查询的数据是否跨级,一条 SQL 可返回所有数据,简单高效
多级存储所涉及的各层存储介质都是本地存储设备。除了本地存储设备之外TDengine Enterprise 还支持使用对象存储(S3),将最冷的一批数据保存在最廉价的介质上,以进一步降低存储成本,并在必要时仍然可以进行查询,且数据存储在哪里也对 SQL 透明。支持对象存储在 3.3.0.0 版本中首次发布,建议使用最新版本。
@ -26,9 +26,11 @@ dataDir [path] <level> <primary>
```
- path: 挂载点的文件夹路径。
- level: 介质存储等级,取值为 012。 0 级存储最新的数据1 级存储次新的数据2 级存储最老的数据,省略默认为 0。 各级存储之间的数据流向0 级存储 -> 1 级存储 -> 2 级存储。 同一存储等级可挂载多个硬盘,同一存储等级上的数据文件分布在该存储等级的所有硬盘上。 需要说明的是,数据在不同级别的存储介质上的移动,是由系统自动完成的,用户无需干预。
- primary: 是否为主挂载点0或 1省略默认为 1。
- level介质存储等级取值为 0、1、2。 0 级存储最新的数据1 级存储次新的数据2 级存储最老的数据,省略默认为 0。各级存储之间的数据流向0 级存储 -> 1 级存储 -> 2 级存储。 同一存储等级可挂载多个硬盘,同一存储等级上的数据文件分布在该存储等级的所有硬盘上。需要说明的是,数据在不同级别的存储介质上的移动,是由系统自动完成的,用户无需干预。
- primary是否为主挂载点0或 1省略默认为 1。
在配置中只允许一个主挂载点的存在level=0primary=1例如采用如下的配置方式
```shell
dataDir /mnt/data1 0 1
dataDir /mnt/data2 0 0
@ -38,7 +40,8 @@ dataDir /mnt/data5 2 0
dataDir /mnt/data6 2 0
```
**注意** 1. 多级存储不允许跨级配置,合法的配置方案有:仅 0 级,仅 0 级+ 1 级,以及 0 级+ 1 级+ 2 级。而不允许只配置 level=0 和 level=2而不配置 level=1。
**注意**
1. 多级存储不允许跨级配置,合法的配置方案有:仅 0 级、仅 0 级 + 1 级、以及 0 级 + 1 级 + 2 级。而不允许只配置 level=0 和 level=2而不配置 level=1。
2. 禁止手动移除使用中的挂载盘,挂载盘目前不支持非本地的网络盘。
### 负载均衡
@ -74,13 +77,13 @@ dataDir /mnt/data6 2 0
| 参数名称 | 参数含义 |
|:---------------------|:-----------------------------------------------|
| s3EndPoint | 用户所在地域的 COS 服务域名,支持 http 和 httpsbucket 的区域需要与 endpoint 的保持一致,否则无法访问 |
| s3EndPoint | 用户所在地域的 COS 服务域名,支持 http 和 httpsbucket 的区域需要与 endpoint 的保持一致,否则无法访问 |
| s3AccessKey | 冒号分隔的用户 SecretId:SecretKey。例如AKIDsQmwsfKxTo2A6nGVXZN0UlofKn6JRRSJ:lIdoy99ygEacU7iHfogaN2Xq0yumSm1E |
| s3BucketName | 存储桶名称,减号后面是用户注册 COS 服务的 AppId。其中 AppId 是 COS 特有AWS 和阿里云都没有,配置时需要作为 bucket name 的一部分使用减号分隔。参数值均为字符串类型但不需要引号。例如test0711-1309024725 |
| s3UploadDelaySec | data 文件持续多长时间不再变动后上传至 s3单位秒。最小值1最大值259200030天默认值 60 秒 |
| s3PageCacheSize | S3 page cache 缓存页数目单位页。最小值4最大值1024*1024*1024。 ,默认值 4096|
| s3MigrateIntervalSec | 本地数据文件自动上传 S3 的触发周期单位为秒。最小值600最大值100000。默认值 3600 |
| s3MigrateEnabled | 是否自动进行 S3 迁移,默认值为 0表示关闭自动 S3 迁移,可配置为 1 |
| s3MigrateEnabled | 是否自动进行 S3 迁移,默认值为 0表示关闭自动 S3 迁移,可配置为 1 |
#### 检查配置参数可用性

View File

@ -56,7 +56,7 @@ alter_user_clause: {
- pass修改用户密码。
- enable是否启用用户。1 表示启用此用户0 表示禁用此用户。
- sysinfo 用户是否可查看系统信息。1 表示可以查看系统信息0 表示不可以查看系统信息
- createdb用户是否可创建数据库。1 表示可以创建数据库0 表示不可以创建数据库。// 从 TDengine 企业版 3.3.2.0 开始支持
- createdb用户是否可创建数据库。1 表示可以创建数据库0 表示不可以创建数据库。从 TDengine 企业版 3.3.2.0 开始支持
如下 SQL 禁用 test 用户。
```sql
@ -76,7 +76,7 @@ drop user user_name
### 库和表的授权
在 TDengine 中,库和表的权限分为 read (读)和 write (写)两种。这些权限可以单独授予,也可以同时授予用户。
在 TDengine 中,库和表的权限分为 read 和 write 两种。这些权限可以单独授予,也可以同时授予用户。
- read 权限:拥有 read 权限的用户仅能查询库或表中的数据,而无法对数据进行修改或删除。这种权限适用于需要访问数据但不需要对数据进行写入操作的场景,如数据分析师、报表生成器等。
- write 权限:拥有 write 权限的用户可以向库或表中写入数据。这种权限适用于需要对数据进行写入操作的场景,如数据采集器、数据处理器等。如果只拥有 write 权限而没有 read 权限,则只能写入数据但不能查询数据。
@ -101,10 +101,11 @@ resources {
```
相关参数说明如下。
- resources :可以访问的库或表。. 之前为数据库名称,. 之后为表名称。dbname.tbname 的意思是名为 dbname 的数据库中的 tbname 表必须为普通表或超级表。dbname.* 的意思是名为 dbname 的数据库中的所有表。*.* 的意思是所有数据库中的所有表。
- resources可以访问的库或表。`.` 之前为数据库名称,`.` 之后为表名称。`dbname.tbname` 的意思是名为 dbname 的数据库中的 tbname 表必须为普通表或超级表。`dbname.*` 的意思是名为 dbname 的数据库中的所有表。`*.*` 的意思是所有数据库中的所有表。
- tag_filter超级表的过滤条件。
上述 SQL 既可以授权一个库、所有库,也可以授权一个库下的普通表或超级表,还可以通过 dbname.tbname 和 with 子句的组合授权符合过滤条件的一张超级表下的所有子表。
上述 SQL 既可以授权一个库、所有库,也可以授权一个库下的普通表或超级表,还可以通过 `dbname.tbname``with` 子句的组合授权符合过滤条件的一张超级表下的所有子表。
如下 SQL 将数据库 power 的 read 权限授权给用户 test。
```sql
grant read on power to test

View File

@ -28,20 +28,20 @@ ALTER USER TEST DROP HOST HOST_NAME1
```
说明
- 开源版和企业版本都能添加成功,且可以查询到,但是开源版本不会对 IP 做任何限制。
- create user u_write pass 'taosdata1' host 'iprange1','iprange2', 可以一次添加多个 iprange, 服务端会做去重,去重的逻辑是需要 iprange 完全一样
- 默认会把 127.0.0.1 添加到白名单列表,且在白名单列表可以查询
- `create user u_write pass 'taosdata1' host 'iprange1','iprange2'`,可以一次添加多个 ip range服务端会做去重,去重的逻辑是需要 ip range 完全一样
- 默认会把 `127.0.0.1` 添加到白名单列表,且在白名单列表可以查询
- 集群的节点 IP 集合会自动添加到白名单列表,但是查询不到。
- taosadaper 和 taosd 不在一个机器的时候,需要把 taosadaper IP 手动添加到 taosd 白名单列表中
- 集群情况下,各个节点 enableWhiteList 成一样,或者全为 false,或者全为 true, 要不然集群无法启动
- 白名单变更生效时间 1s不超过 2s, 每次变更对收发性能有些微影响(多一次判断,可以忽略),变更完之后、影响忽略不计, 变更过程中对集群没有影响,对正在访问客户端也没有影响(假设这些客户端的 IP 包含在 white list 内)
- 如果添加两个 ip range, 192.168.1.1/16(假设为 A), 192.168.1.1/24(假设为 B), 严格来说A 包含了 B但是考虑情况太复杂并不会对 A 和 B 做合并
- 要删除的时候,必须严格匹配。 也就是如果添加的是 192.168.1.1/24, 要删除也是 192.168.1.1/24
- 集群情况下,各个节点 enableWhiteList 成一样,或者全为 false,或者全为 true要不然集群无法启动
- 白名单变更生效时间 1s不超过 2s每次变更对收发性能有些微影响(多一次判断,可以忽略),变更完之后、影响忽略不计变更过程中对集群没有影响,对正在访问客户端也没有影响(假设这些客户端的 IP 包含在 white list 内)
- 如果添加两个 ip range192.168.1.1/16(假设为 A)192.168.1.1/24(假设为 B)严格来说A 包含了 B但是考虑情况太复杂并不会对 A 和 B 做合并
- 要删除的时候,必须严格匹配。 也就是如果添加的是 192.168.1.1/24要删除也是 192.168.1.1/24
- 只有 root 才有权限对其他用户增删 ip white list
- 兼容之前的版本,但是不支持从当前版本回退到之前版本
- x.x.x.x/32 和 x.x.x.x 属于同一个 iprange, 显示为 x.x.x.x
- 如果客户端拿到的 0.0.0.0/0, 说明没有开启白名单
- x.x.x.x/32 和 x.x.x.x 属于同一个 iprange显示为 x.x.x.x
- 如果客户端拿到的 0.0.0.0/0说明没有开启白名单
- 如果白名单发生了改变, 客户端会在 heartbeat 里检测到。
- 针对一个 user, 添加的 IP 个数上限是 2048
- 针对一个 user添加的 IP 个数上限是 2048
## 审计日志
@ -53,7 +53,7 @@ TDengine 先对用户操作进行记录和管理,然后将这些作为审计
| 参数名称 | 参数含义 |
|:-------------:|:--------------------------------------------------------:|
|audit | 是否打开审计日志,默认值为 0。1 为开启0 为关闭 |
|audit | 是否打开审计日志1 为开启0 为关闭,默认值为 0。 |
|monitorFqdn | 接收审计日志的 taosKeeper 所在服务器的 FQDN |
|monitorPort | 接收审计日志的 taosKeeper 服务所用端口 |
|monitorCompaction | 上报数据时是否进行压缩 |
@ -64,7 +64,7 @@ TDengine 先对用户操作进行记录和管理,然后将这些作为审计
| 参数名称 | 参数含义 |
|:-------------:|:--------------------------------------------------------:|
|auditDB | 用于存放审计日志的数据库的名字,默认值为 "audit" taosKeeper 在收到上报的审计日志后会判断该数据库是否存在,如果不存在会自动创建 |
|auditDB | 用于存放审计日志的数据库的名字,默认值为 "audit"taosKeeper 在收到上报的审计日志后会判断该数据库是否存在,如果不存在会自动创建 |
### 数据格式
@ -88,19 +88,19 @@ TDengine 先对用户操作进行记录和管理,然后将这些作为审计
taosKeeper 会依据上报的审计数据在相应的数据库中自动建立超级表用于存储数据。该超级表的定义如下
```sql
CREATE STABLE operations(ts timestamp, details VARCHAR(64000) User VARCHAR(25), Operation VARCHAR(20), db VARCHAR(65), resource VARCHAR(193), client_add(25)) TAGS (clusterID VARCHAR(64) );
create stable operations(ts timestamp, details varchar(64000) user varchar(25), operation varchar(20), db varchar(65), resource varchar(193), client_add(25)) tags (clusterID varchar(64) );
```
其中
其中
1. db 为操作涉及的 databaseresource 为操作涉及的资源。
2. User 和 Operation 为数据列,表示哪个用户在该对象上进行了什么操作
2. user 和 operation 为数据列,表示哪个用户在该对象上进行了什么操作
3. timestamp 为时间戳列,表示操作发生时的时间
4. details 为该操作的一些补充细节,在大多数操作下是所执行的操作的 SQL 语句。
5. client_add 为客户端地址,包括 ip 和端口
### 操作列表
目前审计日志中所记录的操作列表以及每个操作中各字段的含义如下表(注:因为每个操作的实加者即 user 字段、时间戳字段和client_add在所有操作中的含义相同下表不包含
目前审计日志中所记录的操作列表以及每个操作中各字段的含义(因为每个操作的施加者,即 user、client_add、时间戳字段在所有操作中的含义相同下表不再描述
| 操作 | Operation | DB | Resource | Details |
| ----------------| ----------| ---------| ---------| --------|
@ -110,8 +110,8 @@ CREATE STABLE operations(ts timestamp, details VARCHAR(64000) User VARCHAR(25
| create stable | createStb | db name | stable name | SQL |
| alter stable | alterStb | db name | stable name | SQL |
| drop stable | dropStb | db name | stable name | SQL |
| create user | createUser | NULL | 被创建的用户名 | 用户属性参数, (password除外) |
| alter user | alterUser | NULL | 被修改的用户名 | 修改密码操作记录的是被修改的参数和新值 (password除外) ;其他操作记录SQL |
| create user | createUser | NULL | 被创建的用户名 | 用户属性参数 (password 除外) |
| alter user | alterUser | NULL | 被修改的用户名 | 修改密码记录被修改的参数和新值 (password 除外),其他操作记录 SQL |
| drop user | dropUser | NULL | 被删除的用户名 | SQL |
| create topic | createTopic | topic 所在 DB | 创建的 topic 名字 | SQL |
| drop topic | cropTopic | topic 所在 DB | 删除的 topic 名字 | SQL |
@ -123,7 +123,7 @@ CREATE STABLE operations(ts timestamp, details VARCHAR(64000) User VARCHAR(25
| create qnode | createQnode | NULL | dnodeId | SQL |
| drop qnode | dropQnode | NULL | dnodeId | SQL |
| login | login | NULL | NULL | appName |
| create stream | createStream | NULL | 所创建的 strem 名 | SQL |
| create stream | createStream | NULL | 所创建的 stream 名 | SQL |
| drop stream | dropStream | NULL | 所删除的 stream 名 | SQL |
| grant privileges| grantPrivileges | NULL | 所授予的用户 | SQL |
| remove privileges | revokePrivileges | NULL | 被收回权限的用户 | SQL |
@ -171,7 +171,7 @@ database_option: {
```
主要参数说明如下。
encrypt_algorithm指定数据采用的加密算法。默认是 none即不采用加密。sm4 表示采用 SM4 加密算法
- encrypt_algorithm指定数据采用的加密算法。默认是 none即不采用加密。sm4 表示采用 SM4 加密算法
### 查看加密配置
@ -186,7 +186,7 @@ select name, `encrypt_algorithm` from ins_databases;
### 查看节点密钥状态
通过以下的SQL命令参看节点密钥状态
通过以下的 SQL 命令参看节点密钥状态。
```sql
show encryptions;
@ -200,12 +200,12 @@ select * from information_schema.ins_encryptions;
```
key_status 有三种取值:
- 当节点未设置密钥时,状态列显示 unset。
- 当密钥被检验成功并且加载后,状态列显示 loaded.
- 当节点未启动key的状态无法被探知时状态列显示 unknown
- 当密钥被检验成功并且加载后,状态列显示 loaded
- 当节点未启动key 的状态无法被探知时,状态列显示 unknown
### 更新密钥配置
当节点的硬件配置发生变更时,需要通过以下命令更新密钥,与离线配置密钥的命令相同
当节点的硬件配置发生变更时,需要通过以下命令更新密钥,与离线配置密钥的命令相同
```shell
taosd -y {encryptKey}