KingbaseES V8R6运维案例之---wal日志解析DML操作
案例说明:
通过sys_waldump解析DML操作,获取DML操作的日志条目具体内容。
适用版本:
KingbaseES V8R3/R6
一、DML事务操作对应的wal日志文件
# 查看当前online的wal日志文件
prod1=# select pg_current_wal_lsn(),pg_walfile_name(pg_current_wal_lsn()),pg_walfile_name_offset(pg_current_wal_lsn());
pg_current_wal_lsn | pg_walfile_name | pg_walfile_name_offset
--------------------+--------------------------+-----------------------------------
4/5C0251D8 | 0000001D000000040000005C | (0000001D000000040000005C,152024)
(1 row)
##如上所示,当前事务操作的wal日志flush到“0000001D000000040000005C”对应的日志文件。
二、sys_waldump解析wal日志
1、分析‘insert’操作日志
prod1=# select pg_current_wal_lsn();
pg_current_wal_lsn
--------------------
4/5C024788
(1 row)
prod1=# insert into tb1 values (10,'tom');
INSERT 0 1
prod1=# select pg_current_wal_lsn();
pg_current_wal_lsn
--------------------
4/5C024820
(1 row)
prod1=# insert into tb1 values (20,'jerry');
INSERT 0 1
prod1=# select pg_current_wal_lsn();
pg_current_wal_lsn
--------------------
4/5C024890
(1 row)
如下图所示:insert操作对应的rmgr: Heap,操作类型:INSERT,每一行操作都代表一个事务,完成后立刻commit,在记录中记录事务的xid,及对象filenode。
2、分析‘update’操作日志
prod1=# select pg_current_wal_lsn();
pg_current_wal_lsn
--------------------
4/5C024890
(1 row)
prod1=# update tb1 set name='rose' where id=20;
UPDATE 1
prod1=# select pg_current_wal_lsn();
pg_current_wal_lsn
--------------------
4/5C024968
(1 row)
如下图所示:update操作对应的rmgr: Heap,操作类型:HOT_UPDATE,每一行操作都代表一个事务,完成后立刻commit,在记录中记录事务的xid,及对象filenode。
3、分析‘delete’操作日志
prod1=# select pg_current_wal_lsn();
pg_current_wal_lsn
--------------------
4/5C024968
(1 row)
prod1=# delete from tb1 where id=20;
DELETE 1
prod1=# select pg_current_wal_lsn();
pg_current_wal_lsn
--------------------
4/5C0249F8
(1 row)
如下图所示:delete操作对应的rmgr: Heap,操作类型:DELETE,每一行操作都代表一个事务,完成后立刻commit,在记录中记录事务的xid,及对象filenode。
三、总结
通过对wal日志的解析,可以加深DML事务操作的理解及获取事务在wal日志中的具体操作记录信息,可用于数据库事务操作的分析和数据的恢复。
相比较DDL操作,DML操做的wal日志记录相对比较简洁。
KingbaseES V8R6运维案例之---wal日志解析DML操作的更多相关文章
- KingbaseES V8R6备份恢复案例之---自定义表空间指定恢复目录数据恢复
案例说明: KingbaseES V8R6在通过sys_rman执行物理备份恢复时,可以通过参数'--kb1-path',指定恢复的数据(data)目录,但如果原备份中包含自定义表空间时,需要建立表空 ...
- 【运维工具】logrotate 日志管理神器
服务器经常会产生各种各样的日志文件,我们需要定期清理 日志的分类 系统日志 应用日志 系统日志 例如系统的history 历史信息 crontab的运行日志 一般系统日志系统都帮我们运维好了,不 ...
- Nginx-Tomcat 等运维常用服务的日志分割-logrotate
目录 一 .Nginx-Tomcat 等常用服务日志分析 Nginx 日志 Tomcat日志 MongoDB 日志 Redis 日志 二 .日志切割服务 logrotate 三.日志切割示例 Ngin ...
- KingbaseES V8R6集群管理运维案例之---repmgr standby switchover故障
案例说明: 在KingbaseES V8R6集群备库执行"repmgr standby switchover"时,切换失败,并且在执行过程中,伴随着"repmr stan ...
- KingbaseES V8R6集群运维案例之---repmgr standby promote应用案例
案例说明: 在容灾环境中,跨区域部署的异地备节点不会自主提升为主节点,在主节点发生故障或者人为需要切换时需要手动执行切换操作.若主节点已经失效,希望将异地备机提升为主节点. $bin/repmgr s ...
- KingbaseES V8R3集群运维案例之---cluster.log ERROR: md5 authentication failed
案例说明: 在KingbaseES V8R3集群的cluster.log日志中,经常会出现"ERROR: md5 authentication failed:DETAIL: password ...
- KingbaseES V8R6备份恢复案例之--删除test数据库后sys_backup.sh备份
案例说明: KingbaseES V8R6通过sys_backup.sh执行物理备份,默认sys_backup.sh执行备份初始化时,需要连接test数据库进行身份的认证:在一些生产环境为了安全需求, ...
- KingbaseES V8R6备份恢复案例之---同一数据库创建不同stanza备份
案例说明: 在生产环境,有的应用需要调用数据库的sys_rman做备份,为了区分数据库自身的sys_rman备份和应用的备份,可以使用不同的stanza name创建备份.本案例介绍了,如何在King ...
- KingbaseES V8R6备份恢复案例之---手工清理冗余历史备份
案例说明: 对于KingbaseES V8R6的通过sys_rman执行的物理历史备份,可以在执行备份时,备份的保留(retention)策略自动清理.不能通过手工删除备份,可以通过expire参数手 ...
- 网站运维工具使用iis日志分析工具分析iis日志(iis日志的配置)
我们只能通过各种系统日志来分析网站的运行状况,对于部署在IIS上的网站来说,IIS日志提供了最有价值的信息,我们可以通过它来分析网站的响应情况,来判断网站是否有性能问题,或者存在哪些需要改进的地方 对 ...
随机推荐
- Java集合框架学习(一)介绍
介绍 Java集合框架是一组接口和类的集合,它使得存储和处理数据更加有效率. 该框架有一些类,有很多函数使得程序员更加容易的处理集合类型数据. 后面的教程就是针对这些常用类展开,配合例子代码来给大家一 ...
- 解决linux下zip文件解压后中文乱码问题
最近项目上碰到在windows上压缩了一些图片,图片文件名称都是中文的,scp到linux下用unzip解压后文件名 全是乱码,找了半天解决方案,下面这个亲测可行,特记录一下,与大家分享: 原因: 由 ...
- win32 - 富文本控件的文本突出显示和文本撤销
#define UNICODE #define _UNICODE #include <tchar.h> #include <windows.h> #include <wi ...
- Redis服务端事件处理流程分析
一.事件处理 1.1 什么是事件 Redis 为什么运行得比较快? 原因之一就是它的服务端处理程序用了事件驱动的处理方式. 那什么叫事件处理?就是把处理程序当成一个一个的事件处理.比如我前面文章:服务 ...
- https://editor.csdn.net/md/?articleId=131348876
前言 前面搭建了基础环境,在使用统信UOS系统的相关行业也是不能上网的,但是可以传递压缩包,为了很好的方便相关从业人员工作,特将此种方式流程分享出来.(与国产银河麒麟不同) 本篇文章的重点就是离 ...
- DataGear 数据可视化看板整合前端框架Vue
DataGear 看板JS对象的loadUnsolvedCharts()函数,用于异步加载页面端动态生成的图表元素,利用它,可以很方便整合Angular.React.Vue等前端框架. 本文以Vue为 ...
- 【Azure 媒体服务】在Azure Media Service门户中使用HLS模式传输视频流,播放视频步骤
问题描述 如何在Azure Media Service门户中使用HLS模式传输视频流,播放视频步骤 问题解决 第一步:在 Media Service 这边点击资产.上传本地视频资源作为Media Se ...
- 电子设备内幕:RAM和ROM小百科
大家好,我是知微. 在智能手机出现之前,大家对RAM和ROM这两个词都没什么概念.如今很多手机在宣传的时候,都会标明有多大的RAM(运行内存)和ROM(存储空间),因为这在很大程度上影响手机的使用流畅 ...
- Java 常用类 String的常用方法(1)
1 package com.bytezero.stringclass; 2 3 import org.junit.Test; 4 5 import java.sql.SQLOutput; 6 impo ...
- Java面向对象(下)--static/final/代码块/抽象/接口/内部类
目录 1 关键字:static 2 理解main方法的语法 3 类的成员之四:代码块 4关键字:final 5 抽象类与抽象方法 6 接口(interface) 7 类的成员之五:内部类 static ...