Papelera De Reciclaje Oracle
Enviado por ran94 • 1 de Julio de 2013 • 1.345 Palabras (6 Páginas) • 450 Visitas
La Papelera de Reciclaje
de Oracle10g
Fecha de creación: lunes 24 de Octubre de 2005.
Versión: 1.0.
Pruebas realizadas en Oracle10g Release 1 sobre Windows XP Professional 32 bits.
Este documento ha sido elaborado por Infor Consult Soluciones, SL (http://www.inforconsult.com.es). Queda
prohibida la edición o modificación de este documento sin permiso de su autor. Se permite, sin embargo, imprimir y
ceder este documento a terceros siempre que el contenido se mantenga íntegro y se haga mención expresa a su
autor.
LA PAPELERA DE RECICLAJE DE ORACLE
La papelera de reciclaje de Oracle10g: Recycle Bin
Explicación
A partir de Oracle10g se incorpora esta nueva funcionalidad, denominada FLASHBACK DROP, que se viene a unir a las demás características que conforman el capítulo de las funcionalidades FLASHBACK. La idea es la misma que tiene Windows con su papelera de reciclaje, es decir, disponer de una ubicación donde colocar los objetos borrados con el fin de poder recuperarlos después. Por supuesto, todo esto se hace de forma transparente al usuario.
En realidad, lo que hace Oracle es renombrar el objeto borrado y todos los objetos dependientes, tales como vistas, triggers, índices, constraints etc., usando el prefijo BIN$. Como sólo se produce un renombrado, los objetos siguen existiendo y ocupando espacio en los tablespaces en los que lo hacían, hasta que el usuario o el administrador usen el comando PURGE o sea requerido espacio en ese tablespace para acomodar una nueva extensión (por esto último, se dice que FLASHBACK DROP no es intrusivo ya que si el espacio consumido por la papelera es necesario se libera automáticamente).
Cuando se borra un tablespace sus objetos no son pasados a la papelera. Por el contrario, son borrados definitivamente y los objetos de la papelera que residieran en ese tablespace son borrados inmediatamente. Lo mismo ocurre cuando se borra un usuario.
Examinando la Papelera de Reciclaje
La vista RECYCLEBIN es en realidad un sinónimo que apunta a la vista USER_RECYCLEBIN que su vez apunta a la tabla SYS.RECYCLEBIN$. Por tanto, es equivalente RECYCLEBIN a USER_RECYCLEBIN. La estructura de esta vista es:
Nombre ¿Nulo? Tipo
----------------- -------- ------------
OBJECT_NAME NOT NULL VARCHAR2(30)
ORIGINAL_NAME VARCHAR2(32)
OPERATION VARCHAR2(9)
TYPE VARCHAR2(25)
TS_NAME VARCHAR2(30)
CREATETIME VARCHAR2(19)
DROPTIME VARCHAR2(19)
DROPSCN NUMBER
CAN_PURGE VARCHAR2(3)
RELATED NOT NULL NUMBER
BASE_OBJECT NOT NULL NUMBER
PURGE_OBJECT NOT NULL NUMBER
SPACE NUMBER
Cada vez que un objeto es borrado con el comando DROP se crea una entrada nueva en esta vista que tiene el nombre nuevo dado al objeto, prefijado por BIN$, su nombre original, el tablespace en el que reside, la fecha y hora de eliminación, el espacio que ocupa, etc.
Los objetos borrados que residen en la papelera pueden ser consultados con las mismas restricciones que tenían antes de ser borrados. Para consultarlos hay que usar el nombre nuevo que le asigna Oracle entrecomillándolo. Para recuperar un objeto borrado se puede usar el comando FLASHBACK TABLE.
Este documento ha sido elaborado por Infor Consult Soluciones, SL (http://www.inforconsult.com.es). Queda
prohibida la edición o modificación de este documento sin permiso de su autor. Se permite, sin embargo, imprimir y
ceder este documento a terceros siempre que el contenido se mantenga íntegro y se haga mención expresa a su
autor.
LA PAPELERA DE RECICLAJE DE ORACLE
Comando PURGE
La eliminación de los objetos residentes en la papelera se puede hacer manualmente a través de este comando. Solo podrán borrar los objetos de la papelera los propietarios, aquellos con permiso SYSDBA o DROP ANY. Las variantes que existen son:
COMANDO
EXPLICACIÓN
PURGE TABLE nombre_tabla;
Elimina la tabla indicada de la papelera. El nombre de la tabla puede ser el nombre original o el renombrado.
PURGE INDEX nombre_índice;
Elimina el índice indicado de la papelera. El nombre del índice es el nombre original y no el renombrado.
PURGE RECYCLEBIN;
Elimina todos los objetos (del usuario que lanza la orden) de la papelera.
PURGE DBA_RECYCLEBIN;
Elimina todos los objetos (de todos los usuarios) de la papelera. Solo un SYSDBA puede lanzar este comando.
PURGE TABLESPACE nombre_tablespace;
Elimina todos los objetos (del usuario) de la papelera que residan en el tablespace indicado.
PURGE TABLESPACE nombre_tablespace USERS nombre_usuario;
Elimina todos los objetos de la papelera que residan en el tablespace indicado y pertenezcan el usuario indicado.
Pasando por alto la Papelera de Reciclaje
Existen dos modos para evitar que el objeto borrado pase a la papelera:
1. En Oracle10g R1 es el parámetro _recyclebin del fichero init<SID>.ora. Éste es un parámetro oculto, por eso empieza por el carácter subrayado "_", que por omisión está a TRUE. Asignándole FALSE hacemos que Oracle10g no use la papelera y elimine el objeto definitivamente, como en anteriores versiones. En Oracle10g R2 se usa el parámetro recyclebin, éste ya no oculto, cuyos valores son ON y OFF siendo ON el valor por omisión.
2. Usando la cláusula PURGE del comando
...