在开始之前,我们先温故一下。
一、传统怎么做ADG切换
(一)主库操作
(1)执行命令,将主库切换为备库
SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO STANDBY WITH SESSION SHUTDOWN;
执行完整个命令,主库自动停机,需要启动起来。
(2)然后执行如下命令:
SQL> startup nomount;
SQL> alter database mount standby database;
SQL> ALTER DATABASE RECOVER MANAGED standby DATABASE DISCONNECT FROM SESSION;
如果要打开数据库,请先断开同步连接,然后alter database open;打开后再执行:
SQL> ALTER DATABASE RECOVER MANAGED standby DATABASE DISCONNECT FROM SESSION;重新开启同步。
(二)备库操作
(1)执行命令,将备库切换为主库
SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO primary;
(2)手动打开数据库
SQL> ALTER DATABASE OPEN;
(三)常用的是三个试图
(1)select PROCESS,PID,STATUS, GROUP# , RESETLOG_ID,THREAD#,SEQUENCE# from v$managed_standby;
(2)select NAME,DATABASE_ROLE,PROTECTION_MODE,PROTECTION_LEVEL,SWITCHOVER_STATUS,FLASHBACK_ON,OPEN_MODE from v$database;
(3)select inst_id,name,value,time_computed,DATUM_TIME,sysdate from gv$dataguard_stats order by inst_id;
看上去也不是很麻烦,但是要做的操作确实有点多,尤其是在自动化切换过程中,就显得不是很方便。19c提供了一个更快的切换方法(12c没试过,有条件可以试一下),主要切换命令就一条。
二、如何一条进行19C切换
(一)在主库,执行切换到备库的命令
例如,主库是EOMS,备库是DREOMS,在EOMS库执行:
ALTER DATABASE SWITCHOVER TO DREOMS;
这条命令,就完成了主备切换,执行完成后,EOMS自动变成备库,DREOMS自动变成主库。
(二)当然,其它辅助操作还是要有的
(1)最好,切换之前先验证一下:ALTER DATABASE SWITCHOVER TO DREOMS VERIFY;有问题解决问题;
(2)切换后原来的主数据库需要重新startup(主数据库主动宕机了),并且要手动开启动同步:
SQL>ALTER DATABASE RECOVER MANAGED standby DATABASE DISCONNECT FROM SESSION;
(3)切换后,备库需要alter database open;




