
关于通过Dataguard Standy备库闪回来恢复主库drop/truncate/delete的表数据
方法适用于Oracle 10.2.0.1之后的版本
目的
本文主要了解通过备库闪回操作来进行对主库drop/truncate/delete表的数据恢复步骤
解决方法
前提要求:
- 备库必须已经处于闪回数据库模式
- 被drop/truncate/delete表的发生时间应该在db_flashback_retention_target的时间范围内,其所有闪回和归档日志应该都处于可用状态
步骤:
1) 停止备库的MRP(managed recovery process)
SQL > recover managed standby database cancel;
2) 为了找到丢失的数据,使用flashback database到drop/truncate/delete表操作发生之前的靠近的时间点。
例如:
SQL > shutdown immediate;
SQL > startup mount;
SQL > flashback database to timestamp to_date('29-MAY-2009 14:30:00','DD-MON-YYYY HH24:MI:SS');
3) 将备库置于Read Only模式.
SQL> alter database open read only;
4) 检查并找到表数据并确认可用。
5) 导出所需的表数据。
6) 将数据导回主库。
7) 关闭备库,之后重新mount备库并使用recover命令将其恢复到主库当前状态。
SQL > shutdown immediate
SQL > startup mount
SQL > recover standby database;
8) 一旦所有所有归档都手动应用好后,启动MRP,让其进行自动归档应用同步。
SQL > recover managed standby database disconnect from session;


本文介绍如何通过Oracle Dataguard备库闪回功能,恢复主库中被drop、truncate或delete的表数据。适用于Oracle10.2.0.1及以后版本。文章详细阐述了备库闪回数据库模式下,通过停止MRP、闪回到指定时间点、导出数据、恢复到主库等步骤,实现数据恢复的过程。
1079

被折叠的 条评论
为什么被折叠?



