1、Switchover 前的准备 主库:
15:20:48 SYS@ prod>select name,database_role,switchover_status from v$database;
NAME DATABASE_ROLE SWITCHOVER_STATUS
--------- ---------------- --------------------
PROD PRIMARY TO STANDBY
Elapsed: 00:00:00.00
添加归档日志位置:
15:21:18 SYS@ prod>alter system set log_archive_dest_3='location=/u01/arch1 valid_for=(standby_logfiles,standby_roles) db_unique_name=bj';
System> Elapsed: 00:00:00.13
切换前准备: 15:29:48 SYS@ prod>alter database prepare to switchover to logical standby;
Database> Elapsed: 00:00:00.04
15:30:58 SYS@ prod>select name,database_role,switchover_status from v$database;
NAME DATABASE_ROLE SWITCHOVER_STATUS
--------- ---------------- --------------------
PROD PRIMARY PREPARING SWITCHOVER
告警日志:
alter database prepare to switchover to logical standby
ALTER DATABASE PREPARE TO SWITCHOVER TO LOGICAL STANDBY (prod)
Completed:> Fri Apr 11 15:31:43 2014
RFS[1]: Assigned to RFS process 3776
RFS[1]:> RFS[1]: Opened log for thread 1 sequence 8 dbid 1674782321 branch 843241928
Fri Apr 11 15:32:15 2014
RFS[2]: Assigned to RFS process 3781
RFS[2]:>
RFS LogMiner: RFS> Fri Apr 11 15:32:21 2014
RFS[3]: Assigned to RFS process 3783
RFS[3]:> RFS[3]: Opened log for thread 1 sequence 9 dbid 1674782321 branch 843241928
Fri Apr 11 15:32:34 2014
RFS LogMiner: Registered logfile [/disk2/arch_prod/arch_1_9_843241928.log] to LogMiner session> Fri Apr 11 15:32:39 2014
RFS[4]: Assigned to RFS process 3790
RFS[4]:> RFS[4]: Opened log for thread 1 sequence 10 dbid 1674782321 branch 843241928
RFS LogMiner: Registered logfile [/disk2/arch_prod/arch_1_10_843241928.log] to LogMiner session> 备库:
添加归档日志位置:
15:21:18 SYS@ sh>alter system set log_archive_dest_3='location=/u01/arch1 valid_for=(standby_logfiles,standby_roles) db_unique_name=sh';
15:20:48 SYS@ sh>select name,database_role,switchover_status from v$database;
NAME DATABASE_ROLE SWITCHOVER_STATUS
--------- ---------------- --------------------
PROD PRIMARY NOT ALLOW
切换前准备: 15:30:39 SYS@ sh>alter database prepare to switchover to primary;
Database> Elapsed: 00:01:11.00
15:33:45 SYS@ sh>select name,database_role,switchover_status from v$database;
NAME DATABASE_ROLE SWITCHOVER_STATUS
--------- ---------------- --------------------
SHDB LOGICAL STANDBY PREPARING SWITCHOVER
Elapsed: 00:00:00.10
15:35:08 SYS@ sh>
告警日志:
alter database prepare to switchover to primary
ALTER DATABASE SWITCHOVER TO PRIMARY (sh)
ALTER DATABASE PREPARE TO SWITCHOVER TO PRIMARY (sh)
Fri Apr 11 15:32:34 2014
Thread 1 advanced to log sequence 8 (LGWR switch)
Current log# 2 seq# 8 mem# 0: /disk1/oradata/sh/redo02a.log
Current log# 2 seq# 8 mem# 1: /disk2/oradata/sh/redo02b.log
Fri Apr 11 15:32:48 2014
Archived Log entry 7 added for thread 1 sequence 7> Fri Apr 11 15:32:49 2014
Fri Apr 11 15:32:49 2014
Logminer Bld: Build started
ALTER SYSTEM SWITCH ALL LOGFILE start (sh)
ALTER SYSTEM SWITCH ALL LOGFILE complete (sh)
Fri Apr 11 15:32:49 2014
Thread 1 advanced to log sequence 9 (LGWR switch)
Current log# 3 seq# 9 mem# 0: /disk1/oradata/sh/redo03a.log
Current log# 3 seq# 9 mem# 1: /disk2/oradata/sh/redo03b.log
ARC2: LGWR is scheduled to archive destination LOG_ARCHIVE_DEST_2 after log switch
Fri Apr 11 15:32:49 2014
Logminer Bld: Lockdown Complete. DB_TXN_SCN is 0 968908 LockdownSCN is 968908
Archived Log entry 8 added for thread 1 sequence 8> Fri Apr 11 15:33:26 2014
ALTER SYSTEM ARCHIVE LOG
Fri Apr 11 15:33:26 2014
Thread 1 cannot allocate new log, sequence 10
Checkpoint not complete
Current log# 3 seq# 9 mem# 0: /disk1/oradata/sh/redo03a.log
Current log# 3 seq# 9 mem# 1: /disk2/oradata/sh/redo03b.log
ARCH: LGWR is scheduled to archive destination LOG_ARCHIVE_DEST_2 after log switch
Thread 1 advanced to log sequence 10 (LGWR switch)
Current log# 1 seq# 10 mem# 0: /disk1/oradata/sh/redo01a.log
Current log# 1 seq# 10 mem# 1: /disk2/oradata/sh/redo01b.log
Fri Apr 11 15:33:42 2014
Archived Log entry 10 added for thread 1 sequence 9> Fri Apr 11 15:33:42 2014
Logminer Bld: Done
Fri Apr 11 15:33:42 2014
Thread 1 cannot allocate new log, sequence 11
Checkpoint not complete
Current log# 1 seq# 10 mem# 0: /disk1/oradata/sh/redo01a.log
Current log# 1 seq# 10 mem# 1: /disk2/oradata/sh/redo01b.log
ARCH: LGWR is scheduled to archive destination LOG_ARCHIVE_DEST_2 after log switch
Thread 1 advanced to log sequence 11 (LGWR switch)
Current log# 2 seq# 11 mem# 0: /disk1/oradata/sh/redo02a.log
Current log# 2 seq# 11 mem# 1: /disk2/oradata/sh/redo02b.log
Archived Log entry 12 added for thread 1 sequence 10>
Completed:> 2、主备库 switchover
再次查看主库状态:
15:31:12 SYS@ prod>select name,database_role,switchover_status from v$database;
NAME DATABASE_ROLE SWITCHOVER_STATUS
--------- ---------------- --------------------
PROD PRIMARY TO LOGICAL STANDBY
Elapsed: 00:00:00.01
主库切换到备库:
15:33:54 SYS@ prod>alter database commit to switchover to logical standby;
Database> Elapsed: 00:00:25.46
15:36:02 SYS@ prod>
告警日志:
alter database commit to switchover to logical standby
ALTER DATABASE COMMIT TO SWITCHOVER TO LOGICAL STANDBY (prod)
LOGSTDBY: Ensuring no active hot backups.
LOGSTDBY: Enabling database guard to prevent new transactions.
LOGSTDBY: Waiting for transactions in flight at scn 0x0000.000e76d5 to complete
Waiting for transactions in flight at scn 0x0000.000e76d5 to complete
Fri Apr 11 15:35:37 2014
Thread 1 advanced to log sequence 91 (LGWR switch)
Current log# 2 seq# 91 mem# 0: /disk1/oradata/prod/redo02a.log
Current log# 2 seq# 91 mem# 1: /disk2/oradata/prod/redo02b.log
Archived Log entry 148 added for thread 1 sequence 90> LOGSTDBY: Waiting for pending archivals to dest [all].
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 switchover target to become synchronized...
Fri Apr 11 15:35:57 2014
Active, synchronized Logical Standby switchover target has been> LOGSTDBY: Preparing the COMMIT TO SWITCHOVER TO LOGICAL STANDBY DDL at scn [947944].
ARCH: LGWR is actively archiving destination LOG_ARCHIVE_DEST_2
Fri Apr 11 15:35:57 2014
Thread 1 advanced to log sequence 92 (LGWR switch)
Current log# 3 seq# 92 mem# 0: /disk1/oradata/prod/redo03a.log
Current log# 3 seq# 92 mem# 1: /disk2/oradata/prod/redo03b.log
ARCH: Standby redo logfile selected for thread 1 sequence 91 for destination LOG_ARCHIVE_DEST_2
Archived Log entry 149 added for thread 1 sequence 91> LOG_ARCHIVE_DEST_2 is a potential Logical Standby switchover target
Thread 1 cannot allocate new log, sequence 93
Checkpoint not complete
Current log# 3 seq# 92 mem# 0: /disk1/oradata/prod/redo03a.log
Current log# 3 seq# 92 mem# 1: /disk2/oradata/prod/redo03b.log
Fri Apr 11 15:35:59 2014
NSA2 started with pid=23, OS> Thread 1 advanced to log sequence 93 (LGWR switch)
Current log# 1 seq# 93 mem# 0: /disk1/oradata/prod/redo01a.log
Current log# 1 seq# 93 mem# 1: /disk2/oradata/prod/redo01b.log
RFS[8]:>
RFS LogMiner: RFS>
RFS LogMiner: RFS> 主库切换完成!
切换备库到主库:
15:33:45 SYS@ sh>select name,database_role,switchover_status from v$database;
NAME DATABASE_ROLE SWITCHOVER_STATUS
--------- ---------------- --------------------
SHDB LOGICAL STANDBY TO PRIMARY
15:38:16 SYS@ sh>alter database commit to switchover to primary;
Database> Elapsed: 00:00:15.95
切换完成:
15:39:54 SYS@ sh>select name,database_role,switchover_status from v$database;
NAME DATABASE_ROLE SWITCHOVER_STATUS
--------- ---------------- --------------------
SHDB PRIMARY LOG SWITCH GAP
Elapsed: 00:00:00.00
15:40:02 SYS@ sh>
备库日志:
alter database commit to switchover to primary
ALTER DATABASE SWITCHOVER TO PRIMARY (sh)
ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY (sh)
LOGSTDBY: Starting SCN of new stream from seeded lockdown [0x0000.000ec8cc]
LOGSTDBY: Successful close of the current log stream:
LOGSTDBY: primary: [242030492]
LOGSTDBY: first scn: [0x0000.00000000]
LOGSTDBY: end scn: [0x0000.000e76ec]
LOGSTDBY: processed scn: [0x0000.000e76ed]
LOGSTDBY: Preparing the COMMIT TO SWITCHOVER TO PRIMARY DDL at scn [970802].
ARCH: LGWR is scheduled to archive destination LOG_ARCHIVE_DEST_2 after log switch
Fri Apr 11 15:39:38 2014
ARC2: STARTING ARCH PROCESSES
Fri Apr 11 15:39:38 2014
ARC3 started with pid=25, OS> ARC3: Archival started
ARC2: STARTING ARCH PROCESSES COMPLETE
Fri Apr 11 15:39:38 2014
Thread 1 advanced to log sequence 12 (LGWR switch)
Current log# 3 seq# 12 mem# 0: /disk1/oradata/sh/redo03a.log
Current log# 3 seq# 12 mem# 1: /disk2/oradata/sh/redo03b.log
ARCH: Standby redo logfile selected for thread 1 sequence 11 for destination LOG_ARCHIVE_DEST_2
Fri Apr 11 15:39:54 2014
Archived Log entry 16 added for thread 1 sequence 12> Thread 1 cannot allocate new log, sequence 14
Checkpoint not complete
Current log# 1 seq# 13 mem# 0: /disk1/oradata/sh/redo01a.log
Current log# 1 seq# 13 mem# 1: /disk2/oradata/sh/redo01b.log
Thread 1 advanced to log sequence 14 (LGWR switch)
Current log# 2 seq# 14 mem# 0: /disk1/oradata/sh/redo02a.log
Current log# 2 seq# 14 mem# 1: /disk2/oradata/sh/redo02b.log
Archived Log entry 17 added for thread 1 sequence 13> Fri Apr 11 15:43:59 2014
LNS: Standby redo logfile selected for thread 1 sequence 13 for destination LOG_ARCHIVE_DEST_2
LNS: Standby redo logfile selected for thread 1 sequence 14 for destination LOG_ARCHIVE_DEST_2
Fri Apr 11 15:44:06 2014
ARC2: Standby redo logfile selected for thread 1 sequence 12 for destination LOG_ARCHIVE_DEST_2
原主库日志:
Fri Apr 11 15:42:17 2014
Thread 1 advanced to log sequence 94 (LGWR switch)
Current log# 2 seq# 94 mem# 0: /disk1/oradata/prod/redo02a.log
Current log# 2 seq# 94 mem# 1: /disk2/oradata/prod/redo02b.log
Fri Apr 11 15:42:37 2014
Archived Log entry 152 added for thread 1 sequence 93> Fri Apr 11 15:42:50 2014
AUD: Audit Commit Delay exceeded, written a copy to OS Audit Trail
Fri Apr 11 15:42:50 2014
AUD: Audit Commit Delay exceeded, written a copy to OS Audit Trail
RFS[6]: Assigned to RFS process 3840
RFS[6]:> Primary database is in MAXIMUM PERFORMANCE mode
RFS[6]: Selected log 4 for thread 1 sequence 13 dbid 1674782321 branch 843241928
RFS[6]: Selected log 5 for thread 1 sequence 14 dbid 1674782321 branch 843241928
Fri Apr 11 15:42:58 2014
AUD: Audit Commit Delay exceeded, written a copy to OS Audit Trail
RFS[7]: Assigned to RFS process 3842