Diferencia entre revisiones de «Oracle»

De Ardemans Wiki
Saltar a: navegación, buscar
(Errores instalando clusterware)
(Instalación de ASM)
 
(No se muestra una edición intermedia de un usuario)
Línea 307: Línea 307:
  
 
=Instalación de ASM=
 
=Instalación de ASM=
 +
 +
[[Imagen:01-bienvenido.JPG]]
 +
 +
[[Imagen:02.Seleccionar_tipo_de_instalacion.JPG]]
 +
 +
[[Imagen:03.detalles_directorio_raiz.JPG]]
 +
 +
[[Imagen:04.modo_de_instalacion.JPG]]
 +
 +
[[Imagen:05.comprobaciones_de_requisitos.JPG]]
 +
 +
[[Imagen:06.Opcion_de_configuracion.JPG]]
 +
 +
[[Imagen:7.configuracion_ASM.JPG]]
 +
 +
[[Imagen:08.Resumen.JPG]]
 +
 +
[[Imagen:09.instalando.JPG]]
 +
 +
[[Imagen:10.Asistentes_de_configuracion.JPG]]
 +
 +
[[Imagen:11.ejecutar_archivos_de_comandos.JPG]]
 +
 +
[[Imagen:12.ejecucion_script_un_nodo.JPG]]
 +
 +
==Errores instalando asm==
 +
 +
En mi segunda instalación de asm por algún motivo no me veía el disco que había creado con el oracleasm, para solucionar esto, en la pantalla donde elegimos que discos vamos usar para el grupo de discos DATA, le doy a cambiar la ruta, y pongo /dev/oracleasm/disks/*, y me aparece el disco que quería añadir como CANDIDATO

Última revisión de 10:44 6 abr 2009

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


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 me dice que no hay interfaces apropiados para la configuración de una vip. Esto lo dice porque por defecto los interfaces que empiezan por 10 y 192 siempre los va a considerar como interfaces privados. Pero no va a dar muchos problemas.

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.

Modulo Hangcheck

He cargado el modulo hangcheck del kernel, para lo cual he ejecutado:

insmod /lib/modules/2.6.9-42.ELsmp/kernel/drivers/char/hangcheck-timer.ko hangcheck_tick=1 hangcheck_margin=10

y además he añadido esta línea en los dos nodos en el fichero /etc/rc.d/rc.local para que lo ejecute en el arranque de la máquina.

Preparando discos raw

Como ya tenemos la unidad iScsi ya mapeada en los dos nodos, lo primero que vamos a hacer es particionarla, con fdisk /dev/sdb, que es el nombre con el que me ha visto la unidad iscsi. La ha particionado en tres para lo siguiente:

Disco /dev/sdb: 10.7 GB, 10737418240 bytes
64 cabezas, 32 sectores/pista, 10240 cilindros
Unidades = cilindros de 2048 * 512 = 1048576 bytes

Disposit. Boot      Start         End      Blocks   Id  System
/dev/sdb1               1         192      196592   83  Linux
/dev/sdb2             193         384      196608   83  Linux
/dev/sdb3             385       10240    10092544   83  Linux
  • sdb1 la usaré para el OCR (oracle cluster register)
  • sdb2 la usaré para el voting disk
  • sdb3, la más grande la usaré para los datos más adelante con el oracleasm

Ahora toca especificar que van a ser unidades raw, para lo cual tendremos que editar el fichero /etc/sysconfig/rawdevices:

/dev/raw/raw1 /dev/sdb1
/dev/raw/raw2 /dev/sdb2

y para los permisos, supuestamente habría que añadir un fichero en /etc/udev/permisions.d/ que se llamara oracle.permission, y añadirle los permisos para oracle:dba y con 0660 para cada uno de los dispositivos raw, pero no me ha funcionado, así que para solucionarlo un poco lo he metido en el /etc/rc.d/rc.local, y he añadido lo siguiente:

/bin/chown oracle:dba /dev/raw/raw1
/bin/chmod 660 /dev/raw/raw1
/bin/chown oracle:dba /dev/raw/raw2
/bin/chmod 660 /dev/raw/raw2

Con eso cada vez que se inicia el sistema me cambia los permisos de estos disposivitos.

Por supuesto, para que esto funcione tenemos que asegurarnos que el servicio rawdevices se arranca al inicio de sesión. Se puede hacer de muchas formas, pero esta vez lo he hecho con el comando chkconfig

Con chkconfig --list nos da un listado de los servicios que se arrancan en cada nivel de ejecución (run level) y para activar este en concreto, aunque en ralidad ya estaba, bastaría con ejecutar:

chkconfig --level 345 rawdevices on


Instalación de la librería ASM

He ido a la siguiente página de oracle:

http://otn.oracle.com/tech/linux/asmlib/

y he buscado el driver correspondiente para mi distribucion de linux, rhel4, en la lista, fijandome en el kernel que tengo. Me he bajado los siguientes paquetes:

oracleasm-2.6.9-42.ELsmp-2.0.3-1.i686.rpm
oracleasmlib-2.0.2-1.i386.rpm
oracleasm-support-2.1.1-1.el4.i386.rpm

y los he instalado con el siguiente comando tal y como pone en la documentación de oracle:

rpm -Uvh oracleasm-support-2.1.1-1.el4.i386.rpm oracleasmlib-2.0.2-1.i386.rpm oracleasm-2.6.9-42.ELsmp-2.0.3-1.i686.rpm

Ahora, tenemos que configurar el oracleasm con el siguiente comando

/etc/init.d/oracleasm configure

que nos hará las siguientes preguntas y he respondido tal y como aparece abajo:

[root@orapru02 asm]# /etc/init.d/oracleasm configure
Configuring the Oracle ASM library driver.

This will configure the on-boot properties of the Oracle ASM library
driver.  The following questions will determine whether the driver is
loaded on boot and what permissions it will have.  The current values
will be shown in brackets ('[]').  Hitting <ENTER> without typing an
answer will keep that current value.  Ctrl-C will abort.

Default user to own the driver interface []: oracle
Default group to own the driver interface []: dba
Start Oracle ASM library driver on boot (y/n) [n]: y
Scan for Oracle ASM disks on boot (y/n) [y]: y
Writing Oracle ASM library driver configuration: done
Initializing the Oracle ASMLib driver:                     [  OK  ]
Scanning the system for Oracle ASMLib disks:               [  OK  ]

Todo esto en ambas máquinas.

Después, en una de las máquinas tenemos que crear un disco asm, en mi caso de la siguiente forma:

/etc/init.d/oracleasm createdisk DISK1 /dev/sdb3

donde /dev/sdb1 es una partición que he creado en el disco compartido de iscsi.

y para que lo vea el otro nodo ejecutamos en él el siguiente comando:

/etc/init.d/oracleasm scandisks

y podemos ver que ha visto el disco ejecutando lo siguiente:

[root@orapru02 asm]# /etc/init.d/oracleasm listdisks
DISK1

Instalación de clusterware

Esta parte es la fácil. Para el tema del display he configurado el putty, que es como me conecto, para que acepte x11 forwarding, y en mi windows tengo un cygwin-x arrancado. Me conecto a orapru1 con el usuario Oracle y ejecuto lo siguiente:

ssh-agent $SHELL
ssh-add

y meto la contraseña de la clave rsa que puse cuando preparé esta historia. Con lo cual ya no pide contraseñas para hacer ssh a los nodos.

Ahora me voy al directorio donde he dejado todos los paquetes de instalación de oracle, que está en /opt/src/oracle y en concreto me voy al directorio de clusterware.

Antes de ejecutar la instalación voy a exportar una variable para que por defecto sepa donde van a ir todas las historias de oracle:

export ORACLE_BASE=/opt/oracle

ahora si, ejecuto el ./runInstall

(...) faltan cosas

Errores instalando clusterware

Al terminar la instalación da un error ejecutando una de los tres chequeos de hace, en concreto el que hace:

/opt/oracle/product/10.2.0/crs/bin/cluvfy stage -post crsinst -n orapru01,orapru02

y si nos damos cuenta, cuando está arrancado el cluster no aparecen las ip's virtuales que hemos especificado, para ello tendremos que ejcutar como root el comando vipca que está en el home de crs, en el directorio bin. Este abrirá una sesión contra el servidor gráfico, y ahí tendremos que especificar las IP's virtuales para cada nodo.

De todas formas, para ver los logs de esos chequeos podemos entrar en el directorio $HOME_CRS/cfgtoollogs. Ahí además veremos los siguientes ficheros:

configToolAllCommands
configToolFailedCommands

que son los comandos que lanza el proceso de instalación. En el segundo estarán los comandos que no han dado exito en el chequeo para que los podamos relanzar.


Instalación de ASM

01-bienvenido.JPG

02.Seleccionar tipo de instalacion.JPG

03.detalles directorio raiz.JPG

04.modo de instalacion.JPG

05.comprobaciones de requisitos.JPG

06.Opcion de configuracion.JPG

7.configuracion ASM.JPG

08.Resumen.JPG

09.instalando.JPG

10.Asistentes de configuracion.JPG

11.ejecutar archivos de comandos.JPG

12.ejecucion script un nodo.JPG

Errores instalando asm

En mi segunda instalación de asm por algún motivo no me veía el disco que había creado con el oracleasm, para solucionar esto, en la pantalla donde elegimos que discos vamos usar para el grupo de discos DATA, le doy a cambiar la ruta, y pongo /dev/oracleasm/disks/*, y me aparece el disco que quería añadir como CANDIDATO