Instalar Oracle 10g R1

miércoles, 15 de noviembre de 2006

Hoy he instalado, deprisa y corriendo, un Oracle 10g sobre una Ubuntu Edgy recien instalada (instale la version "Server" y después el paquete ubuntu-desktop). Para ello, he seguido la guía que encontré en http://www.dizwell.com/prod/node/52, pero voy a resumirlo aquí por si me hiciera falta en otra ocasión.



Después de instalar Ubuntu, y actualizar con los repositorios "universe" y "multiverse", ejecute:

$ sudo apt-get install gcc libaio1 lesstif2 lesstif2-dev make rpm libc6 libstdc++5

Creé el usuario oracle y varios grupos:

$ sudo groupadd oinstall

$ sudo groupadd dba

$ sudo groupadd nobody

$ sudo useradd -m oracle -g oinstall -G dba

$ sudo passwd oracle

Cambié ciertos parámetros del nucleo (en /etc/sysctl.conf):

kernel.shmall = 2097152

kernel.shmmax = 2147483648

kernel.shmmni = 4096

kernel.sem = 250 32000 100 128

fs.file-max = 65536

net.ipv4.ip_local_port_range = 1024 65000

Para activar los cambios, ejecuté:

$sudo /sbin/sysctl -p

Tambien cambié algunos límites de seguridad del sistema:

* soft nproc 2047

* hard nproc 16384

* soft nofile 1024

* hard nofile 65536

Ahora pasé a crear el entorno del usuario "oracle":

$ sudo ln -s /usr/bin/awk /bin/awk

$ sudo ln -s /usr/bin/rpm /bin/rpm

$ sudo ln -s /lib/libgcc_s.so.1 /lib/libgcc_s.so

$ sudo ln -s /usr/bin/basename /bin/basename

$ sudo mkdir /oracle

$ sudo mkdir /oracle/10g

$ sudo chown -R oracle:oinstall /oracle

$ sudo chmod -R 775 /oracle

y en /home/oracle/.bashrc

export ORACLE_BASE=/oracle

export ORACLE_HOME=/oracle/10g

export ORACLE_SID=orcl10

export PATH=$PATH:$ORACLE_HOME/bin

(nota: verificar que el usuario "oracle" utiliza "bash" con vipw)



Finalmente, engañé al programa de instalación para que creyera que se trataba de una Redhat:

(en /etc/redhat-release)

Red Hat Enterprise Linux AS release 3 (Taroon)

Disponía del CD original, aunque lo copié en /oracleInstall para evitar posibles problemas con la lectora, y le dí permisos de lectura al usuario "oracle". Inicié el instalador con el mismo usuario:

$ /oracleInstall/runInstaller

Notas sobre el proceso de instalación:

  • No dejar que el instalador cree la base de datos
  • Seguir las instrucciones (en algunos momentos hay que ejecutar scripts como "root")
  • Ejecutar netca después de la instalación para crear el "listener"
  • Ejecutar dbca después para crear la base de datos (puse orcl10.ecao.local como nombre de la instancia, siendo orcl10 el SID)
Para hacer que se ejecute directamente al arrancar, hay que editar los archivos $ORACLE_HOME/bin/dbstart y $ORACLE_HOME/bin/dbshut, y cambiar en /etc/oratab, con el ultimo campo a Y (en lugar de N).



Este es mi script de arranque:

#!/bin/bash

#

# /etc/init.d/dbora

#

# Startup script for Oracle databases



export ORACLE_HOME=/oracle/10g

export ORACLE_SID=orcl10

export PATH=$PATH:$ORACLE_HOME/bin



case "$1" in

start)

echo -n "Starting Oracle: "

su oracle -c "$ORACLE_HOME/bin/lsnrctl start"

su oracle -c $ORACLE_HOME/bin/dbstart

touch /var/lock/oracle



su oracle -c "$ORACLE_HOME/bin/emctl start dbconsole"

echo "OK"

;;

stop)

echo -n "Shutdown Oracle: "

su oracle -c $ORACLE_HOME/bin/dbshut

su oracle "-c $ORACLE_HOME/bin/lsnrctl stop"

rm -f /var/lock/oracle

echo "OK"

;;

*)

echo "Usage: 'basename $0' start|stop"

exit 1

esac

exit 0

Para instalarlo en /etc/init.d/dbora:

$ sudo chmod 775 /etc/init.d/dbora

$ sudo update-rc.d dbora defaults 99

Eso es todo.

1 #:

Tim dijo...

I did a small writeup on how to setup an oracle init script for RedHat Linux and installing it through the chkconfig command. It may help somebody who has to setup an Oracle system on RedHat Linux. It took me a little while to figure out how to get multiple enterprise manager consoles (emctl) for each of the different SIDs on my system.
http://timarcher.com/?q=node/49