domingo, 17 de junio de 2007

Oracle XE 10g en Ubuntu Feisty Fawn

Oracle XE sólo se distribuye en binarios de 32bits, lo que provoca que no pueda instalarse en distribuciones linux de 64bits 'tal cual'. Por necesidades de un proyecto interno he tenido que ver la viabilidad de instalar y usar una base de datos XE bajo Ubuntu Edgy 64 bits, y después de comentarlo un poco con hali en el canal #oracle de irc.freenode.org y unas búsquedas en Google, no ha resultado nada difícil. Aunque estas explicaciones estén descritas para Ubuntu, con entender la idea del porqué de cada cosa, tiene que ser trivial reproducir el proceso en otras distribuciones basadas por ejemplo en RedHat.

  • Debemos instalar librerías de 32 bits para que el proceso de linkado de los binarios de Oracle se pueda realizar.
apt-get install libc6-i386


Explicación de la librería libc6-i386

( luego me he dado cuenta que existen unas librerías libc6-i686 que son la compilación optimizada para i686 de libc6, así que sería más óptimo usarlas en vez de las libc6-i386 )

  • Debemos instalar la versión de 32bits de la librería libaio. Este proceso tengo que mirar si sería posible hacerlo con apt ( en un post anterior indiqué como instalar paquetes de distintas arquitecturas usando up2date en RedHat ), pero de momento lo haremos de forma manual ya que sólo es un paquete y lo tenemos bien localizado.
Podemos bajarlo de http://packages.ubuntu.com/edgy/libs/libaio1 , clickando en el link i386 del apartado Download libaio1 y seleccionando el mirror que más nos convenga ( leed el porqué de la existencia de estas librerías para que entendáis como mejora el rendimiento de I/O ).

y una vez aceptada la licencia de uso, descargamos el paquete .deb en el apartado Oracle Database 10g Express Edition ( Universal ) para tener soporte para varios idiomas

  • Para instalar estos 2 últimos paquetes ( libaio y oracle XE en 32bits ), deberemos forzar dpkg a que los instale aún viendo que la arquitectura donde estamos corriendo no es la misma o compatible con la compilación del software que tratamos de instalar. Para eso utilizaremos la opción --force-arquitecture
dpkg -i --force-architecture libaio1_0.3.106-0ubuntu1_i386.deb
dpkg -i --force-architecture oracle-xe-universal_10.2.0.1-1.0_i386.deb


Como supongo que quien intenta instalar un Oracle ya sabe mínimamente los requerimientos recomendados de entorno, no me meteré a explicar lo del tamaño de swap, memoria mínima... esto está muy bien explicado en cientos de webs, San Google os puede ayudar:)

Ahora ya tenemos los binarios correctamente instalados ( la instalación ya nos ha creado el usuario 'oracle' y el grupo 'dba', propietarios del software de Oracle que hemos instalado) . Sólo nos falta la configuración final y la puesta en marcha.

  • Debemos ejecutar un script proporcionado por Oracle que entre otras cosas creará los scritps de parada y arranque automático de la instancia Oracle y el listener. Este script debe ejecutarse como root, sin el uso de sudos, para ello primero obtendremos una sesión pura de root ( sin necesidad de habilitar el login directo del superusuario )
sudo -s


  • Ahora que ya tenemos una sesión de root, lanzamos el script de configuración del servicio para Oracle XE ( puerto del listener, de la aplición web de administración, passwords... )
/etc/init.d/oracle-xe configure

  • Al cabo de un rato nos debería dar el ok al porceso de configuración/creación de la BD y tener varios procesos de oracle corriendo ( el listener, pmon, smon, reco... ) y deberíamos poder acceder a la administración de la nueva BD mediante el navegador web local al servidor, yendo a la dirección http://127.0.0.1:(puerto que hayamos configurado antes)/apex
  • Es imperativo la definición de las variables de entorno ORACLE_HOME y ORACLE_SID para el usuario oracle, así podréis trabajar con las herramientas de consola ( lnsrctl, sqlplus, rman... ) sin tener problemas
su - oracle
vi $HOME/.bash_profile
export ORACLE_SID=XE
export ORACLE_HOME=/usr/lib/oracle/xe/app/oracle/product/10.2.0/server
export PATH=$ORACLE_HOME/bin:$PATH
export TNS_ADMIN=$ORACLE_HOME/network/admin


Salid de la sesión oracle, volved a entrar y ya podréis trabajar normalmente con la nueva instancia

oracle@nclserver02:~$ sqlplus /nolog

SQL*Plus: Release 10.2.0.1.0 - Production on Tue Apr 10 16:37:03 2007

Copyright (c) 1982, 2005, Oracle. All rights reserved.

SQL> conn /as sysdba
Connected.

SQL> select INSTANCE_NAME,VERSION,DATABASE_STATUS,EDITION from v$instance;

INSTANCE_NAME VERSION DATABASE_STATUS EDITION
---------------- ----------------- ----------------- -------
XE 10.2.0.1.0 ACTIVE XE

SQL> exit
Disconnected from Oracle Database 10g Express Edition Release 10.2.0.1.0 - Production


oracle@nclserver02:~$ rman target / nocatalog

Recovery Manager: Release 10.2.0.1.0 - Production on Tue Apr 10 16:39:59 2007

Copyright (c) 1982, 2005, Oracle. All rights reserved.

connected to target database: XE (DBID=2500655873)
using target database control file instead of recovery catalog

RMAN>


Fuentes: canal #oracle en irc.freenode.org
Google me llevó a http://valery.bgit.net/blog-en/2006/07/09/oracle-database-10g-express-edition-in-linux
os recomiendo la lectura de acciones post instalación


agradecimientos

fuente: http://dballester.blogspot.com/2007/04/oracle-xe-en-ubuntu-edgy-amd64-em64t.html

No hay comentarios: