A switch script
1:主库执行alter database set standby database to maximize availability;
// the pool of archived log After application also automatically become maximize availability , downtime pool of the main library or maximize availability status
2 : Main library to perform shutdown immediate and startup
3 : Preparation of libraries for performing alter database recover managed standby database cancel;
4 : library equipment to create standby redo log
First, in the main database query how many groups redo log , there are N groups redo log on the establishment of N + 1 group STANDBY log , redo log much, STANDBY log also establish how much
alter database add standby logfile
group 4 '/u01/app/oracle/oradata/orcl/standby_redo04.log' size 50M,
group 5 '/u01/app/oracle/oradata/orcl/standby_redo05.log' size 50M,
group 6 '/u01/app/oracle/oradata/orcl/standby_redo06.log' size 50M,
group 7 '/u01/app/oracle/oradata/orcl/standby_redo07.log' size 50M;
5 : Preparation of libraries for performing alter database recover managed standby database the disconnect from the session; (log file generated during re-application of the primary library restarted, the main library moment log file generated probably because the primary database restart or backup repository performing alter database recover managed standby database cancel does not apply to)
6 : Preparation of libraries for performing alter database recover managed standby database cancel;
7:备库执行alter database recover managed standby database using current logfile disconnect from session;
Second, the hand-over log
primary
SQL> select OPEN_MODE,DB_UNIQUE_NAME,PROTECTION_MODE,SWITCHOVER_STATUS from v$database;
OPEN_MODE DB_UNIQUE_NAME PROTECTION_MODE SWITCHOVER_STATUS
-------------------- ------------------------------ -------------------- --------------------
READ WRITE orcl MAXIMUM PERFORMANCE TO STANDBY
SQL> alter database set standby database to maximize availability;
Database altered.
SQL> select OPEN_MODE,DB_UNIQUE_NAME,PROTECTION_MODE,SWITCHOVER_STATUS from v$database;
OPEN_MODE DB_UNIQUE_NAME PROTECTION_MODE SWITCHOVER_STATUS
-------------------- ------------------------------ -------------------- --------------------
READ WRITE orcl MAXIMUM AVAILABILITY FAILED DESTINATION
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup
ORACLE instance started.
Total System Global Area 209235968 bytes
Fixed Size 1335528 bytes
Variable Size 180358936 bytes
Database Buffers 20971520 bytes
Redo Buffers 6569984 bytes
Database mounted.
Database opened.
SQL> select OPEN_MODE,DB_UNIQUE_NAME,PROTECTION_MODE,SWITCHOVER_STATUS from v$database;
OPEN_MODE DB_UNIQUE_NAME PROTECTION_MODE SWITCHOVER_STATUS
-------------------- ------------------------------ -------------------- --------------------
READ WRITE orcl MAXIMUM AVAILABILITY FAILED DESTINATION
SQL> /
OPEN_MODE DB_UNIQUE_NAME PROTECTION_MODE SWITCHOVER_STATUS
-------------------- ------------------------------ -------------------- --------------------
READ WRITE orcl MAXIMUM AVAILABILITY FAILED DESTINATION
SQL> /
OPEN_MODE DB_UNIQUE_NAME PROTECTION_MODE SWITCHOVER_STATUS
-------------------- ------------------------------ -------------------- --------------------
READ WRITE orcl MAXIMUM AVAILABILITY FAILED DESTINATION
SQL> select OPEN_MODE,DB_UNIQUE_NAME,PROTECTION_MODE,SWITCHOVER_STATUS from v$database;
OPEN_MODE DB_UNIQUE_NAME PROTECTION_MODE SWITCHOVER_STATUS
-------------------- ------------------------------ -------------------- --------------------
READ WRITE orcl MAXIMUM AVAILABILITY FAILED DESTINATION
standby
SQL> select OPEN_MODE,DB_UNIQUE_NAME,PROTECTION_MODE,SWITCHOVER_STATUS from v$database;
OPEN_MODE DB_UNIQUE_NAME PROTECTION_MODE SWITCHOVER_STATUS
-------------------- ------------------------------ -------------------- --------------------
READ ONLY WITH APPLY ora10g MAXIMUM PERFORMANCE NOT ALLOWED
SQL> alter database recover managed standby database cancel;
Database altered.
SQL> alter database add standby logfile
2 group 4 '/u01/app/oracle/oradata/orcl/standby_redo04.log' size 50M,
3 group 5 '/u01/app/oracle/oradata/orcl/standby_redo05.log' size 50M,
4 group 6 '/u01/app/oracle/oradata/orcl/standby_redo06.log' size 50M,
5 group 7 '/u01/app/oracle/oradata/orcl/standby_redo07.log' size 50M;
Database altered.
SQL> alter database recover managed standby database disconnect from session;
Database altered.
SQL> alter database recover managed standby database cancel;
Database altered.
SQL> alter database recover managed standby database using current logfile disconnect from session;
Database altered.
SQL> select OPEN_MODE,DB_UNIQUE_NAME,PROTECTION_MODE,SWITCHOVER_STATUS from v$database;
OPEN_MODE DB_UNIQUE_NAME PROTECTION_MODE SWITCHOVER_STATUS
-------------------- ------------------------------ -------------------- --------------------
READ ONLY WITH APPLY ora10g MAXIMUM AVAILABILITY NOT ALLOWED
Third, test switch
primary
SQL> insert into scott.emp (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)
2 values ('9991', 'SMITH', 'CLERK', '7902', to_date('17-12-1980', 'dd-mm-yyyy'), '800', null, '20');
1 row created.
SQL> select count(*) From scott.emp;
COUNT(*)
----------
21
SQL> commit;
SQL> select process,status,pid,client_process,client_pid,group#,sequence#,block#
2 from v$managed_standby;
PROCESS STATUS PID CLIENT_P CLIENT_PID GROUP# SEQUENCE# BLOCK#
--------- ------------ ---------- -------- ---------- ---------- ---------- ----------
ARCH CLOSING 19054 ARCH 19054 N/A 92 1
ARCH CLOSING 19056 ARCH 19056 2 92 1
ARCH CONNECTED 19058 ARCH 19058 N/A 0 0
ARCH CLOSING 19060 ARCH 19060 3 93 1
LGWR WRITING 19028 LGWR 19028 1 94 393
SQL>
SQL> select process,status,pid,client_process,client_pid,group#,sequence#,block#
2 from v$managed_standby;
PROCESS STATUS PID CLIENT_P CLIENT_PID GROUP# SEQUENCE# BLOCK#
--------- ------------ ---------- -------- ---------- ---------- ---------- ----------
ARCH CLOSING 19054 ARCH 19054 N/A 92 1
ARCH CLOSING 19056 ARCH 19056 2 92 1
ARCH CONNECTED 19058 ARCH 19058 N/A 0 0
ARCH CLOSING 19060 ARCH 19060 3 93 1
LGWR WRITING 19028 LGWR 19028 1 94 419
SQL> select process,status,pid,client_process,client_pid,group#,sequence#,block#
2 from v$managed_standby;
PROCESS STATUS PID CLIENT_P CLIENT_PID GROUP# SEQUENCE# BLOCK#
--------- ------------ ---------- -------- ---------- ---------- ---------- ----------
ARCH CLOSING 19054 ARCH 19054 N/A 92 1
ARCH CLOSING 19056 ARCH 19056 2 92 1
ARCH CONNECTED 19058 ARCH 19058 N/A 0 0
ARCH CLOSING 19060 ARCH 19060 3 93 1
LGWR WRITING 19028 LGWR 19028 1 94 422
standby
SQL> select count(*) From scott.emp;
COUNT(*)
----------
20
SQL> /
COUNT(*)
----------
21
SQL> select process,status,pid,client_process,client_pid,group#,sequence#,block#
2 from v$managed_standby;
PROCESS STATUS PID CLIENT_P CLIENT_PID GROUP# SEQUENCE# BLOCK#
--------- ------------ ---------- -------- ---------- ---------- ---------- ----------
ARCH CONNECTED 13249 ARCH 13249 N/A 0 0
ARCH CONNECTED 13252 ARCH 13252 N/A 0 0
ARCH CLOSING 13254 ARCH 13254 5 92 1
ARCH CLOSING 13256 ARCH 13256 4 93 1
MRP0 APPLYING_LOG 28070 N/A N/A N/A 94 391
RFS IDLE 28111 N/A 19058 N/A 0 0
RFS IDLE 28113 UNKNOWN 19060 N/A 0 0
RFS IDLE 28115 LGWR 19028 1 94 391
RFS IDLE 28117 UNKNOWN 19054 N/A 0 0
9 rows selected.
SQL> select process,status,pid,client_process,client_pid,group#,sequence#,block#
2 from v$managed_standby;
PROCESS STATUS PID CLIENT_P CLIENT_PID GROUP# SEQUENCE# BLOCK#
--------- ------------ ---------- -------- ---------- ---------- ---------- ----------
ARCH CONNECTED 13249 ARCH 13249 N/A 0 0
ARCH CONNECTED 13252 ARCH 13252 N/A 0 0
ARCH CLOSING 13254 ARCH 13254 5 92 1
ARCH CLOSING 13256 ARCH 13256 4 93 1
MRP0 APPLYING_LOG 28070 N/A N/A N/A 94 430
RFS IDLE 28111 N/A 19058 N/A 0 0
RFS IDLE 28113 UNKNOWN 19060 N/A 0 0
RFS IDLE 28115 LGWR 19028 1 94 430
RFS IDLE 28117 UNKNOWN 19054 N/A 0 0
9 rows selected.
SQL> select * from v$standby_log;
GROUP# DBID THREAD# SEQUENCE# BYTES BLOCKSIZE USED ARC STATUS FIRST_CHANGE# FIRST_TIM NEXT_CHANGE# NEXT_TIME LAST_CHANGE# LAST_TIME
---------- ---------------------------------------- ---------- ---------- ---------- ---------- ---------- --- ---------- ------------- --------- ------------ --------- ------------ ---------
########## 1282391501 1 94 52428800 512 231936 YES ACTIVE 1665815 25-JUN-19 1666222 25-JUN-19 1666222 25-JUN-19
########## UNASSIGNED 1 0 52428800 512 512 NO UNASSIGNED 0 0 0
########## UNASSIGNED 0 0 52428800 512 512 YES UNASSIGNED 0 0 0
########## UNASSIGNED 0 0 52428800 512 512 YES UNASSIGNED 0 0 0
SQL> /
GROUP# DBID THREAD# SEQUENCE# BYTES BLOCKSIZE USED ARC STATUS FIRST_CHANGE# FIRST_TIM NEXT_CHANGE# NEXT_TIME LAST_CHANGE# LAST_TIME
---------- ---------------------------------------- ---------- ---------- ---------- ---------- ---------- --- ---------- ------------- --------- ------------ --------- ------------ ---------
########## 1282391501 1 94 52428800 512 241152 YES ACTIVE 1665815 25-JUN-19 1666245 25-JUN-19 1666245 25-JUN-19
########## UNASSIGNED 1 0 52428800 512 512 NO UNASSIGNED 0 0 0
########## UNASSIGNED 0 0 52428800 512 512 YES UNASSIGNED 0 0 0
########## UNASSIGNED 0 0 52428800 512 512 YES UNASSIGNED 0 0 0
SQL> /
GROUP# DBID THREAD# SEQUENCE# BYTES BLOCKSIZE USED ARC STATUS FIRST_CHANGE# FIRST_TIM NEXT_CHANGE# NEXT_TIME LAST_CHANGE# LAST_TIME
---------- ---------------------------------------- ---------- ---------- ---------- ---------- ---------- --- ---------- ------------- --------- ------------ --------- ------------ ---------
########## 1282391501 1 94 52428800 512 241664 YES ACTIVE 1665815 25-JUN-19 1666245 25-JUN-19 1666245 25-JUN-19
########## UNASSIGNED 1 0 52428800 512 512 NO UNASSIGNED 0 0 0
########## UNASSIGNED 0 0 52428800 512 512 YES UNASSIGNED 0 0 0
########## UNASSIGNED 0 0 52428800 512 512 YES UNASSIGNED 0 0 0
SQL> /
GROUP# DBID THREAD# SEQUENCE# BYTES BLOCKSIZE USED ARC STATUS FIRST_CHANGE# FIRST_TIM NEXT_CHANGE# NEXT_TIME LAST_CHANGE# LAST_TIME
---------- ---------------------------------------- ---------- ---------- ---------- ---------- ---------- --- ---------- ------------- --------- ------------ --------- ------------ ---------
########## 1282391501 1 94 52428800 512 242176 YES ACTIVE 1665815 25-JUN-19 1666245 25-JUN-19 1666245 25-JUN-19
########## UNASSIGNED 1 0 52428800 512 512 NO UNASSIGNED 0 0 0
########## UNASSIGNED 0 0 52428800 512 512 YES UNASSIGNED 0 0 0
########## UNASSIGNED 0 0 52428800 512 512 YES UNASSIGNED 0 0 0
SQL> /
GROUP# DBID THREAD# SEQUENCE# BYTES BLOCKSIZE USED ARC STATUS FIRST_CHANGE# FIRST_TIM NEXT_CHANGE# NEXT_TIME LAST_CHANGE# LAST_TIME
---------- ---------------------------------------- ---------- ---------- ---------- ---------- ---------- --- ---------- ------------- --------- ------------ --------- ------------ ---------
########## 1282391501 1 94 52428800 512 242688 YES ACTIVE 1665815 25-JUN-19 1666245 25-JUN-19 1666245 25-JUN-19
########## UNASSIGNED 1 0 52428800 512 512 NO UNASSIGNED 0 0 0
########## UNASSIGNED 0 0 52428800 512 512 YES UNASSIGNED 0 0 0
########## UNASSIGNED 0 0 52428800 512 512 YES UNASSIGNED 0 0 0