1 de julio de 2014

Configuración Previa de Solaris 5.10 para Instalar Grid Infrastructure y Oracle Database 11gR2

En este post nos enfocaremos a realizar las configuraciones previas para la instalación de Grid Infrastructure y Oracle Database 11gR2. A continuación se describen en detalle los pasos a seguir:

a) Revisamos que el tamaño de la memoria asignada sea de 4Gb o superior, determinamos con la siguiente instrucción:
bash-3.2# /usr/sbin/prtconf | grep "Memory size"

b) Determinamos el tamaño de SWAP que tenemos configurado, el valor debería ser bajo lo especificado con la tabla a continuación:

RAM
Tamaño del SWAP
Entre 1 GB y 2 GB
1.5 veces al del tamaño de la memoria RAM.
Entre 2 GB y 16 GB
Igual tamaño al de la memoria RAM.
Más de 16 GB
16 GB

En nuestro caso la memoria RAM es de 4 GB, por lo tanto, en función de la tabla mencionada anteriormente nuestro SWAP debería ser del mismo tamaño. Para determinar el tamaño ejecutamos lo siguiente:
bash-3.2# /usr/sbin/swap –l
 
El tamaño de SWAP para cada bloque es de 512 bytes, por lo tanto, para hallar el tamaño total se debe calcular bajo la siguiente expresion (blocks*512)/1024/1024/1024=Swap expresado en GB. Así el tamaño obtenido es de 4Gb.

 c) Verificamos que lo paquetes necesarios ya se encuentre instalados en el sistema operativo. Ejecutamos la siguiente instrucción:
bash-3.2# pkginfo -i SUNWarc SUNWbtool SUNWcsl SUNWhea SUNWlibC SUNWlibm SUNWlibms SUNWsprot SUNWtoo SUNWi1of SUNWi1cs SUNWi15cs

Si no estuviera instalado y diera el error como se muestra en la captura anterior, ejecutamos lo siguiente teniendo como origen el cd de instalación de los binarios:
bash-3.2# pkgadd -d /cdrom/sol_10_113_x86/Solaris_10/Product SUNWi1cs SUNWi15cs
Una vez instalado ya no debería dar error al listar los paquetes necesarios para el sistema operativo.

d) Para nuestra instalación utilizaremos un solo usuario (oracle) para que maneje tanto la infraestructura Grid y el motor de Base de Datos, por lo tanto, creamos los usuarios y grupos necesarios para la instalación.
bash-3.2# groupadd dba
bash-3.2# groupadd oinstall
bash-3.2# groupadd oper
bash-3.2# groupadd asmadmin
bash-3.2# groupadd asmdba
bash-3.2# groupadd asmoper
bash-3.2# useradd -g oinstall -G dba,oper,asmdba,asmadmin,asmoper -d /export/home/oracle oracle
bash-3.2# passwd oracle (ejemplo: oracle123)

e) Creamos los directorios para el usuario “oracle”:
bash-3.2# mkdir /export/home/oracle
bash-3.2# chown -R oracle:oinstall /export/home/oracle

f) Creamos los directorios para la instalación:
bash-3.2# mkdir -p /u01/app/oracle/product/11.2.0.3/db_1
bash-3.2# mkdir -p /u01/app/oracle/product/11.2.0.3/grid_1
bash-3.2# chmod -R 775 /u01
bash-3.2# chown -R oracle:oinstall /u01

g) Adicionamos project y verificamos en “/etc/project” que se haya creado correctamente.
bash-3.2# projadd -U oracle oracle

Añadimos la siguiente entrada al archivo “/etc/user_attr” dell project asignando al usuario y luego lo verificamos:
bash-3.2# echo "oracle::::project=oracle" >> /etc/user_attr

h) Modificamos y configuramos los procesos de los projects creados:
bash-3.2# projmod -s -K "project.max-sem-ids=(priv,100,deny)" oracle
bash-3.2# projmod -s -K "process.max-sem-nsems=(priv,256,deny)" oracle
bash-3.2# projmod -s -K "project.max-shm-memory=(priv,4g,deny)" oracle
bash-3.2# projmod -s -K "project.max-shm-ids=(priv,100,deny)" oracle
bash-3.2# projmod -s -K "process.max-file-descriptor=(basic,1024,deny)" oracle

i) Configuramos los parámetros del kernel a valores iguales o superiores de lo recomendado.
bash-3.2# echo "set max_nprocs = 30000"  >> /etc/system
bash-3.2# echo "set maxuprc = 16384"     >> /etc/system
bash-3.2# echo "set noexec_user_stack=1"  >> /etc/system
bash-3.2# echo "set semsys:seminfo_semmni=100"  >> /etc/system
bash-3.2# echo "set semsys:seminfo_semmns=1024"  >> /etc/system
bash-3.2# echo "set semsys:seminfo_semmsl=256"  >> /etc/system
bash-3.2# echo "set semsys:seminfo_semvmx=32767"  >> /etc/system
bash-3.2# echo "set shmsys:shminfo_shmmax=4294967296"  >> /etc/system
bash-3.2# echo "set shmsys:shminfo_shmmni =100"  >> /etc/system

Asignamos valores a los parámetros TCP y UDP:
bash-3.2# /usr/sbin/ndd -set /dev/tcp tcp_smallest_anon_port 9000
bash-3.2# /usr/sbin/ndd -set /dev/tcp tcp_largest_anon_port 65500
bash-3.2# /usr/sbin/ndd -set /dev/udp udp_smallest_anon_port 9000
bash-3.2# /usr/sbin/ndd -set /dev/udp udp_largest_anon_port 65500

Adicionar las siguientes líneas en el archivo “/etc/inittab”, para que las configuración de TCP y UDP del kernel persistan después de algún reinicio.
bash-3.2# echo “tm::sysinit:/usr/sbin/ndd -set /dev/tcp tcp_smallest_anon_port 9000 > /dev/console” >> /etc/inittab
bash-3.2# echo “tm::sysinit:/usr/sbin/ndd -set /dev/tcp tcp_largest_anon_port 65500 > /dev/console” >> /etc/inittab
bash-3.2# echo "tm::sysinit:/usr/sbin/ndd -set /dev/udp udp_smallest_anon_port 9000 > /dev/console" >> /etc/inittab
bash-3.2# echo "tm::sysinit:/usr/sbin/ndd -set /dev/udp udp_largest_anon_port 65500 > /dev/console" >> /etc/inittab


j) Finalmente configuramos las variables de entorno. Nos conectamos como usuario oracle y definimos sus variables de entorno, para ello modificamos el archivo .profile adicionando las siguientes entradas.
echo "Asignando variables para usuario ORACLE"
echo "...................................."
LD_LIBRARY_PATH=/u01/app/oracle/product/11.2.0.3/db_1/lib; export LD_LIBRARY_PATH
PATH=/usr/sbin:/usr/ucb:/etc:.; export PATH
ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/11.2.0.3/db_1; export ORACLE_HOME
GRID_HOME=$ORACLE_BASE/product/11.2.0.3/grid_1; export GRID_HOME
ORACLE_SID=orcl; export ORACLE_SID
ORACLE_TERM=xterm; export ORACLE_TERM
PATH=$ORACLE_HOME/bin:$GRID_HOME/bin:/usr/ccs/bin:/usr/bin:/usr/sbin:/usr/local/bin:.; export PATH
EDITOR=vi; export EDITOR
TEMP=/tmp; export TEMP
TMPDIR=/tmp; export TMPDIR
echo "Realizado"

Paulo Ticona

Fuentes:
http://docs.oracle.com/cd/E11882_01/nav/portal_11.htm#solaris_installation_guides
Grid Infrastructure Installation Guide, 11g Release 2 (11.2) for Oracle Solaris E47805-02
Database Installation Guide, 11g Release 2 (11.2) for Oracle Solaris E48357-02

1 comentario:

  1. execelente, justo lo que buscaba. Solo una duda.

    En otro manual de instalacion lei que las lineas que se deben agregar al archivo /etc/inittab se deben agregar antes de la linea que contiene svc.startd, y parece que tu las estas agregando al final, hay alguna diferencia?. Gracias de antemano

    ResponderEliminar