1 Instalación de VirtualBox 4.1.2 sobre Ubuntu 10.0.4
- Se agrega en Synaptic, el repositorio correspondiente:deb http://download.virtualbox.org/virtualbox/debian lucid contrib non-free
- Del sitio web de VirtualBox se descarga la clave pública oracle_vbox.asc, y se la agrega al sistema:sudo apt-key add oracle_vbox.asc
- Se procede con la instalación:sudo apt-get updatesudo apt-get install virtualbox-4.1
2 Instalación de RedHat Enterprise 5.7 – Desktop
2.1 Creación de la máquina virtual
Se crea la máquina virtual con opciones por
defecto, pero los archivos de VirtualBox se deben ubicar en una
unidad con 100GB aproximadamente en el sistema anfitrión; para esto
sugiero montar una partición en una ubicación como /datos.
La memoria que se debe asignar a la máquina
virtual debe ser de 2.9GB al menos, para soportar la infraestructura
Oracle que se va a instalar y la instancia standalone del curso. Se
le asigna un procesador y 128MB para vídeo.
Únicamente se debe tener atención de los
siguientes puntos para evitar advertencias y mantener un desempeño
aceptable.
2.1.1 Creación del disco para el SO
Para el sistema operativo que se va a instalar se
crea una unidad de expansión dinámica en el formato nativo de
VirtualBox, con un tamaño máximo de 20GB.
2.1.2 Configuraciones adicionales
Una vez creada la máquina, se activa la caché de
E/S para el disco de la máquina, y se agrega el usuario del sistema
operativo anfitrión al grupo vboxusers mediante el comando:
sudo usermod -a -G vboxusers oracle
Donde oracle es el usuario anfitrión.
Finalmente, se debe instalar el paquete de adiciones para el
anfitrión:
Oracle_VM_VirtualBox_Extension_Pack-4.1.2-73507.vbox-extpack
El cual puede ser descargado del sitio de
VirtualBox, y debe coincidir en versión con la distribución
instalada de VirtualBox.
Para la instalación del paquete de extensión se
debe primero asociar el binario descargado
(Oracle_VM_VirtualBox_Extension_Pack-4.1.2-73507.vbox-extpack)
a la instalación de VirtualBox (menú archivo > preferencias >
extensiones) y luego usar el menú de la máquina virtual en
ejecución, la opción “Install Guest Additions”. Esto monta una
imagen en la máquina huesped, que contiene entre otros ejecutables
el archivo VboxLinuxAdditions.run, el cual debe ejecutarse
como root luego de haber afinado el sistema hasta llegar la
sección 3.6 del presente documento.
2.2 Instalación del SO
El sistema operativo se instala con las opciones
por defecto para la configuración de red, se deshabilitan las
opciones de corta fuegos y de seguridad adicionales, así como se
omite cualquier opción de cifrado.
Se omiten también la instalación de paquetes de
sonido y de oficina, para conseguir mayor espacio disponible.
La configuración de particiones sobre el disco de
20GB creado incluye 1 partición SWAP de aproximadamente 3848MB , y
el resto de espacio para el montaje del sistema de archivos de Linux
( / ).
La contraseña para root será “oracle”,
y se creará un usuario oracle con contraseña “oracle”.
En general y por tratarse de un curso, la contraseña que se
utilizará para todo siempre será “oracle”.
Durante la instalación se deshabilita el corta
fuegos del servidor, ya que se requerirá realizar una gran cantidad
de operaciones que podrían fallar si el corta fuegos estuviera
habilitado.
3 Instalación de Oracle Grid Infrastructure
La Infraestructura de Grilla de Oracle para
un servidor standalone, es software de soporte para la base de datos,
ASM (sistema de archivos y manejador de volúmenes) y para Oracle
Restart.
3.1 Requisitos de memoria
- Mínimo recomendado para memoria RAM (Infraestructura + Server): 2.5GB
- Valor recomendado para memoria RAM (Infraestructura + Server): 4GB
- SWAP para memoria de 2GB a 16GB, en igual tamaño que la memoria RAM.
Comandos importantes:
free – para conocer el estado de la
memoria
grep MemTotal /proc/meminfo – para
conocer el total de memoria real
grep SwapTotal /proce/meminfo – para
conocer el total de memoria SWAP
3.2 Requisitos de espacio en disco
- Para la infraestructura, 2.3GB libres bajo /
- Para el proceso de instalación, 1GB en /tmp
Comandos importantes:
df -kh – para conocer el espacio
disponible en disco
3.3 Configuración del ambiente
3.3.1 Configuraciones básicas
Se deberán seguir las siguientes acciones:
- Si no lo estuviera, se debe habilitar el usuario root, lo cual generalmente se podría hacer con el comando.$> sudo passwd rootEn sistemas redhat el usuario root se configura durante la instalación del SO.
- Crear la variable $ORACLE_BASE. Para esto se deben agregar las siguientes instrucciones al final del archivo /etc/bashrc (archivo de comandos invocado por no-login shells):ORACLE_BASE=/u01/app/oracleexport ORACLE_BASE
- En el archivo ~/.bash_profile se incluyen las siguientes instrucciones:ORACLE_HOME=$ORACLE_BASE/product/11.2.0/gridORACLE_SID=+ASMPATH=$PATH:$ORACLE_HOME/binexport ORACLE_HOME ORACLE_SID PATH
- Establecer umask1 a 022 para el usuario dueño de la instalación (en este caso oracle), con esto se asegura que el programa de instalación creará archivos con permisos 755 (u:111 – g:101 – o:101; o lo que es lo mismo, 0 : rwx – 2 : rx – 2 : rx ), es decir, con esto se asegura que los archivos que crea el usuario dueño de la instalación son seguros (root tiene umask 022, un usuario en general tiene 002).Para saber cuál es el modo del usuario actual se usa2:$> umask -SPara establecer el modo para el usuario, se considera el orden de llamadas de scripts para login shells, dado que la instalación se realizará con el usuario oracle, por esta razón se modifica el archivo /etc/bashrc.$> su$> gedit /etc/bashrcSe agrega el siguiente código luego de las instrucciones de inicialización de umask originales del script:if [$UID = 500]; thenumask 022fi
- Los recursos disponibles para el usuario oracle se pueden ver con el comando ulimit3:$> ulimit -aPara poder realizar la instalación de la infraestructura, se requiere que el máximo de descriptores de archivos abiertos sea de al menos 65536. Este valor se debe modificar para el usuario oracle editando el archivo /etc/security/limits.conf:$> su$> gedit /etc/security/limits.confEn el cual se agregan las siguientes líneas:oracle soft nofile 4096oracle hard nofile 65536Lo cual permite que se pueda ejecutar desde el archivo ~/.bash_profile el comandoulimit -n 65536Estos cambios se aplican con el reinicio del sistema. Una buena referencia de estas configuraciones se puede revisar en http://www.puschitz.com/TuningLinuxForOracle.shtml.
3.3.2 Parámetros del núcleo
- Los parámetros del núcleo recomendados para una instalación standalone 11g son:
kernel.shmall
= 2097152
kernel.shmmax
= 536870912
kernel.shmmni
= 4096
kernel.sem =
250 32000 100 128
fs.file-max =
6815744
net.ipv4.ip_local_port_range
= 9000 65500
net.core.rmem_default
= 4194304
net.core.rmem_max
= 4194304
net.core.wmem_default
= 262144
net.core.wmem_max
= 1048576
fs.aio-max-nr
= 1048576
- Los parámetros del servidor pueden ser revisados ejecutando el comando$> /sbin/sysctl -A
- Para modificar los parámetros que no coincidan con lo recomendado por Oracle, se debe modificar el archivo /etc/sysctl.conf, y una vez hechas las modificaciones se debe ejecutar el comando indicado a continuación (para que los cambios apliquen sin necesidad de reiniciar el servidor):$> /sbin/sysctl -p
3.3.3 Usuarios, grupos y variables
- Para poder instalar la instancia de ASM y la infraestructura, se requiere crear un usuario y grupos con privilegios determinados. Considerando que durante la instalación del SO (sección 2.2) se creó ya un usuario oracle, únicamente se agrega el usuario a los grupos creados (si el usuario no existiera, se usaría el comando ./useradd -g oinstall -G dba oracle):
$> su
$> cd
/usr/sbin
$>
./groupadd -g 1000 oinstall
$>
./groupadd -g 1200 dba
$>
./usermod -g oinstall -G dba oracle
$> mkdir -p
/u01/app/11.2.0/grid
$> mkdir -p
/u01/app/oracle
$> chown -R
oracle:oinstall /u01
$> chmod -R
775 /u01
Los identificadores para usuario y grupos son
recomendados, pero por seguridad, se pueden listar los usuarios del
sistema revisando el contenido del archivo /etc/passwd4:
$> cat
/etc/passwd | grep home
En el caso documentado
por el presente documento, el usuario oracle tendrá ya un
identificador, que se puede mantener.
3.3.4 Configuración de red
- El SO necesita una dirección IP fija, y una interfaz de loopback5 (que en sistemas RedHat es configurada por defecto, así como el nombre por defecto del servidor6). Si la dirección del servidor estuviera siendo asignada por DHCP, es conveniente establecerla como fija; para conocer la información general de las interfaces de red del equipo se utiliza el comando:
$> ifconfig
- Para conocer la dirección del gateway (necesaria para la configuración fija), se utiliza el comando:
$> route -n
Cuya salida incluirá
una entrada marcada como UG (up / gateway).
- Además, de asignar un IP estático al equipo, se debe modificar el archivo /etc/hosts, para registrar dicho IP y asociarlo a un nombre con el cual se registrará el equipo durante la instalación:$> su$> gedit /etc/hostsAgregar en el archivo de hosts:IP_CONFIGURADO server11gNNAA
En donde NNAA podrían ser las iniciales de los
nombres y apellidos, e IP_CONFIGURADO es el número que se asignó
en el paso anterior.
- Para reiniciar las interfaces de red del servidor, se usan los comandos:
$> su
$>
/etc/init.d/network restart
- Hechos los cambios en la configuración de red, es posible que el servicio sendmail tarde varios minutos en levantarse al no poder ubicar un DNS, lo cual repercute en el tiempo de inicio del sistema operativo. Esto puede ser atendido modificando el nivel de ejecución del servicio sendmail, mediante el comando7:$> su$> /sbin/chkconfig --level 5 sendmail off
3.3.5 Configuración del driver para las librerías de ASM
- El software dependerá de la versión del núcleo del SO. Para conocer cuál es la versión del núcleo, se ejecuta el comando:
$> uname
-rm
- Dependiendo del valor mostrado, se descargarán del sitio de Oracle las librerías apropiadas. Por ejemplo, si la ejecución del comando retorna:
$> uname
-rm
$>
2.6.18-274.el5 i686
- Se deberán descargar del sitio de Oracle los ejecutables que correspondan exactamente:
oracleasm-support-2.1.7-1.el5.i386.rpm
oracleasm-2.6.18-274.el5-2.0.5-1.el5.i686.rpm
oracleasmlib-2.0.4-1.el5.i386.rpm
- Para instalar el software se deben colocar los archivos en un directorio al cual se pueda acceder y se los instala como root. Se utiliza el comando siguiente:$> /bin/rpm -Uvh oracleasm-support-2.1.7-1.el5.x86_64.rpm \ oracleasm-2.6.18-274.el5-2.0.5-1.el5.x86_64.rpm \ oracleasmlib-2.0.4-1.el5.x86_64.rpm
- Para inicializar ASM se requiere conocer el ID del usuario dueño de la instalación y el grupo al cual pertenecerá la interfaz de ASM que se está instalando (el driver):$> id oracle
- Para realizar la configuración se debe ejecutar:$> /etc/init.d/oracleasm configure
Los valores que se
utilizarán son:
UID: el ID del
usuario oracle
GID: el ID del
grupo dba creado en el numeral 3.3.3
Iniciar el driver al
iniciar el SO: sí
Escanear por discos
ASM al arrancar el SO: sí
3.4 Oracle ASM – definiciones
Software de la base de datos Oracle (Oracle
Installation Software): El software de una instalación de servidor
de bases de datos Oracle.
- Oracle Configuration Asistant (OCA): Programa de creación y configuración de bases de datos.
- Oracle Restart: Software que permite el reinicio automático de la instancia de base de datos, Oracle Net Listener, Servicios de la base de datos, y OASM.
- Oracle Automatic Storage Management (OASM): Software especializado, manejador de volúmenes y sistema de archivos que soporta instalaciones de una sola instancia e instalaciones tipo clúster.
- Oracle Automatic Storage Management Cluster File System (OACFS): Permite trabajar a ASM en ambientes tipo cluster tanto como en ambientes de una sola instancia.
- Oracle Automatic Dymanic Volumen Manager (OADVM): Manejador de volúmenes que utiliza OASM.
- Oracle ASM Configuration Asistant (OASMCA): En versiones 10g, la configuración de ASM estaba delegada al OCA. En versiones 11g existe este programa para dicho fin. OASMCA es parte de Oracle Grid Infraestructure.
- Oracle Grid Infraestructure: Software de Oracle que provee soporte a nivel de sistema para OASM. OACFS, Oracle Restart y para el software de la base de datos en sí mismo.
3.5 Consideraciones para la instalación de OASM
- ¿Se va a utilizar ASM para DB files? ¿Para recovery files? ¿Para ambos? Esta alternativa se puede decidir durante la creación y configuración de una base de datos cuando se realiza esto en modo AVANZADO.
- ¿Qué nivel de redundancia se va a utilizar? ASM provee 3 niveles:
- Redundancia externa: Oracle ASM no refleja los contenidos de sus grupos de discos. Se recomienda esta opción cuando el SO provee redundancia por RAID.
- Redundancia normal: A este nivel ASM provee por defecto espejamiento de dos vías para archivos de datos (data files) y de tres vías para archivos de control (control files), aunque esto puede ajustarse a un menor nivel si fuese lo requerido. Para usar redundancia normal, se requieren al menos dos grupos de discos de fallo (dos dispositivos de disco). El espacio efectivo disponible en disco en un esquema de este tipo, es igual a la mitad de la suma del espacio disponible en ambos discos.
- Alta Redundancia: Se requieren al menos tres grupos de discos de fallo (tres dispositivos) y el espejamiento se realiza en tres vías para data files y en cuatro vías para control files.
- ¿Cómo configurar los grupos de discos (failure groups)? Conceptos relevantes relacionados con alta disponibilidad de discos pueden encontrarse en:
- Considerando lo anterior, y si existieran discos candidatos para la instalación de ASM, se debe cuidar que:
- El dueño de la instalación de ASM debe ser también dueño de los dispositivos (de los discos, como /dev/sdb1 por ejemplo).
- Aunque es posible instalar ASM sobre particiones hechas sobre un disco, lo recomendado por Oracle es usa discos para conformar los grupos de discos de ASM.
- Todos los dispositivos de un mismo grupo deben tener la misma capacidad y el mismo desempeño.
- ¿Se puede usar LVM con ASM? Oracle recomienda no hacer esto, pues ASM es en sí un manejador de volúmenes.
3.6 Configuración previa a la instalación de OASM
Si se han revisado y cumplido los pasos descritos
en las secciones 3.1 a 3.5, se puede proceder a instalar OASM.
- Atendiendo lo recomendado, se agregan a la máquina virtual 2 discos de tamaño fijo sobre el controlador SATA existente. Cada disco tiene 8GB de espacio. El SO reconoce los nuevos discos al ser iniciado.
- Para verificar el estado de los discos, se ejecuta el comando /sbin/fdisk -l como root. Los discos no inicializados aparecerán sin una tabla de particiones válida, nombrados como /dev/sdb, dev/sdc, etc.
- Para cada disco disponible (/dev/sdb, /dev/sdc, etc), se utiliza el siguiente comando para su inicialización:$> /sbin/fdisk /dev/sdbLas opciones del diálogo de consola que se utilizan son:n (nuevo)p (primary partition)default (primer cilindro)default (último cilindro)w (fin de comando)Hecho esto se habrán creado particiones primarias no formateadas en cada disco. Por ejemplo, para el disco /dev/sdb se creará la partición /dev/sdb1.
- Para crear los discos para ASM se ejecutan los comandos:/etc/init.d/oracleasm createdisk vol1 /dev/sdb1/etc/init.d/oracleasm createdisk vol2 /dev/sdc1etc... si se quisieran configurar más discos, en este caso se inicializan y configuran 4 discos.El resultado de la ejecución del comando es:[root@localhost dev]# /etc/init.d/oracleasm createdisk vol1 /dev/sdb1Marking disk "vol1" as an ASM disk: [ OK ][root@localhost dev]# /etc/init.d/oracleasm createdisk vol2 /dev/sdc1Marking disk "vol2" as an ASM disk: [ OK ][root@localhost dev]# /etc/init.d/oracleasm createdisk vol3 /dev/sdd1Marking disk "vol3" as an ASM disk: [ OK ][root@localhost dev]# /etc/init.d/oracleasm createdisk vol4 /dev/sde1Marking disk "vol4" as an ASM disk: [ OK ]
- El siguiente paso es crear los directorios para la base de datos y para la infraestructura grid. Debe recordarse que se creó anteriormente una variable que concuerda justamente con el directorio para la base de datos ($ORACLE_BASE) y una variable que coincide con la ubicación del software instalado de la infraestructura ($ORACLE_HOME).$> su$> mkdir -p /u01/app/oracle$> mkdir -p /u01/app/oracle/product/11.2.0/grid$> chown -R oracle:oinstall /u01$> chmod -R 775 /u01
- El software de instalación se lo debe copiar en el disco duro, lo cual puede hacerse con el usuario oracle, dado que ya se realizó el cambio recursivo de dueño y de permisos sobre /u01:$> mkdir -p /u01/app/oracle/stage/grid$> mkdir -p /u01/app/oracle/stage/databaseEn el directorio grid se copia el software de instalación de la infraestructura, y en el directorio database el software de instalación de la base de datos. Para descomprimir un archivo zip se pude usar el comando unzip.
- Antes de proseguir con la instalación y considerando que se está utilizando una versión de 32 bits de RedHat Enterprise (uname -a), se debe verificar que los siguientes paquetes estén instalados en el SO:
kernel-headers-2.6.18-274.el5.i386.rpm
kernel-devel-2.6.18-274.el5.i686.rpm
glibc-2.5-65.i386.rpm
(para la configuración de este manual debería estar ya instalado)
glibc-headers-2.5-65.i386.rpm
glibc-devel-2.5-65.i386.rpm
gcc-4.1.2-51.el5.i386.rpm
elfutils-libelf-devel-0.137-3.el5.i386.rpm
elfutils-libelf-devel-static-0.137-3.el5.i386.rpm *
libstdc++-4.1.2-51.el5.i386.rpm
libstdc++-devel-4.1.2-51.el5.i386.rpm
gcc-c++-4.1.2-51.el5.i386.rpm
libaio-0.3.106-5.i386.rpm
(para la configuración de este manual debería estar ya instalado)
libaio-devel-0.3.106-5.i386.rpm
sysstat-7.0.2-11.el5.i386.rpm
unixODBC-2.2.11-7.1.i386.rpm
unixODBC-devel-2.2.11-7.1.i386.rpm
ksh-20060214-1.1.i386.rpm
Muchos de los paquetes
no están disponibles en los repositorios de redhat, por lo que deben
ser descargados de otros repositorios para la versión Centos OS 5.
Son de gran ayuda los siguientes sitios:
(*) Los paquetes
elfutils-libelf-devel-0.137-3.el5.i386.rpm y
elfutils-libelf-devel-static-0.137-3.el5.i386.rpm son
interdependientes, por lo que deben ser instalados en un solo
comando:
$> su
$> rpm -Uvh
elfutils-libelf-devel-0.137-3.el5.i386.rpm
elfutils-libelf-devel-static-0.137-3.el5.i386.rpm
3.7 Ejecución del instalador de la infraestructura
- Habiendo cumplido lo indicado en los pasos anteriores, se procede a ejecutar el instalador de la infraestructura:$> cd /u01/app/oracle/stage/grid$> ./runInstaller
- El asistente guía la instalación a lo largo de 11 pasos, como se muestra en las capturas siguientes:
- Se selecciona la instalación de un servidor standalone:
- Se seleccionan los idiomas para la instalación:
- Se crea un grupo de discos para datos, por ello se conserva el nombre por defecto DATA. El nivel de redundancia se establece en normal (sección 3.5) y se seleccionan dos discos candidatos puesto que lo recomendado por Oracle para un nivel de redundancia normal es usar al menos dos discos.
- Si el asistente no encuentra discos candidatos a pesar de haberlos creado y configurado con las librerías del driver de oracle para ASM, se puede cambiar la ruta de acceso de detección hacia el directorio /dev/oracleasm/disks, en donde por defecto ASM incluye los dispositivos configurados.
- Se utiliza una misma contraseña para las cuentas de administración de ASM: Oracle11
- Los grupos de usuarios ASM (internos de la instancia) requieren vincularse con un grupo del sistema operativo para autenticarse. Se utiliza el grupo dba creado anteriormente. Si se presenta un mensaje de advertencia se acepta y se prosigue.
- Dadas las consideraciones de OFA (Oracle Flexible Architecture), se utilizan las ubicaciones para instalación que el asistente plantea por defecto, las cuales concuerdan con las variables de entorno configuradas en la sección 3.3.1. La ubicación por defecto indicada para el inventario de instalación también se puede mantener.
- El resumen de la instalación que se va a realizar agrega un dato de suma importancia: el espacio en disco. En este punto se puede tomar cualquier correctivo si hiciera falta más espacio en disco o si la cuota del usuario dueño de la instalación no contempla suficiente espacio.Tras accionar el botón Terminar se inicia el proceso, mismo que puede durar entre 20 y 30 minutos dependiendo de los recursos del equipo anfitrión. Durante la última etapa del proceso, se solicitará la ejecución de dos scripts.
- Los scripts pueden ejecutarse con los comandos:
$> su
$>
/u01/app/oraInventory/orainstRoot.sh
$>
/u01/app/oracle/product/11.2.0/grid/root.sh
El segundo script
solicitará que se ingrese la ruta hacia /usr/local/bin.
Tras la ejecución de
los scripts se realizan los últimos pasos de la instalación de
forma automática.
- Una vez finalizada la instalación se presenta la pantalla de confirmación.
4
1umask:
función o comando POSIX que permite establecer la “máscara
para el modo de creación de archivos” (file mode creation mask)
del proceso actual. POSIX: Portable operative
system interface for Unix, conjunto de
estándares de la IEEE que definen una API para shells y utilitarios
para sistemas basados en UNIX.
2http://www.dba-oracle.com/linux/umask_command_tips.htm
3ulimit
y umask son comandos preestablecidos del shell, por esta razón no
se usa su ubicación para ejecutarlos.
4Explicación
útil en:
http://www.cyberciti.biz/faq/understanding-etcpasswd-file-format/
5Interfaz
de red interna del servidor 127.0.0.1 (localhost)
6Para
conocer el nombre del servidor se puede usar el comando hostname
Dustin
Ghia R.