El otro dia recibi una pregunta de como hacer un respaldo de un esquema, y la respuesta es que puede ser con dos herramientas, una que es el clasico
export de Oracle y la otra con una herramienta llamada Datapump. Y aunque con las dos puedes completar el mismo trabajo, la razon para utilizar una o la otra
son muy distintas.
Una razon muy util para usar datapump es que si llegas a tener una falla, vamos a decir por falta de espacio o hasta por que se reinicio la instancia,
tiene un comando llamado START_JOB, para poder reiniciarlo, de la misma manera podemos definir el numero de procesos paralelos para efectuar el trabajo,
y entre otras de las ventajas que tiene, es que te permite estimar el tiempo que se va a tardar.
Pero una de las grandes ventajas que tiene la utileria de Export, es que esta crea los archivos en el cliente, y no en el servidor como Datapump lo hace,
y si no tienes acceso al servidor, esta es realmente la mejor manera de exportar tu informacion.
Aqui dos ejemplos de como exportar un esquema, primero con Datapump y luego con la utileria Export
Como te mencionaba arriba, Datapump crea los archivos en el servidor, asi que lo primero que tenemos que hacer, es crear un directorio en la base de datos
donde queremos que se generen los archivos dump.
DBATEST> CREATE OR REPLACE DIRECTORY DATA_PUMP_DIR AS '/mount/copy01/DBATEST/export01'; Directory created.
Una vez que creamos el directorio, creamos un archivo de parametros en donde le vamos a decir que esquema vamos a exportar, asi como el nombre del trabajo,cuantos procesos en paralelo queremos que corra y
el nombre del archivo con un comodin %U para que se generen automaticamente el numero de archivos tipo dump.
oracle $ cat expdp.par LOGFILE=SCHEMA_EXPORT.log DIRECTORY=DATA_PUMP_DIR VERSION=COMPATIBLE JOB_NAME=SCHEMA_EXPORT PARALLEL=5 DUMPFILE=SCHEMA_EXPORT_%U.dmp SCHEMAS=HR
Ahora si, ejecutamos Datapump con el archivo de parametros que acabamos de crear
oracle $ expdp system parfile=expdp.par Starting "SYSTEM"."SCHEMA_EXPORT": system/******** parfile=expdp.par Estimate in progress using BLOCKS method... Processing object type SCHEMA_EXPORT/TABLE/TABLE_DATA Total estimation using BLOCKS method: 640 KB . . exported "HR"."COUNTRIES" 6.367 KB 25 rows . . exported "HR"."DEPARTMENTS" 7.007 KB 27 rows . . exported "HR"."EMPLOYEES" 16.85 KB 108 rows . . exported "HR"."JOBS" 6.992 KB 19 rows . . exported "HR"."JOB_HISTORY" 7.062 KB 11 rows . . exported "HR"."LOCATIONS" 8.273 KB 23 rows Processing object type SCHEMA_EXPORT/USER Processing object type SCHEMA_EXPORT/SYSTEM_GRANT Processing object type SCHEMA_EXPORT/ROLE_GRANT . . exported "HR"."REGIONS" 5.476 KB 4 rows Processing object type SCHEMA_EXPORT/DEFAULT_ROLE Processing object type SCHEMA_EXPORT/TABLESPACE_QUOTA Processing object type SCHEMA_EXPORT/PRE_SCHEMA/PROCACT_SCHEMA Processing object type SCHEMA_EXPORT/SEQUENCE/SEQUENCE Processing object type SCHEMA_EXPORT/TABLE/TABLE Processing object type SCHEMA_EXPORT/TABLE/GRANT/OWNER_GRANT/OBJECT_GRANT Processing object type SCHEMA_EXPORT/TABLE/INDEX/INDEX Processing object type SCHEMA_EXPORT/TABLE/CONSTRAINT/CONSTRAINT Processing object type SCHEMA_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS Processing object type SCHEMA_EXPORT/TABLE/COMMENT Processing object type SCHEMA_EXPORT/PROCEDURE/PROCEDURE Processing object type SCHEMA_EXPORT/PROCEDURE/ALTER_PROCEDURE Processing object type SCHEMA_EXPORT/VIEW/VIEW Processing object type SCHEMA_EXPORT/TABLE/CONSTRAINT/REF_CONSTRAINT Processing object type SCHEMA_EXPORT/TABLE/TRIGGER Processing object type SCHEMA_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS Master table "SYSTEM"."SCHEMA_EXPORT" successfully loaded/unloaded ****************************************************************************** Dump file set for SYSTEM.SCHEMA_EXPORT is: /mount/copy01/DBATEST/export01/SCHEMA_EXPORT_01.dmp /mount/copy01/DBATEST/export01/SCHEMA_EXPORT_02.dmp /mount/copy01/DBATEST/export01/SCHEMA_EXPORT_03.dmp Job "SYSTEM"."SCHEMA_EXPORT" successfully completed at 23:29:20
A diferencia de datapump, con export no necesitamos crear un directorio en la base de datos, el archivo tipo dump, se va a generar en la locacion donde
ejecutemos el export. Vamos a crear un archivo de parametros para el export en donde de igual manera que Datapump definimos el esquema,
oracle $ cat exp.par file=EXP_SCHEMA_EXPORT.dmp log=EXP_SCHEMA_EXPORT.log buffer=10000000 owner=HR statistics=none
Igual, ejecutamos la utileria export con el archivo de parametros que creamos arriba
oracle $ exp system parfile=exp.par Export: Release 11.2.0.2.0 - Production on Fri May 27 02:10:39 2011 About to export specified users ... . exporting pre-schema procedural objects and actions . exporting foreign function library names for user HR . exporting PUBLIC type synonyms . exporting private type synonyms . exporting object type definitions for user HR About to export HR's objects ... . exporting database links . exporting sequence numbers . exporting cluster definitions . about to export HR's tables via Conventional Path ... . . exporting table COUNTRIES 25 rows exported . . exporting table DEPARTMENTS 27 rows exported . . exporting table EMPLOYEES 108 rows exported . . exporting table JOBS 19 rows exported . . exporting table JOB_HISTORY 11 rows exported . . exporting table LOCATIONS 23 rows exported . . exporting table REGIONS 4 rows exported . exporting synonyms . exporting views . exporting stored procedures . exporting operators . exporting referential integrity constraints . exporting triggers . exporting indextypes . exporting bitmap, functional and extensible indexes . exporting posttables actions . exporting materialized views . exporting snapshot logs . exporting job queues . exporting refresh groups and children . exporting dimensions . exporting post-schema procedural objects and actions . exporting statistics Export terminated successfully without warnings.
Conclusion
Aqui hay dos maneras de exportar un esquema de nuestra base de datos, es sencillo y muchas veces de gran utilidad y junto con este script, puedes exportar los metadatos del Usuario Lo unico que te recomiendo, es que no utilices este metodo como un metodo valido de respaldos, ya que carece de muchas propiedades de un verdadero respaldo de la Base de Datos.
Buenas, existe la opcion de verificar el export sin realizar un import, es decir, si realice un export de un esquema, ¿como hago para ver el contenido de ese esquema?
ResponderBorrar