当前位置: 首页 > news >正文

达梦数据库sql日志说明

        SQL日志用于记录用户执行的SQL语句、参数信息、错误信息等。用户可以通过设置INI参数SVR_LOG来开启SQL日志功能,并且可以在sqllog.ini文件中进行SQL日志的详细配置,例如指定SQL日志中需要被记录的语句类型、SQL日志文件切换模式以及SQL日志占用空间等,详细介绍请参考《DM8系统管理员手册》。

        为了帮助用户更好分析SQL日志,本文档将针对事务相关SQL日志中各字段含义进行详细说明。

1.事务启动、提交、回滚日志

  • 事务启动

        事务启动时生成一条SQL日志,如下所示:

2023-12-13 11:25:46.537 (EP[0] sess:0x7f23a823c1e8 thrd:31811 user:SYSDBA trxid:480521 stmt:NULL appname:manager.exe) TRX: START
  • 事务提交

        事务提交时生成一条SQL日志,如下所示:

2023-12-13 11:27:45.003 (EP[0] sess:0x7f23a823c1e8 thrd:31811 user:SYSDBA trxid:480521 stmt:NULL appname:manager.exe) TRX: COMMIT

        事务提交时的SQL日志也可能包含LSN信息,如下所示:

2023-12-13 11:27:45.003 (EP[0] sess:0x7f23a823c1e8 thrd:31811 user:SYSDBA trxid:480521 stmt:NULL appname:manager.exe) TRX: COMMIT LSN[12592783]

        LSN[12592783]表示事务提交的回滚记录的lsn。

  • 事务回滚

        事务回滚时生成一条SQL日志,如下所示:        

2023-12-13 11:30:26.537 (EP[0] sess:0x7f23a823c1e8 thrd:31811 user:SYSDBA trxid:480521 stmt:NULL appname:manager.exe) TRX: ROLLBACK

2.事务封锁等待日志

        当事务因封锁冲突而产生封锁等待时,生成相应的SQL日志。

        生成SQL日志的时机:事务由wait状态变更为其它状态时记录。

        当前存在两种版本的锁等待SQL日志,如果可以准确获取当前事务所等待的其他事务信息,则生成精确版SQL日志。然而在部分场景下无法准确获取当前事务所等待的其他事务信息,典型的如DMDSC场景,有时本地事务仅知道自身对于某个锁发生了锁等待,但是无法获取具体的冲突信息,因此只能打印粗略版SQL日志。

        精确版SQL日志如下所示:

2023-12-13 11:25:46.537 (EP[0] sess:0x7f23a823c1e8 thrd:31811 user:SYSDBA trxid:480521 stmt:NULL appname:manager.exe) trx[480521] LOCK_TID (mode:X, table id:1143) wait for 3 trxs, trx[480511, 480512, 480513] used time:23896(ms)

        以上述SQL日志为例,各字段含义如下:

  • trx[480521]

        表示当前事务ID。

  • LOCK_TID

        表示当前锁类型为事务锁。如果为对象锁,则此处将是LOCK_OBJ。

  • mode:X 

        X表示当前封锁模式为排他锁,除此之外还可以为S共享锁、IS意向共享锁、IX意向排他锁

  • table id:1143

        表示当前对象ID。

  • wait for 3 trxs

        表示当前事务所等待的事务个数为3。

  • trx[480511, 480512, 480513]

        表示当前事务等待的3个事务的ID分别为480511、480512、480513。

  • used time:23896(ms)

        表示本次锁等待的总时间。

        粗略版SQL日志如下所示:

2023-12-13 11:25:46.537 (EP[0] sess:0x7f23a823c1e8 thrd:31811 user:SYSDBA trxid:480521 stmt:NULL appname:manager.exe) trx[480521] LOCK_TID (mode:X, table id:1143, tid[480511]) wait used time:23896(ms)

        以上述SQL日志为例,各字段含义如下:

  • tid[480511]

        表示当前事务等待的事务ID为480511。由于该SQL日志为粗略版SQL日志,因此当前事务可能不止等待这一个事务,但是当前节点无法获取更多的等待事务信息,用户可以通过追溯ID为480511的事务来手动分析获取更多信息。

        对于其他字段,含义同精确版SQL日志。

        对于以上粗略版SQL日志,由于是LOCK_TID类型,至少会打印一个等待事务ID,根据该事务ID可以进一步追溯其他等待事务信息。但如果是LOCK_OBJ类型的粗略版SQL日志,则可能不会打印等待事务ID,此时需要根据当前对象名,检查附近日志中是否有对该对象的操作,以此来进一步分析事务封锁冲突,该方法不保证能成功检索到冲突操作。比如对触发器对象的封锁冲突,因为SQL日志中不会打印触发器名因此无法检索。

3.回滚页相关日志

        当申请、清理回滚页时,生成相应的SQL日志。

  1、alloc pseg page日志

        表示预申请回滚页空间。

        生成时机:预申请回滚页空间。

2024-03-15 14:14:20.362 (EP[0] sess:0x7f9740010bd8 thrd:8139 user:SYSDBA trxid:32072 stmt:NULL appname:disql) trx[32072] alloc pseg page[0, 28557], page_lsn[10612892], n_pages[13843]

        以上述SQL日志为例,各字段含义如下:

  • trx[32076]

        表示当前事务ID。

  • alloc pseg page[0, 28557]

        两个数值依次表示回滚页的文件id,回滚页的页ID。

  • page_lsn[10612892]

        回滚页的LSN。

  • n_pages[13843]

        事务实际使用的回滚页个数。

  2、purg2_page

        表示PURGE一个回滚页。

        生成时机:purge一个回滚页。

2023-12-13 11:25:46.537 (EP[0] sess:0x7f23a823c1e8 thrd:31811 user:SYSDBA trxid:480521 stmt:NULL appname:manager.exe) trx[32076]: purg2_page free pseg page (0, 14169), page_lsn = 14169

        以上述SQL日志为例,各字段含义如下:

  • trx[32076]

        表示当前事务ID。

  • pseg_page_free_for_insert_only_trx

        接口名,purge一个回滚页。

  • free pseg page (0, 14169)

        两个数值依次表示回滚页的文件id,回滚页的页ID。

  • page_lsn = 14169

        回滚页的页id。

  3、pseg_reset_last_page

        清理事务槽,重置最后一个回滚页信息。

        生成时机:对事务执行回滚操作。

2023-12-13 11:25:46.537 (EP[0] sess:0x7f23a823c1e8 thrd:31811 user:SYSDBA trxid:480521 stmt:NULL appname:manager.exe) trx[32076]: pseg_reset_last_page free pseg page (0, 14169)

        以上述SQL日志为例,各字段含义如下:

  • trx[32076]

        表示当前事务ID。

  • pseg_reset_last_page

        接口名,清理事务槽,重置最后一个回滚页信息。

  • free pseg page (0, 14169)

        两个数值依次表示回滚页的文件id,回滚页的页ID。

  4、pseg_rollback

        对事务执行回滚操作。

        生成时机:对事务执行回滚操作。

2023-12-13 11:25:46.537 (EP[0] sess:0x7f23a823c1e8 thrd:31811 user:SYSDBA trxid:480521 stmt:NULL appname:manager.exe) trx[32076]: pseg_rollback free pseg page (0, 14169) page_lsn[12592786]

        以上述SQL日志为例,各字段含义如下:

  • trx[32076]

        表示当前事务ID。

  • pseg_rollback

        接口名,表示对事务执行回滚操作。

  • free pseg page (0, 14169)

        两个数值依次表示回滚页的文件id,回滚页的页ID。

  • page_lsn[12592786]

        回滚页的lsn。

  5、pseg_page_free_for_insert_only_trx

        表示纯INSERT事务提交时,进行释放回滚页操作。

        生成时机:事务提交的第2阶段

2023-12-13 11:25:46.537 (EP[0] sess:0x7f23a823c1e8 thrd:31811 user:SYSDBA trxid:480521 stmt:NULL appname:manager.exe) trx[32076]: pseg_page_free_for_insert_only_trx free pseg page (0, 14169), page_lsn = 12592786

        以上述SQL日志为例,各字段含义如下:

  • trx[32076]

        表示当前事务ID。

  • pseg_page_free_for_insert_only_trx

        接口名,纯insert事务提交时,进行释放回滚页操作。

  • free pseg page (0, 14169)

        两个数值依次表示回滚页的文件id,回滚页的页ID。

  • page_lsn = 12592786

        回滚页的lsn。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 深蓝学院-- 量产自动驾驶中的规划控制算法 小鹏
  • 监控易监测对象及指标之:全面监控GBase数据库
  • 【MySQL】MySQL和Workbench版本兼容问题
  • MATLAB绘图:4.统计图表
  • Microsoft Edge 五个神级插件
  • 鸿蒙Harmony应用开发,数据驾驶舱登录页面的实现
  • 电子元件制造5G智能工厂物联数字孪生平台,推进制造业数字化转型
  • linux内核 devtmpfs介绍
  • 【学习资料】袋中共36个球,红白黑格12个,问能一次抽到3个红4个白5个黑的概率是多少?
  • springboot家政服务管理系统—计算机毕业设计源码34242
  • 苹果CMS插件:优化蜘蛛访问内容,提升百度收录率
  • 设计模式之外观设计模式
  • 基于菜鸟教程的flask学习记录 —— Flask视图函数
  • 零基础考过软考信息系统项目管理师经验分享
  • saltstack高级用法
  • C++回声服务器_9-epoll边缘触发模式版本服务器
  • eclipse(luna)创建web工程
  • idea + plantuml 画流程图
  • iOS | NSProxy
  • Java 多线程编程之:notify 和 wait 用法
  • JAVA并发编程--1.基础概念
  • mac修复ab及siege安装
  • mongo索引构建
  • Python利用正则抓取网页内容保存到本地
  • Rancher-k8s加速安装文档
  • react-native 安卓真机环境搭建
  • Spring Boot MyBatis配置多种数据库
  • V4L2视频输入框架概述
  • webpack+react项目初体验——记录我的webpack环境配置
  • webpack项目中使用grunt监听文件变动自动打包编译
  • 分布式任务队列Celery
  • 技术胖1-4季视频复习— (看视频笔记)
  • 如何设计一个微型分布式架构?
  • 手机端车牌号码键盘的vue组件
  • 移动端 h5开发相关内容总结(三)
  • nb
  • Spark2.4.0源码分析之WorldCount 默认shuffling并行度为200(九) ...
  • ​520就是要宠粉,你的心头书我买单
  • ​iOS实时查看App运行日志
  • ‌移动管家手机智能控制汽车系统
  • #我与Java虚拟机的故事#连载10: 如何在阿里、腾讯、百度、及字节跳动等公司面试中脱颖而出...
  • (13)Latex:基于ΤΕΧ的自动排版系统——写论文必备
  • (145)光线追踪距离场柔和阴影
  • (C++17) std算法之执行策略 execution
  • (Redis使用系列) SpringBoot 中对应2.0.x版本的Redis配置 一
  • (附源码)php投票系统 毕业设计 121500
  • (附源码)spring boot智能服药提醒app 毕业设计 102151
  • (经验分享)作为一名普通本科计算机专业学生,我大学四年到底走了多少弯路
  • (切换多语言)vantUI+vue-i18n进行国际化配置及新增没有的语言包
  • (一)【Jmeter】JDK及Jmeter的安装部署及简单配置
  • (转) SpringBoot:使用spring-boot-devtools进行热部署以及不生效的问题解决
  • (转)memcache、redis缓存
  • (转)详解PHP处理密码的几种方式
  • .NET / MSBuild 扩展编译时什么时候用 BeforeTargets / AfterTargets 什么时候用 DependsOnTargets?
  • .net CHARTING图表控件下载地址