ODC Appreciation Day: Recuperación de una tabla con RMAN a un tiempo pasado (PITR)

Atendiendo al llamado de @oraclebase para el ODC Appreciation Day voy a escribir sobre la recuperación de una tabla con RMAN a un tiempo en el pasado o lo que conocemos como Point in Time Recovery (PITR).

Para empezar, ésta es una nueva característica de la edición Enterprise Edition por lo que si quieres usar esta característica en la edición Standard Edition te dará un error.

Para mostrarles como funciona esta nueva característica vamos a simular un ambiente de prueba para lo que crearemos un usuario y una tabla demo:

CONN / AS SYSDBA
CREATE USER demouser IDENTIFIED BY demouser QUOTA UNLIMITED ON users;
GRANT CREATE SESSION, CREATE TABLE TO demouser;

CONN demouser/demouser
CREATE TABLE demotable (id NUMBER);
INSERT INTO demotable VALUES (1);
COMMIT;

A continuación averiguamos el SCN de la base de datos:
CONN / AS SYSDBA
SELECT DBMS_FLASHBACK.get_system_change_number FROM dual;

GET_SYSTEM_CHANGE_NUMBER
————————
1956297

Insertamos más registros en nuestra tabla demo:
CONN demouser/demouser
INSERT INTO demotable VALUES (2);
COMMIT;

SELECT * FROM demotable;
ID
———-
1
2

Ahora si vamos con la recuperación de la tabla:
rman target /
RECOVER TABLE 'DEMOUSER'.'DEMOTABLE'
UNTIL SCN 1956297
AUXILIARY DESTINATION '/u01/aux'
REMAP TABLE 'DEMOUSER'.'DEMOTABLE':'DEMOTABLE_PITR';

Luego verificamos el contenido de la tabla:
CONN demouser/demouser
SELECT * FROM DEMOTABLE_PITR;

ID
———-
1

Y listo así de fácil recuperamos la tabla!!

No Comments Yet.

Leave a Reply

Your email address will not be published. Required fields are marked *