注册
达梦归档日志分析
专栏/培训园地/ 文章详情 /

达梦归档日志分析

造物主 2023/12/22 1663 0 0
摘要

在DM中,用户可以使用DBMS_LOGMNR 对归档日志进行挖掘,重构出DDL和 DML等操作,并通过获取的信息进行更深入的分析;同样,可以对归档日志文件进行恢复被误操作的数据,并进行故障跟踪,定位执行误操作的用户信息。目前DBMS_LOGMNR只支持归档日志进行分析,配置归档后,还需要将 dm.ini中的RLOG_APPEND_LOGIC选项配置为 1 或 2。
注:需要在产生归档日志的数据库上进行分析,利用备份文件还原的测试库上无法进行日志挖掘,因为当数据库经过备份还原并恢复后,DB_MAGIC 就会发生改变,在还原库上进行日志分析时会报“[DBMS_LOGMNR.START_LOGMNR] 归档日志 MAGIC 错误”错误。

1.检查归档和RLOG_APPEND_LOGIC参数
select para_name,para_value from v$dm_ini where para_namein ('ARCH_INI','RLOG_APPEND_LOGIC');
注:RLOG_APPEND_LOGIC参数,默认为0
设置为1时,如果有主键列,记录UPDATE和DELETE操作时只包含主键列信息;反之,则包含所有列信息。
设置为2时,不论是否有主键列,记录UPDATE和DELETE操作时都包含所有列的信息。设置为此参数会大幅增加日志量,生产环境慎用。
设置为3时,记录UPDATE操作时包含更新列的信息以及ROWID,记录DELETE 操作时只有ROWID。

2.开启DBMS_LOGMNR
SP_CREATE_SYSTEM_PACKAGES (1,'DBMS_LOGMNR');

3.查询归档日志
SELECT NAME ,FIRST_TIME , NEXT_TIME , FIRST_CHANGE# , NEXT_CHANGE# FROM V$ARCHIVED_LOG;

4.添加查询到的归档日志
DBMS_LOGMNR.ADD_LOGFILE('/dmdb/xxx/xxx/xxx/ARCHIVE_LOCAL1_20171214120114980.log');

5.按时间段分析归档日志
DBMS_LOGMNR.START_LOGMNR(OPTIONS=>2128 , STARTTIME=>TO_DATE('2022-01-20 00:00:00','YYYY-MM-DD HH24:MI:SS') , ENDTIME=>TO_DATE('2022-06-27 21:30:00','YYYY-MM-DD HH24:MI:SS'));

6.查询日志分析内容
select * from v$logmnr_contents;
11.png
注:TEST和TEST2表
CREATE TABLE "DMHR"."TEST"
(
"ID" INT,
"NAME" CHAR(10))
CREATE TABLE "DMHR"."TEST2"
(
"ID" INT NOT NULL,
"NAME" CHAR(10),
NOT CLUSTER PRIMARY KEY("ID"))
插入三条相同数据
1 LK
2 TBH
3 YXY
分别执行删除语句
delete DMHR.TEST where ID>2;
delete DMHR.TEST2 where ID>2;

RLOG_APPEND_LOGIC参数值为1,TEST普通表可以查询到所有列具体执行,但是TEST2存在主键,只能查看到主键那列的值;

7.关闭日志分析
DBMS_LOGMNR.END_LOGMNR();

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服