达梦日志分析工具DMLOG使用

news2024/9/24 13:19:44

达梦日志分析工具DMLOG

  • 1.使用工具的目的
  • 2.适用范围
  • 3.工具描述
  • 4.开启跟踪日志记录执行SQL
  • 5.使用条件及限制
  • 6.使用说明
    • 6.1使用前准备
    • 6.2使用方法和步骤
  • 7.结果解读

1.使用工具的目的

分析SQL是DBA或者数据库服务人员很重要的工作。达梦数据库通过开启SVR_LOG捕捉数据库中运行的所有SQL,并生成SQL日志文件。DMLOG工具是一款简单易用的达梦数据库SQL日志分析工具,旨在帮助运维人员统计日志中最长执行时间和执行最高频次的SQL语句,直观的反应SQL执行情况,对于SQL的优化工作提供了极大的便利。

2.适用范围

本工具适用于各种版本的DM7数据库和DM8数据库。

3.工具描述

DMLOG用于对达梦SQL日志进行统计分析,便于SQL优化人员进行查看捕获关键信息,不提供SQL优化建议。DMLOG用java语言编写,不受操作系统平台限制,大小不超过10M,在安装好Java环境后,可在各平台运行。
该工具实现的原理为:读取SQL日志到后台达梦数据库log_commit表中 ,在数据库中进行查询统计后输出excel文件结果。
Log_commit表的表结构定义如下:

CREATE TABLE "SYSDBA"."LOG_COMMIT"
(
"STARTTIME" DATETIME(6),
"SESS" VARCHAR(500),
"SQLSTR" TEXT,
"EXETIME" FLOAT,
"SQLSTR_SUB" VARCHAR(8000),
"EUER" VARCHAR(100),
"OPTYPE" VARCHAR(30)) STORAGE(USING LONG ROW, ON "MAIN", CLUSTERBTR) ;
CREATE  INDEX "IDX_EXETIME_RESULT_2021_10_12_11_22_52" ON "SYSDBA"."LOG_COMMIT"("EXETIME" ASC) STORAGE(ON "MAIN", CLUSTERBTR) ;

分别记录了根据日志分析出来的SQL开始时间,会话信息,SQL文本,执行时间,参数替换后的SQL文本,SQL执行用户信息,SQL语句操作类型(新加字段)
注:下文以新版本使用为例

新版本DMLOG 工具可自行在 在线服务平台 VIP 专区 下载或联系达梦技术服务人员获取。

老版本:
Dmlog 工具下载:Dmlog_DM7_v5.1.jar
使用说明介绍:Dmlog 小工具使用简要.pdf

4.开启跟踪日志记录执行SQL

跟踪日志文件是一个纯文本文件,以 dmsql_实例名_日期_时间命名, 默认生成在 DM 安装目录的 log 子目录下。

跟踪日志内容包含系统各会话执行的 SQL 语句、参数信息、错误信息、执行时间等。跟踪日志主要用于分析错误和分析性能问题,基于跟踪日志可以对系统运行状态进行分析。

跟踪日志配置方式
根据需要配置数据文件目录下的 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       = /home/dmdbms/sqllog
    PART_STOR       = 0
    SWITCH_MODE     = 1
    SWITCH_LIMIT    = 100000
    ASYNC_FLUSH     = 0
    FILE_NUM        = 200
    ITEMS           = 0
    SQL_TRACE_MASK  = 2:3:23:24:25
    MIN_EXEC_TIME   = 0
    USER_MODE       = 0
    USERS           =

配置 dm.ini 中 SVR_LOG = 1 启用 sqllog.ini 配置,该参数为动态参数,可通过调用数据库函数直接修改,如下所示:

SP_SET_PARA_VALUE(1,'SVR_LOG',1);

如果对 sqllog.ini 进行了修改,可通过调用以下函数即时生效,无需重启数据库,如下所示:

SP_REFRESH_SVR_LOG_CONFIG();

5.使用条件及限制

使用条件
1) 运行环境预先安装Java环境;支持liunx和windows系统运行。
说明:推荐使用java1.8版本,linux最小化安装最少要安装打印服务组件,windows下不支持java1.6版本。
2) SQL日志格式要求确保每条语句后紧跟sql语句时间,因此需确认日志生成的数据库的sql trace参数,建议使用默认参数;
3) 由于程序运行需要在后台数据库建log_commit表,建表前会删除同名表,因此如果有同名表,请先做好备份;
4) 待分析的SQL文件夹中请保证只有SQL日志,无其他文件;
5) dmlog.properties配置文件中log路径,注意windows下,使用”\”代替”\”。
6) 注:只能使用page_size为32K的库用来分析

注意:本程序只能连测试环境进行分析,切忌连生产环境!!!
使用限制
由于一页excel最大行数为65536,因此当待分析的日志量较大时,会提示超过限值警告,然后取前65535记录。
此时可以将日志切割或分批进行分析,或者分析执行时间比较长和执行时间比较高的SQL,也可以不使用替换参数功能,减少输出结果。

6.使用说明

6.1使用前准备

查看Java安装情况:

[root@dmmpp01 ~]# su - dmdba
上一次登录: 日 1120 15:02:27 CST 2022 pts/0 上
[dmdba@dmmpp01 ~]$ java -version
openjdk version "1.8.0_272"
OpenJDK Runtime Environment Bisheng (build 1.8.0_272-b10)
OpenJDK 64-Bit Server VM Bisheng (build 25.272-b10, mixed mode)

6.2使用方法和步骤

解压工具包并配置工具参数:

[root@localhost /]# unzip DMLOG8.*.zip
[root@localhost /]# cd DMLOG8.*/
[root@localhost DMLOG8.10]# vi dmlog.properties

新版分析工具取消了交互式配置界面直接配置dmlog.properties文件如下:
注意:dmlog.properties配置文件中log路径sqlpath参数,注意windows下,使用”\”代替”\”,liunx下填写正常路径即可。
在这里插入图片描述
执行jar包命令

[root@dmmpp01 DMLOG8.11]# java -jar Dmlog_DM_8.11.jar 
Linux
创建分析结果目录RESULT_2022_11_21_2_57_39成功!
----------------分析文件:dmsql_DMSERVER_20221121_025159.log----------------
/home/dmdbms/sqllog/dmsql_DMSERVER_20221121_025159.log文件已处理:5000行
/home/dmdbms/sqllog/dmsql_DMSERVER_20221121_025159.log文件已处理:20000行
/home/dmdbms/sqllog/dmsql_DMSERVER_20221121_025159.log文件已处理:25000行
/home/dmdbms/sqllog/dmsql_DMSERVER_20221121_025159.log文件已处理:30000行
/home/dmdbms/sqllog/dmsql_DMSERVER_20221121_025159.log文件已处理:35000行
/home/dmdbms/sqllog/dmsql_DMSERVER_20221121_025159.log文件已处理:40000行
----------------创建索引-------------------------
----------------创建索引成功---------------------
----------------开始分析-------------------------
----------------生成时间维度统计结果-------------
----------------生成次数维度统计结果-------------
----------------生成jfree散点图------------------
----------------生成echart统计图-----------------
----------------生成QPS统计图--------------------
----------------生成echart负载图-----------------
----------------TABLENAME:LOG_COMMIT-------------
----------------分析完毕,请查看结果-------------

运行过程如下图所示,执行完成后会按当前时间生成对应 RESULT_$DATE 文件夹,并将所有统计信息都存放该目录中。
在这里插入图片描述
在这里插入图片描述

7.结果解读

生成的 RESULT_$DATE 结果文件夹下有根据配置的执行时间和执行次数上限值命名的 excel 文件(xls)、报错的 SQL 文件(txt)、长度超过 30000 的 SQL 文件 (txt),echart 散点图及 90% 平均次数和平均耗时的 SQL 统计图 (html)。
在这里插入图片描述

1.more_than_0_ms_log_result.xls 工作表按照最大执行时间降序排序,如下图。
在这里插入图片描述
2.more_than_0_times_log_result.xls 工作表按照执行次数降序排序,如下图。
在这里插入图片描述
3.echarts_scatter_loading10.html 为 echart 散点图每个点的 SQL 信息可以显示和拷贝,如下图
在这里插入图片描述

散点图支持以下功能:
(1)筛选 SEL/DDL/INS/CAL 等分类,只用点击去除或者选择对应类别,即可显示对应 sql 在图形上分布点;
(2)支持散点图区域放大功能,鼠标指定位置,进行滚轮缩放,可放大语句。
(3)点击每个点,可获得每个点的 SQL 详细信息。
(4)点击散点图右上角可以保存图片。

4. echarts_scatter_Statistics.html 为散点图基础上生成的按照执行 90% 平均次数和平均耗时的 SQL 统计图。
在这里插入图片描述
5. echarts_qps.html 为 QPS(Queries-per-second,即每秒查询率,在数据库中指每秒执行查询 sql 的次数)折线图。
在这里插入图片描述

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

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

相关文章

SpringBoot+Vue项目实现高校学生健康打卡系统

文末获取源码 开发语言:Java 使用框架:spring boot 前端技术:JavaScript、Vue.js 、css3 开发工具:IDEA/MyEclipse/Eclipse、Visual Studio Code 数据库:MySQL 5.7/8.0 数据库管理工具:phpstudy/Navicat JD…

双通道PID控制器用于热离子发电器中真空度和温度的同时控制

摘要:本文针对真空型热离子能量转换器(发电装置)中真空压力和温度的关联性复杂控制,提出一个简便的控制方式和控制系统的解决方案,控制系统仅采用一个双通道高精度PID调节器。方案的核心技术思路是将一个可调参量转换为…

接口类型太多了,很多网工总是分不清

交换机光模块的最强科普 以太网交换机常用的光模块有四个,分别是SFP(Small Form-factor Pluggabletransceiver) 小封装可插拔收发器,GBIC(GigaBit Interface Converter)千兆以太网接口转换器,X…

往USBKey里面导入双证书专题:概念介绍、执行逻辑

相关概念 国密证书 国密的双证书体系,将证书按照使用目的的不同划分为加密证书和签名证书两种,也就是两对公私钥,二者本质一致,均为SM2密钥对,区别仅体现在用法国密CA体系中,加密密钥对由CA产生&#xff…

力扣刷题记录141.1-----34. 在排序数组中查找元素的第一个和最后一个位置

目录一、题目二、代码三、运行结果一、题目 二、代码 class Solution { public:vector<int> searchRange(vector<int>& nums, int target) {int i,j;int left,right,middle;vector<int> return_vector(2,-1);if(nums.size()<3){for(i0;i<nums.si…

mysql转sqlite3实战+部署sqlite3应用

文章目录场景mysql脚本转sqlite31.新建个sqlite3的文件并使用navicat连接准备好mysql并连接上使用navicat数据传输传输完后&#xff0c;设置主键自增修改应用程序1.添加sqlite3的驱动包2.修改sqlite3的jdbc连接配置文件3.全局替换Date类型字段为String类型4.全局替换 sql文件中…

达摩院WIDER FACE榜首近两年人脸检测MogFace CVPR论文深入解读

一、开源 1.&#xff09;论文链接&#xff1a;https://openaccess.thecvf.com/content/CVPR2022/papers/Liu_MogFace_Towards_a_Deeper_Appreciation_on_Face_Detection_CVPR_2022_paper.pdf 2.&#xff09;代码模型&#xff1a;ModelScope 魔搭社区 3.&#xff09;可玩应用…

新知实验室_初探腾讯云音视频

本文目标&#xff1a; 了解 TRTC 的基本概念 初步运行 demo 调用 API 完成进入视频房间 完成多人进入同一房间 一、腾讯 TRTC 可能有些同学并不知道 RTC 的相关概念&#xff0c; 这里先简单说一下。 WebRTC(web Real-Time Communication) 是指网站实时音视频通话技术。 这项技…

Shopro商城 高级版 Fastadmin和Uniapp进行开发的多平台商城(微信公众号、微信小程序、H5网页、Android-App、IOS-App)

Shopro商城无加密的开源源码(可用于自营外包项目(多主体)、可用于外包定制开发项目) shopro 商城&#xff0c;一款基于 uni-app 的前端模板商城。目前适配了&#xff08;小程序apph5公众号&#xff09;。 主要功能&#xff1a;登录、注册、签到、富文本、分类、购物车、筛选、…

CI/CD docker compose 部署 humpback - single mode

最近想搭一搭个人服务器&#xff0c;其中有很多东西都是通过 docker 来管理&#xff0c;每次都手动输入命令比较麻烦&#xff0c;需要一个轻量级的容器管理工具来直观轻松的管理容器和镜像。于是便相中了 humpback。 Humpback humpback 相关的详细介绍请自助传送 架构 主要组…

【无线传感器】WSN 查找两个节点之间的最短路径并发送数据(Matlab代码实现)

&#x1f468;‍&#x1f393;个人主页&#xff1a;研学社的博客 &#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜…

前后端分离项目,vue+uni-app+php+mysql教室预约系统设计与实现(H5移动项目)

功能模块 【后台管理功能模块】 系统设置&#xff1a;设置关于我们、联系我们、加入我们、法律声明 广告管理&#xff1a;设置小程序首页轮播图广告和链接 留言列表&#xff1a;所有用户留言信息列表&#xff0c;支持删除 会员列表&#xff1a;查看所有注册会员信息&#xff0c…

【力扣】787. K 站中转内最便宜的航班加权——有向图最短路径

前言 我感觉这题比较有代表性&#xff0c;所以记录一下&#xff0c;这题是加权有向图中求最短路径的问题。 题目 787. K 站中转内最便宜的航班 动态规划 假设有一条路径是[src, i, ..., j, dst]&#xff0c;解法一子问题的定义是[src, i, ..., j]&#xff0c;解法二子问题…

面经汇总--校招--北京顺丰同城

文章目录&#x1f525;1.一面&#x1f525;2.二面&#x1f525;3. 三面&#x1f525;4. 结果&#x1f525;1.一面 你对Spring aop的理解 面向切面编程&#xff0c;可以对某个方法前后加入自己想执行的方法函数。底层是动态代理&#xff0c;默认jdk动态代理&#xff0c;没有实现…

Redis 通用命令(keys,help,mset,exists,expire,ttl,tab补全)

目录 1.help【command】 2.tab自动补全 3. KEYS pattern&#xff08;模板&#xff09;&#xff08;不建议再生产环境上使用&#xff09; 4.del 删除指定的key&#xff0c;value也会删除&#xff08;也可以批量删除&#xff09; 5.MSET&#xff08;批量插入键值对&#xf…

【C语言】反序加密(非文件)

《算法集训传送门》 &#x1f449;引言 铭记于心&#x1f389;✨&#x1f389;我唯一知道的&#xff0c;便是我一无所知&#x1f389;✨&#x1f389;&#x1f496; ❄️我们的算法之路❄️&#x1f496;众所周知&#xff0c;作为一名合格的程序员&#xff0c;算法 能力 是不可…

Python OpenCV实现鼠标绘制矩形框和多边形

Python OpenCV实现鼠标绘制矩形框和多边形 目录 Python OpenCV实现鼠标绘制矩形框和多边形 1. OpenCV鼠标事件操作说明 &#xff08;1&#xff09;setMouseCallback函数说明 &#xff08;2&#xff09;回调函数onMouse说明 &#xff08;3&#xff09;event 具体说明&…

Flutter高仿微信-第24篇-隐私政策

Flutter高仿微信系列共59篇&#xff0c;从Flutter客户端、Kotlin客户端、Web服务器、数据库表结构、Xmpp即时通讯服务器、视频通话服务器、腾讯云服务器全面讲解。 详情请查看 效果图&#xff1a; 实现代码&#xff1a; /*** 显示服务条款、隐私政策对话框*/ static void show…

如何修复老照片?这三个方法建议收藏

当你在图书馆查阅一些资料时&#xff0c;会发现里面有许多的老照片&#xff0c;通过这些老照片我们能大概了解到那个时期的建筑特色、人们的穿衣特色等等。但由于那个时候的照片只有黑白&#xff0c;再加上时间悠久&#xff0c;老照片已经过于模糊了&#xff0c;影响到我们进行…

线性回归的梯度下降法——机器学习

一、实验内容 理解单变量线性回归问题&#xff1b;理解最小二乘法&#xff1b;理解并掌握梯度下降法的数学原理&#xff1b;利用python对梯度下降法进行代码实现&#xff1b; 二、实验过程 1、算法思想 梯度下降法是一阶最优化算法。 要使用梯度下降法找到一个函数的局部极小值…