TDengine数据库调试过程中如何记录执行的SQL命令?
TDengine调试阶段记录所有执行SQL的实现方法
方法1:服务端全局记录(全链路覆盖所有客户端提交的SQL)
这是最常用的方案,会记录所有连接到当前TDengine集群的SQL执行记录:
- 编辑服务端默认配置文件
/etc/taos/taos.cfg - 找到并修改两个配置项:
- 开启SQL记录开关:
enableRecordSql 1(默认值为0,代表关闭) - 若需要同时记录执行报错的SQL,可同步调整日志级别为
debugFlag 131
- 开启SQL记录开关:
- 保存配置后重启taosd服务生效:
systemctl restart taosd - 所有执行的SQL会写入默认日志路径
/var/log/taos/taosdlog.*的文件中,检索关键词SQL:即可快速筛选出所有执行语句
注意:调试结束后务必将
enableRecordSql改回0,避免长期运行产生大量日志占用磁盘、降低服务性能。
方法2:客户端本地记录(仅记录当前客户端执行的SQL)
如果不想修改服务端配置,只需要记录单个客户端的执行语句,可以用该方案:
- 若使用官方taos CLI客户端:启动时添加
-k参数指定日志保存路径即可,示例命令:taos -k ./local_sql_record.log,本次CLI会话内所有执行的SQL都会写入指定的本地文件 - 若使用JDBC/Python/Go等编程语言连接器:在代码中封装SQL执行方法,每次执行前直接打印/写入SQL语句到本地日志文件即可
方法3:taosAdapter REST接口SQL记录
如果SQL是通过HTTP接口提交到taosAdapter执行的,需要单独开启taosAdapter的日志:
- 编辑taosAdapter配置文件
/etc/taos/taosadapter.toml - 将日志级别配置修改为
logLevel = "debug" - 重启taosAdapter服务生效:
systemctl restart taosadapter - 所有通过REST接口提交的SQL会记录在
/var/log/taos/taosadapter.log文件中
内容的提问来源于stack exchange,提问作者Jackson
相关产品推荐
相关产品推荐

