Skip to content

适用虚谷数据库版本

v12.9



适用虚谷数据库版本

v12.9


COMMAND.LOG

📄字数 1.2K
👁️阅读量 加载中...

COMMAND.LOG是虚谷数据库提供的命令日志文件,用于记录系统中所有执行过的SQL语句,包括SELECT、INSERT、UPDATE、DELETE、DDL操作(如CREATE、DROP、ALTER)等。该日志提供了详尽的用户操作轨迹,是支持问题重现、性能分析、审计追踪等任务的重要工具。

一、 启用和禁用命令记载

虚谷数据库提供两个系统参数来启用和禁用命令记载的行为,分别是reg_commandreg_ddl,两者均默认关闭。前者开启时,用于记载所有SQL命令;后者则只记载DDL命令,均支持节点级别的控制粒度(不指定则默认所有集群节点)。语法如下:

sql
-- 启用或禁用SQL命令记载
SET reg_command TO true|false [ON ALL NODE|ON LOCAL NODE|ON NODE node_id];

-- 启用或禁用DDL命令记载
SET reg_ddl TO true|false [ON ALL NODE|ON LOCAL NODE|ON NODE node_id];

ALL NODE:表示开启所有集群节点的SQL命令记载
LOCAL NODE:表示开启当前节点的SQL命令记载
NODE node_id:表示开启指定节点id的SQL命令记载

示例如下:

  • 开启所有节点的SQL命令记载
sql
SQL> SET reg_command TO true;
  • 开启某个节点的DDL命令记载,以开启2号节点为例
sql
SQL> SET reg_ddl TO true ON NODE 2;

提示

单个COMMAND.LOG文件大小可通过系统参数errlog_size控制,默认大小为100MB。当日志文件大小达到指定阈值时,系统会保存当前日志文件,追加时间为文件名后缀,重命名为COMMAND_yy_mm_dd_hh_mi_ss.LOG进行归档,并生成一个新的COMMAND.LOG文件

二、 COMMAND日志格式

记载的一行COMMAND日志如下:

sql
1   1   SYSDBA  4   127.0.0.1   2025-07-03 16:52:56     execute procedure_p1(?,?)   {PN=2,GN=1 <1,S,'abc'><2,S,NULL>}

对日志进行拆解,其表示的含义如下:

  • 1:表示机器节点号
  • 1:表示数据库id
  • SYSDBA:表示用户名
  • 4:表示连接id
  • 127.0.0.1:表示连接的ip信息
  • 2025-07-03 16:52:56:表示执行命令的时间
  • execute procedure_p1(?,?):表示执行的sql命令
  • {PN=2,GN=1 <1,S,'abc'><2,S,NULL>}:表示sql执行的命令参数。

提示

sql执行的命令参数通常出现在带参数的PREPARE语句、存储过程等SQL中。其记载格式为:{PN=%参数个数,GN=%参数组数 <参数编号,参数类型,值> ...}

三、 使用场景

  • 场景一:查找历史SQL。如查询开发过程中调试过的复杂sql语句
  • 场景二:误操作排查。如执行了错误的DELETE或UPDATE,可通过日志回溯执行轨迹
  • 场景三:用于分析频繁被执行的SQL语句

四、 相关系统表