Antes de poder activar flashback database debemos asegurarnos dos cosas:
- La base debe estar configurada en modo archivelog.
- Debe tener habilitada la FRA (flash/fast recovery area) ya que los flashback logs solamente pueden ser almacenados en la alli.
Para habilitar flashback debemos seguir los siguientes pasos (caso de un RAC):
1- Abrir una de las instancias del RAC en modo mount:
Desde linea de comando bajamos todas la instancias y luego montamos solo una:
[oracle@server01]$ srvctl stop database -d ORCL
[oracle@server01]$ srvctl start instance -d ORCL -i ORCL1 -o mount;
2- Configurar el parametro DB_FLASHBACK_RETENTION_TARGET (ventana de flashback requerida expresada en minutos)
Por defecto es un 1 dia (1440 minutos)
Nos conectamos a la instancia:
[oracle@server01]$ sqlplus / as sysdba
Verificamos el parametro:
SQL> show parameter db_flashback_retention_target
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_flashback_retention_target integer 1440
Lo seteamos en dos dias (2880 minutos)
SQL> alter system set db_flashback_retention_target=2880 sid='*';
System altered.
3- Habilitamos el flashback en la base de datos:
Verificamos antes que ya no este habilitada:
SQL> select * from v$flashback_database_log;
no rows selected
No hay info de flashback logs
SQL> select LOG_MODE,FORCE_LOGGING,CURRENT_SCN,FLASHBACK_ON from v$database;
LOG_MODE FOR CURRENT_SCN FLASHBACK_ON
------------ --- ----------- -------------
ARCHIVELOG NO 4527627 NO
Acá vemos FLASHBACK_ON en NO
Corremos el comando para habilitar flashback:
SQL> alter database flashback on;
Database altered.
Volvemos a comprobar:
SQL> col OLDEST_FLASHBACK_SCN format 9999999999999;
SQL> col FLASHBACK_SIZE format 9999999999999;
SQL> select * from v$flashback_database_log;
OLDEST_FLASHBACK_SCN OLDEST_FL RETENTION_TARGET FLASHBACK_SIZE ESTIMATED_FLASHBACK_SIZE
-------------------- --------- ---------------- -------------- ------------------------
4624876 06-JAN-14 2880 104857600 147456
SQL> select LOG_MODE,FORCE_LOGGING,CURRENT_SCN,FLASHBACK_ON from v$database;
LOG_MODE FOR CURRENT_SCN FLASHBACK_ON
------------ --- ----------- ------------------
ARCHIVELOG NO 0 YES
Ahora si vemos info flashback logs y el campo FLASHBACK_ON en YES.
Una vez activada la flashback.
Desde linea de comando reiniciamos todas las instancias:
[oracle@server01]$ srvctl stop database -d ORCL
[oracle@server01]$ srvctl start database -d ORCL
[oracle@server01]$ srvctl status database -d ORCL
Instance ORCL1 is running on node server01
Instance ORCL2 is running on node server02
No hay comentarios:
Publicar un comentario