Contacto

CONTACTAR EN CASO DE EMERGENCIAS Móvil +56963679637 - MAIL : CONSULTADBABLOCK@GMAIL.COM
- SOPORTE REMOTO EN BASE DE DATOS ORACLE - ORACLE LINUX - ORACLE VM SERVER - ORACLE RAC - ORACLE DATA GUARD
- UPGRADES - CAPACITACION
Showing posts with label RHEL5. Show all posts
Showing posts with label RHEL5. Show all posts

Wednesday, June 17, 2009

Como crear dispositivos RAW en Vmware RHEL5

Depreciacion de soporte Raw Devices

El soporte para raw devices ha sido depreciado en Linux Kernel 2.6 en favor del acceso directio (O_DIRECT). Ya no es posible configurar raw device usando el "/etc/sysconfig/rawdevices, sin embargo todavia es posible configurar raw devices en RHEL5/EOL5.

Para saber mas detalles consultar los siguientes documentos:

* /usr/share/doc/kernel-doc-2.6.18/Documentation/feature-removal-schedule.txt
* Red Hat Enterprise Linux 4/5 Release notes


Ademas, Oracle auncio que ya no soportara raw device que sean asignados en forma directa a la base de datos.

Entonces que sucedera con los dispositivos raw?

solamente esta soportado en el Relase 12G en un almacenamiento ASM compuesto por raw device.
Si existen bases de datos 10g y 11g con dispositivos raw asignados en forma directa, estas bases no estan soportadas para realizar el upgrade. Entonces se deben migrar a un almacenamiento ASM compuestos por raw device, lo cual si esta soportado.

En el release 12G esto no esta permitido, ya que entrega errores:

SQL> create tablespace ABC DATAFILE '/dev/raw/ABC1.dbf' size 2GB;

Oracle recomienda a sus clientes usar ASM para agregar raw device a un diskgroup existente o crear un nuevo diskgroup en ASM.

La formas correctas de crear almacenamientos logicos (Tablespaces) es la siguiente:

opcion 1: Agregar un raw al diskgroup


SQL>alter diskgroup MYDG add disk '/dev/raw/ABC1.dbf';

opcion 2: Crear un nuevo diskgroup

SQL>create diskgroup MYDB EXTERNAL REDUNDANCY disk 'dev/raw/ABC1.dbf'


opcion 3: Utilizar el siguiente comando para crear el tablespace

SQL> create tablespace ABC DATAFILE '+MYDG' size 2GB;

Nota referencia: 578455.1 - Announcement of De-Support of using RAW devices in Release 12G


A continuacion revisaremos como configurar raw device como un almacenamiento compartido dentro de una configuracion de Clusterware en RHEL5.

Servidor Heretic

Este sevidor posee dos maquinas virtuales configuradas con vmware (vmrac1,vmrac2). El sistema operativo es un Linux Redhat 5 (RHEL5). Para el almacenamiento compartido he destinado un directorio en mi heretic (ubuntu) donde creare el almacenamiento:

heretic@heretic:~$ cd /u01/
app/ timesten/ VM/
heretic@heretic:~$ cd /u01/VM/shared/
heretic@heretic:/u01/VM/shared$ pwd
/u01/VM/shared

En este directorio se encuentran los discos creados con vmware. Para no tener problemas es necesario tener los permisos correspondientes de lectura y escritura.
cualquier modificacion debe ser realizada en ambos nodos, ya que debe ser simetrica en su configuracion de hardware y software.


Revisamos la configuracion de nuestra maquina virtual:



Agregando los discos:

Antes que todo, debemos verificar el espacio disponible para almancenar los nuevos discos, que componen el almacenamiento compartido.



Creacion de discos:

Es necesario seleccionar la opcion "Hard Disk", la cual nos permitira agregar un nuevo disco a la maquina virtual.



Seleccionando un nuevo drive:

En este proceso, se debe seleccionar el drive, si es uno existente o si existe una nueva particion para esto. En este caso elegimos la opcion "create a new Disk".




Seleccionando el tipo de Drive
:

En este caso seleccionamos SCSI que es el recomendado.



Capacidad de almacenamiento del nuevo Drive:

Dependiendo de la cantidad de espacio y requerimientos necesario para la creacion del alamcenamiento compartido, he asignado 8GB para este nuevo drive; pero no lo voy a asignar completamente. A medida que necesite espacio va ir creciendo hasta alcanzar 8GB.



Path de discos:

La ruta de los nuevos discos debe ser la definida como almacenamiento compartido para ambas maquinas.

ejemplo: /u01/VM/shared




Creacion de discos terminada:



Propiedades avanzadas:

Es necesario seleccionar el nuevo disco creado y asignar una controladora de discos SCSI. en este caso asigne la 0:13. De esta manera el disco es independiente de los ya configurados. Esto es por razones de performance, ya que podemos mover a otras controladoras los discos fisicos del servidor central y luego asignar nuevas controladoras virtuales a la maquinas en vmware y asi mantener una buen balanceo de I/O.




Hasta aqui tenemos asignados los discos a las maquinas vmrac1 y vmrac2. Posterior a esto debemos iniciar las maquinas virtuales para que reconozcan los discos asignados.



Una vez que todos los discos fueron detectados por Linux y no existieron problemas en el inicio del S.O, necesitamos crear la nueva particion, la cual esta relacionada al nuevo disco creado en vmware; pero que el sistema operativo lo interpreta como el siguiente dispositivo:

ejemplo : /dev/sdl

ejecutamos fdisk /dev/sdl para crear la nueva particion:



Aqui tenemos la nueva particion generada.

Como entonces el sistema operativo sabe que la nueva particion va a hacer utilizada como un dispositivo raw?

En el directorio /etc/udev/rules.d se encuentran los siguientes archivos:



Son dos archivos que hacen toda la magia:

1.- 60-raw.rules
2.- 99-raw-perms.rules


Modificando 60-raw.rules

Este archivo contiene la asignacion logica de la particion con respecto al raw que representa. Con esto el sistema operativo sabe que la particion sdl1 es asignada al dispositivo raw.

¿Y por que debemos definirlo?

La asignacion del dispotivo es dinamica en esta version de RHEL5. Entonces cada vez que se inicie el sistema no encontrara el dispositivo asignado.

ACTION=="add", KERNEL=="sdl1", RUN+="/bin/raw /dev/raw/raw1 %N"

Modificando 99-raw-perms.rules

En este archivo lo que se definen son los permisos para el dispositivo raw.

KERNEL=="raw[1-3]*", OWNER="root", GROUP="oinstall", MODE="640"
KERNEL=="raw[4-8]*", OWNER="oracle", GROUP="oinstall", MODE="644"


En este ejemplo he asignado para la configuracion de mi 10gRAC los dispositivos para OCR desde el raw1 al raw3 y definir que solamente tuviera permisos el root.
Por el contrario los archivos de votingdisk y ASM se asignan permisos solamente el usuario Oracle.

Es necesario reiniciar las maquinas virtuales para que reconozca los cambios realizados.

En cada una de las maquinas, debemos asignar los permisos necesarios y crear links simbolicos a los para cada raw device.

ln -s /dev/raw/raw1 /u01/oradata/ocr
ln -s /dev/raw/raw2 /u01/oradata/ocr1
ln -s /dev/raw/raw3 /u01/oradata/ocr2
ln -s /dev/raw/raw4 /u01/oradata/votingdisk
ln -s /dev/raw/raw5 /u01/oradata/votingdisk1
ln -s /dev/raw/raw6 /u01/oradata/votingdisk2
ln -s /dev/raw/raw7 /u01/oradata/asm1
ln -s /dev/raw/raw8 /u01/oradata/asm2


Asignacion de permisos:

Esto se debe hacer si por algun motivo en el proceso de instalacion del clusterware existen problemas de permiso.

chown oracle:oinstall /dev/raw/raw4
chown oracle:oinstall /dev/raw/raw5
chown oracle:oinstall /dev/raw/raw6
chown oracle:oinstall /dev/raw/raw7
chown oracle:oinstall /dev/raw/raw8
chmod 644 /dev/raw/raw1
chmod 644 /dev/raw/raw2
chmod 644 /dev/raw/raw3
chmod 644 /dev/raw/raw4
chmod 644 /dev/raw/raw5


Se concluye que este procedimento es standard y en la realidad debe ser realizado de igual manera ya sea virtualmente o fisicamente.

Saludos y a gozar!!!!

Monday, April 20, 2009

Instalando 9iR2 en RHEL5

Hace un tiempo he instalado Oracle 9iR2 en mi máquina con RHEL5 x86. La experiencia fue buena y en realidad hubo que aplicar varias librerias, problemas con el jre y también problemas con el dbca. Es cierto, siempre es mejor crear la base de datos con el comando "CREATE DATABASE".
Amigos, aquí va la forma de instalar.

Primer problema:

Al momento de instalar la primera libreria envío el primer mensaje:


[root@vmlinux1 Desktop]# rpm -Uvh compat-db-4.2.52-5.1.src.rpm
warning: compat-db-4.2.52-5.1.src.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
1:compat-db warning: user brewbuilder does not exist - using root
warning: group brewbuilder does not exist - using root
warning: user brewbuilder does not exist - using root
warning: group brewbuilder does not exist - using root
########################################### [100%]
warning: user brewbuilder does not exist - using root

Para solucionar este Warning, simplemente crear el gruṕo y el usuario "brewbuilder" y listo!!!!

Ejemplo:

groupadd brewbuilder
useradd brewbuilder

Explicación:

La cuenta brewbuilder pertenece a una cuenta de sistema de RedHat. Si esta cuenta no existe en el sistema, entonces este warning puede ser desplegado.

Prerequisitos de instalación Oracle9iR2 en (x86 RHEL5)

1.- Instalar la versión de Jre 1.3.1

Bajar desde http://java.sun.com/products/archive/j2se/1.3.1_19/index.html

2.- Los siguientes paquetes de sistema operativo deben estar instaldos.

gjdoc-0.7.7-12.el5.i386.rpm
antlr-2.7.6-4jpp.2.i386.rpm
compat-db-4.2.52-5.1.src.rpm
compat-gcc-34-3.4.6-4.i386.rpm
compat-libgcc-296-2.96-138.i386.rpm
compat-libstdc++-296-2.96-138.i386.rpm
compat-gcc-34-c++-3.4.6-4.i386.rpm
compat-libstdc++-33-3.2.3-61.i386.rpm
compat-gcc-32-3.2.3-47.3.i386.rpm
compat-gcc-32-c++-3.2.3-47.3.i386.rpm
gcc-4.1.1-52.el5.2.i386.rpm
gcc-c++-4.1.1-52.el5.2.i386.rpm
glibc-2.5-12.i386.rpm
glibc-devel-2.5-12.i386.rpm
glibc-headers-2.5-12.i386.rpm
libgcc-4.1.1-52.el5.2.i386.rpm
glibc-common-2.5-12.i386.rpm
compat-db-4.2.52-5.1.i386.rpm
libXp-1.0.0-8.1.el5.i386.rpm
libaio-devel-0.3.106-3.2.i386.rpm
openmotif21-2.1.30-11.EL5.i386.rpm
libXp-devel-1.0.0-8.1.el5.i386.rpm
libXau-devel-1.0.1-3.1.i386.rpm

Estos parches se deben bajar de Metalink y son importantes, sino la instalacion no se realizara existosa.

.- compat-libcwait-2.1-1.i386.rpm

.- compat-oracle-rhel4-1.0-5.i386.rpm
Este parche tienen como prerequisto las siguientes librerias, la cuales deben estar instaladas.

[root@localhost Desktop]# rpm -Uvh compat-oracle-rhel4-1.0-5.i386.rpm
error: Failed dependencies:
compat-gcc-32 is needed by compat-oracle-rhel4-1.0-5.i386
compat-gcc-32-c++ is needed by compat-oracle-rhel4-1.0-5.i386
libaio-devel is needed by compat-oracle-rhel4-1.0-5.i386
openmotif21 is needed by compat-oracle-rhel4-1.0-5.i386
xorg-x11-deprecated-libs-devel is needed by compat-oracle-rhel4-1.0-5.i386

Es muy importante tener en cuenta algunas librerias no se encuentran disponibles para RHEL5 ó para otras versiones, como por ejemplo RHEL4.
Las librerias de Centos5 son equivalentes a las de RHEL5. También las librerias de Centos4 son equivalentes a las de RHEL4. Ahora, considerar que correspondan a la misma palabra, ya sea de 32-bit a 32-Bit ó 64-bit a 64-bit


Editar /etc/syscl.conf y agragar los siguientes parámetros de Kernel:

kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default=262144
net.core.wmem_default=262144
net.core.rmem_max=262144
net.core.wmem_max=262144

#Estos parametros son un standard, dependiendo de la plataforma y recursos que tenga en la demanda, podran modificarse.
Para hacer visibles los cambios y no reiniciar el S.O puedes ejecutar el siguiente comando:

sysctl -p

Para verficar los cambios.

sysctl -a


3.- Descomprimir los discos para instalar

Primer paso:

$gunzip ship_9204_linux_disk1.cpio.gz
$gunzip ship_9204_linux_disk2.cpio.gz
$gunzip ship_9204_linux_disk3.cpio.gz

Segundo paso:

$cpio -idmv "<" ship_9204_linux_disk1.cpio
$cpio -idmv "<" ship_9204_linux_disk2.
$cpio -idmv "< "ship_9204_linux_disk3.cpio

Una vez instalado el motor Oracle9iR2 (9.2.0.4) y necesitan migrar a 9.2.0.8, esto se puede hacer en forma directa, instalando el siguiente parche:

Parche 4547809

Una vez instalado pueden crear bases de datos, la cuales tendran la version 9.2.0.8.

Problema con el DBCA

Al ejecutar el dbca se origina el siguiente sintoma:

[oracle@vmlinux1 oracle]$ dbca
/u01/product/oracle/jre/1.1.8/bin/../lib/i686/green_threads/libzip.so: symbol errno, version GLIBC_2.0 not defined in file libc.so.6 with link time reference (libzip.so)
Unable to initialize threads: cannot find class java/lang/Thread
Could not create Java VM



oracle@vmlinux1 9.2.0]$ cd $ORACLE_HOME
oracle@vmlinux1 9.2.0]$ cd JRE
[oracle@vmlinux1 JRE]$ ls
bin CHANGES ControlPanel.html COPYRIGHT lib LICENSE plugin README Welcome.html
[oracle@vmlinux1 JRE]$ cd bin
[oracle@vmlinux1 bin]$ ln -s java jre
[oracle@vmlinux1 bin]$ cd /u01/product/oracle/jre/1.3.1/bin/

[oracle@vmlinux1 bin]$dbca

jre was not found in /u01/product/oracle/1.3.1/bin/i386/native_threads/jre

[oracle@vmlinux1 bin]$ /u01/product/oracle/1.3.1/bin
[oracle@vmlinux1 bin]$ cd i386/
[oracle@vmlinux1 i386]$ cd native_threads/
[oracle@vmlinux1 native_threads]$ ln -s java jre

Esto soluciona el problema de ejecucion del utilitario dbca.

Saludos.