当前位置: 首页 > Oracle, oracle 10g, oracle 11g > 正文

ORACLE DATA GUARD备库应用闪回数据库测试

客户有套DG环境,最近客户的领导提出这样一个需求,要求在一个月内的所有误删除等操作都可以通过备库快速回退到故障点,快速找回数据,通过RMAN备份恢复肯定可以实现,但闪回数据库功能相对来说可能更方便(客户有足够的空间保留一个月的闪回日志)。

以下是针对STANDBY数据库应用FLASHBACK DATABASE功能模拟客户环境做的实验:

操作系统:OEL5.7X86_64

数据库版本:ORACLE 11.2.0.3.0

实验过程:

  1. 搭建物理DATA GUARD(略)
  2. 备库开启数据库闪回功能

如果备库已经开始应用日志,首先需要关闭MPR进程

SQL> alter database recover managed standby database cancel;

Database altered.

备库打开闪回数据库功能

SQL> alter database flashback on;

Database altered.

将备库打开到OPEN READ ONLY状态

SQL> alter database open read only;

Database altered.
  1. 备库启动MPR进程,开始应用日志
SQL> alter database recover managed standby database disconnect from session;

Database altered.
  1. 主库模拟数据变化

本实验在主库创建个JOB,每5秒钟更新一次数据。

SQL> conn scott/tiger

Connected.
SQL> declare
2 job_sal number;
3 begin
4 dbms_job.submit(job_sal,
5 'UPDATE EMP_OGG SET SAL=SAL+1;commit;',
6 sysdate,
7 'sysdate+1/24/60/12');
8 commit;
9 end;
10 /

PL/SQL procedure successfully completed.
  1. 主库查询当前SCN及数据的值

当JOB运行一段时间后,查询当前数据库SCN及数据的值

SQL> select current_scn from v$database;

CURRENT_SCN
-----------
505250
SQL> select max(sal) from scott.emp_ogg as of scn 505250;

MAX(SAL)
----------
6068
  1. 主库切换日志

主库切换日志,保证备库数据尽量和主库完全同步

SQL> alter system switch logfile;

System altered.

SQL> /

System altered.

... ...

... ...

System altered.

SQL> /

System altered.
  1. 备库查询数据值
SQL> select max(sal) from scott.emp_ogg;

MAX(SAL)
----------
6097

查询SCN为505250时数据的值

SQL> select max(sal) from scott.emp_ogg as of scn 505250;

MAX(SAL)
----------
6068
  1. 备库关闭MPR进程
SQL> alter database recover managed standby database cancel;

Database altered.
  1. 备库打开到MOUNT状态
SHUTDOWN IMMEDIATE

STARTUP MOUNT

10.备库闪回到SCN 505250

SQL> flashback database to scn 505250;

Flashback complete.

11.将备库调整到OPEN READ ONLY状态,并查询数据

SQL> alter database open read only;

Database altered.

SQL> select max(sal) from scott.emp_ogg;

MAX(SAL)
----------
6068

12.回退
如果此时可以查询到误删除的数据,那么直接导出数据并在主库还原,还原后可以再次打开MPR进程,MPR进程会自动和主库同步数据,而不需要重新搭建备库。

备库:

SQL> alter database recover managed standby database disconnect from session;

Database altered.

SQL> select max(sal) from scott.emp_ogg;

MAX(SAL)
----------
6223

SQL> a  as of scn 505250
1* select max(sal) from scott.emp_ogg as of scn 505250

SQL> /

MAX(SAL)
----------
6068
  1. 总结

经过测试,证实备库在应用归档日志的同时,也是会记录闪回日志的。

本文固定链接: http://www.dbdream.com.cn/2012/12/oracle-data-guard%e5%a4%87%e5%ba%93%e5%ba%94%e7%94%a8%e9%97%aa%e5%9b%9e%e6%95%b0%e6%8d%ae%e5%ba%93%e6%b5%8b%e8%af%95/ | 信春哥,系统稳,闭眼上线不回滚!

该日志由 dbdream 于2012年12月10日发表在 Oracle, oracle 10g, oracle 11g 分类下, 你可以发表评论,并在保留原文地址及作者的情况下引用到你的网站或博客。
原创文章转载请注明: ORACLE DATA GUARD备库应用闪回数据库测试 | 信春哥,系统稳,闭眼上线不回滚!
关键字: , ,

ORACLE DATA GUARD备库应用闪回数据库测试:等您坐沙发呢!

发表评论

快捷键:Ctrl+Enter