Añadir un nuevo nodo a un RAC en Oracle

Hola a todos,
Hoy vamos a contar un caso que nos ha pasado en un cliente trabajando con un RAC de dos nodos. Lo que ocurrió es que uno de los nodos se quedo corrupto y dejo de funcionar, tanto la parte del ASM y del cluster como la parte de BBDD. Por esto tuvimos que volver a añadir el nodo completo al RAC de Oracle para que volviera a quedar funcionando con los dos nodos como estaba anteriormente.

Ejecución herramienta de prerrequisitos

La herramienta de prerrequisitos para la instalación de Oracle RAC es cluvfy. Para conocer la sintaxis y todas las posibilidades que ofrece la herramienta se puede consultar la guía de uso.

En el caso que nos ocupa, al estar ya instalados y funcionando con anterioridad el nodo, no sería necesario ejecutar la herramienta, pero de todos modos decidimos ejecutarla para asegurar que no se había desconfigurado nada.

Para el caso de añadir un nuevo nodo al RAC de Oracle hicimos dos ejecuciones, en el nodo que funciona correctamente:

Primero ejecutamos la herramienta con los parámetros para comparar el nuevo nodo con el nodo que funciona correctamente.

[grid@srvuat02 ~]$ cluvfy comp peer -refnode srvuat02 -n srvuat01 -verbose
...
Verification of peer compatibility was successful.

CVU operation performed:      peer compatibility
Date:                         
CVU home:                     /u01/app/12.2.0.1/grid/
User:                         grid
[grid@srvuat02 ~]$

Después ejecutamos la herramienta con para comprobar que cumple los parámetros necesarios para añadir el nuevo nodo.

[grid@srvuat02 ~]$ cluvfy stage -pre nodeadd -n srvuat01 -verbose
...
Pre-check for node addition was successful.

CVU operation performed:      stage -pre nodeadd
Date:                         
CVU home:                     /u01/app/12.2.0.1/grid/
User:                         grid
[grid@srvuat02 ~]$

Configuración del response file

A la hora de añadir el nuevo nodo del cluster, hay dos formas de hacerlo. Una es con la herramienta gráfica de Oracle para estas tareas, y la otra es cuando no se tiene un entorno gráfico, como ocurre en entornos Unix, se realiza con un fichero de configuración llamado response file. Este fichero hay que configurarlo para que la ejecución no de errores. Se puede encontrar un ejemplo del fichero en la ruta $ORACLE_HOME/install/response. Es un fichero muy amplio, pero para la parte de añadir un nuevo nodo al RAC solo hay que completar dos apartados.

Los items más característicos que hay que configurar (aunque puede hacer más según el caso particular) son:

#-------------------------------------------------------------------------------
# Specify the installation option.
# Allowed values: CRS_CONFIG or HA_CONFIG or UPGRADE or CRS_SWONLY or HA_SWONLY
#   - CRS_CONFIG  : To register home and configure Grid Infrastructure for cluster
#   - HA_CONFIG   : To register home and configure Grid Infrastructure for stand alone server
#   - UPGRADE     : To register home and upgrade clusterware software of earlier release
#   - CRS_SWONLY  : To register Grid Infrastructure Software home (can be configured for cluster
#                   or stand alone server later)
#   - HA_SWONLY   : To register Grid Infrastructure Software home (can be configured for stand
#                   alone server later. This is only supported on Windows.)
#   - CRS_ADDNODE : To add more nodes to the cluster
#-------------------------------------------------------------------------------
oracle.install.option=CRS_ADDNODE
#-------------------------------------------------------------------------------
# Specify the complete path of the Oracle Base.
#-------------------------------------------------------------------------------
ORACLE_BASE=/u01/app/grid
#-------------------------------------------------------------------------------
# Specify a name for the Cluster you are creating.
#
# The maximum length allowed for clustername is 15 characters. The name can be
# any combination of lower and uppercase alphabets (A - Z), (0 - 9), hyphen(-)
# and underscore(_).
#-------------------------------------------------------------------------------
oracle.install.crs.config.clusterName=uat
#-------------------------------------------------------------------------------
# Specify the list of nodes that have to be configured to be part of the cluster.
# Examples
# For adding more nodes to the configured cluster: oracle.install.crs.config.clusterNodes=node1:node1-vip:HUB,node2:node2-vip:LEAF
#-------------------------------------------------------------------------------
oracle.install.crs.config.clusterNodes=srvuat01:srvuat01-vip,srvuat02:srvuat02-vip

Añadir el nodo al RAC. Uso de gridSetup

Para añadir el nodo al RAC se utiliza la herramienta gridSetup. Esta herramienta se ejecuta en el nodo activo y, según el response file, realiza tanto la copia del software al nuevo nodo como la configuración del mismo. Incluso levanta la BBDD de ASM, y deja el nodo preparado para añadir las BBDD posteriormente.

Para comprobar que el response file está creado correctamente y no vamos a tener ningun error en este sentido, primero se ejecuta la herramienta con el comando –executePrereqs. Si esta ejecución es correcta, se puede ejecutar el proceso de añadir el nodo al RAC.

La ejecución de los prerequisitos es correcta, se puede proceder a ejecutar el proceso.

El proceso ha ejecutado correctamente, ahora hay que ejecutar el fichero de root, root.sh, para terminar la configuración del entorno.

Es muy interesante seguir el log de esta ejecución, para ver qué pasos ejecuta para levantar el RAC en el nuevo nodo. El log nos explica punto por punto lo que va configurando

Performing root user operation.

The following environment variables are set as:
    ORACLE_OWNER= grid
    ORACLE_HOME=  /u01/app/12.2.0.1/grid
   Copying dbhome to /usr/local/bin ...
   Copying oraenv to /usr/local/bin ...
   Copying coraenv to /usr/local/bin ...

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.
Relinking oracle with rac_on option
Using configuration parameter file: /u01/app/12.2.0.1/grid/crs/install/crsconfig_params
The log of current session can be found at:
  /u01/app/grid/crsdata/srvuat01/crsconfig/rootcrs_srvuat01_2024-XX-XX_XX-XX-XXPM.log
XX/XX/XX XX:XX:XX CLSRSC-594: Executing installation step 1 of 19: 'SetupTFA'.
XX/XX/XX XX:XX:XX CLSRSC-4001: Installing Oracle Trace File Analyzer (TFA) Collector.
XX/XX/XX XX:XX:XX CLSRSC-4002: Successfully installed Oracle Trace File Analyzer (TFA) Collector.
XX/XX/XX XX:XX:XX CLSRSC-594: Executing installation step 2 of 19: 'ValidateEnv'.
XX/XX/XX XX:XX:XX CLSRSC-594: Executing installation step 3 of 19: 'CheckFirstNode'.
XX/XX/XX XX:XX:XX CLSRSC-594: Executing installation step 4 of 19: 'GenSiteGUIDs'.
XX/XX/XX XX:XX:XX CLSRSC-594: Executing installation step 5 of 19: 'SaveParamFile'.
XX/XX/XX XX:XX:XX CLSRSC-594: Executing installation step 6 of 19: 'SetupOSD'.
XX/XX/XX XX:XX:XX CLSRSC-594: Executing installation step 7 of 19: 'CheckCRSConfig'.
XX/XX/XX XX:XX:XX CLSRSC-594: Executing installation step 8 of 19: 'SetupLocalGPNP'.
XX/XX/XX XX:XX:XX CLSRSC-594: Executing installation step 9 of 19: 'ConfigOLR'.
XX/XX/XX XX:XX:XX CLSRSC-594: Executing installation step 10 of 19: 'ConfigCHMOS'.
XX/XX/XX XX:XX:XX CLSRSC-594: Executing installation step 11 of 19: 'CreateOHASD'.
XX/XX/XX XX:XX:XX CLSRSC-594: Executing installation step 12 of 19: 'ConfigOHASD'.
XX/XX/XX XX:XX:XX CLSRSC-330: Adding Clusterware entries to file 'oracle-ohasd.conf'
XX/XX/XX XX:XX:XX CLSRSC-594: Executing installation step 13 of 19: 'InstallAFD'.
XX/XX/XX XX:XX:XX CLSRSC-594: Executing installation step 14 of 19: 'InstallACFS'.
XX/XX/XX XX:XX:XX CLSRSC-594: Executing installation step 15 of 19: 'InstallKA'.
XX/XX/XX XX:XX:XX CLSRSC-594: Executing installation step 16 of 19: 'InitConfig'.
XX/XX/XX XX:XX:XX CLSRSC-594: Executing installation step 17 of 19: 'StartCluster'.
XX/XX/XX XX:XX:XX CLSRSC-343: Successfully started Oracle Clusterware stack
XX/XX/XX XX:XX:XX CLSRSC-594: Executing installation step 18 of 19: 'ConfigNode'.
Successfully accumulated necessary OCR keys.
Creating OCR keys for user 'root', privgrp 'root'..
Operation successful.
XX/XX/XX XX:XX:XX CLSRSC-594: Executing installation step 19 of 19: 'PostConfig'.
XX/XX/XX XX:XX:XX CLSRSC-325: Configure Oracle Grid Infrastructure for a Cluster ... succeeded

Con esto queda el nodo añadido al cluster, con todos los procesos levantados y la BBDD de ASM online

Añadir la BBDD al nuevo nodo del RAC. Uso de addnode

Después de dejar configurado el RAC, ahora hay que añadir la parte de BBDD al RAC. Esto se hace con la herramienta addnode, también desde el nodo que está activo. Esta ejecución es más sencilla, solamente hay que indicar el nodo donde se quiere propagar el software de BBDD.

Añadir un nuevo nodo a un RAC en Oracle

También es interesante hacer un seguimiento del fichero de log, que nos dice qué es lo que va ejecutando

Starting Oracle Universal Installer...

Checking Temp space: must be greater than 120 MB.   Actual 3496 MB    Passed
Checking swap space: must be greater than 150 MB.   Actual 16383 MB    Passed

Prepare Configuration in progress.
Prepare Configuration successful.
..................................................   8% Done.
You can find the log of this install session at:
 /u01/app/oraInventory/logs/addNodeActions2024-XX-XX_XX-XX-XXPM.log

Instantiate files in progress.
Instantiate files successful.
..................................................   14% Done.
Copying files to node in progress.
Copying files to node successful.
..................................................   73% Done.
Saving cluster inventory in progress.
..................................................   80% Done.
Saving cluster inventory successful.
The Cluster Node Addition of /u01/app/oracle/product/12.1.0.2/dbhome_1 was successful.
Please check '/tmp/silentInstall.log' for more details.

Setup Oracle Base in progress.
Setup Oracle Base successful.
..................................................   88% Done.
As a root user, execute the following script(s):
 1. /u01/app/oracle/product/12.1.0.2/dbhome_1/root.sh

Execute /u01/app/oracle/product/12.1.0.2/dbhome_1/root.sh on the following nodes:
[srvuat01]
..........
Update Inventory in progress.
..................................................   100% Done.
Update Inventory successful.
Successfully Setup Software.

Y por supuesto hay que ejecutar el fichero root.sh con el usuario oracle en el nodo nuevo

Añadir un nuevo nodo a un RAC en Oracle

Una vez configurada la parte de BBDD en el nuevo nodo, se añade la instancia desde el nodo activo. La instancia en este caso se llama DBPRE, y tiene un servicio levantado DBPRE_app, que hay que configurar en el nuevo nodo.

[oracle@srvuat02 ~]$ dbca -silent -addInstance -gdbName DBPRE -sysDBAPassword XXXXXXXXX -nodelist srvuat01
Adding instance
1% complete
2% complete
6% complete
13% complete
20% complete
26% complete
33% complete
40% complete
46% complete
53% complete
66% complete
Completing instance management.
76% complete
100% complete
Look at the log file "/u01/app/oracle/cfgtoollogs/dbca/DBPRE/DBPRE.log" for further details.
[oracle@srvuat02 ~]$
Añadir un nuevo nodo a un RAC en Oracle

Con esto queda levantada la BBDD en el nuevo nodo y se puede acceder normalmente al levantar los servicios.

SYS@DBPRE1> select INST_ID,INSTANCE_NUMBER,INSTANCE_NAME,HOST_NAME,STATUS from gv$instance;

   INST_ID INSTANCE_NUMBER INSTANCE_NAME    HOST_NAME           STATUS       
---------- --------------- ---------------- ----------------- ----------------- 
         3               3 DBPRE1            srvuat01            OPEN       
         2               2 DBPRE2            srvuat02            OPEN      

Esperamos que os haya resultado de ayuda. No dudéis en poneros en contacto con nosotros en caso de necesitar ayuda en la gestión de vuestras bases de datos. Échale un vistazo a nuestros servicios de soporte y mantenimiento Oracle.

¿Aún no conoces Query Performance? Descubre cómo puede ayudarte en tu entorno Oracle. Más información en su página de LinkedIn.

Sígue a GPS en LinkedIn

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *