12c dataguard提供了新的语法来实现dg的switchover.下面进行测试下。
主库执行检查
SQL> ALTER DATABASE SWITCHOVER TO orcldg VERIFY; --主库进行切换检查
ALTER DATABASE SWITCHOVER TO orcldg VERIFY
*
ERROR at line 1:
ORA-16475: succeeded WITH warnings, CHECK alert log FOR more details --查看alert日志
SQL>
alert
ALTER DATABASE SWITCHOVER TO orcldg VERIFY --命令输入
Sun May 10 18:31:29 2015
This is cascading configuration.
LOG_ARCHIVE_DEST_3 has already been configured to switchover target ORCLDG. Clearing LOG_ARCHIVE_DEST_3.--清空参数dest-3
Using STANDBY_ARCHIVE_DEST parameter default value as /backup/archivelog
Sun May 10 18:31:29 2015
ALTER SYSTEM SET log_archive_dest_3='' SCOPE=MEMORY SID='*';
LOG_ARCHIVE_DEST3 is cleared.
Configuring a new LOG_ARCHIVE_DEST to switchover target ORCLDG.
Using STANDBY_ARCHIVE_DEST parameter default value as /backup/archivelog
Sun May 10 18:31:29 2015
ALTER SYSTEM SET log_archive_dest_31='service=orcldg ASYNC db_unique_name=ORCLDG' SCOPE=MEMORY SID='*';
SWITCHOVER VERIFY: Send VERIFY request to switchover target ORCLDG
SWITCHOVER VERIFY COMPLETE
SWITCHOVER VERIFY WARNING: switchover target temporary files are not the same with the primary. See switchover target's alert log for details. --dg端没有临时文件,导致上面sql执行有问题,这里只为测试功能.这里忽略
Using STANDBY_ARCHIVE_DEST parameter default value as /backup/archivelog
Sun May 10 18:31:30 2015
ALTER SYSTEM SET log_archive_dest_31='' SCOPE=MEMORY SID='*';
ORA-16475 signalled during: ALTER DATABASE SWITCHOVER TO orcldg VERIFY...
Sun May 10 18:31:32 2015
LGWR: Standby redo logfile selected to archive thread 1 sequence 116
LGWR: Standby redo logfile selected for thread 1 sequence 116 for destination LOG_ARCHIVE_DEST_2
Sun May 10 18:31:32 2015
Changing destination 3 from remote to local during archival of log#: 1 sequence#: 115 thread#: 1
Sun May 10 18:31:32 2015
Thread 1 advanced to log sequence 116 (LGWR switch)
Current log# 2 seq# 116 mem# 0: /oradata/orcl/redo02.log
Sun May 10 18:31:32 2015
Archived Log entry 120 added for thread 1 sequence 115 ID 0x53634e8b dest 1:
切换
SQL> ALTER DATABASE SWITCHOVER TO orcldg; --正式切换
DATABASE altered.
主库日志
ALTER DATABASE SWITCHOVER TO orcldg --接受到切换命令
Sun May 10 18:33:19 2015
This is cascading configuration.
Sun May 10 18:33:19 2015
ALTER SYSTEM SET log_archive_dest_state_2='DEFER' SCOPE=MEMORY SID='*'; --修改dest_2
Configuring a new LOG_ARCHIVE_DEST to switchover target ORCLDG.
Using STANDBY_ARCHIVE_DEST parameter default value as /backup/archivelog
Sun May 10 18:33:19 2015
ALTER SYSTEM SET log_archive_dest_31='service=orcldg ASYNC db_unique_name=ORCLDG' SCOPE=MEMORY SID='*';--设置参数
Starting switchover [Process ID: 2105]
Sun May 10 18:33:20 2015
ALTER DATABASE COMMIT TO SWITCHOVER TO PHYSICAL STANDBY [Process Id: 2105] (orcl)--原命令切换到PHYSICAL STANDBY
Waiting for target standby to receive all redo
Sun May 10 18:33:20 2015
Waiting for all non-current ORLs to be archived...
Sun May 10 18:33:20 2015
All non-current ORLs have been archived.
Sun May 10 18:33:20 2015
Waiting for all FAL entries to be archived...
Sun May 10 18:33:20 2015
All FAL entries have been archived.
Sun May 10 18:33:20 2015
Waiting for dest_id 31 to become synchronized...
Sun May 10 18:33:20 2015
Thread 1 cannot allocate new log, sequence 117
Checkpoint not complete
Current log# 2 seq# 116 mem# 0: /oradata/orcl/redo02.log
Sun May 10 18:33:21 2015
Active, synchronized Physical Standby switchover target has been identified
Preventing updates and queries at the Primary
Generating and shipping final logs to target standby
Switchover End-Of-Redo Log thread 1 sequence 116 has been fixed
Switchover: Primary highest seen SCN set to 0x0.0x2b49d1 >>切换scn
ARCH: Noswitch archival of thread 1, sequence 116
ARCH: End-Of-Redo Branch archival of thread 1 sequence 116
ARCH: LGWR is scheduled to archive destination LOG_ARCHIVE_DEST_31 after log switch
ARCH: LGWR is actively archiving destination LOG_ARCHIVE_DEST_2
Sun May 10 18:33:23 2015
Process (ospid 2077) is suspended due to switchover to physical standby operation.
Sun May 10 18:33:25 2015
ARCH: Standby redo logfile selected for thread 1 sequence 116 for destination LOG_ARCHIVE_DEST_31
ARCH: Standby redo logfile selected for thread 1 sequence 116 for destination LOG_ARCHIVE_DEST_2
ARCH: Archiving is disabled due to current logfile archival
Primary will check for some target standby to have received all redo
Waiting for target standby to apply all redo
Backup controlfile written to trace file /u01/app/oracle/diag/rdbms/orcl/orcl/trace/orcl_ora_2105.trc
Converting the primary database to a new standby database >>切换成dg
Clearing standby activation ID 1399017099 (0x53634e8b)
The primary database controlfile was created using the
'MAXLOGFILES 16' clause.
There is space for up to 13 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 116 required for standby recovery
Offline data file 5 marked as online during convert to standby or switchover to standby.
Restore of backup may be required if the file is not physically accessible.
Offline data file 7 marked as online during convert to standby or switchover to standby.
Restore of backup may be required if the file is not physically accessible.
Offline data file 21 marked as online during convert to standby or switchover to standby.
Restore of backup may be required if the file is not physically accessible.
Offline data file 22 marked as online during convert to standby or switchover to standby.
Restore of backup may be required if the file is not physically accessible.
Offline data file 23 marked as online during convert to standby or switchover to standby.
Restore of backup may be required if the file is not physically accessible.
Offline data file 24 marked as online during convert to standby or switchover to standby.
Restore of backup may be required if the file is not physically accessible.
Offline data file 25 marked as online during convert to standby or switchover to standby.
Restore of backup may be required if the file is not physically accessible.
Offline data file 26 marked as online during convert to standby or switchover to standby.
Restore of backup may be required if the file is not physically accessible.
Switchover: Primary controlfile converted to standby controlfile succesfully. >>控制文件切换成功
Switchover: Complete - Database shutdown required >>实例关闭
Sending request(convert to primary database) to switchover target ORCLDG >>发送命令到dg端
Switchover complete. Database shutdown required
USER (ospid: 2105): terminating the instance
Sun May 10 18:33:29 2015
Instance terminated by USER, pid = 2105
Completed: ALTER DATABASE SWITCHOVER TO orcldg
Shutting down instance (abort)
License high water mark = 17
Sun May 10 18:33:29 2015
Instance shutdown complete
Far sync 传输日志
Sun May 10 18:33:25 2015
Changing standby controlfile to MAXIMUM PERFORMANCE mode
RFS[3]: Assigned to RFS process (PID:2153)
RFS[3]: Selected log 4 for thread 1 sequence 116 dbid 1399018635 branch 871237903
Sun May 10 18:33:25 2015
Archived Log entry 30 added for thread 1 sequence 116 ID 0x53634e8b dest 1:
Sun May 10 18:33:29 2015
RFS[4]: Assigned to RFS process (PID:2131)
RFS[4]: Possible network disconnect with primary database
Sun May 10 18:33:29 2015
RFS[2]: Possible network disconnect with primary database
DataGuard端 alert日志
Sun May 10 18:33:26 2015
SWITCHOVER: received request 'ALTER DTABASE COMMIT TO SWITCHOVER TO PRIMARY' from primary database. >>接受到命令
Sun May 10 18:33:26 2015
ALTER DATABASE SWITCHOVER TO PRIMARY (orcl) >>进行切换
Maximum wait for role transition is 15 minutes. >>最多等待15分钟
Switchover: Media recovery is still active >>发现正在进行recover
Role Change: Canceling MRP - no more redo to apply >>关闭mrp
Sun May 10 18:33:26 2015
MRP0: Background Media Recovery cancelled with status 16037
Sun May 10 18:33:26 2015
Errors in file /u01/app/oracle/diag/rdbms/orcldg/orcl/trace/orcl_mrp0_2134.trc:
ORA-16037: user requested cancel of managed recovery operation
Managed Standby Recovery not using Real Time Apply
Recovery interrupted! >>recover 被中止
Sun May 10 18:33:26 2015
Errors in file /u01/app/oracle/diag/rdbms/orcldg/orcl/trace/orcl_mrp0_2134.trc:
ORA-16037: user requested cancel of managed recovery operation
Sun May 10 18:33:26 2015
MRP0: Background Media Recovery process shutdown (orcl)
Sun May 10 18:33:27 2015
Role Change: Canceled MRP >>关闭mrp
Killing 5 processes (PIDS:2186,2148,2146,2168,2170) (all RFS) in order to disallow current and future RFS connections. Requested by OS process 2197 >>kill rps进程
Stopping Emon pool
All dispatchers and shared servers shutdown
CLOSE: killing server sessions.
CLOSE: all sessions shutdown successfully.
Stopping Emon pool
Sun May 10 18:33:29 2015
SMON: disabling cache recovery
Sun May 10 18:33:29 2015
Backup controlfile written to trace file /u01/app/oracle/diag/rdbms/orcldg/orcl/trace/orcl_rmi_2197.trc >>备份控制文件
SwitchOver after complete recovery through change 2836945
Online logfile pre-clearing operation disabled by switchover >>清空redo
Online log /oradata/orcl/redo01.log: Thread 1 Group 1 was previously cleared
Online log /oradata/orcl/redo02.log: Thread 1 Group 2 was previously cleared
Online log /oradata/orcl/redo03.log: Thread 1 Group 3 was previously cleared
Standby became primary SCN: 2836943 >>成为主库的scn
AUDIT_TRAIL initialization parameter is changed back to its original value as specified in the parameter file.
Switchover: Complete - Database mounted as primary
SWITCHOVER: completed request from primary database. >>切换成功
Sun May 10 18:33:44 2015
ARC1: Becoming the 'no SRL' ARCH
Sun May 10 18:36:19 2015
Assigning activation ID 1407090153 (0x53de7de9) --开始打开数据库
LGWR: Primary database is in MAXIMUM AVAILABILITY mode
Sun May 10 18:36:19 2015
Destination LOG_ARCHIVE_DEST_2 is UNSYNCHRONIZED
LGWR: Destination LOG_ARCHIVE_DEST_1 is not serviced by LGWR
Sun May 10 18:36:19 2015
Thread 1 advanced to log sequence 118 (thread open)
Thread 1 opened at log sequence 118
Current log# 2 seq# 118 mem# 0: /oradata/orcl/redo02.log
Successful open of redo thread 1
Sun May 10 18:36:19 2015
MTTR advisory is disabled because FAST_START_MTTR_TARGET is not set
Sun May 10 18:36:19 2015
Archived Log entry 43 added for thread 1 sequence 117 ID 0x53de7de9 dest 1:
Sun May 10 18:36:19 2015
SMON: enabling cache recovery
Sun May 10 18:36:19 2015
[2219] Successfully onlined Undo Tablespace 2.
Undo initialization finished serial:0 start:525504 end:525654 diff:150 ms (0.2 seconds)
Dictionary check beginning
Dictionary check complete
Verifying minimum file header compatibility (11g) for tablespace encryption..
Verifying 11g file header compatibility for tablespace encryption completed
Sun May 10 18:36:19 2015
SMON: enabling tx recovery
Starting background process SMCO
Sun May 10 18:36:19 2015
Database Characterset is ZHS16GBK
Sun May 10 18:36:19 2015
SMCO started with pid=32, OS id=2226
No Resource Manager plan active
Starting background process IMCO
Sun May 10 18:36:19 2015
IMCO started with pid=35, OS id=2232
Starting background process AQPC
Sun May 10 18:36:20 2015
AQPC started with pid=36, OS id=2234
LOGSTDBY: Validating controlfile with logical metadata
LOGSTDBY: Validation complete
Sun May 10 18:36:20 2015
ARC1: STARTING ARCH PROCESSES
Starting background process ARC4
Sun May 10 18:36:20 2015
ARC4 started with pid=37, OS id=2236
ARC4: Archival started
ARC1: STARTING ARCH PROCESSES COMPLETE
Sun May 10 18:36:21 2015
Pluggable database PDB$SEED dictionary check beginning
Pluggable Database PDB$SEED Dictionary check complete
Database Characterset for PDB$SEED is ZHS16GBK
Sun May 10 18:36:21 2015
******************************************************************
LGWR: Setting 'active' archival for destination LOG_ARCHIVE_DEST_2
******************************************************************
LGWR: Standby redo logfile selected to archive thread 1 sequence 119
LGWR: Standby redo logfile selected for thread 1 sequence 119 for destination LOG_ARCHIVE_DEST_2
Sun May 10 18:36:22 2015
Thread 1 advanced to log sequence 119 (LGWR switch)
Current log# 3 seq# 119 mem# 0: /oradata/orcl/redo03.log
Shutting down archive processes
Sun May 10 18:36:22 2015
ARCH shutting down
ARC4: Archival stopped
Sun May 10 18:36:22 2015
Due to limited space in shared pool (need 6094848 bytes, have 3981120 bytes), limiting Resource Manager entities from 2048 to 32
Opening pdb PDB$SEED (2) with no Resource Manager plan active
Sun May 10 18:36:23 2015
Archived Log entry 45 added for thread 1 sequence 118 ID 0x53de7de9 dest 1:
Sun May 10 18:36:23 2015
Errors in file /u01/app/oracle/diag/rdbms/orcldg/orcl/trace/orcl_dbw0_2044.trc:
ORA-01157: cannot identify/lock data file 203 - see DBWR trace file
ORA-01110: data file 203: '/oradata/orcl/travel/travel_temp012015-03-19_01-30-29-PM.dbf'
ORA-27037: unable to obtain file status
Linux-x86_64 Error: 2: No such file or directory
Additional information: 3
Sun May 10 18:36:23 2015
Errors in file /u01/app/oracle/diag/rdbms/orcldg/orcl/trace/orcl_dbw0_2044.trc:
ORA-01186: file 203 failed verification tests
ORA-01157: cannot identify/lock data file 203 - see DBWR trace file
ORA-01110: data file 203: '/oradata/orcl/travel/travel_temp012015-03-19_01-30-29-PM.dbf'
Sun May 10 18:36:23 2015
File 203 not verified due to error ORA-01157
Sun May 10 18:36:23 2015
ARC0: Standby redo logfile selected for thread 1 sequence 118 for destination LOG_ARCHIVE_DEST_2
Sun May 10 18:36:23 2015
Pluggable database TRAVEL dictionary check beginning
Sun May 10 18:36:23 2015
Pluggable database PDB03 dictionary check beginning
Pluggable Database PDB03 Dictionary check complete
Sun May 10 18:36:23 2015
Pluggable Database TRAVEL Dictionary check complete
Sun May 10 18:36:23 2015
Database Characterset for PDB03 is ZHS16GBK
Sun May 10 18:36:23 2015
Database Characterset for TRAVEL is ZHS16GBK
Sun May 10 18:36:23 2015
********************************************************************* --临时表空间不存在问题
WARNING: The following temporary tablespaces in container(PDB03)
contain no files.
This condition can occur when a backup controlfile has
been restored. It may be necessary to add files to these
tablespaces. That can be done using the SQL statement:
ALTER TABLESPACE <tablespace_name> ADD TEMPFILE
Alternatively, if these temporary tablespaces are no longer
needed, then they can be dropped.
Empty temporary tablespace: TEMP
*********************************************************************
Sun May 10 18:36:24 2015
Errors in file /u01/app/oracle/diag/rdbms/orcldg/orcl/trace/orcl_dbw0_2044.trc:
ORA-01157: cannot identify/lock data file 203 - see DBWR trace file
ORA-01110: data file 203: '/oradata/orcl/travel/travel_temp012015-03-19_01-30-29-PM.dbf'
ORA-27037: unable to obtain file status
Linux-x86_64 Error: 2: No such file or directory
Additional information: 3
Sun May 10 18:36:24 2015
Errors in file /u01/app/oracle/diag/rdbms/orcldg/orcl/trace/orcl_dbw0_2044.trc:
ORA-01186: file 203 failed verification tests
ORA-01157: cannot identify/lock data file 203 - see DBWR trace file
ORA-01110: data file 203: '/oradata/orcl/travel/travel_temp012015-03-19_01-30-29-PM.dbf'
Sun May 10 18:36:24 2015
File 203 not verified due to error ORA-01157
Sun May 10 18:36:24 2015
Re-creating tempfile /oradata/orcl/travel/travel_temp012015-03-19_01-30-29-PM.dbf
ALTER SYSTEM: Flushing buffer cache inst=0 container=3 local
Sun May 10 18:36:24 2015
ALTER SYSTEM: Flushing buffer cache inst=0 container=4 local
Sun May 10 18:36:25 2015
Destination LOG_ARCHIVE_DEST_2 is SYNCHRONIZED
LGWR: Standby redo logfile selected to archive thread 1 sequence 120
LGWR: Standby redo logfile selected for thread 1 sequence 120 for destination LOG_ARCHIVE_DEST_2
Sun May 10 18:36:25 2015
Thread 1 advanced to log sequence 120 (LGWR switch)
Current log# 1 seq# 120 mem# 0: /oradata/orcl/redo01.log
Sun May 10 18:36:25 2015
Archived Log entry 48 added for thread 1 sequence 119 ID 0x53de7de9 dest 1:
Sun May 10 18:36:25 2015
Cannot start service travel, reason=-1
Cannot start service pdb03, reason=-1
Starting background process CJQ0
Completed: alter database open
Sun May 10 18:36:33 2015
CJQ0 started with pid=40, OS id=2289
查看新主库
SQL> SELECT name,database_role,db_unique_name,open_mode,protection_mode,protection_level,switchover_status,supplemental_log_data_pk,supplemental_log_data_ui FROM v$database;
NAME DATABASE_ROLE DB_UNIQUE_NAME OPEN_MODE PROTECTION_MODE PROTECTION_LEVEL SWITCHOVER_STATUS SUP SUP
--------- ---------------- ------------------------------ -------------------- -------------------- -------------------- -------------------- --- ---
ORCL PRIMARY orcldg MOUNTED MAXIMUM AVAILABILITY UNPROTECTED NOT ALLOWED NO NO
SQL> SELECT * FROM V$DATAGUARD_CONFIG;
DB_UNIQUE_NAME PARENT_DBUN DEST_ROLE CURRENT_SCN CON_ID
------------------------------ ------------------------------ ----------------- ----------- ----------
orcldg NONE PRIMARY DATABASE 0 0
orcl orcldg UNKNOWN 0 0
orclfs UNKNOWN UNKNOWN 0 0
SQL> SHOW parameter dest_2
PARAMETER_NAME TYPE VALUE
------------------------------------------------------------ ----------- ----------------------------------------------------------------------------------------------------
db_create_online_log_dest_2 string
log_archive_dest_2 string service=orcl LGWR SYNC affirm valid_for=(ONLINE_LOGFILES,PRIMARY_ROLE) db_unique_name=orcl
log_archive_dest_20 string
log_archive_dest_21 string
log_archive_dest_22 string
log_archive_dest_23 string
log_archive_dest_24 string
log_archive_dest_25 string
log_archive_dest_26 string
log_archive_dest_27 string
log_archive_dest_28 string
log_archive_dest_29 string
SQL> ALTER DATABASE OPEN;
DATABASE altered.
SQL>
SQL>
SQL>