https://www.cnblogs.com/kingbase/p/17315750.html

前言

walminer工具可以帮助dba挖掘wal日志中的内容,看到某时间对应数据库中的具体操作。例如挖掘日志后可以看到数据库某时间有哪些dml语句。

walminer的限制与约束

  • WalMiner工具的使用必须以数据库超级用户执行。
  • 数据库能正常运行。
  • full_page_writes必须为开启状态。
  • 拥有完整连续的WAL日志。
  • 能导出正常使用的数据字典。
  • 解析过程中,日志所需数据字典没有发生改变。
  • 不支持DDL的解析。

解析wal日志

测试环境为KESV8R6C007

1.解析本库WAL日志无需添加日志和数据字典

创建扩展
TEST=# create extension walminer;
CREATE EXTENSION 按时间范围解析
TEST=# select walminer_by_time('2023-04-09 11:27:00', '2023-04-10 11:37:00');
NOTICE: Add wal from current pg_wal directory, do not suggest use this way in produce
NOTICE: Switch wal to 000000010000000100000078 on time 2023-04-10 15:54:17.088751+08
walminer_by_time
---------------------
pg_minerwal success
(1 row) 普通解析
TEST=# select walminer_all(); LSN范围解析
select walminer_by_lsn('0/010000A0', '0/016E6578'); 单表解析
select walminer_by_time('2023-09-08 11:27:00', '2023-09-08 11:37:00', 'false', 16452); 查看分析结果:
TEST=# select * from walminer_contents;
sqlno | xid | topxid | sqlkind | minerd | timestamp | op_text | undo_text |
complete | schema | relation | start_lsn | commit_lsn
-------+------+--------+---------+--------+-------------------------------+-------------------------------------------------------------------------------+--------------------------------------------------+
----------+--------+----------+------------+------------
1 | 1516 | 0 | 1 | t | 2023-03-31 15:22:05.701811+08 | INSERT INTO public.u1(id ,info) VALUES(1 ,'ec79d8fc388c6aadb81c04890efcb587') | DELETE FROM public.u1 WHERE id=1 |
t | public | u1 | 1/7898B1F8 | 1/78991750 结束分析:
select walminer_stop(); 结束分析后还可以查到walminer_contents视图中相关记录,如果以后不需要查看可以truncate该视图。

异地解析wal日志的限制

1.执行了删除表、truncate表、更改表的表空间、更改表字段的类型、vacuum full,这样的DDL语句后,发生DDL语句之前的此表相关的DML语句不会再被解析。
应对措施:建议在执行表结构变更之前,先保存一份数据字典,用来保证可以解析历史wal日志。

2.解析结果依赖于数据字典。(举例:创建表t1,所有者为user1,但是中间将所有者改为user2。那解析结果中,所有t1相关操作所有者都将标示为user2)
应对措施:建议在执行表结构变更之前,先保存一份数据字典,用来保证可以准确解析历史wal日志。

3.只能解析与数据字典时间线一致的wal文件

4.不建议使用walminer解析大量copy语句(在同一个事务中插入大量数据行)产生的wal日志,
这会导致解析过程中的效率低下。

2.解析其他数据库的WAL日志
解析其他库的日志暂不支持解析自定义数据类型,如果其他库的WAL日志中存在自定义数据类型,而本库没有对应的数据类型则会解析失败。 从其他数据库导出数据字典
select walminer_build_dictionary('/home/kingbase/dict');
导出的数据字典名称为:dict
将生成的数据字典和需要解析的wal日志放到其他库可以获取的路径。
导入其他数据库的数据字典
-- 导入数据字典
select walminer_load_dictionary('/home/kingbase/dict/dict');
添加日志文件
select walminer_wal_add('/home/kingbase/sys_wal/000000010000000000000001');
日志解析,同本地wal解析方式相同,包括普通解析,时间范围解析, LSN范围解析,单表解析
-- 查看分析结果
select * from walminer_contents;
-- 结束分析,结束分析会删除分析过程中生成的中间文件、导入的数据字典、WAL日志文件以及分析结果
select walminer_stop();
3.本地wal加密方式使用walminer
wal加密后使用walminer解析时,不需要打开透明存储加密的钱夹功能,不需要加密密钥。 TEST=# CLOSEUP WALLET WITH PASSWORD "654321";
CLOSE WALLET alter system set wal_encryption to true;
select sys_reload_conf(); TEST=# show wal_encryption ;
wal_encryption
----------------
on
(1 row) TEST=# create extension walminer ;
CREATE EXTENSION
TEST=#
TEST=# select walminer_all();
NOTICE: Add wal from current pg_wal directory, do not suggest use this way in produce
NOTICE: Switch wal to 000000010000000100000078 on time 2023-04-10 16:38:12.105553+08
walminer_all
---------------------
pg_minerwal success
(1 row) TEST=#
TEST=# select * from walminer_contents;
sqlno | xid | topxid | sqlkind | minerd | timestamp | op_text | undo_text |
complete | schema | relation | start_lsn | commit_lsn
-------+------+--------+---------+--------+-------------------------------+-------------------------------------------------------------------------------+--------------------------------------------------+
----------+--------+----------+------------+------------
1 | 1516 | 0 | 1 | t | 2023-03-31 15:22:05.701811+08 | INSERT INTO public.u1(id ,info) VALUES(1 ,'ec79d8fc388c6aadb81c04890efcb587') | DELETE FROM public.u1 WHERE id=1 |
t | public | u1 | 1/7898B1F8 | 1/78991750

总结

在KingbaseESV8R6C7中支持walminer日志挖掘,此功能插件有些功能限制需要注意,例如支持DDL语句的挖掘。

在本地测试加密wal日志不需要对应解密密钥就可以使用walminer挖掘日志。

[转帖]KingbaseES V8R6 中walminer的使用的更多相关文章

  1. KingbaseES V8R6集群维护案例之---停用集群node_export进程

    案例说明: 在KingbaseES V8R6集群启动时,会启动node_exporter进程,此进程主要用于向kmonitor监控服务输出节点状态信息.在系统安全漏洞扫描中,提示出现以下安全漏洞: 对 ...

  2. KingbaseES V8R6集群维护案例之---将securecmdd通讯改为ssh案例

    案例说明: 在KingbaseES V8R6的后期版本中,为了解决有的主机之间不允许root用户ssh登录的问题,使用了securecmdd作为集群部署分发和通讯的服务,有生产环境通过漏洞扫描,在88 ...

  3. KingbaseES V8R6兼容Oracle的exp-imp导出导入工具使用

    说明: KingbaseES V8R6版本中的兼容Oracle的exp-imp导入导出工具,支持完全模式.用户模式和表模式的导出功能. 本次案例数据库版本: test=# select version ...

  4. KingbaseES V8R6集群管理运维案例之---repmgr standby switchover故障

    案例说明: 在KingbaseES V8R6集群备库执行"repmgr standby switchover"时,切换失败,并且在执行过程中,伴随着"repmr stan ...

  5. KingbaseES V8R6备份恢复案例之---同一数据库创建不同stanza备份

    案例说明: 在生产环境,有的应用需要调用数据库的sys_rman做备份,为了区分数据库自身的sys_rman备份和应用的备份,可以使用不同的stanza name创建备份.本案例介绍了,如何在King ...

  6. KingbaseES V8R6备份恢复案例之--删除test数据库后sys_backup.sh备份

    案例说明: KingbaseES V8R6通过sys_backup.sh执行物理备份,默认sys_backup.sh执行备份初始化时,需要连接test数据库进行身份的认证:在一些生产环境为了安全需求, ...

  7. KingbaseES V8R6集群维护案例之--单实例数据迁移到集群案例

    案例说明: 生产环境是单实例,测试环境是集群,现需要将生产环境的数据迁移到集群中运行,本文档详细介绍了从单实例环境恢复数据到集群环境的操作步骤,可以作为生产环境迁移数据的参考. 适用版本: Kingb ...

  8. KingbaseES V8R6集群维护案例之--修改securecmdd工具服务端口

    案例说明: 在一些生产环境,为了系统安全,不支持ssh互信,或限制root用户使用ssh登录,KingbaseES V8R6可以使用securecmdd工具支持主机之间的通讯.securecmdd工具 ...

  9. KingbaseES V8R6集群维护之--修改数据库服务端口案例

    ​ 案例说明: 对于KingbaseES数据库单实例环境,只需要修改kingbase.conf文件的'port'参数即可,但是对于KingbaseES V8R6集群中涉及到多个配置文件的修改,并且在应 ...

  10. KingbaseES V8R6单实例外部备份案例

    案例说明: 本案例采用sys_backup.sh执行物理备份,备份使用如下逻辑架构:数据库主机采用CentOS 7系统,repo采用kylin V10 Server. 单实例+外部备份服务器 备份逻辑 ...

随机推荐

  1. Cesium案例解析(十)——CZML点

    目录 1. 概述 2. 案例 3. 结果 1. 概述 CZML是Cesium中用于描述动态图形场景的JSON格式,它们的关系类似于Google Earth与KML之间的关系,一般会认为KML是一种矢量 ...

  2. C# 将Excel转为OFD、UOS

    本文以C#及VB.NET代码为例展示如何将Excel工作簿转换为OFD和UOS格式.通过workbook.LoadFromFile(string fileName)方法加载Excel源文档后,然后调用 ...

  3. 4大焕新,华为云CCE带你感受容器化上云体验

    本文分享自华为云社区<华为云CCE邀您共同打造最佳容器化上云体验>,作者:云容器大未来 . 在容器化日益成为中大型企业上云主流选择的情况下,容器服务如何能帮助用户更简单快捷的上云.高效可信 ...

  4. 基于DAYU的实时作业开发,分分钟搭建企业个性化推荐平台

    摘要:搭建这个平台最费时耗力的事莫过于对批.流作业的编排,作业组织管理以及任务调度了.但是这一切,用DAYU的数据开发功能几个任务可通通搞定. 大多数电商类企业都会搭建自己的个性化推荐系统,利用自己拥 ...

  5. ​HTML代码混淆技术:原理、应用和实现方法详解

    ​ HTML代码混淆是一种常用的反爬虫技术,它可以有效地防止爬虫对网站数据的抓取.本文将详细介绍HTML代码混淆技术的原理.应用以及实现方法,帮助大家更好地了解和运用这一技术. 一.HTML代码混淆的 ...

  6. 2023年 CISO 需要高度关注的任务和趋势

    在过去的几年中,企业一直忙于应对远程办公模式下的安全要求.展望2023年,疫情局面将与过去3年大不相同.根据目前的趋势,未来一年的网络攻击的数量和严重程度都将增加,这将对各规模企业,尤其是未做好准备的 ...

  7. 火山引擎 DataTester 为企业降本增效:1 个人也能成为一支 A/B 实验团队

    更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 今年天猫电商.京东均表示交易规模与 2021 年持平,跟往年急剧增长的销售额相比,今年的双十一显得略微" ...

  8. 高性能 Jsonpath 框架,Snack3 3.2.54 发布(支持 kotlin data 类反序化)

    Snack3,一个高性能的 JsonPath 框架 借鉴了 Javascript 所有变量由 var 申明,及 Xml dom 一切都是 Node 的设计.其下一切数据都以ONode表示,ONode也 ...

  9. Solon 问答:项目如何直接添加 https 支持?

    app.yml 添加两行配置即可: #设定SSL证书(支持:solon.boot.jdkhttp 或 solon.boot.jlhttp 或 solon.boot.jetty 或 solon.boot ...

  10. PPT 动画-多层旋转(圆角三角形)

    多层旋转动画 插入若干个三解形 然后将页面切换成[平滑](Office 2019~ 365 才有这功能,或者 iSlide 平滑过渡)