Fisrt switch the primary to standby and then switch the standby to primary.
A switchover must be initiated on
the current primary database and completed on the target standby database
1 Verify the primary if it is ready
SQL> SELECT SWITCHOVER_STATUS FROM V$DATABASE;
SWITCHOVER_STATUS
-----------------
TO STANDBY
如果显示是sessions active,则用以下语句看一下是哪些用户还连着
SELECT SID, PROCESS, PROGRAM FROM V$SESSION
WHERE TYPE = 'USER'
AND SID <> (SELECT DISTINCT SID FROM V$MYSTAT);
2 switch the primary to standby
ALTER DATABASE COMMIT TO SWITCHOVER TO PHYSICAL STANDBY;
3 shutdown ,mount the primary and make it standby
be sure to start the apply service
alter database recover managed standby database disconnect;
4 verify if the standby is ready
SQL> SELECT SWITCHOVER_STATUS FROM V$DATABASE;
SWITCHOVER_STATUS
-----------------
TO_PRIMARY
1 row selected
5 switch the standby to primary
6 start the new primary in read write mode
7 test if the switchover works