oracle怎样使用logmnr恢复误删除的数据

如果有同事误删除数据了,可以用logmnr挖掘归档日志,生成回滚sql,快速恢复数据,比用整个库的备份恢复要快得多。

一 操作步骤

1.1 创建目录

su - oracle

mkdir logmnr

create directory logmnr_dir as '/home/oracle/logmnr';

1.2 建立数据字典分析文件

execute dbms_logmnr_d.build(dictionary_filename =>'dict.ora',dictionary_location =>'LOGMNR_DIR');

1.3 添加日志分析

exec dbms_logmnr.add_logfile(logfilename=>'/data/app/oracle/arch/1_772_1164727119.dbf',options=>dbms_logmnr.new);

exec dbms_logmnr.add_logfile(logfilename=>'/data/app/oracle/arch/1_773_1164727119.dbf');

#注意,只分析第一个日志文件的时候加,options=>dbms_logmnr.new,后面的文件不要加这个,否则会少数据。

1.4 启动LOGMNR开始分析

exec DBMS_LOGMNR.START_LOGMNR(OPTIONS=>DBMS_LOGMNR.DICT_FROM_ONLINE_CATALOG);

create table scott.t8 parallel(degree 8) as select * from v$logmnr_contents;

1.5 查看sql与回滚sql

select timestamp,table_name,operation,sql_redo,sql_undo from scott.t5 where table_name='T1';

示例:

1.6 跟开发沟通确认回滚sql没问题后,执行回滚sql

1.7 结束分析

execute dbms_logmnr.end_logmnr;

相关推荐
阿巴~阿巴~16 分钟前
Redis重大版本演进全解析:从2.6到7.0
服务器·数据库·redis·ubuntu·缓存·centos
qq_404643341 小时前
MySQL中RUNCATE、DELETE、DROP 的基本介绍
数据库·mysql
像风一样!2 小时前
MySQL数据库如何实现主从复制
数据库·mysql
大白的编程日记.2 小时前
【MySQL】数据库表的CURD(二)
android·数据库·mysql
友善的鸡蛋2 小时前
项目中执行SQL报错oracle.jdbc.OracleDatabaseException: ORA-00942: 表或视图不存在
数据库·sql·oracle
The best are water2 小时前
jeesite mybatis添加拦截器,推送指定表的变更数据到其他数据库
数据库·mybatis
api_180079054603 小时前
异步数据采集实践:用 Python/Node.js 构建高并发淘宝商品 API 调用引擎
大数据·开发语言·数据库·数据挖掘·node.js
怕什么真理无穷3 小时前
mysql server 9.4 windows安装教程(sqlyog 下载)
数据库
Olrookie3 小时前
MySQL运维常用SQL
运维·数据库·sql·mysql·dba
数据库生产实战3 小时前
ORACLE 19C ADG环境 如何快速删除1.8TB的分区表?有哪些注意事项?
数据库·oracle