Arquitectura CRS en 11gR2 II el CRSD

Vamos a seguir viendo la arquitectura del CRSD en la version 11gr2
Primero vamos a recordar la arquitectura del sistema
crs11g

CRSD

El Cluster Ready Services Daemon va a ser el responsable de gestionar los recursos de aplicación del cluster, esto es las bases de datos,y el resto de elementos y aplicaciones. Esta información la sacará el OCR (Oracle cluster registry )

Podemos dividir estos procesos que gestiona en dos grandes grupos:

CRSD oraagent

El CRSD oraagent administra (start/stop/check/clean) varios recursos como son bases de datos, instancias,servicios,diskgroups,node listeners,SCAN listeners…
Podemos tener mas de un oraagent (en la imagen tenemos uno para el grid y otro para la base de datos), esto sucede cuando hay mas de un propietario de la instalacin ( por ejemplo en grid y el de la base de datos)

CRSD orarootagent

CRSD orarootagent es el que se encarga de gestionar (start/stop/check/clean) Elementos como el GNS, las VIPs y los recursos de red.

Restaurar el fichero de registro del cluster/GRID

Hoy vamos a ver una entada bastante sencilla que nos puede librar de algun susto que otro.

Uno de los componentes que pueden darnos problemas a la hora de arrancar un GRID es el fichero de configuración del cluster.
En el caso de un GRID control donde no hay mas miembros del cluster, esta información solamente está en el nodo de la base de datos, y , si esta información se daña o se pierde no podremos arrancar el ASM y la Base de datos
El fichero de configuración local del cluster/grid puede ubicar mirando en el fichero /etc/oracle/ocr.loc

  bash-3.2# cat /etc/oracle/ocr.loc
ocrconfig_loc=/opt/app/oracle/product/11.2.0/grid/cdata/localhost/local.ocr
local_only=TRUE

El GRID control tiene dos ficheros de configuración que deben de estar disponibles, el Oracle Cluster Registry configuration y el Oracle Local Registry configuration
Podemos ver su ubicación con el comando ocrconfig

root@gridalone:$ $GRID_HOME/bin/ocrcheck -config
Oracle Cluster Registry configuration is :
 Device/File Name: /opt/app/oracle/product/11.2.0/grid/cdata/localhost/local.ocr

root@gridalone:$ $GRID_HOME/bin/ocrcheck -local -config
Oracle Local Registry configuration is :
 Device/File Name: /opt/app/oracle/product/11.2.0/grid/cdata/localhost/sidora.olr

Estos dos ficheros no son ficheros de texto, con lo que no podremos salvaguardarlos ni restaurarlos de manera normal mediante los softwares de backup convencionales.
Para poder restaurarlos, deberemos de hacerlo mediante la opcion ocrconfig -restore

La sintaxsis para restaurarlos es :

Oracle Cluster Registry configuration

$GRID_HOME/bin/ocrconfig  -restore /opt/app/oracle/product/11.2.0/grid/cdata/localhost/backup_XXXXX.ocr 
 

Oracle Local Registry configuration

$GRID_HOME/bin/ocrconfig -local -restore /opt/app/oracle/product/11.2.0/grid/cdata/localhost/backup_XXXXX.olr 
 

Algunas notas importantes sobre el comando ocrconfig son :

  • No se le indica en ningún sitio donde ha de restaurarlos, esto lo coge de la configuración del cluster
  • Los ficheros que se indican son los ficheros DE BACKUP
  • Necesita que el fichero destino exista, en caso de no existir habría que crearlos con un touch

Hemos de tener en cuenta que, tal y como decíamos en la entrada Oracle cluster registry OCR (componentes del grid) en la version 11gR2 se guardan automáticamene, pero no debemos de confiarnos y es recomendable el comprobar si exsisten backups con la opcion ocrconfig -showbackup para activarlos en caso de que no estén activos

Como siempre, mas información en la web de oracle http://docs.oracle.com/cd/E11882_01/rac.112/e16794/ocrsyntax.htm#CWADD92022

Oracle cluster registry OCR (componentes del grid)

Oracle cluster registry ( OCR)

El Oracle cluster registry (OCR) mantiene los metadata y los wallets para todos los recursos que maneja el clusterware , al contrario de lo que ocurría en las versiones previas, solamente se requiere para administrar los recursos que están bajo la CRSD stack and its agents.
En la versión 11gR2 el l OCR incluye el Oracle Local Registry (OLR)

En esta versión el OCR no es necesario para unirse al cluster,ya que la información necesaria para unirse al cluster está en el OLR and GPnP, la información que maneja el OCR si que incluye aquella que requiere el agente para crear ,comprobar el estado,parar o arrancar un recurso así como la de las dependencias de un recurso ante un cambio de estado (Por ejemplo qué hacer con un listener si la IP sobre la que está desaparece)

Como mínimo debe de existir un OCR, sin embargo es posible tener hasta 5 copias, el OCR puede estar (desde 11gR2) en los discos ASM, pero a diferencia del voting disk puedes tener un OCR en los mismos discos que datos o copias.
La localización de los OCR (en un sistema linux) se encuentra en /etc/oracle/ocr.loc

[grid@rac1 oracle]$ cat /etc/oracle/ocr.loc
ocrconfig_loc=+OCRQUORUM
local_only=FALSE

La variable local_only puede tener dos valores:

  • FALSE: Estamos en un RAC
  • TRUE: estamos en una single instance

Mediante el comando ocrconfig se pueden llevar acciones de añadir , eliminar y reemplazar ubicaciones del OCR, sin embargo , si hay solamente una localización e OCR no se puede hacer un replace, hay que añadir uno nuevo y eliminar el viejo.
La información del OCR se guarda cada 4 horas en el $GI_HOME/cdata de uno de los nodos, desde la versión 11gR2 se reparten por todos los nodos (donde está instalado). Habitualmente se guarda los últimos 3 backups horarios ( 12 horas), 1 backup con un día de antigüedad y otro con una semana de antigüedad.
Cuando el OCR se almacena en ASM hace que la instancia de ASM y los diskgroups en los que está ubicado el OCR se monten antes de que el CRSD sea arrancado. Igualmente, si hay que detener el ASM hay que parar toda la pila del CRSD mediante el comando crscrtl stop crs ya que, sino la parada del ASM dará el error

 “ORA-15097: cannot SHUTDOWN ASM instance with connected client.”

por supuesto ni se te ocurra para el asm de manera forzada.

Los comandos para interactuar con el OCR son:

[grid@rac1 oracle]$ ocrcheck
Status of Oracle Cluster Registry is as follows :
	 Version                  :          3
	 Total space (kbytes)     :     262120
	 Used space (kbytes)      :       2644
	 Available space (kbytes) :     259476
	 ID                       :  165462643
	 Device/File Name         : +OCRQUORUM
                                    Device/File integrity check succeeded

                                    Device/File not configured

                                    Device/File not configured

                                    Device/File not configured

                                    Device/File not configured

	 Cluster registry integrity check succeeded

	 Logical corruption check bypassed due to non-privileged user


Añadir un disco

[grid@rac1 oracle]$ ocrconfig -add +DATA

reemplazarlo

[grid@rac1 oracle]$ ocrconfig -replace +DATA  -replacement +DATA2

O eliminarlo

[grid@rac1 oracle]$ ocrconfig -delete +DATA2

La documentación del ocrconfig podemos encontrarla en http://docs.oracle.com/cd/E11882_01/rac.112/e16794/ocrsyntax.htm#CWADD92022

Voting disk (componentes del grid)

Vamos a dedicar una serie de entradas a explicar los distintos componentes del Grid infraestructurae de Oracle a partir de la version 11gR2

El voting disk es usado por el demonio de sincronización de servicios (ocssd Oracle cluster sincronization services daemon) para comprobar el estado de los nodos del disco.
Cada uno de los nodos envía en intervalos predeterminados un herbeat por la red para indicar a el resto que está vivo. Si el resto determina que uno de los nodos está muerto entonces le hace un “fence” para evitar corrupción de datos o un split brain.
Cada nodo debe de enviar un hearbeat por red por segundo y escribir un herbeart por voting disk por segundo. Si un nodo no hiciera ambas cosas, el resto de nodos comenzarían un proceso de reconfiguración que, sirve para comprobar qué nodos están vivos que básicamente es que cada nodo indica cuales encuentra como vivos y cuáles no .
A los nodos que no contestan se les envía un “poison packet via network and disk” y se les saca del cluster.

En las versiones anteriores el voting file debía de ser un sistema compartido de red (NFS,OCFS.. ), pero en la versión 11gR2 ya puede ser un disco de ASM (Es aconsejable ir pasándolos a ASM ya que podrían ser de-soportados los otros tipos de voting)

Si usas OCFS para el voting file, se aconseja el uso de 3 o 5 copias del voting file, aunque el máximo es de 15. En caso de uso del ASM no puedes determinarlo ya que es transparente y dependen del tipo de redundancia del ASM (external,normal,hit). En el caso de tener redundancia interna de ASM (normal/high),oracle chequea que tengas el número de discos mencionados anteriormente, conlo que deberás de tener un mínimo de 3 failure groups en redundancia normal y 5 en high. Si no los tuvieras, recibirás un error indicándote lo :

ORA-15273: Could not create the required number of voting files
ORA-15274 ...

En la versión 11gR2, el voting file, registro local y el perfil de Grid Plug and Play (GPnP) tienen toda la información necesaria del cluster por lo que no dependen del OCR, sin embargo el OCR es necesario para administrar los recursos del cluster

El voting disk se ubica en un disco de ASM individual, esto hace que el Cluster Synchronization Services daemon (CSSD) acceda directamente al contenido de los voting disk, lo que le permite arrancarse antes que los propios discos de ASM

En la versión 11gR2 de Oracle el backup del voting disk se lleva a cabo automáticamente con el backup el OCR.

El comando con el que administraremos el voting disk es el crscrtl, la sintaxsis de las acciones mas comunes es:


[grid@rac1 oracle]$ crsctl query css votedisk
##  STATE    File Universal Id                File Name Disk group
--  -----    -----------------                --------- ---------
 1. ONLINE   731fe6f479734f1fbf75ed0d30b3e76b (/dev/asmdisk_sdb1) [OCRQUORUM]
Located 1 voting disk(s).

También prodríamos añadir un votedisk

[grid@rac1 oracle]$ crsctl add css votedisk /shared/vfile1 

Reemplazar un votedisk

[grid@rac1 oracle]$ crsctl replace votedisk /shared/vfile1
  /shared2/vfile2 

O eliminar un votedisk

[grid@rac1 oracle]$ crsctl delete votedisk  /shared2/vfile2 

Como siempre, mas información en la documentación de Oracle en:
http://docs.oracle.com/cd/E11882_01/rac.112/e16794/crsref.htm#CWADD91143

Crear un diskgoup desde asmca

Nos hemos mudado a bloger!
El contenido actualizado de esta entrada lo tienes en:

http://dba.pamplona.name/2013/12/crear-un-diskgoup-desde-asmca.html

Vamos a ver como crear un diskgroup en nuestro grid.

Lo primero que haremos será conectarnos como el usuario propietario del grid control (grid) y cargar las variables de entorno.

[oracle@rac1 grid]$ . oraenv
ORACLE_SID = [oracle] ? +ASM1
The Oracle base has been set to /oracle/11.2.0/grid
[oracle@rac1 grid]$ 

Una vez tenemos cargadas las variables, ejecutaremos el comando que lanza la interfaz gráfica asmca

Nosotros iremos a la pestaña de grupo de discos y pulsaremos en crear . Para este ejemplo crearemos el grupo DATA con los dos primeros discos con redundancia normal. tras esto, haremos lo mismo con los dos últimos (los mas pequeños) y llamaremos a el grupo INDICES

Como podemos ver, el uso de la herramienta gráfica que gestiona el ASM es bastante sencilla, en la siguiente entrada crearemos un grupo y le asignaremos discos desde la línea de comandos.