达梦8-SQL日志配置与分析工具

news2024/10/11 20:25:45

        以 dmsql_数据库实例名.log 类型命名的文件为跟踪日志文件,跟踪日志内容包含系统各会话执行的 SQL 语句、参数信息、错误信息等。跟踪日志主要用于分析错误和分析性能问题,比如,可以挑出系统现在执行速度较慢的 SQL 语句,进而对其进行优化。

        打开跟踪日志对系统的性能有较大影响,一般用于查错和调优的时候才会打开,默认情况下系统是关闭跟踪日志的。当把 dm.ini 参数 SVR_LOG 设置为 1,才会打开 SQL 日志,若需要跟踪日志但对日志的实时性没有严格的要求,又希望系统有较高的效率,可以设置参数 SQL_TRACE_MASK 和 MIN_EXEC_TIME 只记录关注的相关记录,减少日志总量。或者设置sqllog.ini参数ASYNC_FLUSH打开SQL日志异步刷盘提高系统性能。

在记录完成后,可执行: SP_SET_PARA_VALUE(1, 'SVR_LOG', 0); 进行关闭跟踪日志。

SQL日志文件是一个纯文本文件。

--命名格式

dmsql_实例名[_模式名][_用户名][_日期_事件].log

当sqllog.ini中存在多个有效模式名,日志文件名中会添加“_模式名”,否则不添加,

当sqllog.ini参数PART_STOR=1时,日志文件名中会添加“_用户名”,否则不添加,

当sqllog.ini参数SWITCH_MODE不为0时,日志文件名中会添加“_日期_时间”,否则不添加。

        SQL日志文件缺省生成在DM安装目录的log子目录下,管理员可通过sqllog.ini参数FILE_PATH设置其生成路径。

        系统中SQL日志的缓存时分块循环使用的,管理员可根据系统执行的语句情况以及压力情况设置恰当的日志缓存块大小及预留的缓存块个数。当预留的块不足以记录系统产生的任务时,系统会分配新的 用后即弃的缓存块,但是总的空间大小由sqllog.ini参数BUF_TOTAL_SIZE控制,管理员可根据实际情况进行设置。

1 查看SVR_LOG参数

[dmdba@kylin10 DAMENG]$ cat dm.ini | grep SVR_LOG

SVR_LOG_NAME= SLOG_ALL  #Using which sql log sys in sqllog.ini

SVR_LOG= 0   #Whether the Sql Log sys Is open or close. 1:open, 0:close, 2:use switch and detail mode. 3:use not switch and simple mode.

 

2 SQL日志使用方法 

sqllog.ini中配置块在INI参数SVR_LOG=1时使用。

sqllog.ini中可以配置多个模式,不同模式可以有不同的配置项,例如:记录过滤掩码、刷盘方式、文件切换方式等。当模式的items设置不同时,使用其并集。仅当配置的模式名存在于INI参数SVR_LOG_NAME时,该模式名对应配置才会生效。当配置为多模式时,会在日志文件名中的实例名后面加上该日志文件对应的模式名。

缺省情况下,SVR_LOG_NAME为SLOG_ALL。若SVR_LOG为1,但不存在sqllog.ini或sqllog.ini中配置的多个模式名均不在INI参数SVR_LOG_NAME中时,按照各配置项的系统默认值记录SQL日志。

2.1 sqllog.ini文件配置

[dmdba@kylin10 DAMENG]$ cat sqllog.ini 
#SQL日志BUFFER占用空间上限
BUF_TOTAL_SIZE  = 10240      #SQLs Log Buffer Total Size(K)(1024~1024000)
#一块SQL日志BUFFER的空间大小
BUF_SIZE         = 1024          #SQLs Log Buffer Size(K)(50~102400)
#系统保留的SQL日志缓存的个数,有效值1-100
BUF_KEEP_CNT    = 6             #SQLs Log buffer keeped count(1~100)

[SLOG_ALL]
#SQL日志文件所在的目录路径,通常在安装目录dmdbms/log目录下。也可以手动指定
FILE_PATH    = ../log
#SQL日志分区存储,表示日志分区存储,表示SQL日志进行分区存储的划分条件
PART_STOR    = 0
#SQL日志文件切换的模式,2表示按文件大小切换
SWITCH_MODE  = 2
#不同切换模式switch_mode下,意义不同
SWITCH_LIMIT   = 128
#是否打开SQL日志异步刷盘功能。0否,是
ASYNC_FLUSH   = 1
#总共记录多少个日志文件,当日志文件达到这个设定值以后,再生成新的文件时,会删除最早那个日志文件
FILE_NUM = 5
#指定一条SQL日志中应包含的内容,指定方式为ITEMS=位号,0表示所有
ITEMS    = 0 
#指定SQL日志中需要被记录的列
SQL_TRACE_MASK  = 1 
#详细模式下,记录的最小语句执行时间,单位毫秒。执行时间小于该值的语句不记录在日志文件。
MIN_EXEC_TIME = 0
#SQL日志按用户过滤时的过滤模式
USER_MODE   = 0 
#打开SVR_LOG_USER_MODE时指定的用户列表。格式为:用户名:用户名
USERS =
EXECTIME_PREC_FLAG = 0 
    
[SLOG_ERROR]
#指定SQL日志中需要被记录的语句类,23为记录存在错误的语句(错误语法,语义分析错误等等)
SQL_TRACE_MASK = 23
FILE_PATH      = ../log
    
[SLOG_DDL]
#3包含DDL类型相关语句(等同于同时设置11-17)
SQL_TRACE_MASK = 3
    
[SLOG_LONG_SQL]
#记录执行语句、执行语句的时间、语句的影响行数(只有增删改查有行数,其他语句无行数)
SQL_TRACE_MASK = 25
#详细模式下,记录的最小语句执行时间,单位毫秒,执行时间小于该值的语句不记录在日志文件中。
MIN_EXEC_TIME = 60000

2.2 sqllog.ini详细参数说明 

BUF_TOTAL_SIZE = 10240
SQL日志BUFFER占用空间的上限。单位KB,取值范围1024-1024000。

BUF_SIZE = 1024
一块SQL日志BUFFER的空间大小,单位KB,取值范围50-409600。

BUF_KEEP_CNT = 6
系统保留SQL日志缓存的个数,取值范围1-100。

SQL_TRACE_MASK = 1
指定SQL日志中需要被记录的语句类型。指定方式:SQL_TRACE_MASK=位号:位号:位号…….。
位号含义:
	1:全部记录(等同于同时设置4-31)
	2:DML类型相关语句(等同于同时设置4-10)
	3:DDL类型相关语句(等同于同时设置11-17)
	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:记录执行语句的时间、语句的影响行数,25和26选其一,同时存在,25生效。
	27:记录原始语句(服务器从客户端收到的未加分析的语句)
	28:记录参数信息,包括参数的序号、数据类型和值
	29:记录事务相关事件,包括锁类型、锁等待时间等。
	30:记录XA事务
	31:记录数据库操作,包括登录成功、登录失败、退出登录。

FILE_NUM = 5
总共记录多少个日志文件,当日志文件达到这个设定值以后,在生成新的文件时,会删除最早的那个日志文件。日志文件名称中将包含日期时间信息。
当这个参数设置为0时,只会生成两个日志文件相互切换着记录,取值范围0-1024。例如当file_num=0,实例名为pdm时,根据当时的日期时间,生成的日志名称可以为:
dmsql_pdm_20180719_163701.log, 
dmsql_pdm_20180719_163702.log

SWITCH_MODE = 2
表示SQL日志文件切换模式:
	0:不切换;
	1:按文件中记录数量切换;
	2:按文件大小切换;
	3:按时间间隔切换。

SWITCH_LIMIT = 128
不同切换模式SWITCH_MODE下,意义不同:
(1)按数量切换时,一个日志文件中的SQL记录条数达到多少条之后系统会自动将日志切换到另一个文件中。取值范围1000-10000000.
(2)按文件大小切换时,一个日志文件达到该大小后,系统会将日志切换到另一个文件中,单位MB。取值范围1-2000.
(3)按时间间隔切换时,每个指定的时间间隔,按文件新建时间进行文件切换,单位分钟,取值范围1-30000。

ASYNC_FLUSH = 1
是否打开SQL日志异步刷盘功能。
	0:否,采用实时刷盘;
	1:是,采用异步刷盘。

MIN_EXEC_TIME = 0
详细模式下,记录的最小语句执行时间,单位毫秒。执行时间小于该值的语句不记录在日志文件中。取值范围:0-4294967294.

FILE_PATH = ../log
SQL日志文件所在目录路径。默认生成在达梦安装目录的log目录下。

PART_STOR = 0
SQL日志分区存储,表示SQL日志进行分区存储的划分条件。
	0:不划分
	1:USER:根据不同用户分布存储

ITEMS = 0
指定一条SQL日志中应包含的内容,指定方式为ITEMS=位号:位号:位号…。例如ITEMS=3:5:7,表示包含第3、第5、第7位代表的内容。
	0: 表示记录所有的列(等同于同时设置1-12)
	1: TIME 执行时间
	2: SEQNO 服务器的站点号
	3: SESS 操作的会话地址
	4:THRD 线程地址
	5: USER 执行的用户
	6: TRXID 事务ID
	7:STMT 语句地址
	8: APPNAME 客户端工具
	9: IP 客户端IP
	10: STMT_TYPE语句类型。分别为
	11: INFO 记录当前执行的SQL语句
	12: RESULT 运行结果,包括运行用时、影响行数和EXEC_ID

USER_MODE = 0
SQL日志按用户过滤时的过滤模式,取值
	0:关闭用户过滤
	1:白名单模式,只记录列出的用户操作的SQL日志
	2:黑名单模式,列出的用户不记录SQL日志

users = 
打开SVR_LOG_USER_MODE时指定的用户列表。格式为:用户名:用户名:用户名,一般为空串。

EXECTIME_PREC_FLAG = 0
设置SQL日志中执行时间EXECTIME的时间单位。
	0:单位为毫秒MS
	1:单位为微秒US

2.3 开启SQL日志记录 

查看SVR_LOG参数
1、	SQL查询
SQL> select * from v$parameter where name like 'SVR_LOG%';或者
SQL> select * from v$dm_ini where para_name like 'SVR_LOG%';
2、	查看配置文件dm.ini
cat dm.ini | grep SVR_LOG
3、	开启SQL日志记录
sp_set_para_value(1,’SVR_LOG’,1);
4、	调用存储过程生效
call sp_refresh_svr_log_config();

 2.4 SQL日志内容

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 运行结果,包括运行用时和影响行数(可能没有)

 

2.5 关闭SQL日志跟踪记录 

sp_set_para_value(1,’SVR_LOG’,0);

3 达梦 SQL 日志分析工具 DMLOG 

运行环境需预先安装 Java 环境,DMLOG 支持在 Liunx 和 Windows 系统运行。推荐使用 java1.8 版本,linux 最小化安装最少要安装打印服务组件,windows 下不支持 java1.6 版本。

需要初始化页大小为32K的库,进行操作。

程序运行需要在后台数据库建 log_commit 表,建表前会删除同名表。 

java版本

参数文件

[dmdba@KylinV10 DMLOG8.13]$ cat dmlog.properties
#分析非MPP产生的日志为0,MPP产生的日志为1
ismpp=0

#数据库IP地址
ip=192.168.6.110

#数据库端口号
port=5239

#数据库用户名
username=SYSDBA

#数据库密码
password=Dameng123

#根据已存在的数据生成结果为1,根据LOG日志新生成数据为0
use_result=0

#SQL日志的文件夹绝对路径,并保证文件夹中只有SQL日志文件,路径请用两个反杠,例如:D:\\360Downloads\\log
sqlpath=/dm8/log/log_fenxi

#您想分析多少毫秒以上的SQL语句
time=0

#您想分析执行多少次以上的SQL语句
frequency=0

#此参数已废弃,excel中增加一列替换参数后的sql
is_replace=1

#参数队列的长度,默认4000,当出现找不到有效参数时可以适当加大此参数
queue_length=40000

#散点图中最大执行时间ms LEAST(exetime,2000) 
max_exetime=10000

#echarts散点图中最小执行时间ms(DML、SEL、UPD、INS、DEL,不包含DDL、CAL)
min_exetime=100

#取值范围(0~100),echart散点图中取小于min_exetime多少百分比的数据
e_percent=10

#是否生成excel的统计结果
if_excel=1

#日志表的表名
tab_name=log_commit
#此处填入待拆分的TRXID,将把该事务的日志单独写入文件中,如果非空则只做事务拆分,不做其他分析
trx_id=

#待分析事务的日志文件名,此处为空则分析整个文件夹中的所有文件
file_name=

运行

[dmdba@KylinV10 DMLOG8.13]$ java -jar Dmlog_DM_8.13.jar  

 

生成的文件

 

more_than_0_ms_log_result.xls:

 

more_than_0_times_log_result.xls: 

 

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2205758.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

React学习过程(持续更新......)

React学习过程(持续更新…) 创建react的hello项目 使用node创建create-react-app脚手架项目 //首先你得先安装node,这里不做详细教程,我使用的node为20.18.0 npm isntall create-react-app -g //全局安装create-react-app crea…

Web安全常用工具 (持续更新)

前言 本文虽然是讲web相关工具,但在在安全领域,没有人是先精通工具,再上手做事的。鉴于web领域繁杂戎多的知识点(工具是学不完的,哭),如果你在本文的学习过程中遇到没有学过的知识点&#xff0…

【笔记】Day2.3.2数据校验

此项目中有两种数据校验方式 1.hibernate-validated注解方式 在controller头上开启数据校验模式需要加入Validated 然后就可以 在参数前面加入任意的数据校验里的注解 例如;:NotNull() NotEmpty()等 面对字符串型的数据校验 参数前可以使用NotBlank()等 而面对对象/DTO实体的…

mongodb GUI工具(NoSQLBooster)

介绍 跨平台的MongoDB GUI工具,支持Windows、macOS和Linux。自带服务器监控工具、Visual Explain Plan、查询构建器、SQL查询等功能。提供免费版本,但功能相比付费版本有所限制。 免费版可供个人/商业使用,但功能有限。 安装成功后&#x…

让你的Mac电脑风扇工作起来,能够控制风扇的实用小工具

不知道你们有没有这个苦恼,Mac电脑明明自带散热风扇,但是很少工作,所以总是会有发热的问题,虽然电脑支架能够一定程度解决热量无法散出的问题,但是总归是不如风扇工作散热的效果好 那么如何让你的Mac风扇工作起来呢&a…

UE4 材质学习笔记08(雨滴流淌着色器/雨水涟漪着色器)

一.雨滴流淌着色器 法线贴图在红色通道和绿色通道上,那是法线的X轴和Y轴,在蓝色通道中 我有个用于雨滴流淌的蒙版,在Alpha通道中,有个时间偏移蒙版。这些贴图都是可以在PS上制作做来的,雨滴流淌图可以直接用笔刷画出来…

ModelMapper的常见用法 ,号称是beanUtils.copyProp....的升级版??,代码复制粘贴即可复现效果,so convenient

官网案例 以下将官网案例做一个解释 1)快速入门 递归遍历源对象的属性拷贝给目标对象 拷贝对象下对象的属性值 Data class Order {private Customer customer;private Address billingAddress; }Data class Customer {private Name name; }Data class Name {pr…

ubuntu24 finalshell 无法连接ubuntu服务器, 客户端无法连接ubuntu, 无法远程连接ubuntu。

场景: 虚拟机新创建一个最小化的ubuntu服务器,使用finalshell连接服务,发现连接不上。 1. 查看防火墙ufw 是否开启,22端口是否放行 2. 查看是否安装openssh server, 并配置 我的问题是安装了openssh server 但是没有配置root可…

计算湘军,征程无限!麒麟信安受邀出席2024世界计算大会

2024世界计算大会 9月24日上午,以“智算万物 湘约未来——算出新质生产力”为主题的2024世界计算大会在长沙开幕。中共湖南省委书记沈晓明出席,中共湖南省委副书记、省人民政府省长毛伟明致欢迎辞,工业和信息化部党组成员谢远生出席并致辞&am…

fastdfs下的doc文件可以访问,但是图片无法访问报错404,解决记录

fastdfs下的doc文件可以访问,但是图片无法访问报错404 以下内容主要讲linux的问题 以下内容主要讲linux的问题 以下内容主要讲linux的问题 以下内容主要讲linux的问题 以下内容主要讲linux的问题 第1项:查看Nginx的日志 可以先去查看Nginx的日志,在你Nginx的安装目录下的lo…

一分钟带你了解巧手打字通在线学习平台

巧手打字通平台简介 巧手打字通是一个专为打字初学者,特别是中小学生量身设计的在线打字练习平台。该平台通过科学、有趣且高效的教学方式,帮助用户快速掌握打字技巧,提升打字速度和准确率。 打字学习路径 平台提供了整套的从入门到精通的…

BTB结构分析

I-BTB 每个entry对应一条指令;IBTB相较于其他的结构,有最大的tag开销,因为每个entry都有tag域段;entry内部没有冗余信息,每个信息都是必须的,同时每个entry的内容都不会有重复;每分配一个新的br…

过拟合 overfitting

from [Approaching Any Machine Learning Problem] 人话理解 过拟合的重点在于在训练集上的表现上升,而测试集的表现没有像在训练集上表现的这么好,就算过拟合。分的细的话可以分为测试集表现下降和保持稳定,或者小幅度上升。 详细上下文 …

PAT甲级-1013 Battle Over Cities

题目 题目大意 给定一个城市图,如果攻陷一个城市,该城市连接的所有路都要被销毁。要求计算出连通剩余的城市最少需要修建几条路。该图有n个顶点,m条边,k个重点城市。分别求出每个重点城市被攻陷,连通剩余城市需要修建…

ALV 和 导出 Excel 导出负号前置

CONVERSION_EXIT_Z0001_OUTPUT FUNCTION conversion_exit_z0001_output. *"---------------------------------------------------------------------- *"*"本地接口: *" IMPORTING *" REFERENCE(INPUT) *" EXPORTING *"…

javafx中root的invoke方法报错Method too large问题记录

问题描述   在使用javafx绘制PC桌面程序页面时&#xff0c;使用到了tableview&#xff0c;tableview可以很方便的维护一个可编辑的表&#xff0c;简易代码如下。 var bomList observableListOf<BomContent.BomsInfo>()tableview(bomList) {column("客户名称"…

虚拟内存及内存管理机制

图源自 小林coding 虚拟内存是什么&#xff1f; 虚拟内存是一种计算机系统管理内存的技术&#xff0c;它使操作系统能够将物理内存&#xff08;RAM&#xff09;和硬盘存储结合使用。虚拟内存的主要作用包括以下几点&#xff1a; 扩展物理内存的使用&#xff1a; 虚拟内存允许…

一种用于超稳激光的数字控制锁频电路

摘要 超稳激光具有超高的频率稳定度和极窄线宽等优点&#xff0c;广泛应用于各种精密测量物理实验。为了确保不引入额外开关噪声&#xff0c;其频率锁定电路通常采用模拟电路实现&#xff0c;但是模拟控制电路存在锁定参数调节不方便、难以实现自动锁定和远程控制等方面的不足。…

【技术】Jaskson的序列化与反序列化

文章目录 概念解释1.Jasksona.JSONJSON 的基本特点JSON 的基本结构JSON 示例 b.ObjectMapper类 2.序列化与反序列化a.序列化对象序列化集合序列化ListSetMap b.反序列化反序列化单个对象反序列化集合对象 概念解释 1.Jaskson Jackson 是一个用于处理 JSON 数据的 Java 库,所以…

大模型烧钱战,百度云亟需突围之路

百度云在人工智能大模型领域投入了大量资源&#xff0c;但高昂的研发、运营成本与压力使其在盈利方面遭遇了重大挑战&#xff0c;这成了百度集团必须正视的问题。 转载&#xff1a;科技新知 原创 作者丨萧维 编辑丨蕨影 上个月末&#xff0c;以“智能跃迁”为主题的百度云智大…