Como ya he comentado en alguna otra ocasión, a partir de Oracle Database 10g, está disponible la utilidad Data Pump Export, que al igual que Export utility, permite exportar datos y metadatos a un archivo binario que podrá contener tanto la información completa de una base de datos como únicamente ciertos esquemas o tablas.
Hace un tiempo expliqué cómo calcular el tamaño estimado del backup/export, en esta ocasión vamos a ver cómo exportar únicamente los metadatos del esquema, obviando los datos. Esto permite exportar/importar únicamente la estructura del esquema.
La herramienta expdp
, a través del parámetro CONTENT=METADATA_ONLY
nos va a permitir hacer uso de esta funcionalidad. A continuación un ejemplo de export del esquema FOO, únicamente de la estructura:
$ expdp SYSTEM/XXXXX@BBDD DIRECTORY=DATA_PUMP_DIR DUMPFILE=FOO_METADATA_20181019.dmp \ LOGFILE=FOO_METADATA_20181019.log SCHEMAS=foo CONTENT=METADATA_ONLY JOB_NAME=NOJOB01
Además del parámetro de CONTENT, donde especificamos que sólo queremos la estructura, vemos lo siguiente:
* DIRECTORY: directorio específico para almacenar todo lo relacionado con la tarea.
En este caso he escogido «DATA_PUMP_DIR», podéis crear uno específico o utilizar alguno de los ya definidos en la base de datos:
SYS.FOO1> select directory_name,directory_path from dba_directories; DIRECTORY_NAME DIRECTORY_PATH --------------------------------------------------- BACKUP_DIR /export/backup XMLDIR /u01/app/oracle/product/11.2.0/dbhome_1/rdbms/xml ORACLE_OCM_CONFIG_DIR /u01/app/oracle/product/11.2.0/dbhome_1/ccr/state DATA_PUMP_DIR /u01/app/oracle/product/11.2.0/dbhome_1/rdbms/log/ [...]
Para crear uno específico:
SQL> create directory backup_dir as '/backup';
El resto de parámetros requieren poca explicación. Nombre del fichero para el export, el log y los SCHEMAS a exportar. Toda la información del proceso quedará registrada en el archivo de log que hemos especificado en el job y en el log de $ALERT_DIR.