更新时间:2024-06-29 GMT+08:00

记录日志的内容

debug_print_parse

参数说明:用于控制打印解析树结果。

参数类型:SIGHUP

取值范围:布尔型

  • on表示开启打印结果的功能。
  • off表示关闭打印结果的功能。

默认值:off

debug_print_rewritten

参数说明:用于控制打印查询重写结果。

参数类型:SIGHUP

取值范围:布尔型

  • on表示开启打印结果的功能。
  • off表示关闭打印结果的功能。

默认值:off

debug_print_plan

参数说明:用于控制打印查询执行结果。

参数类型:SIGHUP

取值范围:布尔型

  • on表示开启打印结果的功能。
  • off表示关闭打印结果的功能。

默认值:off

  • 只有当日志的级别为log及以上时,debug_print_parse、debug_print_rewritten和debug_print_plan的调试信息才会输出。当这些选项打开时,调试信息只会记录在服务器的日志中,而不会输出到客户端的日志中。通过设置client_min_messageslog_min_messages参数可以改变日志级别。
  • 在打开debug_print_plan开关的情况下需尽量避免调用gs_encrypt_aes128及gs_decrypt_aes128函数,避免敏感参数信息在日志中泄露的风险。同时建议用户在打开debug_print_plan开关生成的日志中对gs_encrypt_aes128及gs_decrypt_aes128函数的参数信息进行过滤后再提供给外部维护人员定位,日志使用完成后请及时删除。

debug_pretty_print

参数说明:设置此选项对debug_print_parse、debug_print_rewritten和debug_print_plan产生的日志进行缩进,会生成易读但比设置为off时更长的输出格式。

参数类型:USERSET

取值范围:布尔型

  • on表示进行缩进。
  • off表示不进行缩进。

默认值:on

log_duration

参数说明:控制记录每个已完成SQL语句的执行时间。对使用扩展查询协议的客户端、会记录语法分析、绑定和执行每一步所花费的时间。

参数类型:SUSET

取值范围:布尔型

  • 设置为off ,该选项与log_min_duration_statement的不同之处在于log_min_duration_statement强制记录查询文本。
  • 设置为on并且log_min_duration_statement大于零,记录所有持续时间,但是仅记录超过阈值的语句。这可用于在高负载情况下搜集统计信息。

默认值:on

log_error_verbosity

参数说明:控制服务器日志中每条记录的消息写入的详细度。

参数类型:SUSET

取值范围:枚举类型

  • terse输出不包括DETAIL、HINT、QUERY及CONTEXT错误信息的记录。
  • verbose输出包括SQLSTATE错误代码 、源代码文件名、函数名及产生错误所在的行号。
  • default输出包括DETAIL、HINT、QUERY及CONTEXT错误信息的记录,不包括SQLSTATE错误代码 、源代码文件名、函数名及产生错误所在的行号。

默认值:default

log_lock_waits

参数说明:当一个会话的等待获得一个锁的时间超过deadlock_timeout的值时,此选项控制在数据库日志中记录此消息。这对于决定锁等待是否会产生一个坏的行为是非常有用的。

参数类型:SUSET

取值范围:布尔型

  • on表示记录此信息。
  • off表示不记录此信息。

默认值:off

log_statement

参数说明控制记录SQL语句。对于使用扩展查询协议的客户端,记录接收到执行消息的事件和绑定参数的值(内置单引号要双写)。

参数类型:SUSET

即使log_statement设置为all,包含简单语法错误的语句也不会被记录,因为仅在完成基本的语法分析并确定了语句类型之后才记录日志。在使用扩展查询协议的情况下,在执行阶段之前(语法分析或规划阶段)同样不会记录。将log_min_error_statement设为ERROR或更低才能记录这些语句。

取值范围:枚举类型

  • none表示不记录语句。
  • ddl表示记录所有的数据定义语句,比如CREATE、ALTER和DROP语句。
  • mod表示记录所有DDL语句,还包括数据修改语句INSERT、UPDATE、DELETE、TRUNCATE和COPY FROM 。
  • all表示记录所有语句,PREPARE、EXECUTE和EXPLAIN ANALYZE语句也同样被记录。

默认值:none

log_temp_files

参数说明:控制记录临时文件的删除信息。临时文件可以用来排序、哈希及临时查询结果。当一个临时文件被删除时,将会产生一条日志消息。

参数类型:SUSET

取值范围:整型,-1~INT_MAX,单位为KB

  • 正整数表示只记录比log_temp_files设定值大的临时文件的删除信息。
  • 0表示记录所有的临时文件的删除信息。
  • -1表示不记录任何临时文件的删除信息。

默认值:-1

logging_module

参数说明:用于设置或者显示模块日志在服务端的可输出性。该参数属于会话级参数,不建议通过gs_guc工具来设置。

参数类型:USERSET

取值范围:字符串

默认值:所有模块日志在服务端是不输出的,可由SHOW logging_module查看。

设置方法:首先,可以通过SHOW logging_module来查看哪些模块是支持可控制的。例如,查询输出结果为:

1
2
3
4
5
show logging_module;
logging_module
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
ALL,on(),off(DFS,GUC,HDFS,ORC,SLRU,MEM_CTL,AUTOVAC,ANALYZE,CACHE,ADIO,SSL,GDS,TBLSPC,WLM,SPACE,OBS,EXECUTOR,VEC_EXECUTOR,STREAM,LLVM,OPT,OPT_REWRITE,OPT_JOIN,OPT_AGG,OPT_SUBPLAN,OPT_SETOP,OPT_CARD,OPT_SKEW,SMP,UDF,COOP_ANALYZE,WLMCP,ACCELERATE,PLANHINT,PARQUET,CARBONDATA,SNAPSHOT,XACT,HANDLE,CLOG,TQUAL,EC,REMOTE,CN_RETRY,PLSQL,TEXTSEARCH,SEQ,INSTR,COMM_IPC,COMM_PARAM,CSTORE,JOB,STREAMPOOL,STREAM_CTESCAN)
(1 row)

支持可控制的模块使用大写来标识,特殊标识ALL用于对所有模块日志进行设置。可以使用on/off来控制模块日志的输出。设置SSL模块日志为可输出,使用如下命令:

1
2
3
4
5
6
7
8
set logging_module='on(SSL)';
SET
show logging_module;                                                                                                                                                                                                                                                                                                                                                                                              logging_module                       
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 ALL,on(SSL),off(DFS,GUC,HDFS,ORC,SLRU,MEM_CTL,AUTOVAC,ANALYZE,CACHE,ADIO,GDS,TBLSPC,WLM,SPACE,OBS,EXECUTOR,VEC_EXECUTOR,STREAM,LLVM,OPT,OPT_REWRITE,OPT_JOIN,OPT_AGG,OPT_SUBPLAN,OPT_SETOP,OPT_CARD,OPT_SKEW,SMP,UDF,COOP_ANALYZE,WLMCP,A
CCELERATE,PLANHINT,PARQUET,CARBONDATA,SNAPSHOT,XACT,HANDLE,CLOG,TQUAL,EC,REMOTE,CN_RETRY,PLSQL,TEXTSEARCH,SEQ,INSTR,COMM_IPC,COMM_PARAM,CSTORE,JOB,STREAMPOOL,STREAM_CTESCAN)
(1 row)

可以看到模块SSL的日志输出被打开。

ALL标识是相当于一个快捷操作,即对所有模块的日志可输出进行开启或关闭。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
set logging_module='off(ALL)';
SET
show logging_module;                                                                                                                                                                                                                                                                                                                                                     logging_module                       
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 ALL,on(),off(DFS,GUC,HDFS,ORC,SLRU,MEM_CTL,AUTOVAC,ANALYZE,CACHE,ADIO,SSL,GDS,TBLSPC,WLM,SPACE,OBS,EXECUTOR,VEC_EXECUTOR,STREAM,LLVM,OPT,OPT_REWRITE,OPT_JOIN,OPT_AGG,OPT_SUBPLAN,OPT_SETOP,OPT_CARD,OPT_SKEW,SMP,UDF,COOP_ANALYZE,WLMCP,
ACCELERATE,PLANHINT,PARQUET,CARBONDATA,SNAPSHOT,XACT,HANDLE,CLOG,TQUAL,EC,REMOTE,CN_RETRY,PLSQL,TEXTSEARCH,SEQ,INSTR,COMM_IPC,COMM_PARAM,CSTORE,JOB,STREAMPOOL,STREAM_CTESCAN)
(1 row)

set logging_module='on(ALL)';
SET
show logging_module;                                                                                                                                                                                                                                                                                                                                  logging_module                       
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 ALL,on(DFS,GUC,HDFS,ORC,SLRU,MEM_CTL,AUTOVAC,ANALYZE,CACHE,ADIO,SSL,GDS,TBLSPC,WLM,SPACE,OBS,EXECUTOR,VEC_EXECUTOR,STREAM,LLVM,OPT,OPT_REWRITE,OPT_JOIN,OPT_AGG,OPT_SUBPLAN,OPT_SETOP,OPT_CARD,OPT_SKEW,SMP,UDF,COOP_ANALYZE,WLMCP,ACCELE
RATE,PLANHINT,PARQUET,CARBONDATA,SNAPSHOT,XACT,HANDLE,CLOG,TQUAL,EC,REMOTE,CN_RETRY,PLSQL,TEXTSEARCH,SEQ,INSTR,COMM_IPC,COMM_PARAM,CSTORE,JOB,STREAMPOOL,STREAM_CTESCAN),off()
(1 row)

所有模块中,COMM_IPC必须显式的打开/开闭,执行以下命令都可以将该模块的日志打开:

1
2
3
4
set logging_module='on(ALL)';
SET
set logging_module='on(COMM_IPC)';
SET

设置成功后,COMM_IPC模块日志不会自动关闭,关闭COMM_IPC模块的日志,必须手动执行关闭命令,以下两条命令都可以将该模块日志关闭:

1
2
3
4
set logging_module='off(ALL)';
SET
set logging_module='off(COMM_IPC)';
SET

依赖关系:该参数依赖于log_min_messages参数的设置。

enable_unshipping_log

参数说明:用于控制是否打印语句不下推的日志,主要用于帮助用户定位不下推语句可能导致的性能问题。

参数类型:SUSET

取值范围:布尔型

  • on表示打印日志。
  • off表示不打印日志。

默认值:on