miércoles, 30 de marzo de 2011

Instalación de 11gR1 con ASM. Parte 2: Instalando ASM Libs

ASM viene a simplificar notoriamente las tareas de administración de la base de datos. Ya no es necesario que los DBAs nos quebremos el coco pensando en qué discos dejamos los datafiles, dividiendo índices grandes, tablas grandes y otros tantos criterios para distribuir los archivos y por consiguiente la carga de I/O en los discos.

Lo primero que haremos para comenzar a utilizar ASM es revisar nuestra configuración de discos duros en nuestra máquina. Revisamos los discos que tenemos disponibles ejecutando el siguiente comando:

ls /dev/sd*

Obtendremos una salida como la siguiente:

El dispositivo /dev/sda posee dos particiones: sda1 y sda2.
El resto de los discos está sin particionar. Debemos particionar cada uno de esos discos con fdisk
Ejecutamos el comando de la siguiente forma con cada disco:

[root@laboracle ~]# fdisk /dev/sdb

The number of cylinders for this disk is set to 1044.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
   (e.g., DOS FDISK, OS/2 FDISK)

Command (m for help): n --> Acá responder n(ew)
Command action
   e   extended
   p   primary partition (1-4)
p --> Acá responder p(rimary)
Partition number (1-4): 1 --> Acá 1
First cylinder (1-1044, default 1): --> Presionar Enter para elegir valor por defecto
Using default value 1 --> Presionar Enter para elegir valor por defecto
Last cylinder or +size or +sizeM or +sizeK (1-1044, default 1044): --> Presionar Enter para elegir valor por defecto
Using default value 1044

Command (m for help): w --> Acá responder w(rite) para escribir los cambios
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

Esto se debe hacer con cada disco desde el sdb al sde.

Instalación de ASM Libs
Para configurar ASM utilizaremos ASMLib. ASMLibs simplifica la utilización de discos sin tener que utilizar raw devices. Para saber qué versión de ASMLib necesitamos es necesario ejecutar el siguiente comando:

[root@laboracle ~]# uname -r
2.6.18-194.el5

Con esta salida debemos buscar los paquetes de rpm necesarios desde el sitio de Oracle. Pueden acceder haciendo clic acá. Clic en la sección de Red Hat 5:


En la página siguiente buscar la sección Intel IA32 (x86) Architecture:




Luego buscar los siguientes 3 paquetes:

Bajo de Libray and Tools:
  • oracleasm-support-2.1.4-1.el5.i386.rpm
  • oracleasmlib-2.0.4-1.el5.i386.rpm
Más abajo se debe buscar el siguiente paquete



Debe coincidir exactamente con la versión del kernel de nuestra máquina. Una vez que tenemos dichos paquetes, procedemos a instalarlos ejecutando el siguiente comando:

rpm -ivh oracleasm-2.6.18-194.el5-2.0.5-1.el5.i686.rpm  oracleasmlib-2.0.4-1.el5.i386.rpm oracleasm-support-2.1.4-1.el5.i386.rpm

Debemos obtener una salida como esta:


Ahora es necesario configurar ASM para que se cargue el módulo necesario en el kernel. Ejecutar el comando:

/etc/init.d/oracleasm configure

Debemos obtener algo similar a lo siguiente, respondiendo a las preguntas que se realizan para configurar ASM:

[root@laboracle ~]# /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 []: oinstall
Start Oracle ASM library driver on boot (y/n) [n]: y
Scan for Oracle ASM disks on boot (y/n) [y]:
Writing Oracle ASM library driver configuration: done
Initializing the Oracle ASMLib driver:                     [  OK  ]
Scanning the system for Oracle ASMLib disks:               [  OK  ]


Ahora podemos presentar nuestros discos a ASM. Para ello ejecutamos los siguientes comandos:

/etc/init.d/oracleasm createdisk VOL1 /dev/sdb1
/etc/init.d/oracleasm createdisk VOL2 /dev/sdc1
/etc/init.d/oracleasm createdisk VOL3 /dev/sdd1
/etc/init.d/oracleasm createdisk VOL4 /dev/sde1

Si todo va bien obtendremos algo como esto:

[root@laboracle ~]# /etc/init.d/oracleasm createdisk VOL1 /dev/sdb1
Marking disk "VOL1" as an ASM disk:                        [  OK  ]
[root@laboracle ~]# /etc/init.d/oracleasm createdisk VOL2 /dev/sdc1
Marking disk "VOL2" as an ASM disk:                        [  OK  ]
[root@laboracle ~]# /etc/init.d/oracleasm createdisk VOL3 /dev/sdd1
Marking disk "VOL3" as an ASM disk:                        [  OK  ]
[root@laboracle ~]# /etc/init.d/oracleasm createdisk VOL4 /dev/sde1
Marking disk "VOL4" as an ASM disk:                        [  OK  ]

Para comprobar que están los discos presentados ejecutamos el siguiente comando:

/etc/init.d/oracleasm listdisks

Debemos obtener una salida como esta:


Ahora estamos en condiciones de instalar la base de datos con ASM.






Instalación de 11gR1 con ASM. Parte 1: Prerequisitos de Linux

Antes de instalar Oracle debemos realizar una serie de pasos previos, como creación de cuentas de usuario, grupos, cambios de parámetros del kernel. Se utilizará la documentación oficial de Oracle disponible en el sitio web de Oracle.
Para ello los pasos a seguir son:

1. Creación de cuentas de usuario para Oracle. Para ello con el usuario root debemos ejecutar lo siguiente:


# /usr/sbin/groupadd oinstall
# /usr/sbin/groupadd dba
# /usr/sbin/useradd -g oinstall -G dba oracle

Ahora colocar una clave al usuario oracle:

passwd oracle
Changing password for user oracle.
New UNIX password:
BAD PASSWORD: it is based on a dictionary word
Retype new UNIX password:
passwd: all authentication tokens updated successfully.

2. Ahora debemos cambiar parámetros del kernel. Para ello ejecutamos los siguientes comandos:

echo "#Parametros de configuracion para oracle" >> /etc/sysctl.conf
echo fs.file-max = 6815744 >> /etc/sysctl.conf
echo kernel.shmmni = 4096 >> /etc/sysctl.conf
echo kernel.sem = 250 32000 100 128 >> /etc/sysctl.conf
echo net.ipv4.ip_local_port_range = 1024 65500 >> /etc/sysctl.conf
echo net.core.rmem_default = 4194304 >> /etc/sysctl.conf
echo net.core.rmem_max = 4194304 >> /etc/sysctl.conf
echo net.core.wmem_default = 262144 >> /etc/sysctl.conf
echo net.core.wmem_max = 1048576 >> /etc/sysctl.conf

Luego para hacer efectivos los cambios ejecutamos lo siguiente:

sysctl -p

Ahora debemos cambiar la cantidad de archivos que puede tener abierto el usuario. Ejecutamos lo siguiente:

echo "#Cambios para Oracle" >> /etc/security/limits.conf
echo oracle           soft    nproc   2047 >> /etc/security/limits.conf
echo oracle           hard    nproc   16384 >> /etc/security/limits.conf
echo oracle           soft    nofile  1024 >> /etc/security/limits.conf
echo oracle           hard    nofile  65536 >> /etc/security/limits.conf

3. Instalación de paquetes de RedHat necesarios para instalar Oracle. En Centos 5 se deben instalar los siguiente paquetes:

binutils-2.17.50.0.6-2.el5
compat-libstdc++-33-3.2.3-61
elfutils-libelf-0.125-3.el5
elfutils-libelf-devel-0.125
glibc-2.5-12
glibc-common-2.5-12
glibc-devel-2.5-12
glibc-headers-2.5-12
gcc-4.1.1-52 -->instalado para VM Additions
gcc-c++-4.1.1-52
libaio-0.3.106
libaio-devel-0.3.106 
libgcc-4.1.1-52
libstdc++-4.1.1 
libstdc++-devel-4.1.1-52.e15
make-3.81-1.1
numactl-devel-0.9.8.i386
sysstat-7.0.0
unixODBC-2.2.11
unixODBC-devel-2.2.11

Adicionalmente necesitamos este paquete:



elfutils-libelf-devel-static-0.137-3.el5.i386.rpm



Para chequear si un paquete está compilado puede ejecutar la siguiente consulta:

rpm -qa | grep binutils- . Se sugiere no colocar el nombre completo del paquete sino que solo parte. Si el paquete está instalado entregará una salida como esta:



[root@laboracle ~]# rpm -qa | grep binutils-
binutils-2.17.50.0.6-14.el5


Se deben instalar todos los paquetes que no estén ya instalados en nuestra máquina. Si hemos seguido los pasos anteriores, solo deberían ser necesario instalar los que instalaremos a continuación.
Montamos nuestro DVD de CentOS tal como vimos en otra ocasión y nos vamos a /media/CentOS_5.5_Final/CentOS. Ejecutamos el siguiente comando:




rpm -ivh compat-libstdc++-33-3.2.3-61.i386.rpm elfutils-libelf-devel-0.137-3.el5.i386.rpm  gcc-c++-4.1.2-48.el5.i386.rpm libaio-devel-0.3.106-5.i386.rpm libstdc++-devel-4.1.2-48.el5.i386.rpm unixODBC-2.2.11-7.1.i386.rpm unixODBC-devel-2.2.11-7.1.i386.rpm elfutils-libelf-devel-static-0.137-3.el5.i386.rpm sysstat-7.0.2-3.el5.i386.rpm

Si todo va sin problemas obtendremos una salida como esta:



4. Creación de directorios para la instalación de Oracle. Ejecutar lo siguiente:

mkdir -p /u01/app/
chown -R oracle:oinstall /u01/app/
chmod -R 775 /u01/app/

Ahora debemos cambiar el profile del usuario oracle. Ejecutar lo siguiente:

#su - oracle
$echo umask 022  >> $HOME/.bash_profile
$echo ORACLE_BASE=/u01/app/oracle >> $HOME/.bash_profile
$echo export ORACLE_BASE >> $HOME/.bash_profile

Ahora estamos en condiciones de pasar al paso 2: Configuración de ASM.

jueves, 24 de marzo de 2011

Instalación de VBox Aditions en CentOS 5.5

La forma más cómodo y práctica de trabajar con la máquina virtual es instalando las Additions de VirtualBox.
Antes de instalarlas necesitamos agregar paquetes de software adicionales:

kernel-devel-2.6.18-194.el5.i686.rpm
gcc-4.1.2-48.el5.i386.rpm
gcc-4.1.2-48.el5.i386.rpm
libgomp-4.4.0-6.el5.i386.rpm
glibc-devel-2.5-49.i386.rpm
glibc-headers-2.5-49.i386.rpm
kernel-headers-2.6.18-194.el5.i386.rpm
libgomp-4.4.0-6.el5.i386.rpm

Montamos nuestro DVD de CentOS de la lista rápida de dispositivos:



Damos clic con el botón derecho del mouse sobre el escritorio y seleccionamos la opción Open Terminal


Vamos al directorio /media/CentOS_5.5_Final/CentOS/ y agregamos los paquetes de CentOs necesarios para instalar las Guest Additions con el siguiente comando:

rpm -ivh gcc-4.1.2-48.el5.i386.rpm  libgomp-4.4.0-6.el5.i386.rpm glibc-devel-2.5-49.i386.rpm glibc-headers-2.5-49.i386.rpm kernel-headers-2.6.18-194.el5.i386.rpm libgomp-4.4.0-6.el5.i386.rpm kernel-devel-2.6.18-194.el5.i686.rpm

Debería aparecer algo similar a la imagen:


Luego de instalados los paquetes cerramos la consola para liberar el cd y lo desmontamos haciendo clic en Eject.


Ahora seleccionamos la opción Dispositivos -> Instalar Guest Additions tal como indica la figura siguiente:


En el escritorio aparecerá el nuevo disco montado.  Abrimos una terminal y entramos al directorio /media/VBOXADDITIONS_4.0.4_70112/ y ejecutamos el siguiente comando:

bash VBoxLinuxAdditions.run

Comenzará la instalación de las Additions. Si todo resulta bien veremos una imagen como la de abajo:


Ahora reiniciamos la máquina virtual con el comando reboot para aplicar los cambios.

miércoles, 23 de marzo de 2011

Creación de máquina virtual para CentOs en VirtualBox

La primera entrada de este blog será la creación de una máquina virtual con VirtualBox y la instalación posterior de CentOs 5. Posteriormente en esta máquina virtual se instalará Oracle Database 11GR1 con ASM.
Comenzemos con lo básico, generar la máquina virtual. La máquina tendrá las siguientes características:

- Memoria RAM: 1024MB
- Disco Duro: - 1 de 12GB
                      - 4 de   8GB
- Arquitectura de 32 bits
- Sistema Operativo: CentOs 5.5 (Pueden bajarlo acá)

Comenzamos a generar la máquina virtual con el asistente de Virtual Box. Al ejecutar el asistente nos da la Bienvenida, damos clic en Next.


A continuación debemos ingresar el nombre de la máquina virtual y en la lista de sistemas operativos elegimos Linux / RedHat
Debemos especificar el tamaño de la memoria que tendrá nuestra máquina, en nuestro caso serán 1024MB. Este valor es dinámico y se puede subir después.


Luego se especifica si vas a utilizar un disco existente o crear uno nuevo desde cero. Se pueden utilizar discos  de Vmware acá. En nuestro caso crearemos un nuevo disco:


Y a continuación se ejecutará el asistente para nuevos discos virtuales:


Existen dos opciones para el almacenamiento: Dinámica y Fija. Dinámica quiere decir que en la medida que se vaya utilizando espacio en el disco, este irá creciendo, es decir, cuando creemos un disco de 12Gb este pesará en principio solo unos kilos y después irá creciendo para llegar al máximo de 12Gb.
Almacenamiento de tamaño fijo indica que se utilizarán de inmediato los 12Gb. En nuestro caso utilizaremos almacenamiento dinámico:


Especificamos rutas y tamaño del disco


Ahora tenemos lista nuestra máquina con el primer disco. A continuación creamos los 4 discos restantes en el administrador de discos virtuales. Seleccionamos la máquina virtual y luego damos clic en Configuración. 



Seleccionamos la pestaña almacenamiento y el controlador SATA. Luego clic en el icono para agregar un nuevo disco.


VirtualBox le preguntará si desea crear un nuevo disco o utilizar uno existente.. Para nuestro caso crearemos un nuevo disco.


Luego se nos pedirá elegir el tipo de almacenamiento.


Creamos un disco de 8GB:


En la próxima ventana confirmamos la operación y damos clic en Terminar. Debemos repetir este paso para agregar 3 discos adicionales. Tendremos algo como lo que aparece en la figura siguiente:


En este momento estamos listos para instalar CentOS 5. Eso será publicado en una entrada siguiente de este Blog.

saludos!,


Instalación de CentOS 5.5 en VirtualBox

Ahora realizaremos la instalación de CentOs sobre nuestra máquina virtual. Lo primero es montar nuestro ISO en el lector de CD virtual en VirtualBox. Vamos a la opción de configuración de nuestra máquina virtual, seleccionamos el controlador IDE y luego clic en el botón Configurar la unidad virtual tal como muestra la figura inferior:


Seleccionamos la imagen y luego clic en Aceptar.

Ahora damos clic en Iniciar y arrancará nuestra máquina virtual para instalar CentOS. VirtualBox enviará una advertencia al arrancar indicando que si hacemos clic en la máquina virtual los movimientos del teclado y mouse serán capturados dentro de la máquina virtual. Clic en Aceptar. Se puede salir de la máquina virtual presionando la tecla CTRL Derecha (sí, solo la derecha). Cuando la máquina haya arrancaso, debemos presionar Enter para continuar con la instalación:


Aparecerán advertencias sobre la integración del mouse, puede ignorar futuras alertas haciendo clic en Aceptar.
Luego CentOS le preguntará si desea hacer prueba del CD. Saltamos dicho paso seleccionando la opción Skip.


Ahora deberíamos ver la interfaz gráfica de CentOS. Clic en Next.
En mi caso particular es más cómodo trabajar con el sistema operativo en Inglés, por lo tanto selecciono dicho idioma de las opciones y clic en Next


Aunque utilizaremos la interfaz en inglés, el teclado será con distribución latinoamericana


Ahora veremos una advertencia indicando que la tabla de particiones de nuestro disco no se puede leer. Clic en Yes para reinicializarlos.


En la siguiente pantalla se nos solicita indicar los discos a utilizar. Solo dejar seleccionado el disco sda, el resto no lo utilizaremos ahora:


Se le solicitará confirmar la operación. Damos clic en Yes.


En esta pestaña debemos configurar la IP. La recomendación de Oracle es utilizar IP fija, pero como esto es un laboratorio lo dejaremos con ip dinámica. En mi caso le daré el nombre de host laboracle.pruebas.com a la máquina

Seleccionamos la zona horaria correspondiente a nuestra zona y clic en Next.


Especificamos una clave para el usuario root y clic en Next.

Este paso es muy importante. Acá se deben seleccionar los paquetes a instalar que para la instalación de Oracle serán los paquetes por defecto, luego personalizaremos dichos paquetes:


Estamos listos para comenzar la instalación. Damos un clic en Next.


Mientras podemos ir por un café, un jugo o mirar un rato Los Simpsons.


Una vez que haya finalizado la instalación veremos una pantalla  Damos clic en Dispositivos -> Dispositivos CD/DVD -> Nombre del archivo, como aparece en la imagen siguiente para desmontar el CD


Y luego clic en Reboot.


Una vez que haya arrancado CentOS quedarán algunos pasos adicionales que realizar. Lo primero es
clic en Forward para continuar.


Por recomendación de Oracle, dejaremos el Firewall desactivado. Clic en Next.


CentOS nos pedirá confirmar la operación, clic en Yes.

En la siguiente ventana, des-habilitaremos SELinux:


Nuevamente se nos solicita confirmar la operación y se nos advierte que será necesario reiniciar. Clic en Yes.


En esta ventana es posible elegir si nuestro servidor actualizará la hora de forma automática. Clic en Enable Network Time Protocol.


Ahora CentOS solicita crear un nuevo usuario. Clic en Forward para saltar este paso.


Nuevamente solicita confirmar la operación, clic en Continue.


Ahora viene una prueba de sonido. Para nuestro servidor esto no será algo relevante así que damos clic en Forward.


En la siguiente ventana damos clic en Forward.


Ahora nuestro sistema está listo, clic en OK para reiniciar.


Estamos listos para utilizar nuestra máquina virtual. Especificamos las credenciales y podemos comenzar a personalizarla. Esto se verá en una próxima ocasión.