domingo, 4 de marzo de 2012

Migrando de Oracle a Postgres con ora2pg

     En estos días estaba ayudando a un colega y gran amigo a instalar en su ubuntu GNU/LInux, el migrador de bases de datos de oracle a postgres ora2pg, el tuvo unos problemas con la parte de las librerias de perl y las variables de entorno, cosa que yo ya había sufrido el año pasado para la compilación de tOra desde los fuentes con soporte para oracle (para debian GNU/Linux claro), luego que se solvento este detalle el me hiso llegar un documento y expresamente me dijo públicalo en tu blog y es por eso que lo pongo en este post:

Migrar de oracle a PostgreSQL

Realizado por: Eduardo Marques
              Email: elportu@gmail.com
Revisado y Corregido por: Abraham Brito
                                 Email: powerman5020@gmail.com

Paso 1: Descargar el Oracle Instant Client de la página de Oracle.
  • Descargar la versión basic, dev, JDBC Supplement, SQL*Plus, SDK de la siguiente página:
http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html?ssSourceSiteId=ocomen   (escoger  dependiendo de su sistema operativo)

Paso 2: Instalar paquete alíen
  • En los sistemas derivados de debian (como Ubuntu y mint) abrir una consola o terminal como root y ejecutar: 
# aptitude install alien
  • Nota en ubuntu pueden descargarlo directamente por el centro de software

Paso 3: Utilizamos alien para transformar los paquetes .rpm (de red hat y derivados) a .deb (binarios de debian)
  • Se abre una consola o terminal y como root ejecutamos el alien de la siguiente manera:
# alien -d nombre_depaquete.rpm
  • Instalar los paquetes generados por el alíen, nuevamente en una terminal como root ejecutar:
# dpkg -i nombre_paquete.deb
  • utilizando el editor de su preferencia creamos el archivo /etc/ld.so.conf.d/oracle.conf
  •  Y colocar la dirección donde se instalo oracle la cual puede ser la siguiente: “/usr/lib/oracle/11.2/client64/lib ” recuerde comprobar esta dirección puede cambiar si es otra versión de oracle o su sistema es 32bits
  • Instalar la librería libaio:
# aptitude install libaio1
  • Crear el siguiente archivo de configuración etc/ld.so.conf.d/oracle.conf y colocar la dirección donde se instalo oracle la cual puede ser la siguiente: “/usr/lib/oracle/11.2/client/lib/”
  • se ejecuta como root el comando ldconfig para crear los enlaces  simbólicos especificados en el paso anterior.
  • Pruebe la conexión con oracle usando el comando:
# sqlplus64 usuario/clave@ip/sid
  • Si los pasos anteriores fallan verifique esta pagina: 
https://help.ubuntu.com/community/Oracle%20Instant%20Client


Paso 4: Instalar el ora2pg
  • Ejecutamos como root los siguientes comandos en consola en distribuciones como ubuntu recordemos ejecutar sudo su:
# aptitude install cpanminus
# perl -MCPAN -e 'install DBI'
# cpan -i DBD::Oracle 


       En algunos casos la ejecución de la instruccion cpan da un error por no encontrar la librería de oracle o el oracle home, para solventar este error debemos configurar unas variables de entorno para el usuario root:
  • Usando el editor de texto de su preferencia se edita /root/.bashrc 
  • agregar al final del archivo
“export ORACLE_HOME=/usr/lib/oracle/11.2/client64”
“export LD_LIBRARY_PATH=$ORACLE_HOME/lib”

Nota: Recordemos que en este caso se esta utilizando el cliente de 64 bits si usan el 32 bits solo quiten el numero 64
  • guardar y ejecutar nuevamente la orden
#  cpan -i DBD::Oracle
Paso 5: Configurar el ora2pg (archivo ora2pg.conf)

  • Descargar el paquete desde el siguiente enlace:
  • http://sourceforge.net/projects/ora2pg/

  • Abrir una terminal y como root colocarse en la ruta del archivo descargado por ejemplo “/home/usuario/Descargas/”
  • ahora como root, desempaquetar y descomprimir el archivo descargado, en este caso:
# tar ora2pg-8.9.tar.bz2

  • Posicionarse dentro de la carpeta resultante:
# cd ora2pg-8.9/

  • Luego se compila el ora2pg de la siguiente manera
    # perl Makefile.PL
    # make && make install
    # aptitude install yum
    # perl -MCPAN -e 'install DBD::Pg'
    # aptitude install libdbd-pg-perl

Paso 6: configurar archivo de conexión ora2pg 
  • con el editor de su preferencia se edita el archivo /etc/ora2pg/ora2pg.conf  y agregar los parametros de su servidor y base de datos

Paso 7: Revisar manual de ora2pg en la página web oficial del proyecto:

    http://ora2pg.darold.net/config.html

Y listo ya tienen ora2pg, para realizar las migraciones de sus bases de datos de oracle a postgres, espero que les haya funcionado igual de bien que a nosotros.

Gracias Eduardo por dejarme compartir tu manual

2 comentarios:

Anónimo dijo...

Es posible hacer lo contrario, es decir pasar una base de datos postgresql a orcale.

Kamikaze dijo...

Hola...soy novato en postgresql.... por favor podrían da un ejemplo de cómo configurar el archivo de conexión ora2pg ...Gracias