En
el artículo anterior pudimos configurar una Maquina Virtual con Oracle Linux 6.
Con
esa misma máquina explicare paso a paso como es que se debe de configurar e
instalar la Infraestructura Grid 12c en un servidor.
Antes
de empezar con la instalación siempre recomiendo:
- Revisar las guías de instalación publicadas
por Oracle.
- Revisar si el Sistema Operativo se encuentra
actualizado para soportar la instalación de Oracle12c
- Revisar que los requerimientos de Hardware y
Software mínimos.
Con
estos pasos previos revisados podemos proceder con la configuración e
instalación.
I. Configuración
del servidor
Iniciaremos
con la configuración del servidor y los discos, previo a la instalación de la
Infraestructura Grid.
Paso 1:
Revisión de Hardware y espacio en disco.
1.1 Revisamos la memoria del servidor.
[root@oracle12c ~]# grep MemTotal /proc/meminfo
MemTotal: 4194304 kB
[root@oracle12c ~]# grep SwapTotal
/proc/meminfo
SwapTotal: 3144700 kB
1.2 Revisamos el espacio para la instalación
de la Infraestructura Grid. Para Linux
es necesario:
- 6.9Gbs de espacio
- 1Gbs de espacio en el /tmp
Todo lo
instalaremos en el Filesytem /u01
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 12G 2.9G
8.1G 27% /
tmpfs 1.6G 0
1.6G 0% /dev/shm
/dev/sda1 339M 54M
268M 17% /boot
/dev/sdc1 2.0G 36M
1.9G 2% /tmp
/dev/mapper/oracleVG-oracleLV
29G 173M
27G 1% /u01
Paso 2:
Revisión de Software en el Sistema Operativo.
2.1 Revisamos del Kernel del Sistema
Operativo. Se debe tener las siguientes
configuración de Kernel como mínimo.
Sistema Operativo
|
Kernel
|
Oracle Linux 6
|
2.6.39-200.24.1.el6uek.x86_64
|
Red Hat Linux 6
|
2.6.32-71.el6.x86_64
|
[root@oracle12c ~]# uname -a
Linux oracle12c.oracle.com
2.6.39-200.24.1.el6uek.x86_64 #1 SMP Sat Jun 23 02:39:07 EDT 2012 x86_64 x86_64
x86_64 GNU/Linux
2.2 Revisamos los paquetes necesarios para
instalar la Infraestructura Grid.
Los
paquetes para Oracle Linux 6 son:
binutils-2.20.51.0.2-5.11.el6
(x86_64)
compat-libcap1-1.10-1
(x86_64)
compat-libstdc++-33-3.2.3-69.el6
(x86_64)
compat-libstdc++-33-3.2.3-69.el6
(i686)
gcc-4.4.4-13.el6
(x86_64)
gcc-c++-4.4.4-13.el6
(x86_64)
glibc-2.12-1.7.el6
(i686)
glibc-2.12-1.7.el6
(x86_64)
glibc-devel-2.12-1.7.el6
(x86_64)
glibc-devel-2.12-1.7.el6 (i686)
ksh
libgcc-4.4.4-13.el6 (i686)
libgcc-4.4.4-13.el6
(x86_64)
libstdc++-4.4.4-13.el6
(x86_64)
libstdc++-4.4.4-13.el6
(i686)
libstdc++-devel-4.4.4-13.el6
(x86_64)
libstdc++-devel-4.4.4-13.el6
(i686)
libaio-0.3.107-10.el6
(x86_64)
libaio-0.3.107-10.el6
(i686)
libaio-devel-0.3.107-10.el6
(x86_64)
libaio-devel-0.3.107-10.el6 (i686)
libXext-1.1 (x86_64)
libXext-1.1 (i686)
libXtst-1.0.99.2 (x86_64)
libXtst-1.0.99.2 (i686)
libX11-1.3 (x86_64)
libX11-1.3 (i686)
libXau-1.0.5 (x86_64)
libXau-1.0.5 (i686)
libxcb-1.5 (x86_64)
libxcb-1.5 (i686)
libXi-1.3 (x86_64)
libXi-1.3 (i686)
make-3.81-19.el6
sysstat-9.0.4-11.el6 (x86_64)
Para
poder verificar si un paquete está instalado o no utilizamos el siguiente
comando.
[root@oracle12c ~]# rpm -qa | grep
libgcc
libgcc-4.4.6-4.el6.x86_64
libgcc-4.4.6-4.el6.i686
Si un
paquete no se encuentra instalado, podemos obtenerlo del DVD o ISO del Oracle
Linux 6 e instalarlo.,
[root@oracle12c Packages]# rpm -ivh
libaio-devel-0.3.107-10.el6.x86_64.rpm
warning:
libaio-devel-0.3.107-10.el6.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID
ec551f03: NOKEY
Preparing...
########################################### [100%]
1:libaio-devel
########################################### [100%]
[root@oracle12c Packages]# rpm -ivh
ksh-20100621-16.el6.x86_64.rpm
warning: ksh-20100621-16.el6.x86_64.rpm:
Header V3 RSA/SHA256 Signature, key ID ec551f03: NOKEY
Preparing... ###########################################
[100%]
1:ksh
########################################### [100%]
Paso 3:
Creación de usuario y grupos de usuario en el Sistema Operativo.
3.1 Creamos los grupos de usuarios necesarios
para la instalación de la Infraestructura Grid.
Los
grupos que debemos de crear son:
- OINSTALL
- ASMDBA
- ASMOPER
- ASMADMIN
- DBA
- OPER
- BACKUPDBA (Nuevo en Oracle 12c)
- DGDBA (Nuevo en Oracle 12c)
- KMDBA (Nuevo en Oracle 12c)
[root@oracle12c Packages]# groupadd oinstall
[root@oracle12c Packages]# groupadd
asmdba
[root@oracle12c Packages]# groupadd
asmoper
[root@oracle12c Packages]# groupadd
asmadmin
[root@oracle12c Packages]# groupadd dba
[root@oracle12c Packages]# groupadd oper
[root@oracle12c Packages]# groupadd
backupdba
[root@oracle12c Packages]# groupadd
dgdba
[root@oracle12c
Packages]# groupadd kmdba
3.2 Creamos el usuario oracle con el grupo oinstall
como grupo principal y los demás grupos, como secundarios.
[root@oracle12c
Packages]# useradd -g oinstall -G
asmdba,asmoper,asmadmin,dba,oper,backupdba,dgdba,kmdba oracle
3.3 Le asignamos un password al usuario oracle.
[root@oracle12c Packages]# passwd oracle
Changing password for user oracle.
New password:
Retype new password:
passwd: all authentication tokens
updated successfully.
Paso 4:
Configuración de archivos en el Sistema Operativo.
4.1 Definimos el nombre del servidor en el
archivo /etc/hosts
[root@oracle12c Packages]# cat
/etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4
localhost4.localdomain4
::1 localhost localhost.localdomain
localhost6 localhost6.localdomain6
172.68.1.20 oracle12c.oracle.com oracle12c
4.2 Definimos los limites para el usuario oracle en el archivo /etc/security/limits.conf
[root@oracle12c Packages]# cat
/etc/security/limits.conf
#* soft core 0
#* hard rss 10000
#@student hard
nproc 20
#@faculty soft
nproc 20
#@faculty hard
nproc 50
#ftp hard nproc 0
#@student -
maxlogins 4
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle
soft stack 10240
4.3 Definimos los parámetros de Kernel en el
archivo
/etc/sysctl.conf
Se recomiendan los siguientes valores
# Controls the maximum shared segment
size, in bytes
kernel.shmmax = 68719476736
# Controls the maximum number of shared
memory segments, in pages
kernel.shmall = 4294967296
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000
65500
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048586
4.4 Creamos el directorio para el ORACLE_HOME
[root@oracle12c Packages]# mkdir -p
/u01/app/oracle
[root@oracle12c Packages]# chown -R
oracle:oinstall /u01
[root@oracle12c Packages]# chmod -R 775
/u01
El
servidor está listo para poder empezar con la instalación. Ahora configuraremos los discos para crear
diskgroups en la Infraestructura Grid.
II. Configuración
de discos para ASM
Voy a
explicar la configuración cuando los discos son presentados con y sin
Multipath.
Paso 1:
Configuración de Discos con SinglePath.
1.1 Formateamos los discos.
[root@oracle12c
~]# fdisk /dev/sde
WARNING: DOS-compatible mode is
deprecated. It's strongly recommended to
switch off the mode (command 'c') and change display units to
sectors (command 'u').
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-2610, default 1):
Using default value 1
Last cylinder, +cylinders or
+size{K,M,G} (1-2610, default 2610):
Using default value 2610
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition
table.
Syncing disks.
[root@oracle12c ~]#
fdisk /dev/sdf
WARNING: DOS-compatible mode is
deprecated. It's strongly recommended to
switch off the mode (command 'c') and change display units to
sectors (command 'u').
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-1958, default 1):
Using default value 1
Last cylinder, +cylinders or
+size{K,M,G} (1-1958, default 1958):
Using default value 1958
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition
table.
Syncing
disks.
1.2 Idenfiricamos el SCSI ID de cada disco
para poder definirlo en el archivo udev.
[root@oracle12c
~]# scsi_id -g -u -d /dev/sde
1ATA_VBOX_HARDDISK_VBc2e9f33f-4b7196dc
[root@oracle12c
~]# scsi_id -g -u -d /dev/sdf
1ATA_VBOX_HARDDISK_VBac84ae48-118b1e5b
1.3 Para este ejercicio no utilizamos ASMLIB por lo que debemos de definir los permisos de cada disco en un archivo udev: /etc/udev/rules.d/99-oracle-asmdevices.rules
A cada disco se le entregara un alias que sera definido en la variable NAME
[root@oracle12c dev]# cat
/etc/udev/rules.d/99-oracle-asmdevices.rules
KERNEL=="sd?1",
BUS=="scsi", PROGRAM=="/sbin/scsi_id -g -u -d /dev/$parent",
RESULT=="1ATA_VBOX_HARDDISK_VBc2e9f33f-4b7196dc",
OWNER="oracle", GROUP="asmadmin", MODE="0660"
KERNEL=="sd?1",
BUS=="scsi", PROGRAM=="/sbin/scsi_id -g -u -d
/dev/$parent", RESULT=="1ATA_VBOX_HARDDISK_VBac84ae48-118b1e5b",
OWNER="oracle", GROUP="asmadmin", MODE="0660"
1.4 Realizamos pruebas sobre los discos que
hemos configurado
[root@oracle12c etc]# udevadm test
/block/sde/sde1
run_command: calling: test
udevadm_test: version 147
[root@oracle12c etc]# udevadm test
/block/sdf/sdf1
run_command: calling: test
udevadm_test: version 147
1.5 Reiniciamos el servicio udev
[root@oracle12c
dev]# /sbin/udevadm control --reload-rules
[root@oracle12c dev]# /sbin/start_udev
Starting
udev:
[ OK ]
Paso 2:
Configuración de Discos con Multipath.
Para
nuestro ejemplo se nos ha asignado las siguientes rutas de Multhipath.
[root@oracle12c ~]# for i in `cat
/proc/partitions | awk '{print $4}' |grep dm`; do echo "### $i:
`/lib/udev/scsi_id --whitelisted --device=/dev/$i`"; done
###
dm-2: 360002ac0000000000000001f0000361b
###
dm-3: 360002ac000000000000000200000361b
2.1 Revisamos que se hayan registrado
correctamente en el archivo /etc/multipath.conf
[root@oracle12c ~]# cat
/etc/multipath.conf
multipaths {
multipath {
wwid
360002ac0000000000000001f0000361b
alias mpathb
path_grouping_policy failover
}
multipath {
wwid
360002ac000000000000000200000361b
alias mpathc
path_grouping_policy failover
}
}
2.2 Reiniciamos el servicio de Multipath para
que se puedan observar los discos.
[root@oracle12c ~]# service multipathd
stop
Stopping multipathd daemon: [ OK ]
[root@oracle12c ~]# service multipathd
start
Starting multipathd daemon: [ OK ]
2.3 Revisamos la configuración de los discos
Multipath
[root@pelnx98 mapper]# multipath -ll
mpathc
(360002ac000000000000000200000361b) dm-3 3PARdata,VV
size=350G features='1 queue_if_no_path'
hwhandler='0' wp=rw
`-+- policy='round-robin 0' prio=1
status=active
|- 1:0:0:1 sdf 8:32
active ready running
|- 1:0:1:1 sdg 8:208
active ready running
|- 2:0:0:1 sdh 65:128 active ready running
`- 2:0:1:1 sdi 66:48 active ready running
mpathb
(360002ac0000000000000001f0000361b) dm-2 3PARdata,VV
size=350G features='1 queue_if_no_path'
hwhandler='0' wp=rw
|-+- policy='round-robin 0' prio=1
status=active
| `- 1:0:0:0 sdj
8:16 active ready running
|-+- policy='round-robin 0' prio=1
status=enabled
| `- 1:0:1:0 sdk
8:192 active ready running
|-+- policy='round-robin 0' prio=1
status=enabled
| `- 2:0:0:0 sdl
65:112 active ready running
`-+- policy='round-robin 0' prio=1
status=enabled
`- 2:0:1:0 sdm 66:32
active ready running
2.4 Una vez configurados los discos
Multipath, procedemos a asignarles los permisos correctos en el archivo /etc/udev/rules.d/12-dm-permissions.rules
#cat /etc/udev/rules.d/12-dm-permissions.rules
ENV{DM_NAME}=="mpathbp1",
OWNER:="oracle", GROUP:="oinstall", MODE:="660"
ENV{DM_NAME}=="mpathcp1",
OWNER:="oracle", GROUP:="oinstall", MODE:="660"
Una vez
configurados los discos procedemos a Instalar la infraestructura Grid.
III. Instalación
de Infraestructura Grid
Paso 1:
Copiamos los instaladores en el servidor, nos conectamos con el usuario oracle
y descomprimimos los instaladores.
[oracle@oracle12c Install]$ ls -l
total 1908280
-rw-r--r--. 1 oracle oinstall 1750478910
Jun 27 2013 linuxamd64_12c_grid_1of2.zip
-rw-r--r--. 1 oracle oinstall 201673595 Jun 27 2013 linuxamd64_12c_grid_2of2.zip
[oracle@oracle12c Install]$ unzip
linuxamd64_12c_grid_1of2.zip
[oracle@oracle12c Install]$ unzip
linuxamd64_12c_grid_2of2.zip
Paso 2: Abrimos una sesión de VNC. Pueden utilizar la herramienta grafica que
más te acomoda.
[oracle@oracle12c ~]$ vncserver
You will require a password to access
your desktops.
Password:
Verify:
xauth:
creating new authority file /home/oracle/.Xauthority
New 'oracle12c.oracle.com:1 (oracle)'
desktop is oracle12c.oracle.com:1
Creating default startup script
/home/oracle/.vnc/xstartup
Starting applications specified in
/home/oracle/.vnc/xstartup
Log file is /home/oracle/.vnc/oracle12c.oracle.com:1.log
Paso 3:
Desde la sesión de VNC procedemos a
lanzar el Instalador del Grid Infraestructure
[oracle@oracle12c Install]$ cd grid/
[oracle@oracle12c grid]$ ls
install
response rpm runcluvfy.sh
runInstaller sshsetup stage
welcome.html
[oracle@oracle12c grid]$ ./runInstaller
Starting Oracle Universal Installer...
Checking Temp space: must be greater
than 120 MB. Actual 1877 MB Passed
Checking swap space: must be greater
than 150 MB. Actual 3070 MB Passed
Checking monitor: must be configured to
display at least 256 colors
>>> Could not execute auto check for display colors using
command /usr/bin/xdpyinfo. Check if the DISPLAY variable is set. Failed <<<<
Some requirement checks failed. You must
fulfill these requirements before
continuing with the installation,
Continue? (y/n) [n] y
>>> Ignoring required
pre-requisite failures. Continuing...
Preparing to launch Oracle Universal
Installer from /tmp/OraInstall2014-10-06_04-19-30AM. Please wait ...
Paso 4:
Como nuestro servidor no tendrá conexión a internet para poder conectarse a
Oracle Support. Elegimos la opción Skip software updates
Paso 5: Instalaremos la Infraestructura Grid para utilizar Oracle ASM. Elegimos la opción Install and Configure Oracle Grid Infraestructure for a Standalone Server
Paso 7: Creamos el primer Diskgroup DG_DATA (Redundancia External) con uno de los discos configurados anteriormente /dev/sde1.
Paso 9: Configuramos los grupos de sistema Operativo para cada función de ASM
Paso 10: Definimos los directorios para el ORACLE_BASE y ORACLE_HOME
Paso 11: Definimos los directorios para el OraInventory. Esto solo aparece si es el primer producto Oracle Instalado en dicho servidor.
Paso 12: En Oracle 12c tenemos la nueva opción de poder configurar el password del ROOT o un sudo para poder ejecutar los scripts de instalación finales sin necesidad de pedirle al administrador del SO.
Paso 13: Revisamos si existe algún pre-requisito faltante.
Paso 14: Revisamos la configuración seleccionada antes de la instalación.
Paso 15: Para los que no configuraron el paso 11, van a tener que lanzar manualmente los scripts con ROOT.
Cuando se ejecuta el script root.sh se configurará la infraestructura Grid para Un servidor Stand Alone.
[root@oracle12c ~]# /u01/app/oracle/product/12.1.0/grid/root.sh
Performing root user operation for
Oracle 12c
The following environment variables are
set as:
ORACLE_OWNER= oracle
ORACLE_HOME=
/u01/app/oracle/product/12.1.0/grid
Enter the full pathname of the local bin
directory: [/usr/local/bin]:
Copying dbhome to /usr/local/bin ...
Copying oraenv to /usr/local/bin ...
Copying coraenv to /usr/local/bin ...
Creating /etc/oratab file...
Entries will be added to the /etc/oratab
file as needed by
Database Configuration Assistant when a
database is created
Finished running generic part of root
script.
Now product-specific root actions will
be performed.
Using configuration parameter file:
/u01/app/oracle/product/12.1.0/grid/crs/install/crsconfig_params
LOCAL ADD MODE
Creating OCR keys for user 'oracle', privgrp
'oinstall'..
Operation successful.
LOCAL ONLY MODE
Successfully accumulated necessary OCR
keys.
Creating OCR keys for user 'root',
privgrp 'root'..
Operation successful.
CRS-4664: Node oracle12c successfully
pinned.
2014/10/06 04:36:15 CLSRSC-330: Adding
Clusterware entries to file 'oracle-ohasd.conf'
oracle12c 2014/10/06 04:36:35
/u01/app/oracle/product/12.1.0/grid/cdata/oracle12c/backup_20141006_043635.olr
2014/10/06 04:37:29 CLSRSC-327:
Successfully configured Oracle Grid Infrastructure for a Standalone Server
Paso 17: Verificamos que el ASM 12c se encuentre correctamente configurado.
[oracle@oracle12c ~]$ ps -ef | grep pmon
oracle
2197 1 0 16:45 ? 00:00:00 asm_pmon_+ASM
oracle
2401 2370 0 17:01 pts/0 00:00:00 grep pmon
[oracle@oracle12c ~]$ sqlplus / as sysdba
SQL*Plus: Release 12.1.0.1.0 Production
on Sun Oct 12 17:01:50 2014
Copyright (c) 1982, 2013, Oracle. All rights reserved.
Connected to:
Oracle Database 12c Enterprise Edition
Release 12.1.0.1.0 - 64bit Production
With the Automatic Storage Management
option
SQL>
set linesize 200
select GROUP_NUMBER,NAME,
STATE,TYPE,TOTAL_MB,FREE_MB,USABLE_FILE_MB from v$asm_diskgroup;SQL>
GROUP_NUMBER NAME STATE TYPE
TOTAL_MB FREE_MB USABLE_FILE_MB
------------
------------------------------ ----------- ------ ---------- ----------
--------------
1 DG_DATA MOUNTED EXTERN
20473 20411 20411
De esta
forma finalizamos la instalación de la Infraestructura Grid 12c. En el siguiente Articulo terminare con la
instalación del motor de Base de datos Oracle 12c.
Espero les
sirva.
Jorge.
ResponderBorrarAntes que nada felicitarte por los post son de gran ayuda.
Tengo una consulta sobre el Paso 2: Configuración de Discos con Multipath. seguí los pasos al detalle, pero al ejecutar la sentencia:
for i in `cat /proc/partitions | awk '{print $4}' |grep dm`; do echo "### $i: `/lib/udev/scsi_id --whitelisted --device=/dev/$i`"; done
me sale lo siguiente:
### dm-0:
Tu ayuda al respecto para poder configurar el archivo multipath.conf no se que valor colocar en la parte "wwid".
saludos,
Giomar Ch. E.
Hola Giomar
ResponderBorrarGracias por seguir mi blog.
El comando que mando es mas que todo para descubrir los discos multipath con nombre de particion dm-##
Lo que puedes hacer es tambien lanzar el siguiente comando:
#multipath -l | grep (nombre disco)
De esta manera podras obtener el ID del disco que necesitas.
Saludos
Hola Jorge buenas tardes , felicidades por tu blog muy completo y práctico.
ResponderBorrarMuchas Gracias por tus palabras !! me ayudan a seguir adelante.
BorrarBuen día Jorge. Como puedo solucionar mi problema con el grid, tengo 2 nodos, pero en el primero si funciono y en el 2do nodo me da error.
ResponderBorrarThe root script cannot proceed on this node because either the first-node operations have not completed on node.
Que podra ser mi problema. Ya se le aplico un parche de Oracle pero no funciona.
Este comentario ha sido eliminado por el autor.
ResponderBorrarGracias Alvaro, Si es posible tener ambas versiones de BD sobre la IG 12c. Pero te recomendaria solo hasta la 11.2.0.3.
BorrarVersiones mas antiguas ya traen problemas con el version 12c GI
Hola Jorge, excelente tu blog, te agradecería me pudieses colaborar con los requisitos para la instalación de Oracle 12c sobre Windows, pero que no sean los mínimos sino los recomendados, gracias por tu colaboración.
ResponderBorrarHOla Evelyn
BorrarMuchas gracias por tu comentario.
Cuentame sobre que version de windows quieres instalar Oracle 12c.
Saludos
Hola de nuevo Jorge, tengo una duda cuando ejecuta rpm -qa | grep libgcc
ResponderBorrarno se muestra la librería: libgcc-4.4.6-4.el6.i686, como la adiciono o no es necesario instalarlo.
Hola Jose Luis
BorrarSi no te aparece quiere decir que no esta instalada. Lo que debes hacer es montar el ISO de Oracle Linux (o RedHat) y buscar el rpm necesario para instalar.
Podrías configurar el comando YUM con el ISO montado para instalaciones mas rápidas.
Me avisas cualquier cosa.