**前言:**文档描述搭建一级、二级DG并且模拟多个场景切换测试。DG搭建很简单,级联DG也是生产中比较常见的部署方式,如果一级DG切换为主库,那么就相当于一主两备。

一、 搭建一级备库
环境:11.2.0.4 单机
主库:192.168.100.129 SID:ecms 主机名:nhjcgl-db
一级备库:192.168.100.199 SID:ecms 主机名:dg1
二级备库:192.168.100.200 SID:ecms 主机名:dg2

1.1 主库准备
select FORCE_LOGGING,log_mode from v$database;
alter database force logging;
1.2 开启归档
shu immediate
startup mount
alter database archivelog;
alter database open;

1.3 参数设置
alter system set log_archive_config=‘dg_config=(ecms,ecmsdg1)’;
alter system set log_archive_dest_2=‘service=ecmsdg1 async valid_for=(online_logfile,primary_role) db_unique_name=ecmsdg1’;

1.4 监听配置

#TNS
 ECMS =
 (DESCRIPTION =
 (ADDRESS_LIST =
 (ADDRESS = (PROTOCOL = TCP)(HOST = nhjcgl-db)(PORT = 1521))
 )
 (CONNECT_DATA =
 (SERVER = DEDICATED)
 (SERVICE_NAME = ecms)
 )
 )ecmsdg1 =
 (DESCRIPTION =
 (ADDRESS_LIST =
 (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.100.199)(PORT = 1521))
 )
 (CONNECT_DATA =
 (SERVICE_NAME = ecms)
 )
 )##Listener
 [oracle@nhjcgl-db admin]$ cat listener.ora
# listener.ora Network Configuration File: /u01/app/oracle/11.2.4/db_home1/network/admin/listener.ora
# Generated by Oracle configuration tools.
 LISTENER =
 (DESCRIPTION_LIST =
 (DESCRIPTION =
 (ADDRESS = (PROTOCOL = TCP)(HOST = nhjcgl-db)(PORT = 1521))
 (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
 )
 )SID_LIST_LISTENER =
 (SID_LIST =
 (SID_DESC =
 (GLOBAL_NAME = ecms)
 (ORACLE_HOME =/u01/app/oracle/11.2.4/db_home1)
 (SID_NAME= ecms)
 )
 )ADR_BASE_LISTENER = /u01/app/oracle

1.5 备库准备
复制密码文件、参数文件、监听文件
修改pfile

[oracle@dg1 ~]$ cat pfile001
 ecms.__db_cache_size=281018368
 ecms.__java_pool_size=20971520
 ecms.__large_pool_size=4194304
 ecms.__oracle_base=’/u01/app/oracle’#ORACLE_BASE set from environment
 ecms.__pga_aggregate_target=289406976
 ecms.__sga_target=545259520
 ecms.__shared_io_pool_size=0
 ecms.__shared_pool_size=222298112
 ecms.__streams_pool_size=8388608
 *.audit_file_dest=’/u01/app/oracle/admin/ecms/adump’
 *.audit_trail=‘db’
 *.compatible=‘11.2.0.4.0’
 *.control_files=’/u01/app/oracle/oradata/ecms/control01.ctl’
.db_block_size=8192
 #.db_create_file_dest=’/u01/app/oracle/oradata/ecms/’
 *.db_domain=’’
 *.db_name=‘ecms’
 *.db_recovery_file_dest=’/u01/app/oracle/fast_recovery_area’
 *.db_recovery_file_dest_size=4385144832
 *.diagnostic_dest=’/u01/app/oracle’
 *.dispatchers=’(PROTOCOL=TCP) (SERVICE=ecmsXDB)’
 *.fal_client=‘ECMSDG1’
 *.fal_server=‘ECMS’
 *.java_jit_enabled=TRUE
 *.java_pool_size=0
 *.large_pool_size=4194304
 *.log_archive_config=‘dg_config=(ecms,ecmsdg1)’
 *.log_archive_dest_2=‘service=ecms async valid_for=(online_logfile,primary_role) db_unique_name=ecms’
 *.memory_target=831520768
 *.open_cursors=3500
 *.processes=150
 *.remote_login_passwordfile=‘EXCLUSIVE’
 *.service_names=‘ecms,tt’
 *.standby_file_management=‘AUTO’
 *.undo_tablespace=‘UNDOTBS1’
 *.db_unique_name=ECMSDG1

1.6 创建目录

/u01/app/oracle/admin/ecms/adump
 /u01/app/oracle/oradata/ecms/
 /u01/app/oracle/fast_recovery_area


1.7 启动

SQL> startup nomount pfile=’/home/oracle/pfile001’;
 ORACLE instance started.
 Total System Global Area 830930944 bytes
 Fixed Size 2257800 bytes
 Variable Size 545262712 bytes
 Database Buffers 281018368 bytes
 Redo Buffers 2392064 bytes
 SQL> create spfile from pfile=’/home/oracle/pfile001’;
 SQL> shu immediate;startup nomount;

1.8 备库连接到主库

[oracle@dg1 dbs]$ rman target sys/xxxxx@ecms auxiliary sys/xxxxx@ecmsdg1
Recovery Manager: Release 11.2.0.4.0 - Production on Thu Jun 6 10:15:18 2019
Copyright © 1982, 2011, Oracle and/or its affiliates. All rights reserved.
connected to target database: ECMS (DBID=4086521191)
 connected to auxiliary database: ECMS (not mounted)RMAN> duplicate target database for standby from active database dorecover nofilenamecheck;

1.9 添加standby log
alter database add standby logfile ‘/u01/app/oracle/oradata/ecms/standby01.log’ size 50m;

二、 搭建二级备库

2.1 级联备库(与创建一级备库方法步骤一致)
级联主库修改dg1
alter system set log_archive_config=‘dg_config=(ecms,ecmsdg1,ecmsdg2)’;
alter system set log_archive_dest_3=‘service=ecmsdg2 async valid_for=(standby_logfile,standby_role) db_unique_name=ecmsdg2’;

2.2 级联备库修改dg2,复制监听文件,密码文件,参数文件
Pfile修改

[oracle@dg2 ~]$ cat pfile002
 ecms.__db_cache_size=281018368
 ecms.__java_pool_size=20971520
 ecms.__large_pool_size=4194304
 ecms.__oracle_base=’/u01/app/oracle’#ORACLE_BASE set from environment
 ecms.__pga_aggregate_target=289406976
 ecms.__sga_target=545259520
 ecms.__shared_io_pool_size=0
 ecms.__shared_pool_size=222298112
 ecms.__streams_pool_size=8388608
 *.audit_file_dest=’/u01/app/oracle/admin/ecms/adump’
 *.audit_trail=‘db’
 *.compatible=‘11.2.0.4.0’
 *.control_files=’/u01/app/oracle/oradata/ecms/control01.ctl’
.db_block_size=8192
 #.db_create_file_dest=’/u01/app/oracle/oradata/ecms/’
 *.db_domain=’’
 *.db_name=‘ecms’
 *.db_recovery_file_dest=’/u01/app/oracle/fast_recovery_area’
 *.db_recovery_file_dest_size=4385144832
 *.db_unique_name=‘ecmsdg2’
 *.diagnostic_dest=’/u01/app/oracle’
 *.dispatchers=’(PROTOCOL=TCP) (SERVICE=ecmsXDB)’
 *.fal_client=‘ECMSDG2’
 *.fal_server=‘ECMSDG1’
 *.java_jit_enabled=TRUE
 *.java_pool_size=0
 *.large_pool_size=4194304
 *.log_archive_config=‘dg_config=(ecmsdg1,ecmsdg2)’
 *.log_archive_dest_2=‘service=ecmsdg1 async valid_for=(online_logfile,primary_role) db_unique_name=ecmsdg1’
 *.memory_target=831520768
 *.open_cursors=3500
 *.processes=150
 *.remote_login_passwordfile=‘EXCLUSIVE’
 *.service_names=‘ecms,tt’
 *.standby_file_management=‘AUTO’
 *.undo_tablespace=‘UNDOTBS1’


备注:db_create_file_dest 权重过高,即使主备目录一致,也会按此参数设置,比较坑还要后期处理rename比较麻烦所以注释掉。

2.3 创建目录

/u01/app/oracle/oradata/ecms/
 /u01/app/oracle/admin/ecms/adump
 /u01/app/oracle/fast_recovery_area

2.4 rman在线创建二级备库

[oracle@dg1 ~]$ rman target sys/xxxxxx@ecmsdg1 auxiliary sys/xxxxxx@ecmsdg2
Recovery Manager: Release 11.2.0.4.0 - Production on Thu Jun 6 11:21:42 2019
Copyright © 1982, 2011, Oracle and/or its affiliates. All rights reserved.
connected to target database: ECMS (DBID=4086521191)
 connected to auxiliary database: ECMS (not mounted)RMAN> duplicate target database for standby from active database dorecover nofilenamecheck;

三、 主库与一级备库切换
切换前状态
A:主库B:一级备库 C:二级备库
切换后状态
A:一级备库 B:主库 C:一级备库

3.1 状态检查

SELECT NAME,DB_UNIQUE_NAME,DATABASE_ROLE,PROTECTION_MODE, SWITCHOVER_STATUS, OPEN_MODE FROM V$DATABASE;
SYS@ecms>ALTER SYSTEM SWITCH LOGFILE;
 System altered.
 Elapsed: 00:00:00.02
 SYS@ecms>/

3.2 主备切换
SYS@ecms>alter database commit to switchover to physical standby WITH SESSION SHUTDOWN;
Database altered.
Elapsed: 00:00:07.97

3.3 主库日志

Thu Jun 06 12:13:15 2019
 alter database commit to switchover to physical standby WITH SESSION SHUTDOWN
 ALTER DATABASE COMMIT TO SWITCHOVER TO PHYSICAL STANDBY [Process Id: 6364] (ecms)
 Waiting for all non-current ORLs to be archived…
 All non-current ORLs have been archived.
 Waiting for all FAL entries to be archived…
 All FAL entries have been archived.
 Waiting for potential Physical Standby switchover target to become synchronized…
 Active, synchronized Physical Standby switchover target has been identified
 Switchover End-Of-Redo Log thread 1 sequence 395 has been fixed
 Switchover: Primary highest seen SCN set to 0x0.0x25636b
 ARCH: Noswitch archival of thread 1, sequence 395
 ARCH: End-Of-Redo Branch archival of thread 1 sequence 395
 ARCH: LGWR is scheduled to archive destination LOG_ARCHIVE_DEST_2 after log switch
 ARCH: Standby redo logfile selected for thread 1 sequence 395 for destination LOG_ARCHIVE_DEST_2
 Archived Log entry 46 added for thread 1 sequence 395 ID 0xf6371a63 dest 1:
 ARCH: Archiving is disabled due to current logfile archival
 Primary will check for some target standby to have received alls redo
 Final check for a synchronized target standby. Check will be made once.
 LOG_ARCHIVE_DEST_2 is a potential Physical Standby switchover target
 Active, synchronized target has been identified
 Target has also received all redo
 Backup controlfile written to trace file /u01/app/oracle/diag/rdbms/ecms/ecms/trace/ecms_ora_6364.trc
 Clearing standby activation ID 4130806371 (0xf6371a63)
 The primary database controlfile was created using the
 ‘MAXLOGFILES 21’ clause.
 There is space for up to 18 standby redo logfiles
 Use the following SQL commands on the standby database to create
 standby redo logfiles that match the primary database:
 ALTER DATABASE ADD STANDBY LOGFILE ‘srl1.f’ SIZE 52428800;
 ALTER DATABASE ADD STANDBY LOGFILE ‘srl2.f’ SIZE 52428800;
 ALTER DATABASE ADD STANDBY LOGFILE ‘srl3.f’ SIZE 52428800;
 ALTER DATABASE ADD STANDBY LOGFILE ‘srl4.f’ SIZE 52428800;
 Archivelog for thread 1 sequence 395 required for standby recovery
 Switchover: Primary controlfile converted to standby controlfile succesfully.
 Switchover: Complete - Database shutdown required
 USER (ospid: 6364): terminating the instance
 Instance terminated by USER, pid = 6364
 Completed: alter database commit to switchover to physical standby WITH SESSION SHUTDOWN
 Shutting down instance (abort)
 License high water mark = 6
 Thu Jun 06 12:13:20 2019
 Instance shutdown complete

3.4 一级备库日志

Thu Jun 06 12:13:18 2019
 RFS[19]: Assigned to RFS process 1994
 RFS[19]: Selected log 4 for thread 1 sequence 395 dbid -208446105 branch 982149581
 Thu Jun 06 12:13:19 2019
 Resetting standby activation ID 4130806371 (0xf6371a63)
 Thu Jun 06 12:13:19 2019
 Archived Log entry 31 added for thread 1 sequence 395 ID 0xf6371a63 dest 1:
 Media Recovery Waiting for thread 1 sequence 396
 Thu Jun 06 12:13:19 2019
 ARC3: Standby redo logfile selected for thread 1 sequence 395 for destination LOG_ARCHIVE_DEST_3
 Thu Jun 06 12:13:19 2019
 RFS[16]: Possible network disconnect with primary database
 Thu Jun 06 12:13:19 2019
 RFS[20]: Assigned to RFS process 1992
 RFS[20]: Possible network disconnect with primary database
 Thu Jun 06 12:13:19 2019
 RFS[18]: Possible network disconnect with primary database

3.5 二级备库日志

Thu Jun 06 11:53:02 2019
 RFS[8]: Assigned to RFS process 1431
 RFS[8]: Selected log 4 for thread 1 sequence 390 dbid -208446105 branch 982149581
 Thu Jun 06 11:53:02 2019
 Archived Log entry 8 added for thread 1 sequence 390 ID 0xf48ae18e dest 1:
 Media Recovery Log /u01/app/oracle/fast_recovery_area/ECMSDG2/archivelog/2019_06_06/o1_mf_1_390_ghk3jy46_.arc
 Media Recovery Waiting for thread 1 sequence 391
 Thu Jun 06 11:53:05 2019
 RFS[9]: Assigned to RFS process 1433
 RFS[9]: Selected log 4 for thread 1 sequence 391 dbid -208446105 branch 982149581
 Thu Jun 06 11:53:05 2019
 Archived Log entry 9 added for thread 1 sequence 391 ID 0xf48ae18e dest 1:
 Media Recovery Log /u01/app/oracle/fast_recovery_area/ECMSDG2/archivelog/2019_06_06/o1_mf_1_391_ghk3k1ff_.arc
 Media Recovery Waiting for thread 1 sequence 392
 Thu Jun 06 11:54:46 2019
 RFS[10]: Assigned to RFS process 1440
 RFS[10]: Selected log 4 for thread 1 sequence 392 dbid -208446105 branch 982149581
 Thu Jun 06 11:54:46 2019
 Archived Log entry 10 added for thread 1 sequence 392 ID 0xf48ae18e dest 1:
 Thu Jun 06 11:54:47 2019
 Media Recovery Log /u01/app/oracle/fast_recovery_area/ECMSDG2/archivelog/2019_06_06/o1_mf_1_392_ghk3n69t_.arc
 Identified End-Of-Redo (switchover) for thread 1 sequence 392 at SCN 0x0.2512c7
 Resetting standby activation ID 4102742414 (0xf48ae18e)
 Media Recovery End-Of-Redo indicator encountered
 Media Recovery Continuing
 Media Recovery Waiting for thread 1 sequence 393

3.6 备库状态检查

SELECT NAME,DB_UNIQUE_NAME,DATABASE_ROLE,PROTECTION_MODE, SWITCHOVER_STATUS, OPEN_MODE FROM V$DATABASE;
 NAME DB_UNIQUE_NAME DATABASE_ROLE PROTECTION_MODE

SWITCHOVER_STATUS OPEN_MODE

ECMS ecmsdg1 PHYSICAL STANDBY MAXIMUM PERFORMANCE
 TO PRIMARY READ ONLY WITH APPLY

级联备库状态检查(也可以切成主库)

SQL> SELECT NAME,DB_UNIQUE_NAME,DATABASE_ROLE,PROTECTION_MODE, SWITCHOVER_STATUS, OPEN_MODE FROM V$DATABASE;
NAME DB_UNIQUE_NAME DATABASE_ROLE PROTECTION_MODE

SWITCHOVER_STATUS OPEN_MODE

ECMS ecmsdg2 PHYSICAL STANDBY MAXIMUM PERFORMANCE
 TO PRIMARY READ ONLY WITH APPLY
 SQL>

3.7 原主库再切换成主库
切换前状态:
A:主库 B:一级备库C:二级备库
切换后状态:
A:主库 B:一级备库C:二级备库

Thu Jun 06 12:03:43 2019
 ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY
 ALTER DATABASE SWITCHOVER TO PRIMARY (ecms)
 Maximum wait for role transition is 15 minutes.
 All dispatchers and shared servers shutdown
 CLOSE: killing server sessions.
 CLOSE: all sessions shutdown successfully.
 Thu Jun 06 12:03:45 2019
 SMON: disabling cache recovery
 Backup controlfile written to trace file /u01/app/oracle/diag/rdbms/ecms/ecms/trace/ecms_ora_6164.trc
 SwitchOver after complete recovery through change 2429639
 Online logfile pre-clearing operation disabled by switchover
 Thu Jun 06 12:04:51 2019
 idle dispatcher ‘D000’ terminated, pid = (17, 1)Thu Jun 06 12:05:39 2019
 Standby became primary SCN: 2429637
 AUDIT_TRAIL initialization parameter is changed back to its original value as specified in the parameter file.
 Switchover: Complete - Database mounted as primary
 Completed: ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY##原主库又切回主库,级联备库状态变成NOT ALLOWED
 SQL> /NAME DB_UNIQUE_NAME DATABASE_ROLE PROTECTION_MODE

SWITCHOVER_STATUS OPEN_MODE

ECMS ecmsdg2 PHYSICAL STANDBY MAXIMUM PERFORMANCE
 NOT ALLOWED READ ONLY WITH APPLYSQL> show parameter config
NAME TYPE VALUE

dg_broker_config_file1 string /u01/app/oracle/11.2.4/db_home
 1/dbs/dr1ecmsdg2.dat
 dg_broker_config_file2 string /u01/app/oracle/11.2.4/db_home
 1/dbs/dr2ecmsdg2.dat
 log_archive_config string dg_config=(ecmsdg1,ecmsdg2)
 SQL>

备库切换成主库
ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY;
备库日志:

Thu Jun 06 12:16:19 2019
 ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY
 ALTER DATABASE SWITCHOVER TO PRIMARY (ecms)
 Maximum wait for role transition is 15 minutes.
 Switchover: Media recovery is still active
 Role Change: Canceling MRP - no more redo to apply
 Thu Jun 06 12:16:21 2019
 MRP0: Background Media Recovery cancelled with status 16037
 Errors in file /u01/app/oracle/diag/rdbms/ecmsdg1/ecms/trace/ecms_mrp0_1661.trc:
 ORA-16037: user requested cancel of managed recovery operation
 Managed Standby Recovery not using Real Time Apply
 Recovery interrupted!
 MRP0: Background Media Recovery process shutdown (ecms)
 Role Change: Canceled MRP
 All dispatchers and shared servers shutdown
 CLOSE: killing server sessions.
 CLOSE: all sessions shutdown successfully.
 Thu Jun 06 12:16:22 2019
 SMON: disabling cache recovery
 Backup controlfile written to trace file /u01/app/oracle/diag/rdbms/ecmsdg1/ecms/trace/ecms_ora_1852.trc
 SwitchOver after complete recovery through change 2450283
 Online logfile pre-clearing operation disabled by switchover
 Online log /u01/app/oracle/oradata/ecms/ECMSDG1/onlinelog/o1_mf_1_ghjyzfwk_.log: Thread 1 Group 1 was previously cleared
 Online log /u01/app/oracle/fast_recovery_area/ECMSDG1/onlinelog/o1_mf_1_ghjyzfy5_.log: Thread 1 Group 1 was previously cleared
 Online log /u01/app/oracle/oradata/ecms/ECMSDG1/onlinelog/o1_mf_2_ghjyzk7o_.log: Thread 1 Group 2 was previously cleared
 Online log /u01/app/oracle/fast_recovery_area/ECMSDG1/onlinelog/o1_mf_2_ghjyzk98_.log: Thread 1 Group 2 was previously cleared
 Online log /u01/app/oracle/oradata/ecms/ECMSDG1/onlinelog/o1_mf_3_ghjyznhk_.log: Thread 1 Group 3 was previously cleared
 Online log /u01/app/oracle/fast_recovery_area/ECMSDG1/onlinelog/o1_mf_3_ghjyznk2_.log: Thread 1 Group 3 was previously cleared
 Standby became primary SCN: 2450281
 AUDIT_TRAIL initialization parameter is changed back to its original value as specified in the parameter file.
 Switchover: Complete - Database mounted as primary
 Completed: ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY

再转换为备库;
alter database commit to switchover to physical standby WITH SESSION SHUTDOWN;
日志输出

Thu Jun 06 12:32:02 2019
 alter database commit to switchover to physical standby WITH SESSION SHUTDOWN
 ALTER DATABASE COMMIT TO SWITCHOVER TO PHYSICAL STANDBY [Process Id: 2055] (ecms)
 Waiting for all non-current ORLs to be archived…
 All non-current ORLs have been archived.
 Waiting for all FAL entries to be archived…
 All FAL entries have been archived.
 Waiting for potential Physical Standby switchover target to become synchronized…
 Active, synchronized Physical Standby switchover target has been identified
 Switchover End-Of-Redo Log thread 1 sequence 406 has been fixed
 Switchover: Primary highest seen SCN set to 0x0.0x25b724
 ARCH: Noswitch archival of thread 1, sequence 406
 ARCH: End-Of-Redo Branch archival of thread 1 sequence 406
 ARCH: LGWR is scheduled to archive destination LOG_ARCHIVE_DEST_2 after log switch
 ARCH: Standby redo logfile selected for thread 1 sequence 406 for destination LOG_ARCHIVE_DEST_2
 Archived Log entry 53 added for thread 1 sequence 406 ID 0xf636bca0 dest 1:
 ARCH: Archiving is disabled due to current logfile archival
 Primary will check for some target standby to have received alls redo
 Final check for a synchronized target standby. Check will be made once.
 LOG_ARCHIVE_DEST_2 is a potential Physical Standby switchover target
 Active, synchronized target has been identified
 Target has also received all redo
 Backup controlfile written to trace file /u01/app/oracle/diag/rdbms/ecmsdg1/ecms/trace/ecms_ora_2055.trc
 Clearing standby activation ID 4130782368 (0xf636bca0)
 The primary database controlfile was created using the
 ‘MAXLOGFILES 21’ clause.
 There is space for up to 18 standby redo logfiles
 Use the following SQL commands on the standby database to create
 standby redo logfiles that match the primary database:
 ALTER DATABASE ADD STANDBY LOGFILE ‘srl1.f’ SIZE 52428800;
 ALTER DATABASE ADD STANDBY LOGFILE ‘srl2.f’ SIZE 52428800;
 ALTER DATABASE ADD STANDBY LOGFILE ‘srl3.f’ SIZE 52428800;
 ALTER DATABASE ADD STANDBY LOGFILE ‘srl4.f’ SIZE 52428800;
 Archivelog for thread 1 sequence 406 required for standby recovery
 Switchover: Primary controlfile converted to standby controlfile succesfully.
 Switchover: Complete - Database shutdown required
 USER (ospid: 2055): terminating the instance
 Instance terminated by USER, pid = 2055
 Completed: alter database commit to switchover to physical standby WITH SESSION SHUTDOWN
 Shutting down instance (abort)

归档存在gap,在级联备库中等待片刻便会同步。

Thu Jun 06 12:33:33 2019
 RFS[24]: Assigned to RFS process 1581
 RFS[24]: Opened log for thread 1 sequence 406 dbid -208446105 branch 982149581
 Media Recovery Log /u01/app/oracle/fast_recovery_area/ECMSDG2/archivelog/2019_06_06/o1_mf_1_398_ghk5wwfn_.arc
 Archived Log entry 24 added for thread 1 sequence 406 rlc 982149581 ID 0xf636bca0 dest 3:
 Media Recovery Log /u01/app/oracle/fast_recovery_area/ECMSDG2/archivelog/2019_06_06/o1_mf_1_399_ghk5wwjh_.arc
 Media Recovery Log /u01/app/oracle/fast_recovery_area/ECMSDG2/archivelog/2019_06_06/o1_mf_1_400_ghk5wwlk_.arc
 Media Recovery Log /u01/app/oracle/fast_recovery_area/ECMSDG2/archivelog/2019_06_06/o1_mf_1_401_ghk5wwnm_.arc
 Media Recovery Log /u01/app/oracle/fast_recovery_area/ECMSDG2/archivelog/2019_06_06/o1_mf_1_402_ghk5wwop_.arc
 Media Recovery Log /u01/app/oracle/fast_recovery_area/ECMSDG2/archivelog/2019_06_06/o1_mf_1_403_ghk5wwp7_.arc
 Media Recovery Log /u01/app/oracle/fast_recovery_area/ECMSDG2/archivelog/2019_06_06/o1_mf_1_404_ghk5wwtv_.arc
 Media Recovery Log /u01/app/oracle/fast_recovery_area/ECMSDG2/archivelog/2019_06_06/o1_mf_1_405_ghk5wwz6_.arc
 Media Recovery Log /u01/app/oracle/fast_recovery_area/ECMSDG2/archivelog/2019_06_06/o1_mf_1_406_ghk5wx24_.arc
 Identified End-Of-Redo (switchover) for thread 1 sequence 406 at SCN 0x0.25b724
 Resetting standby activation ID 4130782368 (0xf636bca0)
 Media Recovery End-Of-Redo indicator encountered
 Media Recovery Continuing
 Media Recovery Waiting for thread 1 sequence 407

四、 一级备库与二级备库切换
切换前状态
A:一级备库 B:主库(指定了2个dest) C:二级备库
切换后状态
A:二级备库 B:一级备库 C:主库
4.1 状态检查
SQL> SELECT NAME,DB_UNIQUE_NAME,DATABASE_ROLE,PROTECTION_MODE, SWITCHOVER_STATUS, OPEN_MODE FROM V$DATABASE;

NAME DB_UNIQUE_NAME DATABASE_ROLE PROTECTION_MODE


SWITCHOVER_STATUS OPEN_MODE


ECMS ecmsdg2 PHYSICAL STANDBY MAXIMUM PERFORMANCE
TO PRIMARY READ ONLY WITH APPLY

4.2 一级备库切换成主库
ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY;

4.3 二级备库日志

Thu Jun 06 12:37:34 2019
 ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY
 ALTER DATABASE SWITCHOVER TO PRIMARY (ecms)
 Maximum wait for role transition is 15 minutes.
 Switchover: Media recovery is still active
 Role Change: Canceling MRP - no more redo to apply
 Thu Jun 06 12:37:36 2019
 MRP0: Background Media Recovery cancelled with status 16037
 Errors in file /u01/app/oracle/diag/rdbms/ecmsdg2/ecms/trace/ecms_mrp0_1553.trc:
 ORA-16037: user requested cancel of managed recovery operation
 Managed Standby Recovery not using Real Time Apply
 Recovery interrupted!
 MRP0: Background Media Recovery process shutdown (ecms)
 Role Change: Canceled MRP
 Killing 3 processes with pids 1600,1579,1581 (all RFS) in order to disallow current and future RFS connections. Requested by OS process 1483
 All dispatchers and shared servers shutdown
 CLOSE: killing server sessions.
 CLOSE: all sessions shutdown successfully.
 Thu Jun 06 12:37:38 2019
 SMON: disabling cache recovery
 Backup controlfile written to trace file /u01/app/oracle/diag/rdbms/ecmsdg2/ecms/trace/ecms_ora_1483.trc
 SwitchOver after complete recovery through change 2471716
 Online logfile pre-clearing operation disabled by switchover
 Online log /u01/app/oracle/oradata/ecms/ECMSDG2/onlinelog/o1_mf_1_ghk2opl7_.log: Thread 1 Group 1 was previously cleared
 Online log /u01/app/oracle/fast_recovery_area/ECMSDG2/onlinelog/o1_mf_1_ghk2opnn_.log: Thread 1 Group 1 was previously cleared
 Online log /u01/app/oracle/oradata/ecms/ECMSDG2/onlinelog/o1_mf_2_ghk2osvy_.log: Thread 1 Group 2 was previously cleared
 Online log /u01/app/oracle/fast_recovery_area/ECMSDG2/onlinelog/o1_mf_2_ghk2osxj_.log: Thread 1 Group 2 was previously cleared
 Online log /u01/app/oracle/oradata/ecms/ECMSDG2/onlinelog/o1_mf_3_ghk2oxgq_.log: Thread 1 Group 3 was previously cleared
 Online log /u01/app/oracle/fast_recovery_area/ECMSDG2/onlinelog/o1_mf_3_ghk2oxj8_.log: Thread 1 Group 3 was previously cleared
 Standby became primary SCN: 2471714
 AUDIT_TRAIL initialization parameter is changed back to its original value as specified in the parameter file.
 Switchover: Complete - Database mounted as primary
 Completed: ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY


4.4 状态确认
SQL> /

NAME DB_UNIQUE_NAME DATABASE_ROLE PROTECTION_MODE


SWITCHOVER_STATUS OPEN_MODE


ECMS ecmsdg2 PRIMARY MAXIMUM PERFORMANCE
SESSIONS ACTIVE READ WRITE

五、 主库与二级备库切换
切换前状态:
A:主库 B:一级备库 C:二级备库
切换后状态:
A:二级备库 B:一级备库 C:主库
5.1 切换准备

SYS@ecms>SELECT NAME,DB_UNIQUE_NAME,DATABASE_ROLE,PROTECTION_MODE, SWITCHOVER_STATUS, OPEN_MODE FROM V$DATABASE;
NAME DB_UNIQUE_NAME DATABASE_ROLE PROTECTION_MODE

SWITCHOVER_STATUS OPEN_MODE


ECMS ecms PRIMARY MAXIMUM PERFORMANCE
TO STANDBY READ WRITE

5.2 主库切换成备库
SYS@ecms>alter database commit to switchover to physical standby WITH SESSION SHUTDOWN;
Database altered.
Elapsed: 00:00:05.71
5.3 二级备库状态检查
NAME DB_UNIQUE_NAME DATABASE_ROLE PROTECTION_MODE


SWITCHOVER_STATUS OPEN_MODE


ECMS ecmsdg2 PHYSICAL STANDBY MAXIMUM PERFORMANCE
TO PRIMARY READ ONLY WITH APPLY
5.4 二级备库切换成主库

SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY;

Database altered.
5.5 二级备库切换成主库日志输出

Thu Jun 06 14:19:53 2019
 ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY
 ALTER DATABASE SWITCHOVER TO PRIMARY (ecms)
 Maximum wait for role transition is 15 minutes.
 Switchover: Media recovery is still active
 Role Change: Canceling MRP - no more redo to apply
 Thu Jun 06 14:19:55 2019
 MRP0: Background Media Recovery cancelled with status 16037
 Errors in file /u01/app/oracle/diag/rdbms/ecmsdg2/ecms/trace/ecms_mrp0_2204.trc:
 ORA-16037: user requested cancel of managed recovery operation
 Recovery interrupted!
 MRP0: Background Media Recovery process shutdown (ecms)
 Role Change: Canceled MRP
 Killing 3 processes with pids 2375,2369,2373 (all RFS) in order to disallow current and future RFS connections. Requested by OS process 2196
 All dispatchers and shared servers shutdown
 CLOSE: killing server sessions.
 CLOSE: all sessions shutdown successfully.
 Thu Jun 06 14:19:59 2019
 SMON: disabling cache recovery
 Backup controlfile written to trace file /u01/app/oracle/diag/rdbms/ecmsdg2/ecms/trace/ecms_ora_2196.trc
 SwitchOver after complete recovery through change 2560371
 Online logfile pre-clearing operation disabled by switchover
 Online log /u01/app/oracle/oradata/ecms/ECMSDG2/onlinelog/o1_mf_1_ghk2opl7_.log: Thread 1 Group 1 was previously cleared
 Online log /u01/app/oracle/fast_recovery_area/ECMSDG2/onlinelog/o1_mf_1_ghk2opnn_.log: Thread 1 Group 1 was previously cleared
 Online log /u01/app/oracle/oradata/ecms/ECMSDG2/onlinelog/o1_mf_2_ghk2osvy_.log: Thread 1 Group 2 was previously cleared
 Online log /u01/app/oracle/fast_recovery_area/ECMSDG2/onlinelog/o1_mf_2_ghk2osxj_.log: Thread 1 Group 2 was previously cleared
 Online log /u01/app/oracle/oradata/ecms/ECMSDG2/onlinelog/o1_mf_3_ghk2oxgq_.log: Thread 1 Group 3 was previously cleared
 Online log /u01/app/oracle/fast_recovery_area/ECMSDG2/onlinelog/o1_mf_3_ghk2oxj8_.log: Thread 1 Group 3 was previously cleared
 Standby became primary SCN: 2560369
 AUDIT_TRAIL initialization parameter is changed back to its original value as specified in the parameter file.
 Switchover: Complete - Database mounted as primary
 Completed: ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY
 Thu Jun 06 14:20:05 2019
 ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY
 ALTER DATABASE SWITCHOVER TO PRIMARY (ecms)
 ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY (ecms)
 ORA-1109 signalled during: ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY…
 Thu Jun 06 14:20:06 2019
 RFS[11]: Assigned to RFS process 2381
 RFS[11]: Database mount ID mismatch [0xf63740e4:0xf6372ed7] (4130816228:4130811607)
 RFS[11]: Client instance is standby database instead of primary
 RFS[11]: Not using real application clusters
 Shutting down instance (immediate)
 Shutting down instance: further logons disabled
 Stopping background process MMNL
 Thu Jun 06 14:20:16 2019
 Stopping background process MMON
 Thu Jun 06 14:20:17 2019
 idle dispatcher ‘D000’ terminated, pid = (17, 1)
 failed to start dispatcher for network ‘(ADDRESS=(PARTIAL=YES)(PROTOCOL=TCP))’
 License high water mark = 4
 All dispatchers and shared servers shutdown
 ALTER DATABASE CLOSE NORMAL
 ORA-1109 signalled during: ALTER DATABASE CLOSE NORMAL…
 ALTER DATABASE DISMOUNT
 Shutting down archive processes
 Archiving is disabled
 Thu Jun 06 14:20:17 2019
 ARCH shutting down
 ARC3: Archival stopped
 Thu Jun 06 14:20:17 2019
 ARCH shutting down
 ARC1: Archival stopped
 Thu Jun 06 14:20:17 2019
 ARCH shutting down
 ARC0: Archival stopped
 Thu Jun 06 14:20:17 2019
 ARCH shutting down
 ARC2: Relinquishing active heartbeat ARCH role
 ARC2: Archival stopped
 Completed: ALTER DATABASE DISMOUNT
 ARCH: Archival disabled due to shutdown: 1089
 Shutting down archive processes
 Archiving is disabled
 Thu Jun 06 14:20:18 2019
 Stopping background process VKTM
 ARCH: Archival disabled due to shutdown: 1089
 Shutting down archive processes
 Archiving is disabled
 Thu Jun 06 14:20:21 2019
 Instance shutdown complete


5.6 状态确认
主库
SQL> SELECT NAME,DB_UNIQUE_NAME,DATABASE_ROLE,PROTECTION_MODE, SWITCHOVER_STATUS, OPEN_MODE FROM V$DATABASE;
NAME DB_UNIQUE_NAME DATABASE_ROLE PROTECTION_MODE


SWITCHOVER_STATUS OPEN_MODE


ECMS ecmsdg2 PRIMARY MAXIMUM PERFORMANCE
TO STANDBY READ WRITE

一级备库

SQL> SELECT NAME,DB_UNIQUE_NAME,DATABASE_ROLE,PROTECTION_MODE, SWITCHOVER_STATUS, OPEN_MODE FROM V$DATABASE;
NAME DB_UNIQUE_NAME DATABASE_ROLE PROTECTION_MODE


SWITCHOVER_STATUS OPEN_MODE


ECMS ecmsdg1 PHYSICAL STANDBY MAXIMUM PERFORMANCE
NOT ALLOWED READ ONLY WITH APPLY

二级备库(原主库)

SYS@ecms> SELECT NAME,DB_UNIQUE_NAME,DATABASE_ROLE,PROTECTION_MODE, SWITCHOVER_STATUS, OPEN_MODE FROM V$DATABASE;
NAME DB_UNIQUE_NAME DATABASE_ROLE PROTECTION_MODE


SWITCHOVER_STATUS OPEN_MODE


ECMS ecms PHYSICAL STANDBY MAXIMUM PERFORMANCE
 NOT ALLOWED READ ONLY WITH APPLY
 Elapsed: 00:00:00.10
 SYS@ecms>

六、 完成切换
6.1 当前状态
A:原主库 B:一级备库 C:二级备库
状态检查
A:状态(未配置dest_3所以一直是TO PRIMARY)

SYS@ecms> SELECT NAME,DB_UNIQUE_NAME,DATABASE_ROLE,PROTECTION_MODE, SWITCHOVER_STATUS, OPEN_MODE FROM V$DATABASE;
NAME DB_UNIQUE_NAME DATABASE_ROLE PROTECTION_MODE

SWITCHOVER_STATUS OPEN_MODE


ECMS ecms PHYSICAL STANDBY MAXIMUM PERFORMANCE
TO PRIMARY READ ONLY WITH APPLY

B:状态
SQL> SELECT NAME,DB_UNIQUE_NAME,DATABASE_ROLE,PROTECTION_MODE, SWITCHOVER_STATUS, OPEN_MODE FROM V$DATABASE;

NAME DB_UNIQUE_NAME DATABASE_ROLE PROTECTION_MODE


SWITCHOVER_STATUS OPEN_MODE


ECMS ecmsdg1 PHYSICAL STANDBY MAXIMUM PERFORMANCE
NOT ALLOWED READ ONLY WITH APPLY

SQL>
C:状态
SQL> SELECT NAME,DB_UNIQUE_NAME,DATABASE_ROLE,PROTECTION_MODE, SWITCHOVER_STATUS, OPEN_MODE FROM V$DATABASE;

NAME DB_UNIQUE_NAME DATABASE_ROLE PROTECTION_MODE


SWITCHOVER_STATUS OPEN_MODE


ECMS ecmsdg2 PHYSICAL STANDBY MAXIMUM PERFORMANCE
NOT ALLOWED READ ONLY WITH APPLY

6.2 同步状态
一级备库(原主库)
SYS@ecms>/
PROCESS STATUS SEQUENCE#


ARCH CONNECTED 0
 ARCH CONNECTED 0
 ARCH CLOSING 430
 ARCH OPENING 430
 RFS IDLE 0
 RFS IDLE 0
 RFS IDLE 0
 MRP0 WAIT_FOR_LOG 431一级备库
 SQL> /PROCESS STATUS SEQUENCE#

ARCH CLOSING 429
 ARCH CLOSING 429
 ARCH CLOSING 426
 ARCH CLOSING 430
 RFS IDLE 0
 RFS IDLE 431
 RFS IDLE 0
 RFS IDLE 0
 RFS IDLE 0
 MRP0 APPLYING_LOG 431
 RFS IDLE 0主库(原二级备库)
 SQL> select max(sequence#),thread# from v$archived_log group by thread#;MAX(SEQUENCE#) THREAD#

430          1

6.3 参数配置

级联式多尺度基于深度学习卷积神经网络骨抑制技术 级联dg_主备切换