运维语句
1. 状态查看
1.1 查看集群版本
含义:返回当前集群的版本。
语法:
1. showVersionStatement
2. : SHOW VERSION
3. ;
示例:
1. IoTDB> SHOW VERSION
执行结果如下:
1. +-------+-----------+
2. |Version| BuildInfo|
3. +-------+-----------+
4. |1.3.4.1|e5334cf-dev|
5. +-------+-----------+
1.2 查看集群关键参数
含义:返回当前集群的关键参数。
语法:
1. showVariablesStatement
2. : SHOW VARIABLES
3. ;
关键参数如下:
- ClusterName:当前集群的名称。
- DataReplicationFactor:数据副本的数量,表示每个数据分区(DataRegion)的副本数。
- SchemaReplicationFactor:元数据副本的数量,表示每个元数据分区(SchemaRegion)的副本数。
- DataRegionConsensusProtocolClass:数据分区(DataRegion)使用的共识协议类。
- SchemaRegionConsensusProtocolClass:元数据分区(SchemaRegion)使用的共识协议类。
- ConfigNodeConsensusProtocolClass:配置节点(ConfigNode)使用的共识协议类。
- TimePartitionOrigin:数据库时间分区的起始时间戳。
- TimePartitionInterval:数据库的时间分区间隔(单位:毫秒)。
- ReadConsistencyLevel:读取操作的一致性级别。
- SchemaRegionPerDataNode:数据节点(DataNode)上的元数据分区(SchemaRegion)数量。
- DataRegionPerDataNode:数据节点(DataNode)上的数据分区(DataRegion)数量。
- SeriesSlotNum:数据分区(DataRegion)的序列槽(SeriesSlot)数量。
- SeriesSlotExecutorClass:序列槽的实现类。
- DiskSpaceWarningThreshold:磁盘空间告警阈值(单位:百分比)。
- TimestampPrecision:时间戳精度。
示例:
1. IoTDB> SHOW VARIABLES
执行结果如下:
1. +----------------------------------+-----------------------------------------------------------------+
2. | Variable| Value|
3. +----------------------------------+-----------------------------------------------------------------+
4. | ClusterName| defaultCluster|
5. | DataReplicationFactor| 1|
6. | SchemaReplicationFactor| 1|
7. | DataRegionConsensusProtocolClass| org.apache.iotdb.consensus.iot.IoTConsensus|
8. |SchemaRegionConsensusProtocolClass| org.apache.iotdb.consensus.ratis.RatisConsensus|
9. | ConfigNodeConsensusProtocolClass| org.apache.iotdb.consensus.ratis.RatisConsensus|
10. | TimePartitionOrigin| 0|
11. | TimePartitionInterval| 604800000|
12. | ReadConsistencyLevel| strong|
13. | SchemaRegionPerDataNode| 1|
14. | DataRegionPerDataNode| 0|
15. | SeriesSlotNum| 1000|
16. | SeriesSlotExecutorClass|org.apache.iotdb.commons.partition.executor.hash.BKDRHashExecutor|
17. | DiskSpaceWarningThreshold| 0.05|
18. | TimestampPrecision| ms|
19. +----------------------------------+-----------------------------------------------------------------+
1.3 查看数据库当前时间
语法:
含义:返回数据库当前时间。
1. showCurrentTimestampStatement
2. : SHOW CURRENT_TIMESTAMP
3. ;
示例:
1. IoTDB> SHOW CURRENT_TIMESTAMP
执行结果如下:
1. +-----------------------------+
2. | CurrentTimestamp|
3. +-----------------------------+
4. |2025-02-17T11:11:52.987+08:00|
5. +-----------------------------+
1.4 查看正在执行的查询信息
含义:用于显示所有正在执行的查询信息。
语法:
1. showQueriesStatement
2. : SHOW (QUERIES | QUERY PROCESSLIST)
3. (WHERE where=booleanExpression)?
4. (ORDER BY sortItem (',' sortItem)*)?
5. limitOffsetClause
6. ;
参数解释:
- WHERE 子句:需保证过滤的目标列是结果集中存在的列
- ORDER BY 子句:需保证
sortKey是结果集中存在的列 - limitOffsetClause:
- 含义:用于限制结果集的返回数量。
- 格式:
LIMIT <offset>, <row_count>,<offset>是偏移量,<row_count>是返回的行数。 - QUERIES 表中的列:
- time:查询开始的时间戳,时间戳精度与系统精度一致
- queryid:查询语句的 ID
- datanodeid:发起查询语句的 DataNode 的ID
- elapsedtime:查询的执行耗时,单位是秒
- statement:查询的 SQL 语句
示例:
1. IoTDB> SHOW QUERIES WHERE elapsedtime > 0.003
执行结果如下:
1. +-----------------------------+-----------------------+----------+-----------+--------------------------------------+
2. | Time| QueryId|DataNodeId|ElapsedTime| Statement|
3. +-----------------------------+-----------------------+----------+-----------+--------------------------------------+
4. |2025-05-09T15:16:01.293+08:00|20250509_071601_00015_1| 1| 0.006|SHOW QUERIES WHERE elapsedtime > 0.003|
5. +-----------------------------+-----------------------+----------+-----------+--------------------------------------+
1.5 查看分区信息
含义:返回当前集群的分区信息。
语法:
1. showRegionsStatement
2. : SHOW REGIONS
3. ;
示例:
1. IoTDB> SHOW REGIONS
执行结果如下:
1. +--------+------------+-------+-------------+-------------+-----------+----------+----------+-------+---------------+------+-----------------------+----------+
2. |RegionId| Type| Status| Database|SeriesSlotNum|TimeSlotNum|DataNodeId|RpcAddress|RpcPort|InternalAddress| Role| CreateTime|TsFileSize|
3. +--------+------------+-------+-------------+-------------+-----------+----------+----------+-------+---------------+------+-----------------------+----------+
4. | 9|SchemaRegion|Running|root.__system| 21| 0| 1| 0.0.0.0| 6667| 127.0.0.1|Leader|2025-08-01T17:37:01.555| |
5. | 10| DataRegion|Running|root.__system| 21| 21| 1| 0.0.0.0| 6667| 127.0.0.1|Leader|2025-08-01T17:37:01.556| 8.27 KB|
6. | 65|SchemaRegion|Running| root.ln| 1| 0| 1| 0.0.0.0| 6667| 127.0.0.1|Leader|2025-08-25T14:46:50.113| |
7. | 66| DataRegion|Running| root.ln| 1| 1| 1| 0.0.0.0| 6667| 127.0.0.1|Leader|2025-08-25T14:46:50.425| 524 B|
8. +--------+------------+-------+-------------+-------------+-----------+----------+----------+-------+---------------+------+-----------------------+----------+
2. 状态设置
2.1 更新配置项
含义:用于更新配置项,执行完成后会进行配置项的热加载,对于支持热修改的配置项会立即生效。
语法:
1. setConfigurationStatement
2. : SET CONFIGURATION propertyAssignments (ON INTEGER_VALUE)?
3. ;
5. propertyAssignments
6. : property (',' property)*
7. ;
9. property
10. : identifier EQ propertyValue
11. ;
13. propertyValue
14. : DEFAULT
15. | expression
16. ;
参数解释:
- propertyAssignments
- 含义:更新的配置列表,由多个
property组成。 - 可以更新多个配置列表,用逗号分隔。
- 取值:
DEFAULT:将配置项恢复为默认值。expression:具体的值,必须是一个字符串。
- ON INTEGER_VALUE
- 含义:指定要更新配置的节点 ID。
- 可选性:可选。如果不指定或指定的值低于 0,则更新所有 ConfigNode 和 DataNode 的配置。
示例:
1. IoTDB> SET CONFIGURATION 'disk_space_warning_threshold'='0.05','heartbeat_interval_in_ms'='1000' ON 1;
2.2 读取手动修改的配置文件
含义:用于读取手动修改过的配置文件,并对配置项进行热加载,对于支持热修改的配置项会立即生效。
语法:
1. loadConfigurationStatement
2. : LOAD CONFIGURATION localOrClusterMode?
3. ;
5. localOrClusterMode
6. : (ON (LOCAL | CLUSTER))
7. ;
参数解释:
- localOrClusterMode
- 含义:指定配置热加载的范围。
- 可选性:可选。默认值为
CLUSTER。 - 取值:
LOCAL:只对客户端直连的 DataNode 进行配置热加载。CLUSTER:对集群中所有 DataNode 进行配置热加载。
示例:
1. IoTDB> LOAD CONFIGURATION ON LOCAL;
2.3 设置系统的状态
含义:用于设置系统的状态。
语法:
1. setSystemStatusStatement
2. : SET SYSTEM TO (READONLY | RUNNING) localOrClusterMode?
3. ;
5. localOrClusterMode
6. : (ON (LOCAL | CLUSTER))
7. ;
参数解释:
- RUNNING | READONLY
- 含义:指定系统的新状态。
- 取值:
RUNNING:将系统设置为运行状态,允许读写操作。READONLY:将系统设置为只读状态,只允许读取操作,禁止写入操作。
- localOrClusterMode
- 含义:指定状态变更的范围。
- 可选性:可选。默认值为
CLUSTER。 - 取值:
LOCAL:仅对客户端直连的 DataNode 生效。CLUSTER:对集群中所有 DataNode 生效。
示例:
1. IoTDB> SET SYSTEM TO READONLY ON CLUSTER;
3. 数据管理
3.1 刷写内存表中的数据到磁盘
含义:将内存表中的数据刷写到磁盘上。
语法:
1. flushStatement
2. : FLUSH identifier? (',' identifier)* booleanValue? localOrClusterMode?
3. ;
5. booleanValue
6. : TRUE | FALSE
7. ;
9. localOrClusterMode
10. : (ON (LOCAL | CLUSTER))
11. ;
参数解释:
- identifier
- 含义:指定要刷写的数据库名称。
- 可选性:可选。如果不指定,则默认刷写所有数据库。
- 多个数据库:可以指定多个数据库名称,用逗号分隔。例如:
FLUSH root.ln, root.lnm。 - booleanValue
- 含义:指定刷写的内容。
- 可选性:可选。如果不指定,则默认刷写顺序和乱序空间的内存。
- 取值:
TRUE:只刷写顺序空间的内存表。FALSE:只刷写乱序空间的MemTable。
- localOrClusterMode
- 含义:指定刷写的范围。
- 可选性:可选。默认值为
CLUSTER。 - 取值:
ON LOCAL:只刷写客户端直连的 DataNode 上的内存表。ON CLUSTER:刷写集群中所有 DataNode 上的内存表。
示例:
1. IoTDB> FLUSH root.ln TRUE ON LOCAL;
4. 数据修复
4.1 启动后台扫描并修复 tsfile 任务
含义:启动一个后台任务,开始扫描并修复 tsfile,能够修复数据文件内的时间戳乱序类异常。
语法:
1. startRepairDataStatement
2. : START REPAIR DATA localOrClusterMode?
3. ;
5. localOrClusterMode
6. : (ON (LOCAL | CLUSTER))
7. ;
参数解释:
- localOrClusterMode
- 含义:指定数据修复的范围。
- 可选性:可选。默认值为
CLUSTER。 - 取值:
ON LOCAL:仅对客户端直连的 DataNode 执行。ON CLUSTER:对集群中所有 DataNode 执行。
示例:
1. IoTDB> START REPAIR DATA ON CLUSTER;
4.2 暂停后台修复 tsfile 任务
含义:暂停后台的修复任务,暂停中的任务可通过再次执行 start repair data 命令恢复。
语法:
1. stopRepairDataStatement
2. : STOP REPAIR DATA localOrClusterMode?
3. ;
5. localOrClusterMode
6. : (ON (LOCAL | CLUSTER))
7. ;
参数解释:
- localOrClusterMode
- 含义:指定数据修复的范围。
- 可选性:可选。默认值为
CLUSTER。 - 取值:
ON LOCAL:仅对客户端直连的 DataNode 执行。ON CLUSTER:对集群中所有 DataNode 执行。
示例:
1. IoTDB> STOP REPAIR DATA ON CLUSTER;
5. 副本修复
该功能从 V1.3.6 起支持传入 regionId list ,一次处理多个 region。
5.1 手动扩容
含义:将指定 Region 扩容到指定 DataNode 上。
语法:
1. extendRegionStatement
2. : EXTEND REGION <region_id>(, <region_id>)* TO <data_node_id>
3. ;
示例:
1. IoTDB> EXTEND REGION 1,2,3 TO 3;
5.2 手动缩容
含义:从指定 DataNode 上移除指定 Region。
注意:手动缩容至多将副本数缩减至 1 ,不能缩减至 0 。
语法:
1. removeRegionStatement
2. : REMOVE REGION <region_id>(, <region_id>)* FROM <data_node_id>
3. ;
示例:
1. IoTDB> REMOVE REGION 1,2,3 FROM 2;
6. 终止查询
6.1 主动终止查询
含义:使用该命令主动地终止查询。
语法:
1. killQueryStatement
2. : KILL (QUERY queryId=string | ALL QUERIES)
3. ;
参数解释:
- QUERY queryId=string
- 含义:指定要终止的查询的 ID。
<queryId>是正在执行的查询的唯一标识符。 - 获取查询 ID:可以通过
SHOW QUERIES命令获取所有正在执行的查询及其 ID。 - ALL QUERIES
- 含义:终止所有正在执行的查询。
示例:
通过指定 queryId 可以中止指定的查询,为了获取正在执行的查询 id,用户可以使用 show queries 命令,该命令将显示所有正在执行的查询列表。
1. IoTDB> KILL QUERY 20250108_101015_00000_1; -- 终止指定query
2. IoTDB> KILL ALL QUERIES; -- 终止所有query
