利用归档日志查看历史sql

本文介绍了如何利用logmnr工具分析数据库归档日志,以排查开发人员可能的误操作,如删表、删除数据等。通过确保数据库在归档模式下,设置正确的RLOG_APPEND_LOGIC,查询并选择合适的归档日志范围,然后加载日志、启动分析,并通过v$logmnr_contents视图检查具体操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

利用归档日志查看历史sql
在很多场合下,我们需要分析数据库操作日志来确认开发人员是否存在误操作,类似删表和删除数据等操作。这个时候就可以使用logmnr工具来分析归档日志。

使用方法:
(1)首先确保数据库处于归档模式下,且保留的归档文件日志包含误操作日志。


(2)确保RLOG_APPEND_LOGIC为1或者2,如果为0,归档文件记录的操作会很少。

select * from v$dm_ini where PARA_NAME='RLOG_APPEND_LOGIC';

(3)查看数据库保留归档信息,通过如下sql语句查看归档文件信息

select first_time,name from v$archived_log;

根据FIRST_TIME(日志文件起始时间)来确定需要查看的归档范围。
(4)添加需要分析的归档日志

Call dbms_logmnr.add_logfile('/dbbak/db7bak/arch/ARCHIVE_LOCAL1_20161013025146670_0.log');

(5)确认归档日志是否被加载

Select * from v$logmnr_logs;

(6)启动日志分析

DBMS_LOGMNR.START_LOGMNR(OPTIONS=>2128,STARTTIME=>TO_DATE('2016-10-13 2:0:00','YYYY-MM-DD HH24:MI:SS') ,ENDTIME=>TO_DATE('2016-10-13 4:0:00','YYYY-MM-DD HH24:MI:SS'));

(7)查看v$logmnr_contents视图找出对应的操作,例如:

select start_timestamp,sql_redo from v$logmnr_contents where table_name='D_METERREAD201610' and operation='INSERT' and
sql_redo like '%000300008617%';

(8)通过分析v$logmnr_contents视图分析所有的操作日志。

注:(dbms_logmnr.add_logfile每次只能添加一个归档文件,且再次分析需要停止日志分析DBMS_LOGMNR.END_LOGMNR)

更多资讯请上达梦技术社区了解:https://eco.dameng.com

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值