14 jun. 2011

Instalar Oracle 11gR2 XE beta en ubuntu 10.04

Hoy por necesidad me he visto obligado a instalar una versión de oracle en mi portatil, insisto en el tema de la obligación, ya que en un portatil un Oracle es demasiado "pesado", con lo que he tenido que hacer la configuración de la misma, para ello me he basado en varios HOW-TOs que he encontrado googleando, por eso voy a intentar resumirlo en este post.
Para configurar la versión Express Edition de Oracle 11g en ubuntu 10.04 x64 se deben seguir los siguientes pasos:
  1. Descargar la versión linux de 64 bits de la página oficial de Oracle
  2. Una vez descargada se descomprime el zip.
  3. Se instalan las librerías necesarias para continuar con los siguientes pasos, estas son alien y libaio1 para la instalación ejecutamos en una consola

    sudo apt-get install alien libaio1
  4. Generamos el paquete deb ejecutando en la consola:

    sudo alien -d --scripts oracle-xe-11.2.0-0.5.x86_64.rpm
  5. Una vez generado el paquete deb instalamos ejecutando

    sudo dpkg -i oracle-xe_11.2.0-1.5_amd64.deb

    la salida por consola será algo parecida a esto:
    Seleccionando el paquete oracle-xe previamente no seleccionado.
    (Leyendo la base de datos ... 100%
    224111 ficheros y directorios instalados actualmente.)
    Desempaquetando oracle-xe (de oracle-xe_11.2.0-1.5_amd64.deb) ...
    Configurando oracle-xe (11.2.0-1.5) ...
    Executing post-install steps...
    /var/lib/dpkg/info/oracle-xe.postinst: línea 93: /sbin/chkconfig: No existe el fichero o el directorio
    You must run '/etc/init.d/oracle-xe configure' as the root user to configure the database.
    Procesando disparadores para ureadahead ...
    ureadahead will be reprofiled on next reboot
    Procesando disparadores para python-gmenu ...
    Rebuilding /usr/share/applications/desktop.es_ES.utf8.cache...
    Procesando disparadores para desktop-file-utils ...
    Procesando disparadores para man-db ...
    Procesando disparadores para libc-bin ...
    ldconfig deferred processing now taking place
    Procesando disparadores para python-support ...

    como podemos ver se ha producido un "error" en la instalación, así que vamos a proceder a solucionarlo.
  6. Editamos el archivo mencionado en el error

    sudo vi /var/lib/dpkg/info/oracle-xe.postinst

    y buscamos chkconfig, comentamos esa línea y la anterior, quedando esto:
    if [ -f /etc/SuSE-release ]
    then
    /usr/lib/lsb/install_initd oracle-xe > /dev/null 2>&1
    /sbin/insserv oracle-xe > /dev/null 2>&1
    /sbin/SuSEconfig > /dev/null 2>&1
    #else
    # /sbin/chkconfig --add oracle-xe
    fi
  7. Ejecutamos de nuevo el script de post instalación:

    sudo /var/lib/dpkg/info/oracle-xe.postinst

    Obteniendo por consola la siguiente salida:
    Executing post-install steps...
    You must run '/etc/init.d/oracle-xe configure' as the root user to configure the database.
  8. Este paso es opcional, pero recomiendo que lo realicéis para comprobar que se ha realizado una instalación correcta, antes de hacer caso a oracle y ejecutar el script de configuración, si sois valientes, podéis saltaros este paso e ir directamente al 9, en caso contrario, los pasos para la comprobación son los siguientes:
  • Comprobamos que el usuario se ha creado correctamente:

    grep oracle /etc/passwd
    oracle:x:1001:1001::/u01/app/oracle:/bin/bash
  • Comprobamos que se ha creado el grupo dba correctamente

    grep dba /etc/group
    dba:x:1001:
  • Comprobamos que el archivo init.ora se ha generado correctamente

    grep sga /u01/app/oracle/product/11.2.0/xe/config/scripts/init*
    /u01/app/oracle/product/11.2.0/xe/config/scripts/init.ora:sga_target=805306368
    /u01/app/oracle/product/11.2.0/xe/config/scripts/initXETemp.ora:sga_target=805306368
  • Comprobamos los permisos y owner de oracle

    ls -latr /u01/app/oracle/product/11.2.0/xe/bin/oracle
    -rwsr-s--x 1 oracle dba 171M 2011-03-23 07:05 /u01/app/oracle/product/11.2.0/xe/bin/oracle
  • Si todo lo anterior es como lo que os he indicado, pasamos al paso 9, en caso contrario, deberemos eliminar la instalación y comenzar desde el paso 5.
  1. Ejecutamos en consola el comando de configuración de oracle-xe para poder empezar a trabajar con nuestra instalación:

    sudo /etc/init.d/oracle-xe configure
    Oracle Database 11g Express Edition Configuration
    -------------------------------------------------
    Thiswill configure on-boot properties of Oracle Database 11g Express Edition.
    The following questions will determine whether the database should be starting
    upon system boot, the ports it will use, and the passwords that will be used
    for database accounts.
    Press <Enter> to accept the defaults. Ctrl-C will abort.
    Specifythe HTTP port that will be used for Oracle Application Express [8080]:
    Specify a port that will be used for the database listener [1521]:
    Specify a password to be used for database accounts. Note that the same
    password will be used for SYS and SYSTEM. Oracle recommends the use of
    different passwords for each database account. This can be done after
    initial configuration:
    Confirm the password:
    Do you want Oracle Database 11g Express Edition to be started on boot (y/n) [y]:
    Starting Oracle Net Listener...Done
    Configuring database...Done
    Starting Oracle Database 11g Express Edition instance...Done
    Installation completed successfully.
  2. Comprobamos el funcionamiento de la base de datos ejecutando:

    sudo su – oracle

    Creamos un profile en el home de oracle para poder continuar con la comprobación:
    vi .bash_profile

    con el siguiente contenido:
    export ORACLE_SID=XE
    alias vi='vim'
    export ORACLE_BASE=$HOME
    export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/xe
    export ORACLE_TERM=xterm
    export _EDITOR=vim
    export NLS_LANG=american_america.utf8
    export TNS_ADMIN=$ORACLE_HOME/network/admin
    export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
    export LD_LIBRARY_PATH=$ORACLE_HOME/lib
    export PATH=$ORACLE_HOME/bin:$PATH

    ejecutamos el profile
    . .bash_profile

    ejecutamos
    sqlplus / as sysdba

    y ahora
    select count(1) from all_objects;

    deberíamos obtener aproximadamente 18000 objetos
Espero que esto haya servido de ayuda a aquellos que necesitéis instalar oracle 11g de 64 bits en vuestros sistemas para poder trabajar.
Un saludo y como siempre... a disfrutar

2 comentarios:

Juan Carlos Zelaya Reyes dijo...

no me genera el .deb del archivo rpm me dice proceso finalizado pero al final busco el .deb y solo aparece el rpm.. que pasa ?

Juan Carlos Zelaya Reyes dijo...

?