Hoy vamos a volver a las entradas rapidas para dummies.
Una de las tareas que podemos tener que hacer es el respaldar las tablas de auditoria para eliminarlas posteriormente. La primera opción que nos viene a la cabeza es hacer un export (expdp), pero si lo intentamos recibiremos el error:
ORA-39166: Object SYS.AUD$ was not found. ORA-31655: no data or metadata objects selected for job
¿Que estamos haciendo mal?
Realmente no estamos haciendo nada mal , el problema es que el nuevo expdp no nos va a dejar exportar estas tablas (asi como objetos de los esquemas SYS,SYSTEM … )
¿Como los solucionamos ?
Con un CTAS ( create table as select)
Esta es la opcion mas extendida en los foros de soporte de oracle, los pasos serian
- CREATE TABLE MIAUDIT AS SELECT * FROM SYS.AUD$
- TRUNCATE SYS.AUD$
- EXPDP xxxxx table=MIAUDIT
- DROP TABLE MIAUDIT
¿Cual es el problema de esta opcion ?
Seguramente, si neceistamos exportar y truncar la tabla de auditoria es por que ya esta ocupando demasiado espacio, por lo que la opción de duplicar este espacio en la base de datos no siempre es viable.
Usar el export clasico
Cuando la opción del CTAS no es valida, nos queda siempre el uso del exp clásico.
La herraienta antigua de exportación no tiene estas limitaciones respecto a os objetos del sistema y si que nos permitira exportar los datos
Mas información como siempre en los foros de soporte de oracle o en la nota :
- How to Export the AUD$ Table (Doc ID 745540.1)