Open the PHYSICALSTANDBY database in read-only mode, perform the test, and then restore
Open the physical standby database in read-only mode, perform the test, and then restore
A. Check the standby status
SQL> select name, database_role, OPEN_MODE, SWITCHOVER_STATUS from v $ database;
NAME DATABASE_ROLE OPEN_MODE SWITCHOVER_STATUS
-------------------------------------------------------
ORCLDB PHYSICAL STANDBY MOUNTED NOT ALLOWED
B. Determine whether flashback_on is enabled.
SQL> select flashback_on from v $ database;
FLASHBACK_ON
------------------
YES
C. Check the flash recovery zone settings
SQL> show parameter db_recovery_file_dest
NAME TYPE VALUE
-----------------------------------------------------------------------------
Db_recovery_file_dest string/u01/Oracle/flash_recovery_are
A
Db_recovery_file_dest_size big integer 2G
D. Cancel log application
SQL> alter database recover managed standby database cancel;
Database altered.
E. Create Restore Point
SQL> create restore point restore_point_readonly guarantee flashback database;
Restore point created.
F. Switch logs on the master database and set the log sending time to delay.
SQL> alter system archive log current;
System altered.
SQL> alter system set log_archive_dest_state_2 = defer;
System altered.
H. Activate the slave database to the read write state and open
SQL> alter database activate standby database;
Database altered.
SQL> alter database open;
Database altered.
SQL> select name, open_mode, database_role, db_unique_name from v $ database;
NAME OPEN_MODE DATABASE_ROLE DB_UNIQUE_NAME
-----------------------------------------------------------------
ORCLDB READ WRITE PRIMARY PHYSTDBY
I. Perform read write Test
SQL> create table scott. t as select * from dba_objects;
Table created.
SQL> select count (*) from scott. t;
COUNT (*)
----------
49745
SQL> truncate table scott. t;
Table truncated.
SQL> select count (*) from scott. t;
COUNT (*)
----------
0
J. The test is complete. Prepare to restore the slave database. First Force start to the mount status, and then flash back the database
SQL> startup mount force
ORACLE instance started.
Total System Global Area 390070272 bytes
Fixed Size 2021024 bytes
Variable Size 142608736 bytes
Database Buffers 243269632 bytes
Redo Buffers 2170880 bytes
Database mounted.
SQL> flashback database to restore point restore_point_readonly;
Flashback complete.
K. Convert the database to physical standby
SQL> alter database convert to physical standby;
Database altered.
L. Force start to the mout status again, and then apply the log
SQL> startup mount force
ORACLE instance started.
Total System Global Area 390070272 bytes
Fixed Size 2021024 bytes
Variable Size 142608736 bytes
Database Buffers 243269632 bytes
Redo Buffers 2170880 bytes
Database mounted.
SQL> alter database recover managed standby database disconnect from session;
Database altered.
M. Enable log transfer in the master database and switch logs
SQL> alter system set log_archive_dest_state_2 = enable;
System altered.
SQL> alter system archive log current;
System altered.
N. Observe the slave database log and you will find that the application log has been properly switched to physical standby.
Alter database recover managed standby database disconnect from session
Sun Jan 5 07:43:47 2014
Attempt to start background Managed Standby Recovery process (PHYSTDBY)
MRP0 started with pid = 22, OS id = 13951
Sun Jan 5 07:43:47 2014
MRP0: Background Managed Standby Recovery process started (PHYSTDBY)
Managed Standby Recovery not using Real Time Apply
Clearing online redo logfile 1/u01/oracle/oradata/ORCLDB/redo01.log
Clearing online log 1 of thread 1 sequence number 1
Sun Jan 5 07:43:53 2014
Completed: alter database recover managed standby database disconnect from session
Sun Jan 5 07:43:55 2014
Clearing online redo logfile 1 complete
Media Recovery Log/u01/oracle/arch1/PHYSTDBY/12739_795970778.dbf
Media Recovery Log/u01/oracle/arch1/PHYSTDBY/12740_795970778.dbf
Media Recovery Waiting for thread 1 sequence 41
Sun Jan 5 07:44:56 2014
Redo Shipping Client Connected as PUBLIC
-- Connected User is Valid
RFS [1]: Assigned to RFS process 13953
RFS [1]: Identified database type as 'physical standby'
Primary database is in maximum availability mode
Changing standby controlfile to RESYNCHRONIZATION level
Sun Jan 5 07:44:56 2014
RFS LogMiner: Client disabled from further notification
Primary database is in maximum availability mode
Changing standby controlfile to maximum availability level
RFS [1]: Successfully opened standby log 4: '/u01/oracle/oradata/ORCLDB/stdby_redo04.log'
Sun Jan 5 07:44:56 2014
Redo Shipping Client Connected as PUBLIC
-- Connected User is Valid
RFS [2]: Assigned to RFS process 13955
RFS [2]: Identified database type as 'physical standby'
RFS [2]: Successfully opened standby log 5: '/u01/oracle/oradata/ORCLDB/stdby_redo05.log'
Sun Jan 5 07:45:01 2014
Media Recovery Log/u01/oracle/arch1/PHYSTDBY/12741_795970778.dbf
Media Recovery Waiting for thread 1 sequence 42 (in transit)
Sun Jan 5 07:45:16 2014
Redo Shipping Client Connected as PUBLIC
-- Connected User is Valid
RFS [3]: Assigned to RFS process 13959
RFS [3]: Identified database type as 'physical standby'
Recommended reading:
Configure Standby Redo Log for Data Guard
RMAN duplicate for Standby failure Solution Process
Enable physical Standby in read only/WRITE mode in Data Gurad physical backup mode
RAC primary + Single Standby DG configuration practices
Oracle Standby policy PPT