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

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

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

  • 如定位数据库中的逻辑讹误,例如应用层的逻辑异常等。
  • 判断你需要进行哪些事务级的细粒度恢复操作。
  • 通过趋势分析在进行有计划的扩容和性能优化。
  • 对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层访问。
在相关文档中,也有提到:

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

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

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);

猜你喜欢

转载自blog.csdn.net/liu_maclean/article/details/81062976