Sei sulla pagina 1di 9

13/9/2019 Instalación Ora2PG: Migrar Oracle a Postgresql – xaviduro.

es

Warning: count(): Parameter must be an array or an object that implements Countable in /homepages/8/d451886725/htdocs/wp-content/plugins/social-share-
buttons-by-supsystic/vendor/Rsc/Menu/Page.php on line 228

Warning: Cannot modify header information - headers already sent by (output started at /homepages/8/d451886725/htdocs/wp-content/plugins/social-share-
buttons-by-supsystic/vendor/Rsc/Menu/Page.php:228) in /homepages/8/d451886725/htdocs/wp-content/plugins/wp-super-cache/wp-cache-phase2.php on
line 62

XAVIDURO.ES
Blog personal, cajón de sastre de intereses varios.

INICIO

Instalación Ora2PG: Migrar Oracle a Postgresql


Home  >>  Software  >>  Instalación Ora2PG: Migrar Oracle a Postgresql

Instalación Ora2PG: Migrar Oracle a Postgresql

18
MAY,2016
0

  Software

xaviduro.es/instalacion-ora2pg-migrar-oracle-a-postgresql/ 1/9
13/9/2019 Instalación Ora2PG: Migrar Oracle a Postgresql – xaviduro.es

   

Introducción

Estos son los pasos que he tenido que seguir para conseguir que el programa Ora2PG de Gilles Darold para migrar automáticamente desde Oracle a
Postgresql funcione. No garantizo que siguiendolos funcione en otro entorno, pero es un buen punto de partida. Al nal de la entrada están listadas las
web de las que me he valido para conseguirlo.

Entorno

Ora2PG lo he instalado en un Ubuntu 12.04 LTS.


La base de datos de Oracle esta en un RedHat, en otro servidor distinto. Es la versión 11g.
Finalmente la base de datos de Postgresql, con la que he probado, está en un Windows Server 2008 R2. Es la versión 9.4.

El primer paso sería instalar Perl pero Ubuntu ya viene con el de serie. Así que no hace falta este paso. Es más yo creo que es liar la cosa porque tendrías
dos perl instalados.

Oracle

A continuación vamos a instalar el cliente de Oracle. En otros casos esto tampoco será necesario, especialmente si vamos a instalar Ora2PG en el servidor
donde está Oracle. En mi caso he instalado dos cosas (aunque creo que con la segunda hubiera valido):

El cliente de Oracle: se puede descargar desde aquí. Debemos descargar la versión correcta, para ello tenemos que ejecutar:

select * from v$version

Con el número que nos sale buscamos en la lista y descargamos 3 cheros: el basic, el sdk y el sqlplus. Mediante un cliente ftp como lezilla, nos
conectamos al servidor donde vayamos a instalar ora2PG, creamos una carpeta en $HOME/opt/Oracle/packages (el $HOME será la home del usuario con el
que estemos logueados) y transferimos los 3 cheros. Acto seguido los descomprimimos en $HOME/opt/Oracle/ con:

$ unzip packages/basic-10.2.0.5.0-linux-x64.zip
$ unzip packages/sdk-10.2.0.5.0-linux-x64.zip
$ unzip packages/sqlplus-10.2.0.5.0-linux-x64.zip

xaviduro.es/instalacion-ora2pg-migrar-oracle-a-postgresql/ 2/9
13/9/2019 Instalación Ora2PG: Migrar Oracle a Postgresql – xaviduro.es

La otra cosa a instalar es la Oracle database 11g Express Edition (también conocida como XE). Hay que descargarla de aquí.

Instalamos antes lo siguiente, haciendo uso del apt-get, por si fuera necesario:

1. apt-get install unzip


2. apt-get install alien
3. apt-get install libaio1
4. apt-get install unixodbc

Transferimos el chero descargado de la XE, que se llamara algo parecido a oracle-xe-11.2.0-1.0.x86_64.rpm.zip, a un directorio del servidor. En mi caso el
directorio Downloads. Descomprimimos con unzip. Nos aparece una carpeta que se llama Disk1, entramos con cd Disk1 y ejecutamos:

alien –scripts -d oracle-xe-11.2.0-1.0.x86_64.rpm

luego,

dpkg –install oracle-xe_11.2.0-2_amd64.deb

Cuando termine podemos comprobar que está instalado yendo al directorio de instalación: ls /u01/app/oracle/product/11.2.0/xe.

Para terminar con la parte de Oracle creamos un chero que contenga las siguientes líneas:

export ORACLE_HOME=/u01/app/oracle/product/11.2.0/xe
export NLS_LANG=`$ORACLE_HOME/bin/nls_lang.sh`
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
export PATH=$ORACLE_HOME/bin:$PATH
export TNS_ADMIN=$ORACLE_HOME/network/admin
export ORACLE_BASE=/u01/app/oracle

lo podemos llamar .oracle_pro le y dejarlo en la $HOME. Recordad que para la instalación, y, para que el programa funcione hay que hacer:

source .oracle_pro le

de esta manera los export del chero se ejecutan. También se puede poner esa sentencia en el bashrc para que se ejecuten siempre que arranquemos.

xaviduro.es/instalacion-ora2pg-migrar-oracle-a-postgresql/ 3/9
13/9/2019 Instalación Ora2PG: Migrar Oracle a Postgresql – xaviduro.es

Instalar Ora2PG

Descargamos los cheros desde github, el chero se llamara algo como ora2pg-17.4.tar.gz, dependiendo de la version de cada momento.

Ahora cuatro comandos en el shell

1. tar xjf ora2pg-17.4.tar.bz2


2. cd ora2pg-17.4
3. perl Make le.PL
4. make && make install (estos dos se pueden ejecutar también separados)

Lo instala en /etc/ora2pg.

Modulos DBI y DBD de Perl

Para funcionar, el programa precisa de dos modulos para poder conectar con la base de datos de Oracle son DBI y DBD.

La manera de instalar DBI es simple, arrancamos CPAN con la instrucción (CPAN es un repositorio de módulos de perl listos para ser instalados),

# perl -MCPAN -e shell

y luego instalamos con (cpan> nos indica que estamos dentro de CPAN),

cpan> install DBI

Para instalar el segundo módulo es un poco más complicado. Sin salir de CPAN (si nos hemos salido volvemos a entrar con perl -MCPAN -e shell),
escribimos:

get DBD::Oracle

y a continuación nos salimos con quit. Una vez fuera del shell de CPAN, hacemos:

cd ~/.cpan/build/DBD-Oracle*

xaviduro.es/instalacion-ora2pg-migrar-oracle-a-postgresql/ 4/9
13/9/2019 Instalación Ora2PG: Migrar Oracle a Postgresql – xaviduro.es

Hacemos dos exports, para estar seguros de que las variables están bien asignadas (Podríamos hacer también source .oracle_pro le, el chero que
habíamos creado, ¿recuerdas?). Los export son:

export LD_LIBRARY_PATH=/u01/app/oracle/product/11.2.0/xe/lib
export ORACLE_HOME=/u01/app/oracle/product/11.2.0/xe

Lo siguiente como siempre:

1. perl Make le.PL


2. make
3. make install

Con esto ya estaría todo instalado. Ahora queda que funcione, y la con guración. Si habéis llegado hasta aquí, es la mitad del camino 🙂

Probar la conexión de base de datos (Oracle)

Para probar la conexión antes de empezar nada, lo mejor es este programa descargado de github.

Importante, tenemos que tener localizado nuestro chero tnsnames.ora en el directorio TNS_ADMIN que hemos de nido en el chero .oracle_pro le. Por
tanto, habrá que hacer source .oracle_pro le antes de ejecutar el programa de test. Yo le he dado el nombre de oracle.t.

No tenemos más que descargarlo, transferirlo via ftp a nuestro servidor, en el $HOME por ejemplo, y con gurarlo. Solo hay que cambiar las líneas que
vienen indicadas como Change me. Para ello:

my $user = ‘usuario-base-datos’;
my $pass = ‘contraseña-base-datos’;
my $conn = ‘nuestra conexion’;

Acerca de la conexión. Esta debe tener, al menos en mi caso, este formato:

DBI:Oracle:nombre-base-datos-en-tnsnames.ora

Una vez lo tenemos con gurado podemos probar con (recordad ejecutar antes source .oracle_pro le):

xaviduro.es/instalacion-ora2pg-migrar-oracle-a-postgresql/ 5/9
13/9/2019 Instalación Ora2PG: Migrar Oracle a Postgresql – xaviduro.es

prove oracle.t

Debe salir algo como esto:

oracle.t .. ok
All tests successful.
Files=1, Tests=7, 0 wallclock secs ( 0.02 usr 0.01 sys + 0.06 cusr 0.00 csys = 0.09 CPU)
Result: PASS

En caso contrario: revisad las credenciales, la conexión que este bien puesta (hay bases de datos que están con guradas de otra manera y hay que
conectar a ellas con otra sintaxis), que las variables del oracle_pro le están exportadas (esto se puede hacer con echo $nombre-variable), los permisos del
chero, etc…

Si funciona, ya por lo menos sabemos que podemos conectarnos a nuestra base de datos fuente.

En la siguiente entrada, explicaré la forma en la que con gurar el programa. Pero de momento, lograr que funcione, ya es un logro en sí mismo, así que
con esto ya hay para entretenerse un rato. Espero sea de utilidad 😉

Enlaces de interés

Using Ora2pg to migrate from Oracle to PostreSQL (syed shabbir):

https://www.linkedin.com/pulse/using-ora2pg-migrate-from-oracle-postresql-syed-shabbir

Página o cial de Ora2PG (Gilles Darold):

http://ora2pg.darold.net/documentation.html#installation

How to install DBD::Oracle:

http://g14n.info/2013/07/how-to-install-dbdoracle/

Video explicativo:

xaviduro.es/instalacion-ora2pg-migrar-oracle-a-postgresql/ 6/9
13/9/2019 Instalación Ora2PG: Migrar Oracle a Postgresql – xaviduro.es

Oracle to PostgreSQL Migration with ora2pg

   

← Dia 1 – Presentación :) Borrar duplicados en oracle →

Warning: count(): Parameter must be an array or an object that implements Countable in /homepages/8/d451886725/htdocs/wp-includes/class-wp-
comment-query.php on line 405

xaviduro.es/instalacion-ora2pg-migrar-oracle-a-postgresql/ 7/9
13/9/2019 Instalación Ora2PG: Migrar Oracle a Postgresql – xaviduro.es

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Comentario

Nombre *

Correo electrónico *

Web

PUBLICAR COMENTARIO

xaviduro.es/instalacion-ora2pg-migrar-oracle-a-postgresql/ 8/9
13/9/2019 Instalación Ora2PG: Migrar Oracle a Postgresql – xaviduro.es

Copyright... Powered by WordPress


Convac Theme by SketchThemes

Warning: Illegal string o set 'headers' in /homepages/8/d451886725/htdocs/wp-content/plugins/wp-super-cache/wp-cache-phase2.php on line 595

Fatal error: Uncaught Error: Cannot use string o set as an array in /homepages/8/d451886725/htdocs/wp-content/plugins/wp-super-cache/wp-cache-
phase2.php:595 Stack trace: #0 /homepages/8/d451886725/htdocs/wp-content/plugins/wp-super-cache/wp-cache-phase2.php(313):
wp_cache_get_ob('<!DOCTYPE html>...') #1 [internal function]: wp_cache_ob_callback('<!DOCTYPE html>...', 9) #2 /homepages/8/d451886725/htdocs/wp-
includes/functions.php(3653): ob_end_ ush() #3 /homepages/8/d451886725/htdocs/wp-includes/plugin.php(525): wp_ob_end_ ush_all('') #4
/homepages/8/d451886725/htdocs/wp-includes/load.php(638): do_action('shutdown') #5 [internal function]: shutdown_action_hook() #6 {main} thrown in
/homepages/8/d451886725/htdocs/wp-content/plugins/wp-super-cache/wp-cache-phase2.php on line 595

xaviduro.es/instalacion-ora2pg-migrar-oracle-a-postgresql/ 9/9

Potrebbero piacerti anche