Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
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
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
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:
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:
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:
luego,
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.
Lo instala en /etc/ora2pg.
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),
y luego instalamos con (cpan> nos indica que estamos dentro de CPAN),
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
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 🙂
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’;
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
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
https://www.linkedin.com/pulse/using-ora2pg-migrate-from-oracle-postresql-syed-shabbir
http://ora2pg.darold.net/documentation.html#installation
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
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
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