如何使用log miner分析oracle日志
当我们不小心误操作致使数据库数据丢失、改变时, 需要对数据库对象做基于时间点的恢复,找到我们需要的数据,这个时间点不能认为精确确定,我们可以通过对oracle日志进行分析,而获得无操作的精确时间点。
oracle db提供了一个分析日志包logmnr
logminer 工具的使用
-对redo log 进行挖掘,找出在某个时间点所作的DDL 或DML 操作(包括:时间点、datablock scn 、sql语句)
实验测试
SQL select name from v$archived_log;
NAME
/oracle/arch1/1_2_883536782.dbf
SQL
SQL
SQL delete from scott.t1;
576 rows deleted.
SQL alter system archive log current;
System altered.
SQL create table scott.t6 as select * from scott.emp;
Table created.
SQL alter system archive log current;
System altered.
SQL select name from v$archived_log;
NAME
/oracle/arch1/1_2_883536782.dbf
/oracle/arch1/1_3_883536782.dbf
/oracle/arch1/1_4_883536782.dbf
启动log miner添加要分析的日志
SQL execute dbms_logmnr.add_logfile(logfilename= /oracle/arch1/1_2_883536782.dbf ,options= dbms_logmnr.new);
PL/SQL procedure successfully completed.
添加需要分析的日志
SQL execute dbms_logmnr.add_logfile(logfilename= /oracle/arch1/1_3_883536782.dbf ,options= dbms_logmnr.addfile);
PL/SQL procedure successfully completed.
SQL execute dbms_logmnr.add_logfile(logfilename= /oracle/arch1/1_4_883536782.dbf ,options= dbms_logmnr.addfile)
PL/SQL procedure successfully completed.
执行log miner
SQL execute dbms_logmnr.start_logmnr(options= dbms_logmnr.dict_from_online_catalog);
PL/SQL procedure successfully completed.
查询分析结果
SQL alter session set nls_date_format= yyyy-mm-dd hh24:mi:ss
Session altered.
SQL select username,scn,timestamp,sql_redo from v$logmnr_contents where seg_name= T1
USERNAME SCN TIMESTAMP
- -
SQL_REDO
delete from SCOTT . T1 where EMPNO = 7782 and ENAME = CLARK and JOB = MANAGER and MGR = 7839 and HIREDATE = TO_DATE( 1981-06-09 00:00:00 , yyyy-mm-dd hh24:mi:ss ) and SAL = 245
0 and COMM IS NULL and DEPTNO = 10 and ROWID = AAAVbSAAFAAAACXABi
SYS 1494545 2015-06-28 04:24:44
delete from SCOTT . T1 where EMPNO = 7839 and ENAME = KING and JOB = PRESIDENT and MGR IS NULL and HIREDATE = TO_DATE( 1981-11-17 00:00:00 , yyyy-mm-dd hh24:mi:ss ) and SAL = 500
0 and COMM IS NULL and DEPTNO = 10 and ROWID = AAAVbSAAFAAAACXABj
SYS 1494545 2015-06-28 04:24:44
delete from SCOTT . T1 where EMPNO = 7844 and ENAME = TURNER and JOB = SALESMAN and MGR = 7698 and HIREDATE = TO_DATE( 1981-09-08 00:00:00 , yyyy-mm-dd hh24:mi:ss ) and SAL = 1
。。。。。
结束log miner 分析
SQL execute dbms_logmnr.end_logmnr;
PL/SQL procedure successfully completed.
本篇文章到此结束,如果您有相关技术方面疑问可以联系我们技术人员远程解决,感谢大家支持本站!
我想要获取技术服务或软件
服务范围:MySQL、ORACLE、SQLSERVER、MongoDB、PostgreSQL 、程序问题
服务方式:远程服务、电话支持、现场服务,沟通指定方式服务
技术标签:数据恢复、安装配置、数据迁移、集群容灾、异常处理、其它问题
本站部分文章参考或来源于网络,如有侵权请联系站长。
数据库远程运维 如何使用log miner分析oracle日志
相关文章
- ORA-01197: thread string only contains one log ORACLE 报错 故障修复 远程处理
- 里查找Oracle日志文件:从何处开始?(oracle日志文件在哪)
- 写错误Oracle日志缓冲区写错误:不容忽视(oracle日志缓冲区)
- Oracle实例:用户名解析(oracle实例的用户名)
- 深入研究Oracle 日志信息(查看oracle的日志)
- Oracle 添加日志组:新增一种日志管理方式(oracle添加日志组)
- 深入Oracle数据库:深度探索中文数据管理(oracle数据库中文)
- 深入探索Oracle触发器:完整的触发器类型(oracle触发器类型)
- 深入探索Oracle触发器的类型(oracle触发器类型)
- 重新缓解Oracle缓存压力(oracle刷新缓存)
- 分析分析Oracle服务启动日志以排除故障(oracle启动服务日志)
- Oracle删表操作记录: 从记录中学习(oracle删表日志)
- 精通Oracle服务的批处理技巧(oracle服务批处理)
- 如何关闭Oracle数据库的归档日志功能(oracle归档日志关闭)
- 容易解决:Oracle日志文件的储存目录问题(oracle 日志 目录)
- 使用Oracle全连接排序实现数据排序精准化(oracle全连接排序)
- Oracle全日志模式记录生活最精彩瞬间(oracle全日志模式)
- Oracle极速减尐日志占用,实现最佳效果(oracle减少日志)
- 妙用Loop语句执行Oracle数据库查询(loop条件oracle)
- 在CMD中快速退出Oracle环境(cmd下退出oracle)
- Oracle 10 日志的解读与挖掘(oracle10 log)