DataGuard快照(snapshot)数据库

在Dataguard中,可以将standby备库切换为snapshot快照数据库,在切换为snapshot数据库后,备库将置于可读写的模式。可用于模拟业务功能测试。在使用完成之后,可以将快照数据库切换为物理备库。在此期间,备库可以接受主库传输过来的日志,但是不能应用日志,需要处于物理备库的时候才可以应用。

(一)将物理备库切换为快照数据库
1.备库配置快速恢复区

alter system set db_recovery_file_dest_size=10g;
set db_recovery_file_dest='/u01/app/oracle/fast_recovery_area/adgdb';


2.备库关闭redo apply应用

--在关闭之前,备库的开启状态为:READ ONLY WITH APPLY --关闭redo apply后,备库的开启状态为:READ ONLY alter database recover managed standby database cancel;

 

3.切换为快照数据库

执行转换为快照数据库后,备库的开启状态为:MOUNTED database convert to snapshot standby; 开启备库后,数据库开启状态为:READ WRITE database open;

查看状态:

SQL> select open_mode,database_role,protection_mode,protection_level from v$database;

OPEN_MODE            DATABASE_ROLE    PROTECTION_MODE       PROTECTION_LEVEL
------------------ ---------------- --------------------  --------------------
READ WRITE           SNAPSHOT STANDBY MAXIMUM AVAILABILITY  MAXIMUM AVAILABILITY

在快照数据库上进行读写操作,发现不仅可以读,还可以写入数据

select * from lijiaman.test01; ID NAME -------- -------------------- 1 lijiaman 2 gegeman 3 man 4 a SQLinsert into lijiaman.test01 values(5,b'); row created. SQLcommit; Commit complete.


(二)将快照数据库切回物理备库
1.关闭备库,将备库启动到mount状态

shutdown immediate start mount


2.执行切回命令

to physical standby;


3.再次关闭备库,启动到open状态,开启实时应用

关闭备库 immediate 启动数据库到open状态 startup 开始备库实时应用 database using current logfile disconnect;


4.查看备库状态

> select name,open_mode,protection_mode ; NAME OPEN_MODE DATABASE_ROLE PROTECTION_MODE ------- -------------------- ---------------- -------------------- ADGDB READ ONLY WITH APPLY PHYSICAL STANDBY MAXIMUM AVAILABILITY

 

5.这个时候,再回去查看test01表信息,发现处于snapshot数据库时insert的数据已经不存在

4 a

 

【完】

相关文章

文章浏览阅读773次,点赞6次,收藏9次。【代码】c# json字符...
文章浏览阅读8.7k次,点赞2次,收藏17次。此现象一般定位到远...
文章浏览阅读2.8k次。mysql脚本转化为oracle脚本_mysql建表语...
文章浏览阅读2.2k次。cx_Oracle报错:cx_Oracle DatabaseErr...
文章浏览阅读1.1k次,点赞38次,收藏35次。本文深入探讨了Or...
文章浏览阅读1.5k次。默认自动收集统计信息的时间为晚上10点...