DR DRILL
Enable Flash Back on DR
On STANDBY SERVER:
mkdir /d01/app/oracle/flash_back'
SQL> alter system set db_recovery_file_dest_size=20G;
SQL> alter system set db_recovery_file_dest='/d01/app/oracle/flash_back';
SQL> alter system set db_flashback_retention_target=4000;
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;
SQL> alter database flashback on;
SQL> select log_mode,flashback_on from v$database;
SQL> alter database recover managed standby database disconnect;
Check log Gap on DR
SELECT [Link]# "Thread", [Link]# "Last Sequence Received", [Link]# "Last Sequence Applied",
([Link]# - [Link]#) "Difference" FROM
(SELECT THREAD# ,SEQUENCE# FROM V$ARCHIVED_LOG WHERE (THREAD#,FIRST_TIME ) IN (SELECT
THREAD#,MAX(FIRST_TIME) FROM V$ARCHIVED_LOG GROUP BY THREAD#)) ARCH,
(SELECT THREAD# ,SEQUENCE# FROM V$LOG_HISTORY WHERE (THREAD#,FIRST_TIME ) IN (SELECT
THREAD#,MAX(FIRST_TIME) FROM V$LOG_HISTORY GROUP BY THREAD#)) APPL WHERE [Link]# = [Link]#
ORDER BY 1;
Switch logs on Primary
LOGIN to PRIMARY DB and Switch the Log Files so that the Last transaction can be synched to DR:
SQL> alter system switch logfile;
System altered.
SQL> alter system switch logfile;
System altered.
SQL> alter system switch logfile;
System altered.
Check log Gap on DR
SELECT [Link]# "Thread", [Link]# "Last Sequence Received", [Link]# "Last Sequence Applied",
([Link]# - [Link]#) "Difference" FROM
(SELECT THREAD# ,SEQUENCE# FROM V$ARCHIVED_LOG WHERE (THREAD#,FIRST_TIME ) IN (SELECT
THREAD#,MAX(FIRST_TIME) FROM V$ARCHIVED_LOG GROUP BY THREAD#)) ARCH,
(SELECT THREAD# ,SEQUENCE# FROM V$LOG_HISTORY WHERE (THREAD#,FIRST_TIME ) IN (SELECT
THREAD#,MAX(FIRST_TIME) FROM V$LOG_HISTORY GROUP BY THREAD#)) APPL WHERE [Link]# = [Link]#
ORDER BY 1;
Stop Log shipping
On Primary:
PRIMARY> ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2=DEFER;
On Standby:
STANDBY> ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2=DEFER;
Stop MRP on Standby and shutdown
Stopping MRP Process On STANDBY DATABASE ( DR DATABASE)
STAND BY:
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;
Database altered.
Stop the Stand by DATABASE:
SQL> shut immediate;
ORA-01109: database not open
Database dismounted.
ORACLE instance shut down.
SQL>
Create a restore Point on Standby
SQL> startup mount;
SQL> CREATE RESTORE POINT RESTORE_PST_2021 GUARANTEE FLASHBACK DATABASE;
SQL> select name,scn from v$restore_point;
SQL> SELECT scn, database_incarnation#, guarantee_flashback_database, storage_size, time, name FROM
gv$restore_point;
Activate standby (convert into primary)
SQL> ALTER DATABASE ACTIVATE STANDBY DATABASE;
SQL> ALTER DATABASE OPEN;
ERROR: While Opening the database , got the error as undo tablespace is of Wrong Type
Solution: Change undo managemet Parameter from AUTo to MANUAL and Start the database:
SQL> select name , open_mode,database_role from v$database;
After testing make it Standby Again.
Making Standby
SQL> SHUTDOWN IMMEDIATE;
SQL> STARTUP MOUNT;
SQL> FLASHBACK DATABASE TO RESTORE POINT RESTORE_PST_2021;
SQL> ALTER DATABASE CONVERT TO PHYSICAL STANDBY;
SQL> SHUTDOWN IMMEDIATE;
SQL> STARTUP MOUNT;
Enable log shipping
PRIMARY> ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2=ENABLE;
STANDBY> ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2=ENABLE;
Start MRP on standby
SQL> alter database recover managed standby database disconnect from session;
Again check log gap by changing log sequence on PRIMARY
PRIMARY> ALTER SYSTEM SWITCH LOGFILE;
PRIMARY> ALTER SYSTEM SWITCH LOGFILE;
PRIMARY> ALTER SYSTEM SWITCH LOGFILE;
Log gap on standby
SELECT [Link]# "Thread", [Link]# "Last Sequence Received", [Link]# "Last Sequence Applied",
([Link]# - [Link]#) "Difference" FROM
(SELECT THREAD# ,SEQUENCE# FROM V$ARCHIVED_LOG WHERE (THREAD#,FIRST_TIME ) IN (SELECT
THREAD#,MAX(FIRST_TIME) FROM V$ARCHIVED_LOG GROUP BY THREAD#)) ARCH,
(SELECT THREAD# ,SEQUENCE# FROM V$LOG_HISTORY WHERE (THREAD#,FIRST_TIME ) IN (SELECT
THREAD#,MAX(FIRST_TIME) FROM V$LOG_HISTORY GROUP BY THREAD#)) APPL WHERE [Link]# = [Link]#
ORDER BY 1;