sábado, 18 de mayo de 2013

La Papelera de Reciclaje no Guarda Tablas del Tablespace SYSTEM

Oracle introdujo la papelera de reclicaje en la versión 10. Este ejemplo muestra que Oracle no pone tablas del tablespace SYSTEM en la papelera de reciclaje tras borrarlas. Lo probé en Oracle 11.2.0.2.7. Para empezar, creé una tabla en el tablespace USERS:

SQL> conn / as sysdba
Connected.
SQL> alter session set nls_language = 'SPANISH'
  2  /
 
Sesion modificada.
 
SQL> create table tab1
  2  (col1 number)
  3  tablespace users
  4  /
 
Tabla creada.

SQL>

Luego borré la tabla, comprobé que podía verla en la papelera de reclicaje y la restauré: 

SQL> drop table tab1
  2  /
 
Tabla borrada.
 
SQL> select original_name from recyclebin
  2  /
 
ORIGINAL_NAME
--------------------------------
TAB1
 
SQL> flashback table tab1 to before drop
  2  /
 
Flashback terminado.
 
SQL> desc tab1
Nombre                     ?Nulo?   Tipo
-------------------------- -------- ------------------
COL1                                NUMBER

SQL>

Entonces hice la misma cosa otra vez pero creé la tabla en el tablespace SYSTEM:

SQL> create table tab2
  2  (col1 number)
  3  tablespace system
  4  /
 
Tabla creada.
 
SQL> drop table tab2
  2  /
 
Tabla borrada.

SQL>

Esta vez, cuando busqué la tabla en la papelera de reclicaje, no estaba allí:
 
SQL> select original_name from recyclebin
  2  /
 
ninguna fila seleccionada

SQL>

... y cuando intenté a restaurar la tabla, no podía hacerlo:
 
SQL> flashback table tab2 to before drop
  2  /
flashback table tab2 to before drop
*
ERROR en linea 1:
ORA-38305: el objeto no esta en la papelera de
reciclaje
 

No hay comentarios:

Publicar un comentario