DM-日志挖掘

日志挖掘

DM 提供了日志挖掘系统包DBMS_LOGMNR进行归档日志挖掘,可以从归档日志中重构出DDL,DML等SQL语句,并进行其他分析。

参数前提

进行归档日志挖掘需要配置两个关键点:

  • 开启归档。需开启归档产生归档日志以供挖掘。
  • RLOG_APPEND_LOGIC:置为1或2。

参数解释:

  • ARCH_INI:是否启用归档,动态系统级参数;0:不启用,1:启用。
  • RLOG_APPEND_LOGIC:是否启用在日志中记录逻辑操作的功能, 取值
    范围 0、 1、 2、 3;0: 不启用; 1、 2、 3 启用。1: 如果有主键列,记录 UPDATE 和 DELETE操作时只包含主键列信息, 若没有主键列则包含所有列信息; 2:不论是否有主键列,记录UPDATE 和 DELETE 操作时都包含所有列的信息; 3: 记录 UPDATE 时包含更新列的信息以及ROWID, 记录 DELETE 时只有 ROWID。

通过V$dm.ini视图查看上述提到的配置项:

SELECT PARA_NAME,PARA_VALUE FROM V$DM_INI WHERE  PARA_NAME IN ('ARCH_INI','RLOG_APPEND_LOGIC');

在这里插入图片描述
或使用V$DM_ARCH_INI视图查看归档配置
在这里插入图片描述
如未开启归档,ARCH_INI显示为0,可使用SQL开启:

ALTER DATABASE MOUNT;
ALTER DATABASE ARCHIVELOG ;
ALTER DATABASE ADD ARCHIVELOG 'DEST=/opt/dmdbms/data/DAMENG/arch, TYPE=LOCAL, FILE_SIZE=1024, SPACE_LIMIT=2048';
ALTER DATABASE OPEN;

RLOG_APPEND_LOGIC参数为动态参数,可使用如下SQL开启:

SP_SET_PARA_VALUE(1,’RLOG_APPEND_LOGIC’,1);

在这里插入图片描述

测试

创建测试表logmnr_test。

CREATE TABLE LOGMNR_TEST(ID INT , NAME VARCHAR);

插入数据并做修改操作。

INSERT INTO LOGMNT_TEST VALUES(1,'THANOS'),(2,'TOM');
UPDATE LOGMNR_TEST SET NAME='THANOS_NEW' WHERE ID=1;
DELETE FROM LOGMNR_TEST WHERE ID=2;

在这里插入图片描述
切换归档日志,将新生成的日志归档

ALTER SYSTEM ARCHIVE LOG CURRENT;

在这里插入图片描述
通过V$ARCHIVED_LOG视图查看归档日志文件信息

select *from V$ARCHIVED_LOG;

在这里插入图片描述

添加归档日志文件

将查询到的两个归档日志文件添加到日志挖掘列表中

DBMS_LOGMNR.ADD_LOGFILE('D:\dmdbms\data\DAMENG\arch\ARCHIVE_LOCAL1_0x75877547[0]_2021-05-24_15-32-34.log');
DBMS_LOGMNR.ADD_LOGFILE('D:\dmdbms\data\DAMENG\arch\ARCHIVE_LOCAL1_0x75877547[0]_2021-05-24_16-50-34.log');
启动日志挖掘

使用START_LOGMNR方法启动日志挖掘,该方法的具体参数有:
在这里插入图片描述

STARTSCN
分析时或者加载时的过滤条件,日志起始序列号,默认 0,表示无限制。

ENDSCN
分析时或者加载时的过滤条件,日志结束序列号,默认 0,表示无限制。

STARTTIME
分析时或者加载时的过滤条件,日志起始时间,默认 1988/1/1。

ENDTIME
分析时或者加载时的过滤条件,日志结束时间,默认 2110/12/31。

DICTFILENAME
离线字典的全路径名,默认为空。如果选用离线字典模式,则需要指定该选项,根据此项提供的全路径来加载离线字典文件。

OPTIONS
使用如下数值,或其组合值(各项相加)。
在这里插入图片描述
1.2.3 查看结果
分析后,通过V$LOGMNR_CONTENTS查看结果:

SELECT OPERATION_CODE , OPERATION, SCN, SQL_REDO,SEG_OWNER, TABLE_NAME FROM V$LOGMNR_CONTENTS WHERE TABLE_NAME is not null;

在这里插入图片描述
可以看到之前操作的SQL都有显示。

终止分析

查看完成后,终止日志挖掘。

DBMS_LOGMNR.END_LOGMNR();

执行此方法后,此会话的相关视图内容被清空,查询V$LOGMNR_CONTENTS报错。
在这里插入图片描述

相关视图

V$LOGMNR_LOGS
当前会话添加的待分析归档日志文件。

select low_scn, next_scn, log_id, filename from v$logmnr_logs;

在这里插入图片描述
V$LOGMNR_PARAMETERS
当前会话启动日志分析文件的参数。

SELECT *FROM V$LOGMNR_PARAMETERS;

在这里插入图片描述
V$LOGMNR_CONTENTS
当前会话日志分析的内容,具体参数解释如下图:
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值