Se me ha dado el caso de tener que hacer un failover de la standby y luego tener que recuperar la instancia. Con este procedimiento evitamos tener que hacer el restore de la standby, simplemente es necesario tener la flashback activa y crear un restore point antes del failover.
Version Test: 11g y 12c 'nota: Antes de esta prueba es necesario tener habilitada la flashback' -- STANDBY: SQL>ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL; Database altered. SQL>CREATE RESTORE POINT before_standby_open GUARANTEE FLASHBACK DATABASE; Restore point created. SQL>ALTER DATABASE ACTIVATE STANDBY DATABASE; Database altered. SQL>STARTUP MOUNT FORCE; Database mounted. SQL>ALTER DATABASE SET STANDBY DATABASE TO MAXIMIZE PERFORMANCE; Database altered. SQL>ALTER DATABASE OPEN; Database altered. /* INST_ID NAME HOST START OPEN_MODE DATABASE_ROLE ---------- ------------------------------ ------------------------------ ------------------------------ -------------------- ---------------- 1 test12c mogubedb11 2016/07/13 18:01:35 READ WRITE PRIMARY */ -- Simulamos algo de trafico INSERT INTO PRUEBA VALUES (1,'valor1'); INSERT INTO PRUEBA VALUES (2,'valor2'); INSERT INTO PRUEBA VALUES (3,'valor3'); INSERT INTO PRUEBA VALUES (4,'valor4'); INSERT INTO PRUEBA VALUES (5,'valor5'); INSERT INTO PRUEBA VALUES (6,'valor6'); INSERT INTO PRUEBA VALUES (7,'valor7'); commit; SQL>SELECT CURRENT_SCN FROM V$DATABASE; /* CURRENT_SCN ----------- 1502444 */ SQL>STARTUP MOUNT FORCE; /* Database mounted. */ set linesize 121 col name format a15 col time format a32 SQL>SELECT name, scn, time, database_incarnation#, guarantee_flashback_database, storage_size FROM gv$restore_point; /* NAME SCN TIME DATABASE_INCARNATION# GUA STORAGE_SIZE -------------------- ---------- --------------------------------- --------------------- --- ------------ BEFORE_STANDBY_OPEN 1501122 13-JUL-16 06.05.20.000000000 PM 1 YES 52428800 */ -- Llevamos la base de datos al restore point antes del failover. SQL>FLASHBACK DATABASE TO RESTORE POINT before_standby_open; /* Flashback complete. */ SQL>SELECT CURRENT_SCN FROM V$DATABASE; /* CURRENT_SCN ----------- 1501122 <<<< Ha retrocedido el scn a antes del failover. */ -- Convertimos la base de datos a standby. SQL>ALTER DATABASE CONVERT TO PHYSICAL STANDBY; /* Database altered. */ /* NAME HOST START OPEN_MODE DATABASE_ROLE --------- ------------- ----------------------- -------------------- ---------------- test12c mogubedb11 2016/07/13 18:29:02 MOUNTED PHYSICAL STANDBY */ SQL>SELECT CURRENT_SCN FROM V$DATABASE; /* CURRENT_SCN ----------- 1501122 <<<< Ha retrocedido el scn a antes del failover. */ SQL>STARTUP MOUNT FORCE; /* Database mounted. */ SQL>ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT; /* Database altered. */ -- Borramos el restore point para que purge los ficheros de flashback. SQL>drop restore point before_standby_open; /* Restore point dropped. */
Deja un comentario