本文主要是介绍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
instanceshu 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 AFFIRM
,PERFORMANCE
可以是LGWR
或者ARCH
这篇关于DG保护模式切换的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!