使用logmnr工具来分析归档日志
在很多场合下,我们需要分析数据库操作日志来确认开发人员是否存在误操作,类似删表和删除数据等操作。这个时候就可以使用logmnr工具来分析归档日志。
使用方法:
(1)首先确保数据库处于归档模式下,且保留的归档文件日志包含误操作日志。
创建系统包 执行 SP_CREATE_SYSTEM_PACKAGES (1,'DBMS_LOGMNR'); 命令
(2)确保RLOG_APPEND_LOGIC为1或者2,如果为0,归档文件记录的操作会很少。
修改DM.INI里面的两个参数 如下: ARCH_INI = 1
RLOG_APPEND_LOGIC = 1
(3)查看数据库保留归档信息,通过如下sql语句查看归档文件信息
select first_time,name from v$archived_log;
根据FIRST_NAME(日志文件起始时间)来确定需要查看的归档范围。
(4)添加需要分析的归档日志
Call dbms_logmnr.add_logfile('/home/dmdba/dmdbms/arch/ARCHIVE_LOCAL1_0x2518D6C2[0]_2020-09-07_15-06-00.log');
(5)确认归档日志是否被加载
Select * from v$logmnr_logs;
(6)启动日志分析
DBMS_LOGMNR.START_LOGMNR(OPTIONS=>2128,STARTTIME=>TO_DATE('YYYY-MM-DD HH24:MI:SS') ,ENDTIME=>TO_DATE('YYYY-MM-DD HH24:MI:SS'));
DBMS_LOGMNR.START_LOGMNR(OPTIONS=>2128,STARTTIME=>TO_DATE('2020-09-07 2:0:00') ,ENDTIME=>TO_DATE('2020-09-07 4:0:00'));
(7)查看v$logmnr_contents视图找出对应的操作,例如:
select start_timestamp,sql_redo from v$logmnr_contents where table_name='D_METERREAD202009' and operation='INSERT' and sql_redo like '%000300008617%';
(8)通过分析v$logmnr_contents视图分析所有的操作日志。
注:(dbms_logmnr.add_logfile每次只能添加一个归档文件,且再次分析需要停止日志分析执行DBMS_LOGMNR.END_LOGMNR)
浙公网安备 33010602011771号