DM8 开启 sql跟踪日志

本文介绍了达梦数据库中SQL日志的配置与使用,包括sqllog.ini文件的设置,如日志文件大小、切换模式、记录内容等。通过启用SQL日志,可以追踪和分析执行时间长的SQL语句,从而优化数据库性能。在配置过程中,需要注意日志文件路径的权限问题。
摘要由CSDN通过智能技术生成

摘抄《DM8系统管理员手册.pdf》

sqllog.ini用于sql日志的配置,当且仅当INI参数SVR_LOG=1时使用。sql跟踪日志默认配置是根据文件大小超过128M后将切换到下一个日志文件,共有5个日志文件,默认配置记录的时间较短,容易被覆盖。生成的sql跟踪日志实时记录所有在数据库层面执行的sql,包括执行耗时,可以通过生成的sql日志分析慢sql,定位应用层面发过来的错误sql;

1、使用SYSDBA用户登录,执行下以SQL

sp_set_para_value(1,'SVR_LOG',1);

2、修改sqllog.ini配置文件,文件所在路径为数据库文件所在路径,和dm.ini同级。sqllog.ini配置文件内容如下

BUF_TOTAL_SIZE          = 10240         #SQLs Log Buffer Total Size(K)(1024~1024000)
BUF_SIZE                = 1024          #SQLs Log Buffer Size(K)(50~409600)
BUF_KEEP_CNT            = 6             #SQLs Log buffer keeped count(1~100)

[SLOG_ALL]
    FILE_PATH    = ../log
    PART_STOR    = 0
    SWITCH_MODE  = 3
    SWITCH_LIMIT   = 144
    ASYNC_FLUSH   = 1
    FILE_NUM = 10
    ITEMS    = 0 
    SQL_TRACE_MASK  = 1 
    MIN_EXEC_TIME = 0 
    USER_MODE   = 0 
    USERS =
sqllog.ini 的配置项
参数名缺省值属性说明
BUF_TOTAL_SIZE10240动态,系统级SQL 日志 BUFFER 占用空间的上限,单位为 KB,取值范围(1024~1024000)
BUF_SIZE1024动态,系统级一块 SQL 日志 BUFFER 的空间大小,单位为 KB,取值范围(50~409600)
BUF_KEEP_CNT6动态,系统级系统保留的 SQL 日志缓存的个数,有效值范围(1~ 100)
FILE_PATH..\LOG动态,系统级日志文件所在的文件夹路径
PART_STOR0手动SQL 日志分区存储,表示 SQL 日志进行分区存储的划分条件。0 表示不划分;1 表示 USER:根据不同用户分布存储
SWITCH_MODE0手动表示 SQL 日志文件切换的模式:
0:不切换
1:按文件中记录数量切换
2:按文件大小切换
3:按时间间隔切换
SWITCH_LIMIT100000动态,系统级不同切换模式 SWITCH_MODE 下,意义不同:
  按数量切换时,一个日志文件中的 SQL 记录条数达到多少条之后系统会自动将日志切换到另一个文件中。一个日志文件中的 SQL 记录条数达到多少条之后系统会自动将日志切换到另一个文件中。有效值范围(1000~ 10000000)
  按文件大小切换时,一个日志文件达到该大小后,系统自动将日志切换到另一个文件中,单位为 M。有效值范围(1~ 2000)
  按时间间隔切换时,每个指定的时间间隔,按文件新建时间进行文件切换,单位为分钟。有效值范围(1~ 30000)
ASYNC_FLUSH1动态,系统级是否打开异步 SQL 日志功能。0:表示关闭;1:表示打开
FILE_NUM5动态,系统级总共记录多少个日志文件,当日志文件达到这个设定值以后,再生成新的文件时,会删除最早的那个日志文件,日志文件的命令格式为 DMSQL_实例名_日期时间.LOG。当这个参数配置成 0 时,只会生成两个日志相互切换着记录。有效值范围(0~1024)。例如,当FILE_NUM=0,实例名为 PDM 时,根据当时的日期时间,生成的日志名称为:
DMSQL_PDM_20180719_163701.LOG,
DMSQL_PDM_20180719_163702.LOG
ITEMS0手动配置 SQL 日志记录中的那些列要被记录。
该参数是一个格式化的字符串,表示一个记录中的那些项目要被记录,格式为:列号:列号:列号。列如:3:5:7 表示第 3,第 5,第 7 列要被记录。
0 表示记录所有的列
1  TIME 执行的时间
2  SEQNO 服务器的站点号
3  SESS  操作的 SESS 地址
4  USER 执行的用户
5  TRXID 事务 ID
6  STMT 语句地址
7  APPNAME 客户端工具
8  IP 客户端 IP
9  STMT_TYPE 语句类型
10  INFO  记录内容
11  RESULT 运行结果,包括运行用时和
影响行数(可能没有)
SQL_TRACE_MASK1动态,系统级

LOG 记录的语句类型掩码,是一个格式化的字符串,表示一个 32 位整数上哪一位将被置为 1,置为 1 的位则表示该类型的语句要记录,格式为:位号:位号:位号。列如:3:5:7 表示第 3,第 5,第 7 位上的值被置为 1。每一位的含义见下面说明(2~17 前提是:SQL 标记位 24 也要
置):

1 全部记录(全部记录并不包含原始语句)

2 全部 DML 类型语句

3 全部 DDL 类型语句
4 UPDATE 类型语句(更新)
5 DELETE 类型语句(删除)
6 INSERT 类型语句(插入)
7 SELECT 类型语句(查询)
8 COMMIT 类型语句(提交)
9 ROLLBACK 类型语句(回滚)
10 CALL 类型语句(过程调用)
11 BACKUP 类型语句(备分)
12 RESTORE 类型语句(恢复)
13 创建对象操作(CREATE DDL)
14 修改对象操作(ALTER DDL)
15 删除对象操作(DROP DDL)
16 授权操作(GRANT DDL)
17 回收操作(REVOKE DDL)
22 绑定参数
23 存在错误的语句(语法错误,语义分析错误
等)
24 是否需要记录执行语句
25 是否需要打印计划和语句执行的时间
26 是否需要记录执行语句的时间
27 原始语句(服务器从客户端收到的未加分析
的语句)
28 是否记录参数信息,包括参数的序号、数据
类型和值
29 是否记录事务相关事件

MIN_EXEC_TIME0动态,系统级详细模式下,记录的最小语句执行时间,单位为毫秒。执行时间小于该值的语句不记录在日志文件中。有效值范围(0~4294967294)
USER_MODE0手动SQL 日志按用户过滤时的过滤模式,取值
0:关闭用户过滤
1:白名单模式,只记录列出的用户操作的
USERS空串手动打开 SVR_LOG_USER_MODE 时指定的用户列表。格式为:用户名:用户名:用户名

3、使用sysdba登录,执行以下SQL,更新配置

SP_REFRESH_SVR_LOG_CONFIG()

4、在dmdbms\log下面会生成dmsql_开头的文件

遇到的问题:

如果通过以上步骤,在FILE_PATH目录未生成dmsql开头的日志,请检查下目录权限是否正确

 更多资讯请访问达梦数据库 - 新一代大型通用关系型数据库 | 达梦云适配中心

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值