analytics

viernes, 31 de agosto de 2012

Instalar Oracle 11g en CentOS

Para este manual he utilizado CentOS versión 6.3, intuyo que podríamos usar Scientific Linux sin problemas, pero no lo he probado. Debemos de tener entorno gráfico, ya que el instalador hace uso de él.
En cuanto la configuración física, ha sido probado en una máquina virtual con VirtualBox con 2GB de memoria RAM, 3 GB de swap. y 30 GB de disco duro.
Cabe destacar que esta instalación no es para ponerlo en producción, ya que Oracle no certifica CentOS y seguramente nuestro fabricante de hardware tampoco. Basicamente es para un entorno de pruebas o desarrollo.
La instalación de la base de datos Oracle la podréis conseguir de aquí eligiendo vuestra arquitectura. Y la ISO de CentOS de aquí.




Partimos con el sistema actualizado:
# su -
# yum update
Una vez actualizado todo, debemos instalar estos paquetes:

# yum install gcc kernel-devel compat-libstdc++-33 elfutils-libelf-devel gcc-c++ libaio-devel libstdc++-devel sysstat unixODBC unixODBC-devel wget
Y descargar el rpm de una shell: pdksh, para luego instalarlo:
# wget ftp://ftp.pbone.net/mirror/archive.download.redhat.com/pub/redhat/linux/6.1/en/os/i386/RedHat/RPMS/pdksh-5.2.14-1.i386.rpm
# rpm -ivh pdksh-5.2.14-1.i386.rpm
Si teneis un SO de 64, lo mejor es compilarlo ya que no he encotrado el RPM
# wget  http://www.cs.mun.ca/~michael/pdksh/files/pdksh-5.2.14.tar.gz
# tar -zxvf pdksh-5.2.14.tar.gz
# ./configure
# make
# make install
Creación del usuario oracle con el que correrá luego la base de datos y asignación de una contraseña:
# useradd oracle
# passwd oracle
Creamos las carpetas donde alojaremos la instalación:
# mkdir /usr/oracle
# mkdir /usr/oraInventory
Y le asignamos de propietario al usuario que hemos creado anteriormente:
# chown oracle.oracle /usr/oracle /usr/oraInventory

Una vez acabados los preparativos, empezamos con la instalación de la base de datos, nos logearemos con el usuario oracle ya que es con el que vamos a trabajar, (recordad el entorno gráfico):
# su - oracle
Ahora descomprimimos los zip de la base de datos y entramos en la carpeta:
# unzip linux_xgR2_database_1_2.zip && unzip linux_xgR2_database_2_2.zip
# cd database
Ya podemos lanzar el instalador:

# ./runInstaller

Empieza pidiéndonos el email para enviarnos promociones y demás cosillas, opcional.

Escogemos: Create and configure, ya que vamos a instalar una base de datos de ejemplo para poder hacer pruebas.
Desktop Class, para empezar.
Ahora rellenamos todos los campos para que nos quede como en la imagen, guardar el Global database name y la password.
Mi password no le ha gustado por eso salta este mensaje, nada grave, se puede seguir.
El inventario de oracle, le asignamos el grupo oracle
En este paso nos chequea que cumplamos todos los requerimientos para la instalación
En esta captura muestra los parametros del kernel que deben de cambiar, pulsamos en corregir y volver a comprobar.

Nos abre un pop-up diciendonos el comando que debemos ejecutar:
Captura del proceso de fix
Una vez lo vuelve a comprobar todo pasamos al siguinte paso, el resumen de todo lo que va ha hacer.
Captura del proceso de instalación, en mi máquina virtual fue muy largo
Captura de la instalación
Esto es importante, asignación de password, pulsamos en Password Management...
Y escribimos una contraseña para SYS, SYSDBA y HR, este último opcional, pero nos servirá para hacer pruebas. No olvidar pulsar la casilla: Lock Account? para desbloquear la cuenta. En la imagen muestro el usuario HR con la cuenta habilitada y su respectiva contraseña:
Mis password no satisfacen a Oracle pero me deja continuar
Y por último nos dice que corramos los siguintes script con el usuario root:


Y aquí tenemos el resultado final, un "saccessful":
Ahora vamos a verificar que todo este OK, con nuestro navegador entramos en la siguinte url:
https://ip-del-servidor-oracle:1158/em
Y entramos como sysdba y la contraseña que habíamos asignado, no olvidar el conectar como, cambiarlo a sysdba
Este debe de ser el resultado final, todo OK



Y por último pero no por ello menos importante, las variables, editamos el archivo bash_profile del usuario oracle:
# vi /home/oracle/.bash_profile
Y añadimos lo siguiente:
export ORACLE_BASE=/usr/oracle
export ORACLE_HOME=/usr/oracle/product/11.2.0
export ORACLE_SID=orcl
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib
export PATH=$ORACLE_HOME/bin:$PATH
Si tenemos un SO de 64 pegamos esto:

export ORACLE_BASE=/usr/oracle
export ORACLE_HOME=/usr/oracle/product/11.2.0
export ORACLE_SID=orcl
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib:/usr/lib64
export PATH=$ORACLE_HOME/bin:$PATH
Esto es necesario para que luego al arrancar sqlplus sepa donde tiene la base de datos.
Primero parar la consola de administración:
# su - oracle
# emctl stop dbconsole
Y ahora la base de datos, con el usuario oracle:
# sqlplus / as sysdba
sqlplus> shutdown normal
sqlplus> exit
Para arrancarla seguimos este link.

27 comentarios:

  1. Hola buenas tardes
    segui tu tuutorial paso a paso
    lo unico fue que le cambie el SID de la base de datos a alcaldia.
    pero al ejecutar el
    emctl stop dbconsole me dice
    bash: emctl: command not found
    No se que sera

    ResponderEliminar
    Respuestas
    1. Con el usuario oracle ejecuta:
      echo $PATH

      Eliminar
    2. Sale esto:


      /usr/lib/qt-3.3/bin:/usr/kerberos/bin:/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:/home/oracle/bin

      Eliminar
    3. Seguiste el paso de añadir las variables al archivo .bash_profile del usuario oracle?

      Eliminar
  2. mira:


    [oracle@localhost database]$ cat /home/oracle/.bash_profile
    # .bash_profile

    #Get the aliases and functions
    #ORACLE_BASE=/usr/oracle
    #export ORACLE_HOME=/usr/oracle/product/11.2.0
    #export ORACLE_SID=orcl
    #export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib
    #export PATH=$ORACLE_HOME/bin:$PATH
    if [ -f ~/.bashrc ]; then
    . ~/.bashrc
    fi

    # User specific environment and startup programs

    PATH=$PATH:$HOME/bin

    export PATH
    ORACLE_BASE=/usr/oracle
    export ORACLE_HOME=/usr/oracle/product/11.2.0
    export ORACLE_SID=alcaldia
    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib
    export PATH=$ORACLE_HOME/bin:$PATH

    ResponderEliminar
    Respuestas
    1. Entonces ejecuta:
      /usr/oracle/product/11.2.0/bin/emctl stop dbconsole

      Eliminar
  3. mira que sigo lla ruta perro deespues de 11.2.0 no esta el bin sino dbhome y luego si el bin corriendo esa ruta ssale:


    /usr/oracle/product/11.2.0/dbhome_1/bin/emctl stop dbconsole
    Environment variable ORACLE_UNQNAME not defined. Please set ORACLE_UNQNAME to database unique name.


    ResponderEliminar
    Respuestas
    1. Pana a mi tambien me sale ese error ya le revise el edit del profile esta bien ,.,.,. no se si me puedes ayudar cual seria el problema y con alguna solucion,.,

      Eliminar
    2. Prueba ha ejectura esto en consola:
      export ORACLE_UNQNAME=orcl
      Y luego cambia arranca el dbconbsole

      Eliminar
  4. Buen dia, mi so no es de 32 bits sino de 64, como cambiaria esto la instalacion? gracias de antemano por su ayuda.

    ResponderEliminar
    Respuestas
    1. He cambiado un par de cosas en el articulo para adaptarlo también a entornos de 64

      Eliminar
  5. Hola, segui tu guia paso a paso, e instalo todo correctamente, solo me falta hacer lo de los bash ( lo ultimo de la guia ) pero tengo una consulta, al escribir https://ipdelservidor:1158/em desde otro computador de la misma red no lo encuentra, es porque instale el desktop class ? o por los bash que aun no hago?

    por cierto, tu guia esta genial muchas gracias por enseñarme

    ResponderEliminar
    Respuestas
    1. Desde la máquina donde has instalado Oracle puedes ver la web? https://localhost:1158/em

      Eliminar
    2. si, si puedo en el localhost si me deja entrar

      Eliminar
    3. Puede que tenga la culpa el firewall:

      service iptables stop

      Eliminar
  6. Ismael, segui tu tutorial e instalé sin problemas en modo Desktop class, pero podré salir a producción con este modo? o debo reinstalar Oracle en modo server?? debo montar un esquema y conectarme desde otro server con una aplicación php.

    ResponderEliminar
    Respuestas
    1. Lo ideal es en modo server, el desktop class es como un oracle para hacer pruebas con menos opciones que el server.

      Eliminar
  7. Ismael, queria saber si por casualida tienes un tutorial de instalacio del cliete de oracle 11g + la instalacion y cofiguracion del oci8?

    de ante manos muchas gracias.

    ResponderEliminar
  8. Hola Ismael, tengo un problema cuando intento ejecutar sqlplus me sale este mensaje:
    Error 6 initializing SQL*Plus
    SP2-0667: Message file sp1.msv not found
    SP2-0750: You may need to set ORACLE_HOME to your Oracle software directory

    muchisimas gracias

    ResponderEliminar
    Respuestas
    1. Ejecuta esto antes:
      export ORACLE_HOME=/usr/oracle/product/11.2.0

      Eliminar
    2. Busca el archivo sp1.msb en $ORACLE_HOME
      Y pegalo en:
      $ORACLE_HOME/sqlplus/mesg

      Eliminar
    3. Aquí tienes un poco de ayuda: http://prevexp.wordpress.com/2010/09/06/message-file-sp1-msb-not-found-error-6-initializing-sqlplus/

      Eliminar
    4. solucionado muchisimas gracias

      Eliminar
  9. he seguido los pasos y no hay manera
    gracias por tu ayuda

    ResponderEliminar