Oracle Data Pump Export: cómo calcular el tamaño estimado del backup

A partir de Oracle Database 10g está disponible la utilidad Data Pump Export, que al igual que su predecesora, 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.

Como tarea previa a la ejecución de un dump, puede ser de gran utilidad disponer de información sobre el tamaño estimado que el dump ocupará en disco. Data Pump permite a través del parámetro ESTIMATE_ONLY indicar que la ejecución del job únicamente calculará este espacio sin ejecutar la operación de exportación.

A continuación muestro un ejemplo de la estimación de cálculo de espacio para un export completo. Antes de utilizar Data Pump (comando expdb) debemos haber especificado en la instancia correspondiente el directorio específico para almacenar todo lo relacionado con estas tareas:

SQL> create directory backup_dir as '/backup';

Una vez realizado, podemos ejecutar el job:

# expdp DIRECTORY=backup_dir FULL=y \
 LOGFILE=${ORACLE_SID}_20160721.dmp.log \
 EXCLUDE=STATISTICS ESTIMATE_ONLY=Y

Durante la ejecución del job veremos el detalle de proceso de cálculo de espacio y después la estimación final de ocupación del export:

6/7/2016 3:52:19 PM: Estimate in progress using BLOCKS method...
6/7/2016 3:52:19 PM: Processing object type SCHEMA_EXPORT/TABLE/TABLE_DATA
6/7/2016 3:59:48 PM: . estimated "schema"."table1" 1.82 GB
6/7/2016 3:59:48 PM: . estimated "schema"."table2" 41.68 GB
6/7/2016 3:59:48 PM: . estimated "schema"."table3" 21.02 GB
[...]
Total estimation using BLOCKS method: 239.187 GB
Job "foo"."SYS_EXP..." successfully completed at 04:00:00

Toda la información quedará también registrada en el archivo de log que hemos especificado en el job.