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

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

alter system set db_recovery_file_dest_size=10g;
alter system 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
alter database convert to snapshot standby; --开启备库后,数据库开启状态为:READ WRITE
alter 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

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

SQL> select * from lijiaman.test01;

    ID NAME
---------- --------------------
1 lijiaman
2 gegeman
3 man
4 a SQL> insert into lijiaman.test01 values(5,'b');
1 row created. SQL> commit;
Commit complete.

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

shutdown immediate
start mount

2.执行切回命令

alter database convert to physical standby;

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

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

4.查看备库状态

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

NAME      OPEN_MODE            DATABASE_ROLE    PROTECTION_MODE
--------- -------------------- ---------------- --------------------
ADGDB READ ONLY WITH APPLY PHYSICAL STANDBY MAXIMUM AVAILABILITY

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

SQL> select * from lijiaman.test01;

    ID NAME
---------- --------------------
1 lijiaman
2 gegeman
3 man
4 a

【完】

最新文章

  1. ionic 开发笔记
  2. yii2集成富文本编辑器redactor
  3. Thinkphp 边学边用-验证码无意间犯的错
  4. 智能硬件+App移动新生态【10.24北京站】
  5. js中把JSON字符串转换成JSON对象最好的方法
  6. ios之UITableViewController(二) tableView的编辑模式
  7. 总结源码编译安装mysql
  8. Unity3d 实现顶点动画
  9. Java synchronized 详解
  10. 【Dojo 1.x】笔记4 文字动画效果
  11. word_freq
  12. 浅谈 drop、truncate和delete的区别
  13. vue学习笔记-初始化一个vue项目(1)
  14. php输出日志
  15. npm 报错unable to verify the first certificate
  16. java json与map互相转换(一)
  17. phython学习
  18. QRCode 二维码
  19. spring-session实现分布式集群session的共享(转)
  20. Rails-treasure chest4: 使用图表对资料进行分析chart.js(及其他);管理用户权限的gem 'Pumdit'(6000🌟)

热门文章

  1. LeetCode赛题393----UTF-8 Validation
  2. Keras 自适应Learning Rate (LearningRateScheduler)
  3. @WebServlet
  4. vs2015新建web应用程序空模板和添加webapi的模板生成文件的比较
  5. 连接到 Azure 上的 SQL Server 虚拟机(经典部署)
  6. apache中配置php支持模块模式、cgi模式和fastcgi模式
  7. Android SDK和ADT无法更新的解决办法
  8. 1、Docker 架构详解
  9. 使用 Nginx 对 ASP.NETCore网站 或 Docker 等进行反向代理,宝塔面板对 ASP.NET Core 反向代理
  10. ZT pthread_detach