Tutorial para DBAs: Uso de crsctl para Configurar SPFILE en ASM (Versiones 11g-19c)

Introducción:

Como DBAs de Oracle, sabemos que el SPFILE es parte del corazón de nuestra base de datos Oracle y en la botica cuidamos la salud de las BBDD y para ello almacenar los parámetros de inicialización, y su correcta gestión es vital. En entornos ASM, modificar el SPFILE requiere un entendimiento profundo de crsctl y ASMCMD. En este artículo, te guiaré a través del proceso.

Revisando el SPFILE Actual en ASM:

Antes de realizar cualquier modificación, es fundamental conocer el SPFILE actual en uso. Aquí te muestro cómo hacerlo:

  1. Usando crsctl:

     [grid@laboratoriodelabotica ~]$ crsctl stat res ora.boticadb.db –p
    

    Este comando muestra los atributos del recurso de la base de datos, incluyendo la ubicación del SPFILE.

  2. Copiando el SPFILE a un Archivo Temporal:

     ASMCMD> cp +DISKGROUPMIRROR/BOTICADBA/PARAMETERFILE/spfile.270.1032718459 /tmp/sptemp.ora
    

    Copiamos el SPFILE a un archivo temporal para su edición.

  3. Verificando el Estado de los Recursos:

     crsctl stat res –t
    

    Este comando muestra el estado de todos los recursos del cluster.

  4. Confirmando la Ubicación del SPFILE con SQL:

     SQL> show parameter spfile
    

    Este comando confirma la ubicación del SPFILE que la base de datos está utilizando.

Modificando el SPFILE:

  1. Editando el Archivo Temporal:

    Edita el archivo /tmp/sptemp.ora con los cambios (solo si es necesario)

  2. Reemplazando el SPFILE en ASM:

    Aquí es donde la sintaxis de ASMCMD se vuelve crucial. Dependiendo de la versión de Oracle, los comandos pueden variar ligeramente:

Oracle 11g/12c:

  •   ASMCMD> rm +DISKGROUPMIRROR/BOTICADBA/PARAMETERFILE/spfile.270.1032718459
      ASMCMD> cp /tmp/sptemp.ora +DISKGROUPMIRROR/BOTICADBA/PARAMETERFILE/spfile.new
    
  1. Actualizando el Recurso de la Base de Datos:

     crsctl modify res ora.boticadb.db -attr "PARAMETER_FILE=+DISKGROUPMIRROR/BOTICADBA/PARAMETERFILE/spfile.new"
    

    Actualizamos el recurso de la base de datos para que utilice el nuevo SPFILE.

Reiniciando la Base de Datos:

  1. Deteniendo la Base de Datos:

     [oracle@laboratoriodelabotica ~]$ srvctl stop database -d boticadb
    
  2. Iniciando la Base de Datos:

     [oracle@laboratoriodelabotica ~]$ srvctl start database -d boticadb
    
  3. Verificando el Nuevo SPFILE:

     SQL> show parameter spfile
    

    Verificamos que la base de datos esté utilizando el nuevo SPFILE.

Verificando la Configuración del Cluster con crsctl check config:

Después de modificar el SPFILE y reiniciar la base de datos, es crucial verificar la configuración del cluster para asegurar que todo funcione correctamente.

  1. Ejecutando crsctl check config:

     [grid@laboratoriodelabotica ~]$ crsctl check config
    

    Este comando verifica la integridad de la configuración del cluster, incluyendo la red, el almacenamiento y los recursos.

  2. Interpretando los Resultados:

    • Salida Exitosa:

      Si la configuración es correcta, el comando no mostrará errores.

    • Errores Comunes y Soluciones:

      • Error: CRS-4639: Could not contact Oracle High Availability Services:

        Este error indica un problema con los servicios de alta disponibilidad.

        • Solución: Verifica que los servicios CRS estén en ejecución:

            [root@laboratoriodelabotica ~]# crsctl start crs
          
      • Error: CRS-4535: Cannot communicate with Cluster Synchronization Services daemon:

        Este error indica un problema con el daemon CSS.

        • Solución: Verifica el estado de CSS y reinicia el cluster si es necesario:

            [root@laboratoriodelabotica ~]# crsctl check css
            [root@laboratoriodelabotica ~]# crsctl stop crs -f
            [root@laboratoriodelabotica ~]# crsctl start crs
          
      • Error: CRS-4000: Command check failed, or completed with errors:

        Este error genérico indica que la verificación falló. Revisa los logs de CRS para obtener más detalles:

        • /u01/app/grid/diag/crs/boticadb1/crs/trace/ocssd.log

        • /u01/app/grid/diag/crs/boticadb2/crs/trace/crsd.log

        • Solución: Los logs te darán pistas sobre la causa del error. Sigue las recomendaciones de Oracle Support para resolver problemas específicos.

Consejos:

Sintaxis ASMCMD Completa:

    • ASMCMD> cp [opciones] origen destino: Copia archivos entre ASM y el sistema de archivos local.

      • ASMCMD> rm [opciones] nombre_archivo: Elimina archivos de ASM.

      • ASMCMD> ls [opciones] [ruta]: Lista el contenido de un directorio ASM.

      • ASMCMD> mkdir [opciones] nombre_directorio: Crea un directorio en ASM.

      • ASMCMD> pwd: Muestra el directorio actual en ASM.

Diferencias de Versión:

    • Siempre consulta la documentación específica de tu versión de Oracle para conocer las últimas actualizaciones y cambios en ASMCMD.

      • Presta especial atención a las opciones de los comandos, ya que pueden variar entre versiones.

Ejemplos Específicos de Parámetros del SPFILE:

    • Modificando memory_target:

      SQL

          ALTER SYSTEM SET memory_target=8G SCOPE=SPFILE;
      
      • Modificando processes:

        SQL

          ALTER SYSTEM SET processes=500 SCOPE=SPFILE;
        

Verificando la Integridad del SPFILE:

    • Después de modificar el SPFILE, verifica que no esté corrupto:

          SQL> CREATE PFILE='/tmp/verify.ora' FROM SPFILE='+DISKGROUPMIRROR/BOTICADBA/PARAMETERFILE/spfile.new';
      

      Si el comando se ejecuta sin errores, el SPFILE es válido.

Conclusión:

Modificar el SPFILE en ASM puede parecer complejo, pero con un conocimiento sólido de crsctl y ASMCMD, y siguiendo las mejores prácticas, podemos realizar esta tarea de manera eficiente y segura.

En laboticadeldba.com, te queremos acompañar en el cuidado y dedicación por las bases de Datos Oracle, espero este articulo ayude a mejorar la salud de tus bases de datos en compromiso con la excelencia y la calidad de tus entornos Oracle.

0
Subscribe to my newsletter

Read articles from Mauricio Muñoz Palma directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Mauricio Muñoz Palma
Mauricio Muñoz Palma

Bienvenidos a "La Botica del DBA" Donde la pasión por las bases de datos Oracle se transforma en conocimiento y excelencia. Este espacio está diseñado para ser el laboratorio de ideas, soluciones y estrategias que todo DBA necesita para optimizar, innovar y liderar en el mundo de las bases de datos. Desde los fundamentos hasta las últimas tendencias, aquí encontrarás guías prácticas, análisis profundos y herramientas que impulsarán tu carrera y tus proyectos al siguiente nivel.