基于达梦的LOGMNR工具进行日志挖掘

编程入门 行业动态 更新时间:2024-10-15 06:19:22

基于达梦的LOGMNR<a href=https://www.elefans.com/category/jswz/34/1770073.html style=工具进行日志挖掘"/>

基于达梦的LOGMNR工具进行日志挖掘

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 一、LOGMNR用法
  • 二、配置环境
    • 1.配置归档
    • 2.配置RLOG_APPEND_LOGIC
    • 3.检查配置情况是否正确
    • 4.准备测试环境
    • 5.切换归档
  • 三、配置LOGMNR
    • 1.查看目前的归档信息
    • 1.添加归档日志文件
    • 2.查看添加归档信息情况
    • 3.启动归档日志文件分析
    • 4.查看归档日志分析结果
    • 5.关闭归档日志分析
  • 总结


前言

DBMS_LOGMNR是达梦数据库日志挖掘功能使用的系统包,它可以方便的对数据库归档日志进行挖掘,重构出 DDL、 DML和DCL 等操作,方便审计及跟踪数据库的操作,并通过获取的信息进行更深入的分析。


一、LOGMNR用法

目前 DBMS_LOGMNR 只支持对归档日志进行分析,需要配置归档信息和开启RLOG_APPEND_LOGIC参数
RLOG_APPEND_LOGIC参数代表是否启用在日志中记录逻辑操作的功能

选项说明
0不启用
1如果有主键列,记录update和delete操作时只包含主键列信息,若没有主键列则包含所有列信息
2不论是否有主键列,记录update和delete操作时都包含所有列的信息
3记录update时包含更新列的信息以及rowid,记录delete时只有rowid

二、配置环境

1.配置归档

SQL> alter database mount;
alter database mount;
第1 行附近出现错误[-510]:系统处于MOUNT状态.
已用时间: 1.365(毫秒). 执行号:0.
SQL> alter database archivelog;
操作已执行
已用时间: 101.622(毫秒). 执行号:0.
SQL> alter database add archivelog 'dest=/opt/dmdbms/data/DAMENG/arch,type=local,file_size=64,space_limit=10240';
操作已执行
已用时间: 2.406(毫秒). 执行号:0.
SQL> alter database open;
操作已执行
已用时间: 290.330(毫秒). 执行号:0.

2.配置RLOG_APPEND_LOGIC

SQL> alter system set 'RLOG_APPEND_LOGIC'=1 MEMORY;
DMSQL 过程已成功完成
已用时间: 6.456(毫秒). 执行号:700.

3.检查配置情况是否正确

使用下面的语句来查看当前环境配置情况

SQL> select para_name, para_value
from v$dm_ini
where para_name in ('ARCH_INI','RLOG_APPEND_LOGIC');2   3   行号     PARA_NAME         PARA_VALUE
---------- ----------------- ----------
1          RLOG_APPEND_LOGIC 1
2          ARCH_INI          1已用时间: 7.383(毫秒). 执行号:701.

4.准备测试环境

SQL> create table T50 (id int,name varchar(50));
insert into T50 values(1,'zhangsan');
insert into T50 values(2,'lisi');
insert into T50 values(3,'wangwu');
insert into T50 values(4,'czk');
insert into T50 values(5,'gg');
update T50 set id = id + 100 where id <100;
update T50 set id=15 where name='gg';
commit;
delete from T50 where id=103;
commit;操作已执行
已用时间: 5.008(毫秒). 执行号:702.
SQL> 影响行数 1已用时间: 0.706(毫秒). 执行号:703.
SQL> 影响行数 1已用时间: 0.271(毫秒). 执行号:704.
SQL> 影响行数 1已用时间: 0.232(毫秒). 执行号:705.
SQL> 影响行数 1已用时间: 0.308(毫秒). 执行号:706.
SQL> 影响行数 1已用时间: 0.475(毫秒). 执行号:707.
SQL> 影响行数 5已用时间: 1.506(毫秒). 执行号:708.
SQL> 影响行数 1已用时间: 0.920(毫秒). 执行号:709.
SQL> 操作已执行
已用时间: 1.296(毫秒). 执行号:710.
SQL> 影响行数 1已用时间: 1.351(毫秒). 执行号:711.

5.切换归档

SQL> alter system archive log current;
操作已执行
已用时间: 2.268(毫秒). 执行号:0.

三、配置LOGMNR

1.查看目前的归档信息

SQL> SELECT NAME , FIRST_TIME , NEXT_TIME , FIRST_CHANGE# , NEXT_CHANGE# FROM
V$ARCHIVED_LOG;2   行号     NAME                                                                               FIRST_TIME                
---------- ---------------------------------------------------------------------------------- --------------------------NEXT_TIME                  FIRST_CHANGE#        NEXT_CHANGE#        -------------------------- -------------------- --------------------
1          /opt/dmdbms/data/DAMENG/arch/ARCHIVE_LOCAL1_0x3329F2AC_EP0_2022-06-01_12-16-18.log 2022-06-01 12:16:18.4097052022-06-01 12:20:08.235961 35865                373642          /opt/dmdbms/data/DAMENG/arch/ARCHIVE_LOCAL1_0x3329F2AC_EP0_2022-06-01_12-20-09.log 2022-06-01 12:20:09.5163162022-06-01 13:52:39.609487 37365                392393          /opt/dmdbms/data/DAMENG/arch/ARCHIVE_LOCAL1_0x3329F2AC_EP0_2022-06-01_13-52-43.log 2022-06-01 13:52:43.2346212022-06-01 13:53:24.358957 39240                39261行号     NAME                                                                               FIRST_TIME                
---------- ---------------------------------------------------------------------------------- --------------------------NEXT_TIME                  FIRST_CHANGE#        NEXT_CHANGE#        -------------------------- -------------------- --------------------
4          /opt/dmdbms/data/DAMENG/arch/ARCHIVE_LOCAL1_0x3329F2AC_EP0_2022-06-01_13-53-28.log 2022-06-01 13:53:28.2586432022-06-01 14:30:43.468079 39262                400865          /opt/dmdbms/data/DAMENG/arch/ARCHIVE_LOCAL1_0x3329F2AC_EP0_2022-06-01_14-30-44.log 2022-06-01 14:30:44.6636962022-06-01 14:44:07.418117 40087                403566          /opt/dmdbms/data/DAMENG/arch/ARCHIVE_LOCAL1_0x3329F2AC_EP0_2022-06-01_14-44-09.log 2022-06-01 14:44:09.1613942022-06-01 14:46:30.810640 40357                40404行号     NAME                                                                               FIRST_TIME                
---------- ---------------------------------------------------------------------------------- --------------------------NEXT_TIME                  FIRST_CHANGE#        NEXT_CHANGE#        -------------------------- -------------------- --------------------
7          /opt/dmdbms/data/DAMENG/arch/ARCHIVE_LOCAL1_0x3329F2AC_EP0_2022-06-01_14-46-33.log 2022-06-01 14:46:33.2438862022-06-01 14:46:33.243886 40405                406217 rows got已用时间: 0.628(毫秒). 执行号:716.

1.添加归档日志文件

利用add_logfile可以添加一份或者多份需要分析的归档信息
利用remove_logfile可以移除需要分析的归档信息

SQL> DBMS_LOGMNR.ADD_LOGFILE('/opt/dmdbms/data/DAMENG/arch/ARCHIVE_LOCAL1_0x3329F2AC_EP0_2022-06-01_12-16-18.log');
DBMS_LOGMNR.ADD_LOGFILE('/opt/dmdbms/data/DAMENG/arch/ARCHIVE_LOCAL1_0x3329F2AC_EP0_2022-06-01_12-20-09.log');
DBMS_LOGMNR.ADD_LOGFILE('/opt/dmdbms/data/DAMENG/arch/ARCHIVE_LOCAL1_0x3329F2AC_EP0_2022-06-01_13-52-43.log');
DBMS_LOGMNR.ADD_LOGFILE('/opt/dmdbms/data/DAMENG/arch/ARCHIVE_LOCAL1_0x3329F2AC_EP0_2022-06-01_13-53-28.log');
DBMS_LOGMNR.ADD_LOGFILE('/opt/dmdbms/data/DAMENG/arch/ARCHIVE_LOCAL1_0x3329F2AC_EP0_2022-06-01_14-30-44.log');DMSQL 过程已成功完成
已用时间: 2.294(毫秒). 执行号:901.
SQL> DMSQL 过程已成功完成
已用时间: 0.334(毫秒). 执行号:902.
SQL> DMSQL 过程已成功完成
已用时间: 0.439(毫秒). 执行号:903.
SQL> DMSQL 过程已成功完成
已用时间: 0.116(毫秒). 执行号:904.

2.查看添加归档信息情况

SQL> SELECT LOW_SCN, NEXT_SCN, LOW_TIME, HIGH_TIME, LOG_ID, FILENAME FROM 
V$LOGMNR_LOGS;2   行号     LOW_SCN              NEXT_SCN             LOW_TIME                   HIGH_TIME                  LOG_ID     
---------- -------------------- -------------------- -------------------------- -------------------------- -----------FILENAME                                                                          ----------------------------------------------------------------------------------
1          35865                37364                2022-06-01 12:16:17.878000 2022-06-01 12:18:40.989000 0/opt/dmdbms/data/DAMENG/arch/ARCHIVE_LOCAL1_0x3329F2AC_EP0_2022-06-01_12-16-18.log2          37365                39239                2022-06-01 13:52:27.039000 2022-06-01 13:52:27.057000 1/opt/dmdbms/data/DAMENG/arch/ARCHIVE_LOCAL1_0x3329F2AC_EP0_2022-06-01_12-20-09.log3          39240                39261                2022-06-01 13:53:15.996000 2022-06-01 13:53:15.996000 2/opt/dmdbms/data/DAMENG/arch/ARCHIVE_LOCAL1_0x3329F2AC_EP0_2022-06-01_13-52-43.log行号     LOW_SCN              NEXT_SCN             LOW_TIME                   HIGH_TIME                  LOG_ID     
---------- -------------------- -------------------- -------------------------- -------------------------- -----------FILENAME                                                                          ----------------------------------------------------------------------------------
4          39262                40086                2022-06-01 14:28:15.082000 2022-06-01 14:28:15.092000 3/opt/dmdbms/data/DAMENG/arch/ARCHIVE_LOCAL1_0x3329F2AC_EP0_2022-06-01_13-53-28.log5          40087                40356                2022-06-01 14:41:20.870000 2022-06-01 14:41:20.871000 4/opt/dmdbms/data/DAMENG/arch/ARCHIVE_LOCAL1_0x3329F2AC_EP0_2022-06-01_14-30-44.log已用时间: 1.629(毫秒). 执行号:905.

3.启动归档日志文件分析

OPTIONS参数参考如下表所列的可选模式,各模式可以通过 + 或者按位或来进行组合。其它位的值如 1、4、8 等目前不支持,配置后不会报错,但是没有效果。例如,组合全部模式,则取值2+16+64+2048=2130,那么 OPTIONS 值就是 2130。

选项对应值说明
COMMITTED_DATA_ONLY2仅从已交的事务日志中挖掘信息
DICT_FROM_ONLINE_CATALOG16使用在线字典
NO_SQL_DELIMITER64拼写的sql语句最后不添加分隔符
NO_ROWID_IN_STMT2048拼写的sql语句中不包含ROWID
SQL> DBMS_LOGMNR.START_LOGMNR(OPTIONS=>2128 , STARTTIME=>TO_DATE('2022-06-1
12:16:00','YYYY-MM-DD HH24:MI:SS') , ENDTIME=>TO_DATE('2022-06-03 12:21:02','YYYY-MM-DD HH24:MI:SS'));2   
DMSQL 过程已成功完成
已用时间: 8.570(毫秒). 执行号:906.

4.查看归档日志分析结果

SQL> SELECT OPERATION_CODE , SCN, SQL_REDO , TIMESTAMP ,SEG_OWNER, TABLE_NAME FROM 
V$LOGMNR_CONTENTS WHERE SEG_OWNER = 'SYSDBA' AND OPERATION_CODE IN (3,1,2);2   行号     OPERATION_CODE SCN                  SQL_REDO                                                                      
---------- -------------- -------------------- ------------------------------------------------------------------------------TIMESTAMP                  SEG_OWNER TABLE_NAME-------------------------- --------- ----------
1          1              40015                INSERT INTO "SYSDBA"."T50"("ID", "NAME") VALUES(5, 'gg')2022-06-01 14:28:15.087000 SYSDBA    T502          3              37305                UPDATE "SYSDBA"."T_TEST" SET "ID" = 101 WHERE "ID" = 1 AND "NAME" = 'zhangsan'2022-06-01 12:18:40.926000 SYSDBA    T_TEST3          3              37307                UPDATE "SYSDBA"."T_TEST" SET "ID" = 102 WHERE "ID" = 2 AND "NAME" = 'lisi'2022-06-01 12:18:40.926000 SYSDBA    T_TEST行号     OPERATION_CODE SCN                  SQL_REDO                                                                      
---------- -------------- -------------------- ------------------------------------------------------------------------------TIMESTAMP                  SEG_OWNER TABLE_NAME-------------------------- --------- ----------
4          3              37309                UPDATE "SYSDBA"."T_TEST" SET "ID" = 103 WHERE "ID" = 3 AND "NAME" = 'wangwu'2022-06-01 12:18:40.926000 SYSDBA    T_TEST5          3              39256                UPDATE "SYSDBA"."T_TEST" SET "ID" = 15 WHERE "ID" = 5 AND "NAME" = 'gg'2022-06-01 13:53:15.996000 SYSDBA    T_TEST6          3              40018                UPDATE "SYSDBA"."T50" SET "ID" = 101 WHERE "ID" = 1 AND "NAME" = 'zhangsan'2022-06-01 14:28:15.088000 SYSDBA    T50行号     OPERATION_CODE SCN                  SQL_REDO                                                                      
---------- -------------- -------------------- ------------------------------------------------------------------------------TIMESTAMP                  SEG_OWNER TABLE_NAME-------------------------- --------- ----------
7          3              40020                UPDATE "SYSDBA"."T50" SET "ID" = 102 WHERE "ID" = 2 AND "NAME" = 'lisi'2022-06-01 14:28:15.088000 SYSDBA    T508          3              40022                UPDATE "SYSDBA"."T50" SET "ID" = 103 WHERE "ID" = 3 AND "NAME" = 'wangwu'2022-06-01 14:28:15.088000 SYSDBA    T509          3              40024                UPDATE "SYSDBA"."T50" SET "ID" = 104 WHERE "ID" = 4 AND "NAME" = 'czk'2022-06-01 14:28:15.088000 SYSDBA    T50行号     OPERATION_CODE SCN                  SQL_REDO                                                                      
---------- -------------- -------------------- ------------------------------------------------------------------------------TIMESTAMP                  SEG_OWNER TABLE_NAME-------------------------- --------- ----------
10         3              40026                UPDATE "SYSDBA"."T50" SET "ID" = 105 WHERE "ID" = 5 AND "NAME" = 'gg'2022-06-01 14:28:15.088000 SYSDBA    T5011         3              40029                UPDATE "SYSDBA"."T50" SET "ID" = 15 WHERE "ID" = 105 AND "NAME" = 'gg'2022-06-01 14:28:15.089000 SYSDBA    T50行号     OPERATION_CODE SCN                  SQL_REDO                                                            
---------- -------------- -------------------- --------------------------------------------------------------------TIMESTAMP                  SEG_OWNER TABLE_NAME-------------------------- --------- ----------
12         2              37316                DELETE FROM "SYSDBA"."T_TEST" WHERE "ID" = 103 AND "NAME" = 'wangwu'2022-06-01 12:18:40.988000 SYSDBA    T_TEST13         2              40036                DELETE FROM "SYSDBA"."T50" WHERE "ID" = 103 AND "NAME" = 'wangwu'2022-06-01 14:28:15.092000 SYSDBA    T5014         1              37281                INSERT INTO "SYSDBA"."T_TEST"("ID", "NAME") VALUES(1, 'zhangsan')2022-06-01 12:18:40.826000 SYSDBA    T_TEST行号     OPERATION_CODE SCN                  SQL_REDO                                                            
---------- -------------- -------------------- --------------------------------------------------------------------TIMESTAMP                  SEG_OWNER TABLE_NAME-------------------------- --------- ----------
15         1              37289                INSERT INTO "SYSDBA"."T_TEST"("ID", "NAME") VALUES(2, 'lisi')2022-06-01 12:18:40.848000 SYSDBA    T_TEST16         1              37297                INSERT INTO "SYSDBA"."T_TEST"("ID", "NAME") VALUES(3, 'wangwu')2022-06-01 12:18:40.900000 SYSDBA    T_TEST17         1              39223                INSERT INTO "SYSDBA"."T_TEST"("ID", "NAME") VALUES(4, 'czk')2022-06-01 13:52:27.039000 SYSDBA    T_TEST行号     OPERATION_CODE SCN                  SQL_REDO                                                            
---------- -------------- -------------------- --------------------------------------------------------------------TIMESTAMP                  SEG_OWNER TABLE_NAME-------------------------- --------- ----------
18         1              39231                INSERT INTO "SYSDBA"."T_TEST"("ID", "NAME") VALUES(5, 'gg')2022-06-01 13:52:27.056000 SYSDBA    T_TEST19         1              40003                INSERT INTO "SYSDBA"."T50"("ID", "NAME") VALUES(1, 'zhangsan')2022-06-01 14:28:15.085000 SYSDBA    T5020         1              40006                INSERT INTO "SYSDBA"."T50"("ID", "NAME") VALUES(2, 'lisi')2022-06-01 14:28:15.086000 SYSDBA    T50行号     OPERATION_CODE SCN                  SQL_REDO                                                            
---------- -------------- -------------------- --------------------------------------------------------------------TIMESTAMP                  SEG_OWNER TABLE_NAME-------------------------- --------- ----------
21         1              40009                INSERT INTO "SYSDBA"."T50"("ID", "NAME") VALUES(3, 'wangwu')2022-06-01 14:28:15.086000 SYSDBA    T5022         1              40012                INSERT INTO "SYSDBA"."T50"("ID", "NAME") VALUES(4, 'czk')2022-06-01 14:28:15.086000 SYSDBA    T5022 rows got已用时间: 2.102(毫秒). 执行号:907.

5.关闭归档日志分析

SQL> DBMS_LOGMNR.END_LOGMNR();
DMSQL 过程已成功完成
已用时间: 0.375(毫秒). 执行号:908.

总结

如果你还有其他问题,欢迎到达梦社区来提问~
社区地址:

更多推荐

基于达梦的LOGMNR工具进行日志挖掘

本文发布于:2024-03-13 12:43:18,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1734021.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:工具   日志   LOGMNR

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!