人大金仓数据库KingbaseES中Walminer接口使用

金仓数据库KingbaseES中WalMiner接口使用介绍

关键字:KingbaseES、WalMiner;人大金仓;KingbaseES

添加日志

添加日志时,可以添加文件夹或文件,可以多次添加多个不同的目录,WalMiner会自动根据日志文件名称进行排序和去重。比如可以同时添加在线日志目录和归档日志目录。添加文件时,会对文件进行判断,如果不是WAL日志,则会报错。

test=# select walminer_wal_add('sys_wal');

警告: WAL file '/opt/zhangnan/kes/kingbase_develop/Main_Dev_V9R1C1B3/bin/data/sys_wal/000000010000000000000002' seg size is invalid. may be not in use

walminer_wal_add

--------------------

1 file add success

(1 行记录)

test=# select walminer_wal_add('sys_wal/000000010000000000000001');

walminer_wal_add

--------------------

0 file add success

(1 行记录)

test=#

展示日志列表和删除日志

会展示已经添加的日志列表

test=# select walminer_wal_list();

walminer_wal_list

--------------------------------------------------------------------------------------------------

(/opt/zhangnan/kes/kingbase_develop/Main_Dev_V9R1C1B3/bin/data/sys_wal/000000010000000000000001)

(1 行记录)

删除已经添加的日志,可以删除单个文件,也可以删除文件夹,可以多次执行

test=# select walminer_wal_remove('sys_wal/000000010000000000000001');

walminer_wal_remove

-----------------------

1 file remove success

(1 行记录)

test=# select walminer_wal_remove('sys_wal');

walminer_wal_remove

-----------------------

0 file remove success

(1 行记录)

数据解析

  1. 普通解析

walminer_al会解析已加入的所有WAL日志,如果没有添加WAL日志,则解析data/sys_wal目录下所有WAL日志,解析过程中遇到WAL日志错误、或WAL日志不连续,会在错误或不连续的地方停止解析。

test=# select walminer_all();

NOTICE: Add wal from current sys_wal directory, do not suggest use this way in produce

警告: WAL file '/opt/zhangnan/kes/kingbase_develop/Main_Dev_V9R1C1B3/bin/data/sys_wal/000000010000000000000002' seg size is invalid. may be not in use

walminer_all

-------------------

sys_miner success

(1 行记录)

也可以根据时间范围解析,在add的WAL日志中查找对应时间范围的WAL记录,也可以根据LSN范围解析,在add的WAL日志中查找对应LSN范围的WAL记录

test=# select walminer_by_time('2023-10-27 11:27:00', '2023-10-27 16:37:00');

walminer_by_time

-------------------

sys_miner success

(1 行记录)

test=# select walminer_by_lsn('0/010000A0', '0/016E6578');

walminer_by_lsn

-------------------

sys_miner success

(1 行记录)

解析完成后会自动删除生成的中间文件、已添加的WAL日志、已导入的数据字典等。

在时间范围解析中,如果开始时间设置为空,则从已加入的WAL日志列表中第一个日志的第一个LSN开始解析。

在时间范围解析中,如果结束时间设置为空,则在已加入的WAL日志列表中最后一个日志的最后一个LSN结束解析。

查看解析结果

test=# select * from walminer_contents;

sqlno | xid | topxid | sqlkind | minerd | timestamp | op_text | undo_text | complete | schema | relation | start_lsn | commit_lsn

-------+-----+--------+---------+--------+-----------+---------+-----------+----------+--------+----------+-----------+------------

(0 行记录)

walminer_contents表字段描述信息:

字段名称

字段类型

字段描述

sqlno

integer

SQL语句在事务里的编号

xid

bigint

当前事务的xid

topxid

bigint

父事务的xid

sqlkind

integer

SQL语句类型(INSERT/DELETE/UPDATE)

minerd

boolean

是否能解析

timestamp

timestamp with time zone

事务提交时间

op_text

text

redo语句

undo_text

text

undo语句

complete

boolean

事务是否已完成

schema

text

模式名

relation

text

表名

start_lsn

sys_lsn

事务开始的LSN号

commit_lsn

sys_lsn

事务提交时的LSN号

最终,结束解析,结束解析时,会清空解析过程中生成的中间文件

test=# select walminer_stop();

walminer_stop

------------------

walminer stoped!

(1 行记录)

总结

Walminer是一个功能强大的工具,用于解析和分析数据库的wal日志文件,以提取有用的事务信息和数据操作,无论是故障恢复、数据版本控制还是数据分析,Walminer接口都是一个强大的工具。

参考资料

提供该题目相关内容在产品手册中可以系统学习的位置,例如:

《KingbaseE产品手册》

  • 21
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值