1 说明
在12c中,这个新特性的出现有大大减少了switchover 和failover的复杂性。只需要一个命令即可进行角色的切换操作。而在之前的数据库版本中,往往需要多个命令才可以完成角色的切换。注意:之前的切换操作,在12c中仍然支持。
2 实验-switchover
2.1 验证是否满足switchover
新增了一个命令VERIFY用于验证备库是否满足switchover,如果有错误信息,则根据提示信息进程处理即可。
SQL> ALTER DATABASE SWITCHOVER TO CNDBA_S VERIFY;
Database altered.
2.2 主库上执行switchover
如果前面操作没有问题,那么执行下面的switchover操作。
SQL> ALTER DATABASE SWITCHOVER TO CNDBA_S;
Database altered.
如果此步出现错误信息,则根据提示进行操作,官方文档给了很详细的操作步骤,这里我不在模拟错误环境。
具体信息参考官方文档:http://docs.oracle.com/database/121/SBYDB/role_management.htm#SBYDB5171
2.3 打开新主库(原备库)
SQL> alter database open;
Database altered.
2.4 打开新备库(原主库)
SQL> STARTUP;
2.5 启动MRP进程
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;
Database altered.
2.6 查看是否切换成功
2.6.1 新主库状态
SQL> select database_role,open_mode from v$database;
DATABASE_ROLE OPEN_MODE
---------------- --------------------
PRIMARY READ WRITE
2.6.2 新备库状态
SQL> select database_role,open_mode from v$database;
DATABASE_ROLE OPEN_MODE
---------------- --------------------
PHYSICAL STANDBY READ ONLY WITH APPLY
2.6.3 查看备库MRP进程
SQL> select process,status from v$managed_standby;
PROCESS STATUS
--------- ------------
ARCH CONNECTED
ARCH CLOSING
ARCH CONNECTED
ARCH CLOSING
RFS IDLE
RFS IDLE
RFS IDLE
MRP0 APPLYING_LOG
8 rows selected.
切换成功,比之前方便多了。前提是一些参数要主备库都要配置好,例如standby log,log_archive_dest_n。
版权声明:本文为博主原创文章,未经博主允许不得转载。
switchover