Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1095886
  • 博文数量: 276
  • 博客积分: 10077
  • 博客等级: 上将
  • 技术积分: 2513
  • 用 户 组: 普通用户
  • 注册时间: 2007-08-24 20:31
文章分类

全部博文(276)

文章存档

2020年(1)

2015年(5)

2012年(2)

2011年(6)

2010年(7)

2009年(224)

2008年(31)

我的朋友

分类: Oracle

2008-08-04 18:41:05

问题描述:
今天用户的某一个表的字段不知道由谁UPDATE了,使得该字段全部值都相同.要查询什么时候执行了,和谁执行了操作.再次用到了Logmnr.

1.在init.ora初始化参数文件中,指定数据字典文件的位置,也就是添加一个参数UTL_FILE_DIR,该参数值为服务器中放置数据字典文件的目录。如:UTL_FILE_DIR = ($ORACLE_HOME\logs) ,重新启动数据库,使新加的参数生效
UTL_FILE_DIR=z:\dict

2.创建数据字典文件
EXECUTE sys.dbms_logmnr_d.build(dictionary_filename => '052401.ora',dictionary_location => 'Z:\dict');

3.创建要分析的日志文件列表
execute dbms_logmnr.add_logfile(LogFileName=>'z:\archive\ARC14884.001',Options =>dbms_logmnr.new);

10G忽略上面三步

4.
1)添加分析日志
EXECUTE dbms_logmnr.add_logfile(LogFileName=>'z:\archive\ARC14885.001',Options=>dbms_logmnr.addfile);
EXECUTE dbms_logmnr.add_logfile(LogFileName=>'z:\archive\ARC14886.001',Options=>dbms_logmnr.addfile);
2)删除分析日志
EXECUTE dbms_logmnr.add_logfile('z:\archive\ARC14884.001',dbms_logmnr.removefile);
3)查询分析日志视图\字典
select * from v$logmnr_logs
select * from v$logmnr_dictionary

5.使用logMiner进行日志分析
execute dbms_logmnr.start_logmnr(DictFileName => 'Z:\dict\052401.ora');

6.查询分析结果
select to_char(timestamp,'YYYY-MM-DD HH24:MI:SS') time,sql_redo from v$logmnr_contents where seg_name='TOOL_INFO'

7.分析后释放内存
execute dbms_logmnr.end_logmnr;


帮用户返回某时间点前的数据,使用flashback table(注意表约束)
select * from test_fb as of timestamp to_timestamp('2008-05-04 14:16:17', 'yyyy-mm-dd hh24:mi:ss');

阅读(934) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~