oracle 11g 数据恢复 Oracle 数据库中数据丢失的几种恢复方法

关于使用dbms_logmnr进行恢复
-----------------

Oracle LogMiner, 做为Oracles数据库配套工具,能够用于帮你进行在线日志和归档日志文件记录查询。DBMS_LOGMNR程序包提供了相应接口来启动和关闭LogMiner挖掘并指定日志文件对象。
全部关于数据库数据以及数据字典的变动都会被记录在Oracle重作日志中,它们被用于在须要时进行数据库恢复。所以你也能够充分利用这些记录来完成其它任务:sql

  • 如定位数据库中的逻辑讹误,例如应用层的逻辑异常等。
  • 判断你须要进行哪些事务级的细粒度恢复操做。
  • 经过趋势分析在进行有计划的扩容和性能优化。
  • 对DML和DDL语句执行进行追踪,并了解执行顺序,以及执行者来源。

 

dbms_logmnr在Pluggable Database上执行失败的问题数据库

-----------------
针对 Oracle Database 12.1.0.2及以后版本。
在运行logminer时, dbms_logmnr的procedure会在PDB实例上执行失败并报如下错误:性能优化

ORA-65040: operation not allowed from within a pluggable database

缘由:
logminer须要在CDB上启动.
在PDB层启动logminer并不知足代码检查条件。其v$logminer_contents仅可在CDB层访问。
在相关文档中,也有提到:oracle

'In a CDB, the V$LOGMNR_CONTENTS view and its associated functions are restricted to the root database'

解决方法:
按如下步骤在CDB层正确启动logminer:
1. 检查当前活跃的重作日志:app

Select member from v$logfile;

2. 加入但愿进行挖掘的日志:工具

EXECUTE DBMS_LOGMNR.ADD_LOGFILE( LOGFILENAME => '/home/oracle/app/oracle/oradata/test/redo01.log', OPTIONS => DBMS_LOGMNR.NEW);
...

3. 和过去操做同样启动logminer:性能

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