miércoles, 27 de junio de 2007

For Export/Import

La base de datos Oracle XE es cada vez más popular en los hogares de los programadores que en sus trabajos utilizan la 9i.
Estos exportan un schema versión 9i y lo llevan a su flamante XE portátil. Hasta aquí no hay mayores dificultades, la instalación y configuración de XE se realiza sola, y basta leer el manual Database Utilities para aprender a utilizar exp e imp.

Un archivo dump de 9i se puede importar en 10g sin especificar ningún parámetro extra.

El asunto es que para migrar de la casa al trabajo con el programa exp tendremos un problema: el archivo dump generado por XE (10g) no se puede importar en 9i, no es compatible.

Import: Release 9.2.0.1.0 - Production on Thu Jun 28 18:31:04 2007

Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.

IMP-00010: not a valid export file, header failed verification
IMP-00000: Import terminated unsuccessfully

La solución es exportar desde XE con un exp 9i. El imp y el exp deben tener la misma versión cuando exportamos algo que es mas nuevo que la base destino.

No es necesario que instalemos una base de datos 9i en casa, alcanza simplemente con instalar el cliente el cual se puede descargar gratuitamente desde:

http://www.oracle.com/technology/software/products/oracle9i/htdocs/winsoft.html

Luego de instalar el cliente 9i, hay que tener en cuenta que éste utiliza su propio tnsnames.ora, por lo que vamos a tener que anexarle el servicio de nuestra base de datos XE. Finalmente ejecutaremos el export del cliente (por ejemplo: c:\oracle\ora92\bin\exp.exe) y exportaremos un archivo dump versión 9i que podrá ser importado sin problemas por otra 9i.

Un detalle: tendremos que ser cuidadosos al ejecutar programas como sql*plus, exp, imp. Cada uno de ellos referirán a sus respectivos tnsnames.ora donde están registradas nuestras bases de datos. Como al iniciarse siempre muestran la versión, sabremos cual tnsnames.ora están leyendo.

No hay comentarios: