This action might not be possible to undo. Are you sure you want to continue?
A switchover is a role reversal between the primary database and one of its standby databases. A switchover operation guarantees no data loss. This is typically done for planned maintenance of the primary system. During a switchover, the primary database transitions to a standby role and the standby database transitions to the primary role. The transition occurs without having to recreate either database. By contrast, a failover is an irreversible transition of a standby database to the primary role. This is only done in the event of a catastrophic failure of the primary database. Before starting a switchover operation: 1. Verify that both the primary and standby init.ora support role transition. Oracle recommends that you maintain a single init.ora for both the primary and the standby. Each init.ora should have all the parameters that are needed to support either the standby or primary role. An example of the primary init.ora follows: ### Primary database primary role parameterr ### LOG_ARCHIVE_DEST_1='LOCATION=/database/oracle/920DG/primar y/arch' LOG_ARCHIVE_DEST_2='SERVICE=920DG_hasunclu2' LOG_ARCHIVE_DEST_STATE_1=ENABLE LOG_ARCHIVE_DEST_STATE_2=ENABLE LOG_ARCHIVE_FORMAT=%d_%t_%s.arc ### Primary database standby role parameters ### FAL_SERVER=920DG_hasunclu2 FAL_CLIENT=920DG_hasunclu1 DB_FILE_NAME_CONVERT=('/standby','/primary') LOG_FILE_NAME_CONVERT=('/standby','/primary') STANDBY_ARCHIVE_DEST=/database/oracle/920DG/arch STANDBY_FILE_MANAGEMENT=AUTO An example of a standby init.ora follows: ### Standby database standby role parameters ### FAL_SERVER=920DG_hasunclu1
FAL_CLIENT=920DG_hasunclu2 DB_FILE_NAME_CONVERT=("/primary","/standby") LOG_FILE_NAME_CONVERT=("/primary","/standby") STANDBY_ARCHIVE_DEST=/database/oracle/920DG/standby/arch LOG_ARCHIVE_DEST_1='LOCATION=/database/oracle/920DG/standb y/arch' LOG_ARCHIVE_DEST_STATE_1=ENABLE LOG_ARCHIVE_FORMAT=%d_%t_%s.arc STANDBY_FILE_MANAGEMENT=AUTO ### Standby database primary role parameters ### LOG_ARCHIVE_DEST_2='SERVICE=920DG_hasunclu1' LOG_ARCHIVE_DEST_STATE_2=DEFER With the initialization parameters on both the primary and standby databases set as described above, the only parameter that needs to change after a role transition is the LOG_ARCHIVE_DEST_STATE_2 parameter. Change this parameter to ENABLED on the database that assumes the primary role. 2.Verify that there is network connectivity between the primary and standby locations. 3.Each location in the Data Guard configuration should have connectivity through Oracle Net to the primary database and to all associated standby databases. 4.Verify that there are no active users connected to the databases. 5.Verify that all but one primary instance and one standby instance in a Real Application Clusters configuration are shut down. 6.For a Real Application Clusters database, only one primary instance and one standby instance can perform the switchover operation. Shut down all other instances before the switchover operation. 7. For switchover operations involving a physical standby database, the primary database instance is open and the
standby database instance is mounted. 8. The standby database that you plan to transition to the primary role must be mounted before you begin the switchover operation. Ideally, the physical standby database will also be actively recovering archived redo logs when the database roles are switched. If the physical standby database is open for readonly access, the switchover operation still will take place, but will require additional time. 9.For switchover operations involving a logical standby database, both the primary and standby database instances are open. 10.Place the standby database that will become the new primary database in ARCHIVELOG mode. 11.Remove any redo data application delay in effect on the standby database.
Steps to perform switchover with Physical Standby databases:
1. Verify that it is possible to perform a switchover operation. On the primary query the switchover_status column of v$database to verify that switchover to standby is possible. > select switchover_status from v$database; SWITCHOVER_STATUS TO STANDBY In order to perform a switchover all sessions to the database need to be disconnected. In version 901 this was a manual process. In version 9.2.0 this process has been automated with the with session shutdown clause that has been added to the alter database commit to switchover command. If SWITCHOVER_STATUS returns SESSIONS ACTIVE then you should either disconnect all sessions manually or when performing step 2 you should append the with session shutdown clause. For example:
> alter database commit to switchover to standby with session shutdown; Note that the clause also works with the switchover to primary command. The SWITCHOVER_STATUS column of v$database can have the following values: NOT ALLOWED Either this is a standby database and the primary database has not been switched first, or this is a primary database and there are no standby databases.
SESSIONS ACTIVE Indicates that there are active SQL
sessions attached to the primary or standby database that need to be disconnected before the switchover operation is permitted.
SWITCHOVER PENDING This is a standby database and the
primary database switchover request has been received but not processed. SWITCHOVER LATENT The switchover was in pending mode, but did not complete and went back to the primary database. TO PRIMARY This is a standby database, with no active sessions, that is allowed to switch over to a primary database.
TO STANDBY This is a primary database, with no active
sessions, that is allowed to switch over to a standby database.
RECOVERY NEEDED This is a standby database that has not
received the switchover request. During normal operations it is acceptable to see the following values for SWITCHOVER_STATUS on the primary to be SESSIONS ACTIVE or TO STANDBY. During normal operations on the standby it is acceptable to see the values of NOT ALLOWED or SESSIONS ACTIVE. 2. Convert the primary database to the new standby: >alter database commit to switchover to physical standby;
Database altered. 3. Shutdown the former primary and mount as a standby database: >shutdown immediate; ORA01507: database not mounted ORACLE instance shut down. > alter database mount standby database; startup nomount ORACLE instance started. 4. Defer the remote archive destination on the old primary: >alter system set log_archive_dest_state_2=defer; 5. Verify that the physical standby can be converted to the new primary: > select switchover_status from v$database; SWITCHOVER_STATUS SWITCHOVER PENDING Note that if the status returns SESSIONS ACTIVE then you should append the with session shutdown clause to the command in step 6. 6. Convert the physical standby to the new primary: >alter database commit to switchover to primary; Database altered. If you are on verion 9.0.1 then you should first cancel managed recovery prior to issuing the above command. If you are on 9.2.0 and have started managed recovery with the "through all switchover" clause then you should also cancel managed recovery before issuing the above command. 7. Shutdown and startup the new primary: > shutdown immediate ORA01507: database not mounted ORACLE instance shut down. >startup ORACLE instance started. Database mounted. Database opened. 8. Enable remote archiving on the new primary to the new
standby: >alter system set log_archive_dest_state_2=enable; 9. Start managed recover on the new standby database: > recover managed standby database disconnect; Media recovery complete.
This action might not be possible to undo. Are you sure you want to continue?
We've moved you to where you read on your other device.
Get the full title to continue reading from where you left off, or restart the preview.