Nodes Lacking Space Due to Large Cluster Health Monitor File Crfclust.Bdb

Problema

Al llegar un alerta con el 88 % del /u01 catalogado como un critical, enviado por la herramienta de monitoreo #OracleCloudControl13 , comenzamos por revisar los indicadores de Logs, traces que ya tenemos rgistrados con logrotate y con adrci para su depuracion automatizada.

A continuacion mostramos el estado de volumenes ocupados ,siendo los mismos donde almacenamos los binarios de Oracle en cada uno de los nodos miembros del cluster.

[oracle@srvracpro01]$ df -h /u01
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VolGroupSys-LogVolU01 100G 78G 22G 78% /u01

[oracle@srvracpro02]$ df -h /u01 
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VolGroupSys-LogVolU01  100G 81G 19G 81% /u01

Analizemos el problema:

Luego de la revision de los paths en el ORACLE_HOME sin encontrar problemas,  procedemos sobre el GRID_HOME. Luego de la ejecucion del comando du * -sch encontramos directorios con mucho volumen.

Nos dirigimos al $GRID_HOME y verificamos los tamaños de los archivos y nos observamos uno en particular, el archivo Crfclust.Bdb que ocupa aproximadamente 48.5G:

[oragrid@srvracpro01]$ pwd
/u01/app/grid/11.2.0.4/crf/db/srvoracd12b

[oragrid@srvoracd12b srvoracd12b]$ ls -lh | grep bdb
-rw-r----- 1 root root 115M Jan 30 17:28 crfalert.bdb
-rw-r----- 1 root root 48.5G Jan 30 17:28 crfclust.bdb
-rw-r----- 1 root root 8.0K Jan 29 11:54 crfconn.bdb
-rw-r----- 1 root root 126M Jan 30 17:28 crfcpu.bdb
-rw-r----- 1 root root 114M Jan 30 17:28 crfhosts.bdb
-rw-r----- 1 root root 135M Jan 30 17:28 crfloclts.bdb
-rw-r----- 1 root root  88M Jan 30 17:28 crfts.bdb
-rw-r----- 1 root root 8.0K Jan  2 16:58 repdhosts.bdb
-rw-r--r-- 1 root root 115M Jan 30 16:51 srvoracd12b.ldb
[oragrid@srvoracd12b srvoracd12b]$

Entendiendo el problema

Este es un problema que viene derivado del proceso monitor Cluster Health Monitor (CHM) y la base de datos relacionada al proceso, que incrementa notoriamente el espacio.

Solucion

Debemos rezisear el tamaño del file.

Revisemos los parametros actuales que se encuentran en el archivo de configuracion en :

$GRID_HOME/crf/admin/crf<NODE_NAME_SERVER>.ora

BDBLOC=default
HOSTS=srvracpro02,srvracpro01
MYNAME=srvracpro02
CLUSTERNAME=srvracpro
USERNAME=oragrid
CRFHOME=/u01/app/grid/11.2.0.4
srvoracp12a 5=127.0.0.1 0
srvoracp12a 1=127.0.0.1 0
srvoracp12a 0=10.70.40.172 61020
srvoracp11a 5=127.0.0.1 0
srvoracp11a 1=127.0.0.1 0
srvoracp11a 0=10.70.40.171 61020
srvoracp11a 2=10.70.40.171 61021
srvoracp12a 2=10.70.40.172 61021
PINNEDPROCS=ohasd,oraagent,evmd,gpnpd,gipcd,pdflush,ocssd,klogd,crsd
DEAD=srvracpro01,srvracpro02
BDBSIZE=61500
REPLICA=srvoracp12a
STATE=mutated
MASTERPUB=10.70.60.61
MASTER=srvracpro01
ACTIVE=srvracpro01,srvracpro02

Para poder resizear esta base de datos donde escribe el CHM debemos realizar los siguientes pasos

1.  Con el usuario grid del sistema operativo, en el primer nodo, ejecutamos el siguiente comando:

$ oclumon manage -repos resize 259200
srvracpro01 --> retention check successful
srvracpro02 --> retention check successful
New retention is 259200 and will use 4516300800 bytes of disk space

CRS-9115-Cluster Health Monitor repository size change completed on all nodes.

Ahora quedo configurado en un menor tamaño.

CRS-9011-Error manage, despues del Resize

En el caso de que falle el proceso de resizeado, recomendamos seguir con los siguientes pasos.

Despues del resizeo, debemos chequear el tamaño del repositorio, y este falla con el siguiente error:

$ oclumon manage -get repsize
CRS-9011-Error manage: Failed to initialize connection to the Cluster Logger Service

Esto ocurre por que el CHM repository DBD es mas grande que el periodo retencion:

Para resolver este issue, es necesario:

  1. Restartear el service crf  en ambos nodos de poder resolver el problema:
$ crsctl stop res ora.crf -init
CRS-2673: Attempting to stop 'ora.crf' on 'srvracpro01'
CRS-2677: Stop of 'ora.crf' on 'srvracpro01' succeeded
$ crsctl start res ora.crf -init
$ crsctl stop res ora.crf -init
CRS-2673: Attempting to stop 'ora.crf' on 'srvracpro02'
CRS-2677: Stop of 'ora.crf' on 'srvracpro02' succeeded
$ crsctl start res ora.crf -init

4.  Revisemos que el archivo es mas pequeño ahora:

$ cd /u01/app/11.2.0.3/grid/crf/db/oda1
$ ls -lrth | grep bdb
-rw-r----- 1 root root 8.0K Jan 17 08:04 crfhosts.bdb
-rw-r----- 1 root root 8.0K Jan 17 08:04 crfconn.bdb
-rw-r----- 1 root root 128K Jan 17 08:04 crfclust.bdb   <======
-rw-r----- 1 root root 8.0K Jan 17 08:04 crfts.bdb
-rw-r----- 1 root root 8.0K Jan 17 08:04 crfloclts.bdb
-rw-r----- 1 root root 8.0K Jan 17 08:04 crfcpu.bdb
-rw-r----- 1 root root 8.0K Jan 17 08:04 crfalert.bdb

y el Filesystem reclamara el espacio ganado:

$ df -h /u01
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VolGroupSys-LogVolU01
97G 29G 64G 32% /u01

 Notas Recomendadas

Estas notas de MOS estan relacionadas al incidente y recomiedo dar una lectura:

Oracle Cluster Health Monitor (CHM) using large amount of space (more than default) (Doc 1343105.1)

db_delete: BDB grown beyond user desired limits disabling loggerd (Doc ID 1574492.1)

Autor: Juan Andres Mercado

Big Data Enthusiast, DBA & Exadata Manager | Consultant | Father | Musician | Farmer | Environmentalist Argentina | juanmercadoit.com