首页 > 其他分享 >KingbaseES V8R6运维案例之---wal日志解析DML操作

KingbaseES V8R6运维案例之---wal日志解析DML操作

时间:2022-10-08 09:24:40浏览次数:45  
标签:wal V8R6 运维 lsn prod1 current pg 日志

案例说明:
通过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日志记录相对比较简洁。

标签:wal,V8R6,运维,lsn,prod1,current,pg,日志
From: https://www.cnblogs.com/kingbase/p/16742073.html

相关文章