【发布时间】:2017-09-07 07:41:39
【问题描述】:
我有一个在 AWS 上运行 CockroachDB 的应用程序,并且想要记录它执行的所有查询。但是,我在集群的日志中找不到任何似乎包含查询的内容。我尝试通过它们查找我的应用程序的 SELECT 语句,但找不到它们。
有没有办法启用查询日志记录?
【问题讨论】:
标签: cockroachdb
我有一个在 AWS 上运行 CockroachDB 的应用程序,并且想要记录它执行的所有查询。但是,我在集群的日志中找不到任何似乎包含查询的内容。我尝试通过它们查找我的应用程序的 SELECT 语句,但找不到它们。
有没有办法启用查询日志记录?
【问题讨论】:
标签: cockroachdb
另一个答案已过时。有两种机制:
对于定期检查/故障排除,应使用此处记录的 SQL 语句执行日志记录:https://www.cockroachlabs.com/docs/stable/query-behavior-troubleshooting.html#cluster-wide-execution-logs
对于访问审计(例如法规需要时)使用审计日志:https://www.cockroachlabs.com/docs/stable/sql-audit-logging.html
【讨论】:
使用 cockroach start 启动节点时,包含 --vmodule=executor=2 标志以记录所有 SQL 查询。例如:
cockroach start --background --vmodule=executor=2
您可以从存储在cockroach-data/logs的日志文件中访问日志
如果您对记录运行“过长”的查询感到好奇,请将 env var COCKROACH_TRACE_SQL 设置为一个持续时间,以记录比该持续时间更长的所有查询。
也可以在启动服务器后通过使用与管理 UI 相同的主机/端口访问 URL http://[admin UI URL]/debug/vmodule/executor=2 来激活此日志记录。
【讨论】: