Category: BASES DE DATOS


En desarrollo de software es habitual que la base de datos sobre la cual se esta trabajando deba ser respaldada y restaurada algunas veces, el respaldo es habitual ya que este es nuestro soporte en desarrollo (ya sea del dba encvargado o de algunos desarrolaldores que trabajen con la bd) en caso de fallas ó migraciones, etc. sobre estos casos debe ser restaurada..pero algunas veces necesitamos es sobre un mismo schema al cual se le han echo cambios a la estructura, volver a montar un respaldo anterior sin borrar todo el schema, y el respaldo echo haya sido por el utilitario EXP ó EXPDP.

Para no tener muchos incovenientes es mejor borrar todos los objetos y restaurar por medio del IMPDP, para tener mayor certeza sobre los objetos que realmente estaran en nuestra base de datos.

Para automatizar este borrardo de los objetos puede usar el siguiente script:

SET SERVEROUTPUT ON SIZE 1000000
BEGIN
FOR cur_rec IN (SELECT object_name, object_type
FROM user_objects
WHERE object_type IN (‘TABLE’, ‘VIEW’, ‘PACKAGE’, ‘PROCEDURE’, ‘FUNCTION’, ‘SEQUENCE’, ‘SNAPSHOT’, ‘MATERIALIZED VIEW’)) LOOP
BEGIN
IF cur_rec.object_type = ‘TABLE’ THEN
EXECUTE IMMEDIATE ‘DROP ‘ || cur_rec.object_type || ‘ “‘ || cur_rec.object_name || ‘” CASCADE CONSTRAINTS’;
ELSE
EXECUTE IMMEDIATE ‘DROP ‘ || cur_rec.object_type || ‘ “‘ || cur_rec.object_name || ‘”‘;
END IF;
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.put_line(‘FAILED: DROP ‘ || cur_rec.object_type || ‘ “‘ || cur_rec.object_name || ‘”‘);
END;
END LOOP;
END;
/

Debe ser ejecutado por el mismo usuario propietario dle schema a borrar…lo puede hacer si desea desde una herramienta como SQLDeveloper.

Anuncios

A continuaciòn se les presenta una pequeña presentaciòn del utilitario de respaldos logicos en Oracle llamado EXP/IMP significa que copian el contenido de la BD pero sin almacenar la posición física de los datos (como lo hace RMAN, los Archives Logs y el Flashbak). Para realizar estas operaciones la base de datos tiene que estar abierta; se recomienda que no se esten haciendo transacciones actualmente en la base datos por que puede suceder que no guarde esas ultimas transacciones que esten en proceso o que esten en el redolog ya que no se les ha echo commit.

Desde la version 10.2 G “evoluciona” este utilitario se usa con el DATA PUMP  (EXPDP / IMPDP), basicamente la diferencia entro los dos tipos de utilitario, es que el segundo permite hacer un respaldo o importaciòn màs selectivo, por tablas, excluyendo tablas…es decir es más parametrizable.

Para conocer más caracteristicas sobre el utilitario de respaldo puede revisar el siguiente documento:

Presentacion utilitario EXP/IMP Oracle + EXPDP/IMPDT (Data Pump)

Tambien puede revisar algunos video-tutoriales del uso de este utilitario:

1.Respaldo EXP ORACLE 10 G – Linea de comandos CMD

2. Respaldo EXP ORACLE 10 G – Utilitario

3.  Respaldo EXPDP (Data Pump) ORACLE 10 G -Tarea programada