Oracle
Me dispongo a instalar un rac de oracle en máquians virtuales
Tengo las siguientes direcciones interesantes donde consultar para hacer dicha instalación:
- Para instalar un oracle sobre una Ubuntu:
http://ubuntulife.wordpress.com/2007/02/11/instalar-oracle-10g-release-2-en-ubuntu-edgy/
- Y web donde explican detalladamente como configurar las máquinas virtuales para un clusterware:
http://www.dbasupport.com/oracle/ora10g/RACingAhead0901.shtml
- También me manda Marcos, un compañero, el siguiente enlace a otro blog que explica como instalar un cluster ware y además tambien pone algunas notas de referencia http://oracleracnotes.wordpress.com
Contenido
Preparando las máquinas virtuales
Tengo dos máquinas virtuales ya creadas en nuestro entorno de vmware esx, a las que he instalado dos redhat enterprise linux 4, con lo mínimo. Cada una de las dos máquinas tiene dos interfaces de red instalados:
- orapru01 - 10.90.1.45 - 10.90.63.45
- orapru02 - 10.90.1.46 - 10.90.63.45
Lo primero que he abordado es la configuración de una unidad iscsi común para las dos máquinas. Para ello he instalado el paquete iscsi-initiator-utils-4.0.3.0-7.
He de señalar que para hacer la instalacion de paquetes adicionales los estoy cogiendo de un repositorio de centos 4, exactamente este: http://sunsite.rediris.es/mirror/CentOS/4/os/i386/CentOS/RPMS/
Creacion de usuarios y grupos necesarios
Creamos varios grupos en cada uno de los nodos
# groupadd dba # groupadd oper # groupadd oinstall
y creamos el usuario oracle
# useradd -g oinstall -G dba,oper -d /home/oracle -s /bin/bash -c "Usuario Oracle" oracle
y le ponemos un password, que en mi caso para este oracle de pruebas será "oracle"
# passwd oracle
Tenemos que asegurarnos de que en todos los nodos tanto los grupos como el usurio oracle tienen el mismo ID.
Configuración de ssh
Después pasamos a configurar el SSH, ya que con este usuario el proceso de instalación lanzará algunos comandos con ssh a los otros nodos y tambien usará el scp. Para ello nos logamos con el usuario oracle y creamos el directorio ~/.ssh, dandole permisos para que solo pueda acceder el usuario oracle
# su - oracle # mkdir ~/.ssh # chmod 700 ~/.ssh
Después creamos una identificación para que cuando tenga que conectarse a los otros nodos no necesite password
# /usr/bin/ssh-keygen -t rsa
le diremos el directorio por defecto donde irá la llave y le pnodremos una contraseña difernte a la clave del usuario oracle, en mi caso he puesto "oraclepassphrase". Esto lo hago en los dos nodos.
# /usr/bin/ssh-keygen -t dsa
le pondremos una contraseña diferente a la del usuario Oracle y tambien lo haremos en los dos nodos
Despues tendremos que añadir estas claves que hemos creado en el fichero "authorized_keys" que debe estar en el directorio .ssh (si no está lo creamos). Lo podemos hacer de la siguiente forma tal y como aconseja el manual de pre-instalación de rac de oracle:
# ssh orapru01 cat /home/oracle/.ssh/id_rsa.pub >> authorized_keys # ssh orapru01 cat /home/oracle/.ssh/id_dsa.pub >> authorized_keys # ssh orapru02 cat /home/oracle/.ssh/id_rsa.pub >> authorized_keys # ssh orapru02 cat /home/oracle/.ssh/id_dsa.pub >> authorized_keys
Esto mismo lo he hecho en los dos nodos, y despues al fichero authorized_keys le hemos dado permisos
# chmod 600 /home/oracle/.ssh/authorized_keys
Una vez hecho esto, cada vez que queramos hacer ssh desde el usuario oracle al otro de los nodos sin que nos pida el passphrase habrá que ejecutar lo siguiente:
# ssh-agent $SHELL # ssh-add
y nos pedirá el passphrase, pero solo durante esta vez y hasta que nos salgamos de esta sesión.
Instalación del paquete CVUQDISK
Ahora tenemos que instalar el paquete cvuqdisk-1.0.1-1.rpm que viene con la propia instalación de clusterware y que podemos encontrar en el directorio rpm, en mi caso yo lo tengo todo en /opt/src/oracle/clusterware/ y ahí dentro está el directorio rpm. Para ellos antes de hacer la instalacion tendremos que exportar la variable CVUQDISK_GRP
# export CVUQDISK_GRP=oinstall
y despues ejecutar la instalación del rpm
# rpm -iv cvuqdisk-1.0.1-1.rpm
Esto sirve para que el cvu sepa encontrar discos compartidos
Configuración de red
Al parecer cada nodo ha de tener dos interfaces de red, uno para la red privada y otro para la red pública, además, estos interfaces han de corresponder en los dos nodos, esto es, que si en orapru01 el interface eth0 es la red pública así debe ser tambien en orapru02
También habrá que crear una ip virtual para cada nodo.
En mi caso, tengo los dos interfaces de red creados en los dos nodos y se corresponden:
- orapru01
orapru01.prisacom.int 10.90.1.45 orapru01priv.prisacom.int 10.90.63.45 orapru01vip.prisacom.int 10.90.1.145
- orapru02
orapru02.prisacom.int 10.90.1.46 orapru02priv.prisacom.int 10.90.63.46 orapru02vip.prisacom.int 10.90.1.146
Preparando parametros del kernel
Echando un vistazo a los parametros de kernel necesarios para oracle hago las siguientes modificaciones:
Añado al sysctl.conf
kernel.sem = 250 32000 100 128 fs.file-max = 65536 net.core.rmem_default = 1048576 net.core.wmem_default = 262144
y ejecuto el siguiente comando para aplicar los cambios
# sysctl -p
Tambien editamos el fichero /etc/security/limits.conf para añadir lo siguiente
oracle soft nproc 2047 oracle hard nproc 16384 oracle soft nofile 1024 oracle hard nofile 65536
y el fichero /etc/pam.d/login para añadir la siguiente linea
session required pam_limits.so
y en el /etc/profile añadimos lo siguiente:
if [ $USER = "oracle" ]; then if [ $SHELL = "/bin/ksh" ]; then ulimit -p 16384 ulimit -n 65536 else ulimit -u 16384 -n 65536 fi fi
Después de todo esto he pasado la comprobación y todo está correcto, salvo la red, que parece ser que hay un problema de comunicación en el interface eth1, con la red 10.90.63.x. Esto ya lo miro la proxima semana.
Software adicional
Hay que asegurarse de que los siguientes paquetes de red hat están instalados en las máquinas
binutils-2.15.92.0.2-10.EL4 compat-db-4.1.25-9 control-center-2.8.0-12 gcc-3.4.3-9.EL4 gcc-c++-3.4.3-9.EL4 glibc-2.3.4-2 glibc-common-2.3.4-2 gnome-libs-1.4.1.2.90-44.1 libstdc++-3.4.3-9.EL4 libstdc++-devel-3.4.3-9.EL4 make-3.80-5
y además el openmotif21-2.1.30-11.RHEL4.6
Los que he marcado con negrita no me vienen instalados por defecto en la distro que he puesto yo, rhel 4. Pero tampoco los he instalado. Control center tiene muchas dependencias de servidor de X y las librerías de gnome no se muy bien para que las quiere. Seguro que lo veré más adelante.