我是靠谱客的博主 冷酷铃铛,最近开发中收集的这篇文章主要介绍DG保护模式切换,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

ADG三种模式切换及介绍
1.1切换到最大保护模式(PERFORMANCE-->PROTECTION)

--主库
select name,protection_mode,database_role,switchover_status from v$database;

NAME	  PROTECTION_MODE      DATABASE_ROLE	SWITCHOVER_STATUS
--------- -------------------- ---------------- --------------------
ORCL	  MAXIMUM PERFORMANCE  PRIMARY		TO STANDBY
--备库
select name,protection_mode,database_role,switchover_status from v$database;

NAME	  PROTECTION_MODE      DATABASE_ROLE	SWITCHOVER_STATUS
--------- -------------------- ---------------- --------------------
ORCL	  MAXIMUM PERFORMANCE  PHYSICAL STANDBY NOT ALLOWED
--主库操作
--切换到PROTECTION需要重启
alter database set standby database to maximize protection;
alter database set standby database to maximize protection
*
ERROR at line 1:
ORA-01126: database must be mounted in this instance and not open in any
instance

shu immediate
startup mount
alter database set standby database to maximize protection;

Database altered.
alter database open;
--主备库都是下面的输出(database_role肯定是有区别的)
select name,protection_mode,database_role,switchover_status from v$database;

NAME	  PROTECTION_MODE      DATABASE_ROLE	SWITCHOVER_STATUS
--------- -------------------- ---------------- --------------------
ORCL	  MAXIMUM PROTECTION   PHYSICAL STANDBY NOT ALLOWED

1.2切换到最大可用模式(PERFORMANCE-->AVAILABILITY)

--主备库都是下面的输出(database_role肯定是有区别的)
select name,protection_mode,database_role,switchover_status from v$database;

NAME	  PROTECTION_MODE      DATABASE_ROLE	SWITCHOVER_STATUS
--------- -------------------- ---------------- --------------------
ORCL	  MAXIMUM PERFORMANCE  PHYSICAL STANDBY NOT ALLOWED
--主库不需要重启
alter database set standby database to maximize availability;

Database altered.
--主备库都是下面的输出(database_role肯定是有区别的)
select name,protection_mode,database_role,switchover_status from v$database;

NAME	  PROTECTION_MODE      DATABASE_ROLE	SWITCHOVER_STATUS
--------- -------------------- ---------------- --------------------
ORCL	  MAXIMUM AVAILABILITY PHYSICAL STANDBY NOT ALLOWED

2.1切换到最大性能模式(AVAILABILITY-->PERFORMANCE)

--主备库都是下面的输出(database_role肯定是有区别的)
select name,protection_mode,database_role,switchover_status from v$database;

NAME	  PROTECTION_MODE      DATABASE_ROLE	SWITCHOVER_STATUS
--------- -------------------- ---------------- --------------------
ORCL	  MAXIMUM AVAILABILITY PHYSICAL STANDBY NOT ALLOWED
--主库操作
alter database set standby database to maximize performance;

Database altered.
--主备库都是下面的输出(database_role肯定是有区别的)
select name,protection_mode,database_role,switchover_status from v$database;

NAME	  PROTECTION_MODE      DATABASE_ROLE	SWITCHOVER_STATUS
--------- -------------------- ---------------- --------------------
ORCL	  MAXIMUM PERFORMANCE  PRIMARY		TO STANDBY

2.2切换到最大保护模式(AVAILABILITY-->PROTECTION)

--主备库都是下面的输出(database_role肯定是有区别的)
select name,protection_mode,database_role,switchover_status from v$database;

NAME	  PROTECTION_MODE      DATABASE_ROLE	SWITCHOVER_STATUS
--------- -------------------- ---------------- --------------------
ORCL	  MAXIMUM AVAILABILITY PRIMARY		TO STANDBY
--主库操作不需要重启
alter database set standby database to maximize protection;

Database altered.
--主备库都是下面的输出(database_role肯定是有区别的)
select name,protection_mode,database_role,switchover_status from v$database;

NAME	  PROTECTION_MODE      DATABASE_ROLE	SWITCHOVER_STATUS
--------- -------------------- ---------------- --------------------
ORCL	  MAXIMUM PROTECTION   PRIMARY		TO STANDBY

3.1切换到最大性能模式(PROTECTION-->PERFORMANCE)

--主备库都是下面的输出(database_role肯定是有区别的)
select name,protection_mode,database_role,switchover_status from v$database;

NAME	  PROTECTION_MODE      DATABASE_ROLE	SWITCHOVER_STATUS
--------- -------------------- ---------------- --------------------
ORCL	  MAXIMUM PROTECTION   PRIMARY		TO STANDBY
--主库操作
alter database set standby database to maximize performance;

Database altered.
--主备库都是下面的输出(database_role肯定是有区别的)
select name,protection_mode,database_role,switchover_status from v$database;

NAME	  PROTECTION_MODE      DATABASE_ROLE	SWITCHOVER_STATUS
--------- -------------------- ---------------- --------------------
ORCL	  MAXIMUM PERFORMANCE  PRIMARY		TO STANDBY

3.2切换到最大可用模式(PROTECTION-->AVAILABILITY)

--主备库都是下面的输出(database_role肯定是有区别的)
select name,protection_mode,database_role,switchover_status from v$database;

NAME	  PROTECTION_MODE      DATABASE_ROLE	SWITCHOVER_STATUS
--------- -------------------- ---------------- --------------------
ORCL	  MAXIMUM PROTECTION   PRIMARY		TO STANDBY
--主库操作
alter database set standby database to maximize availability;

Database altered.
--主备库都是下面的输出(database_role肯定是有区别的)
select name,protection_mode,database_role,switchover_status from v$database;

NAME	  PROTECTION_MODE      DATABASE_ROLE	SWITCHOVER_STATUS
--------- -------------------- ---------------- --------------------
ORCL	  MAXIMUM AVAILABILITY PRIMARY		TO STANDBY

总结
只有PERFORMANCE切换到PROTECTION模式的时候需要重启到MOUNT状态,其他的无论怎么切换都不需要重启;
还有就是要注意log_archive_dest_n中的参数,AVAILABILITY PROTECTION一定要是LGWR SYNC AFFIRMPERFORMANCE可以是LGWR或者ARCH

最后

以上就是冷酷铃铛为你收集整理的DG保护模式切换的全部内容,希望文章能够帮你解决DG保护模式切换所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(54)

评论列表共有 0 条评论

立即
投稿
返回
顶部