重庆思庄Oracle、Redhat认证学习论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 50|回复: 0

[Oracle] DG模式之间的切换

[复制链接]
发表于 2020-11-9 11:16:00 | 显示全部楼层 |阅读模式
1.查看DG目前处于什么模式
SQL> select protection_mode,protection_level from v$database;
PROTECTION_MODE            PROTECTION_LEVEL
--------------------                  --------------------
MAXIMUM PERFORMANCE    MAXIMUM PERFORMANCE
目前处于最高性能模式
2.从最高性能模式切换至最大保护模式
SQL> alter database set standby databaseto MAXIMIZE PROTECTION;
alter database set standby database toMAXIMIZE PROTECTION
*
ERROR at line 1:
ORA-01126: database must be mounted in thisinstance and not open in any instance
出现报错,需要从mount状态切换
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup mount
ORACLE instance started.
Total System Global Area 1593835520 bytes
Fixed Size                  8621184 bytes
Variable Size            1023411072 bytes
Database Buffers          553648128 bytes
Redo Buffers                8155136 bytes
Database mounted.
SQL> alter database set standby databaseto MAXIMIZE PROTECTION;
Database altered.
SQL> alter database open;
Database altered.
SQL> selectdatabase_role,open_mode,protection_mode, protection_level from v$database;
DATABASE_ROLE    OPEN_MODE      PROTECTION_MODE      PROTECTION_LEVEL
----------------        --------------------     --------------------            --------------------
PHYSICAL STANDBY   READONLY       MAXIMUM PROTECTION   MAXIMUM PROTECTION
切换至最大保护模式
3.从最大保护切换至最高可用
SQL> alter database set standby databaseto MAXIMIZE AVAILABILITY;
Database altered.
SQL> selectdatabase_role,open_mode,protection_mode, protection_level from v$database;
DATABASE_ROLE           OPEN_MODE                   PROTECTION_MODE               PROTECTION_LEVEL
----------------              --------------------                  --------------------                    --------------------
PHYSICAL STANDBY  READ ONLY WITH APPLY       MAXIMUM AVAILABILITY         MAXIMUM AVAILABILITY
可直接切换
4.从最高可用切换回最大性能
SQL> alter database set standby databaseto maximize performance;
Database altered.
SQL> selectdatabase_role,open_mode,protection_mode, protection_level from v$database;
DATABASE_ROLE            OPEN_MODE                    PROTECTION_MODE              PROTECTION_LEVEL
----------------               --------------------                    --------------------                   --------------------
PHYSICAL STANDBY    READ ONLY WITH APPLY       MAXIMUM PERFORMANCE      MAXIMUM PERFORMANCE


经过测试可以得到结论:
1、最高性能模式既可以使用ARCH方式传递日志,也可以使用LGWR方式传递,在升级到更高级别保护模式时,需使用LGWR方式,且需要在备库创建standby日志组。
2、三种保护模式进行切换时,最高性能升级到最大保护模式(⑤),需先把数据库重启到mounted状态才能操作。其他情况(①②③④⑥)相互切换时,可以直接进行。
在生产环境下如果需要从最高性能模式升级为最大保护模式,可先从最高性能模式升级最高可用模式,再由最高可用模式升级为最大保护模式。

如下图,通过①②分步升级的方式代替⑤直接升级,避免了重启到mounted状态对生产环境下业务造成的影响
52925fa8b46291a44.png


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|小黑屋|重庆思庄Oracle、Redhat认证学习论坛 ( 渝ICP备12004239号-4 )

GMT+8, 2020-11-28 16:21 , Processed in 0.149600 second(s), 24 queries .

重庆思庄学习中心论坛-重庆思庄科技有限公司论坛

© 2001-2020

快速回复 返回顶部 返回列表