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日志记录相对比较简洁。
分类:
PostgreSQL
, KingbaseES
标签:
kingbaseES
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」