在日常使用 TDengine 时,参数是用户们无法绕开的重要一环。深入了解参数的属性,生效范围,查询更改方式等会让我们在使用数据库的过程中更加节时高效,也有助于我们更加深入地理解数据库的架构体系。
在 3.0 版本中,TDengine 对参数做了更好的分类,也提供了几个十分方便的查询入口。首先,我们来看下它们的使用方式——
参数分级
集群级别参数:
SHOW CLUSTER VARIABLES;
代表集群搭建时,必须要保证相同的一组参数。
客户端级别参数:
SHOW LOCAL VARIABLES;
代表当前客户端配置参数的运行值。
数据节点级别参数:
SHOW DNODE dnode_id VARIABLES;
SHOW DNODE dnode_id VARIABLES like "xxxxxxxxx";
代表该数据节点上所有参数当前配置值
(包含集群变量、客户端变量),支持 like 子句检索具体的变量值。
数据库级别变量:
数据库级别的变量不是通过 show 命令查询的,它需要通过元数据库 information_schema 的系统表以 SQL 形式查询得出,例如:
select * from information_schema.ins_databases\G;(\G方便展示)
数据节点级别参数:
SHOW DNODE dnode_id VARIABLES;
SHOW DNODE dnode_id VARIABLES like "xxxxxxxxx";
代表该数据节点上所有参数当前配置值
(包含集群变量、客户端变量),支持 like 子句检索具体的变量值。
数据库级别变量:
数据库级别的变量不是通过 show 命令查询的,它需要通过元数据库 information_schema 的系统表以 SQL 形式查询得出,例如:
select * from information_schema.ins_databases\G;(\G方便展示)
参数具体含义
TDengine 的集群、客户端、数据节点(即上文 1-3 )的参数具体含义如下:
https://docs.taosdata.com/reference/config/
注意:部分参数默认是不暴露在配置文件中的,但手动配置它们也可以使用,目的是希望用户不要随意修改它们从而造成不好的影响。
数据库级别的参数具体含义如下:
https://docs.taosdata.com/taos-sql/database/#参数说明
参数修改方式
不论是数据库的服务端还是客户端,它们在启动的初始化阶段都需要调用相同的函数读取 /etc/taos/taos.cfg(默认路径)加载所需参数。因此,参数的更新方式以冷更新为主,对于上述集群、客户端、数据节点(即上文 1-3 )的参数,具体更新方式如下:
打开 /etc/taos/taos.cfg;
删除参数前的注释符 #(若不删除,则修改无效,仍然使用默认值);
修改参数值 ;
保存退出;
重启数据库服务端/客户端;
以上范围的参数中,只有日志参数是支持热更新的。如果需要动态调整日志级别用于诊断分析数据库状态,可以通过 alter dnode命令来完成,具体细节可参考:
https://docs.taosdata.com/taos-sql/node/#修改数据节点配置
如果要修改客户端的变量,可以通过alter local 命令来完成,具体细节可参考:
https://docs.taosdata.com/taos-sql/node/#修改客户端配置
数据库级别变量不支持冷更新,只支持部分参数的热更,具体细节可参考:
https://docs.taosdata.com/taos-sql/database/#修改数据库参数
这里就引申出了另一个问题,针对部分不可修改的参数,即在数据库部署的前期,我们需要注意哪些地方呢?在后续的文章中,我会继续和大家分享内容,一起迅速掌握 TDengine 这款开源、高性能、云原生的时序数据库(Time Series Database)。
想了解更多TDengine Database的具体细节,欢迎大家在GitHub上查看相关源代码。