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

达梦归档日志挖掘

lm2 2024/05/28 921 0 0
摘要

1、使用包内的过程和函数之前,如果还未创建过系统包,请先调用系统过程创建系统包
SP_CREATE_SYSTEM_PACKAGES (1,'DBMS_LOGMNR');

2、修改 dm.ini 中的参数
ARCH_INI = 1
RLOG_APPEND_LOGIC = 1

3、dmarch.ini 需要配置本地归档
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /dmarch
ARCH_FILE_SIZE = 128 #单位Mb
ARCH_SPACE_LIMIT = 0 #单位Mb,0表示无限制,范围1024~4294967294M

4、修改RLOG_APPEND_LOGIC参数
sp_set_para_value(1,'RLOG_APPEND_LOGIC',1);

alter system set 'RLOG_APPEND_LOGIC'=1 both;

5、确认参数
select para_name, para_value from v$dm_ini where para_name in ('ARCH_INI','RLOG_APPEND_LOGIC');

6、切归档
alter system archive log current;

7、查询归档日志文件
select name , first_time , next_time , first_change# , next_change# from v$archived_log;

8、添加一个或多个需要分析的归档日志文件
dbms_logmnr.add_logfile('/dmarch/ARCHIVE_LOCAL1_0x7D19AE1_EP0_2023-03-06_08-50-15.log');
dbms_logmnr.add_logfile('/dmarch/ARCHIVE_LOCAL1_0x7D19AE1_EP0_2023-03-06_20-45-42.log');

注:如果将不想进行分析的归档日志添加,可以通过remove_logfile方法将其移除
dbms_logmnr.remove_logfile('/dmarch/ARCHIVE_LOCAL1_0x7D19AE1_EP0_2023-03-06_20-45-42.log');

9、查看通过 ADD_LOGFILE 添加的归档日志文件,可以通过动态视图 V$LOGMNR_LOGS 进行查询
select low_scn, next_scn, low_time, high_time, log_id, filename from v$logmnr_logs;

10、启动归档日志文件分析
dbms_logmnr.start_logmnr(
Options=>2128,
Starttime=>to_date('2023-03-06 20:00:00','YYYY-MM-DD HH24:MI:SS'),
Endtime=>to_date('2023-03-06 21:00:00','YYYY-MM-DD HH24:MI:SS'));

dbms_logmnr.start_logmnr(options=>2128 , startscn=>216595 , endscn=>217851);
此处需要注意options参数的值,options参数有4个选项,分别为:COMMITTED_DATA_ONLY、DICT_FROM_ONLINE_CATALOG、NO_SQL_DELIMITER、NO_ROWID_IN_STMT,其对应的值分别为:2、16、64、2048,作用分别为:仅从已交的事务的日志中挖掘信息、使用在线字典、拼写的SQL语句最后不添加分隔符、拼写的SQL语句中不包含ROWID。Options取值为各个选项值的组合求和,如果options指定的值不是以上4个选项值的和,会导致指定的options参数无效,而执行start_logmnr时并不会报错。

11、查看归档日志文件的分析结果,可以通过动态视图 V$LOGMNR_CONTENTS 进行查询
select operation_code , scn, sql_redo ,SQL_UNDO, timestamp ,seg_owner, table_name, REDO_VALUE, UNDO_VALUE, SESSION_INFO from V$LOGMNR_CONTENTS where seg_owner = 'XZQ' and TABLE_NAME='T1'

操作类型 OPERATION 和 OPERATION_CODE 分别为:INTERNAL 0、INSERT 1、DELETE 2、UPDATE 3、BATCH_UPDATE 4 、DDL 5 、START 6、COMMIT 7、SEL_LOB_LOCATOR 9、LOB_WRITE 10 、LOB_TRIM 11 、SELECT_FOR_UPDATE 25 、LOB_ERASE 28、MISSING_SCN 34、ROLLBACK 36、UNSUPPORTED 255、SEQ MODIFY 37、XA_COMMIT 38

12、终止归档日志文件分析
dbms_logmnr.end_logmnr();

注:用户可以使用 DBMS_LOGMNR 包对归档日志进行挖掘,重构出 DDL 和 DML 等操作,并通过获取的信息进行更深入的分析。
目前 DBMS_LOGMNR 只支持对归档日志进行分析,配置归档后,还需要将 dm.ini 中的 RLOG_APPEND_LOGIC 选项置为 1、2、3 或 4。
DM MPP 环境下不支持 DBMS_LOGMNR 包。DMDPC 使用 DBMS_LOGMNR 时, DBMS_LOGMNR.ADD_LOGFILE 只能添加同一个节点的多个日志同时进行分析,不支持同时分析不同节点的日志。

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服