视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
使用Logminer还原操作记录
2020-11-09 11:17:43 责编:小采
文档

今天本来下班快要走了,结果开发人员说他们有个测试表的数据突然不见了,而且说应该是没有人delete,问我是不是oracle的Bug(这个

今天本来下班快要走了,结果开发人员说他们有个测试表的数据突然不见了,而且说应该是没有人delete,问我是不是Oracle的Bug(这个有点搞吧,这都想得出来,哈哈),,让我帮看一下,没法只能使用logminer来分析日志了:

1、 修改utl_file_dir参数为一个特定目录,或者修改为*(建议,这样就可以访问所有oracle用户可以访问的目录,修改这个参数需要重启生效!)
2、 执行一下脚本初始化logminer环境

  • @$ORACLE_HOME/rdbms/admin/dbmslm.sql
  • @$ORACLE_HOME/rdbms/admin/dbmslmd.sq
  • 3、 生成数据字典文件,如:

  • 4、 添加日志文件,可以使归档日志也可以使在线redo日志,由于这个数据库没有起归档,所有就使用online redo日志来分析,还好他们没有做压力,日志没被切换掉:

  • 5、 使用第三步中生成的数据字典开始分析日志,可以使用scn参数分析从多少scn号至多少scn号之间的日志
    EXECUTE dbms_logmnr.start_logmnr(DictFileName=>'/arclog/logminer/logminer.ora');
    6、 可以查询v$logmnr_contents视图中的sql_redo字段,获取操作内容,如:

  • 经查看sql_redo,发现他们在2012-02-22 19:52:22时对那个表做了663个delete操作,亏他还还想得起来。呵呵。

    7、 使用以后可以使用EXECUTE DBMS_LOGMNR.END_LOGMNR 清空v$logmnr_logs及v$logmnr_contents的内容

    8、 附加:
    当使用logminer挖掘日志时,可能出现sql_redo值为UNSUPPORTED的内容信息,这时可以打开数据库的追加日志选项:
    查询数据库级别的日志追加选项是否已经开启:

  • SELECT SUPPLEMENTAL_LOG_DATA_MIN,SUPPLEMENTAL_LOG_DATA_PK,SUPPLEMENTAL_LOG_DATA_UI,
  • 启用Supplemental Logging:

  • 这里启用minimal logging,一般做到这一步,logminer就拥有足够的信息分析所有所做过的操作。
    其他级别的日志追加:

  • 禁用Supplemental Logging:
    如果存在ALL、PRIMARY KEY、UNIQUE INDEX的追加日志选项,则需要先禁用这些内容的日志追加后才能禁用minimal logging,否则会有如下错误:
    ORA-325: unable to drop minimal supplemental logging

  • 启用表级别的追加日志,如:

  • 下载本文
    显示全文
    专题