Recuperar el disco de votación de Oracle cuando falta su copia de seguridad

by Ravi kant Sharma, Oracle Database Administrator, Rackspace Technology

Introducción

Este blog explora un escenario en el que se ha perdido un Oracle© Cluster Registry (OCR) y un disco de votación, y el disco de votación no tiene copia de seguridad. Aunque es una situación complicada, puedes restaurarlo desde la última copia de seguridad automática del OCR.

El disco de votación es un archivo que gestiona la información sobre la pertenencia a un nodo, y el OCR es un archivo que gestiona la información de configuración del clúster y de la base de datos de Real Application Clusters (RAC). El proceso de instalación de Oracle Clusterware crea el disco de votación y el OCR en un volumen de almacenamiento compartido.

Un nodo miembro del clúster debe acceder siempre a la mitad del disco de votación para evitar la expulsión del nodo del grupo de clúster. El disco de votación desempeña un papel clave al garantizar que todos los nodos marcan su disponibilidad. El demonio de los Servicios de Sincronización de Cluster (CSSd) realiza todas las operaciones para el disco de votación en Clusterware.

El OCR sirve como repositorio central para Cluster Ready Services (CRS)---;almacenando los metadatos, configuración e información de estado para todos los recursos de cluster definidos en Clusterware. El OCR conserva siempre las tres últimas copias de seguridad del OCR, que tienen cuatro horas, un día y una semana de antigüedad.

¿Qué se almacena en el OCR?

  • Información sobre la pertenencia a un nodo, incluidos los nodos que forman parte del clúster
  • Versión activa actual del software
  • Ubicación del disco de votación
  • Grupos de servidores

Estado de los recursos del clúster, como bases de datos RAC, escuchadores, instancias y otros servicios de componentes de Oracle

 ¿Qué se almacena en el disco de votación?

  • Datos estáticos: Mantiene la información sobre todos los nodos de un clúster.
  • Datos dinámicos: Guarda la información sobre el mecanismo de latido del disco.

El disco de votación también mantiene los detalles sobre la pertenencia a los nodos del clúster, como qué nodo forma parte actualmente del clúster, o qué nodo se une o abandona el clúster.

¿Dónde se guarda el disco de votación?

El disco de votación es un disco compartido al que acceden todos los nodos miembros del clúster durante una operación. Debe almacenar los discos de votación en un almacenamiento accesible compartido, como Oracle Automatic Storage Management (ASM) o un sistema de archivos de clúster certificado.

Detalles medioambientales

El escenario de ejemplo para este blog utiliza el siguiente entorno:

  • Versión de Oracle: Versión 11.2.0.4.0
  • SO: Sun OS 5.11 11.2
  • Clúster: RAC (2 nodos)

El error

Arreglemos el siguiente error:

Building GCP  Landing Zones Pic 6
Building GCP Landing Zones Pic 7
    cssd  (3980)]CRS-1714:No se ha podido descubrir ningún archivo de votación,     reintentando el descubrimiento en 15 segundos; Detalles en (:CSSNM00070:)     en /oracle/11.2.0/grid/log/testdb01/cssd/ocssd.log

Tenemos que acceder al disco de OCR y de votación para que aparezca el clúster. Sin embargo, como no se puede acceder a estos recursos, el clúster permanece inactivo.

Restaurar el disco de votación

Siga los siguientes pasos para restaurar el disco de votación a partir de la copia de seguridad de OCR.

Paso 1: Desactivar el servicio de inicio automático de CRS

Ejecute el siguiente comando para desactivar el reinicio automático:

root@testdb01:/oracle/11.2.0/grid/bin# ./crsctl disable crs

Paso 2: Reinicie el nodo

Ejecute el siguiente comando para reiniciar el nodo:

root@testdb01:/oracle/11.2.0/grid/bin# init 6

Paso 3: Comprobar que el servicio CSR no se ha iniciado

Después de reiniciar, el servicio CSR no debería estar ejecutándose porque usted lo desactivó en el Paso 2. Ejecute el siguiente comando para comprobar si se ha iniciado el servicio CRS:

root@testdb01:/oracle/11.2.0/grid/bin# ./crsct comprobar crs

Paso 4: Borrar la cabecera del disco de votación

Antes de crear el grupo de discos, ejecute el siguiente comando para borrar la cabecera del disco de votación actual que ha fallado y poder reutilizarlo:

root@testdb01:/dev/rdsk# dd if=/dev/zero     of=/dev/rdsk/c0t60002AC0000000000000001900008265d0s0 bs=1024k count=1000

Paso 5: Iniciar el clúster

Ejecute el siguiente comando para iniciar el clúster en modo exclusivo:

root@testdb01:/oracle/11.2.0/grid/bin# ./crsctl start crs -excl

Paso 6: Iniciar el ASM con un PFILE

Ejecute el siguiente comando para iniciar el ASM con un PFILE:

  root @testdb01:/oracle/11.2.0/grid/bin# su - grid     -bash-4.1$sqlplus / as sysasm     startup pfile='location of pfile';     ASM instance started     Total System Global Area 1136082944 bytes     Fixed Size 2189048 bytes     Variable Size 1108728072 bytes     ASM Cache 25165824 bytes     ORA-15032: not all alterations performed     ORA-15017: diskgroup "OCRDATA" cannot be mounted     ORA-15063: ASM descubrió un número insuficiente de discos para diskgroup     "OCRDATA"

Paso 7: Crear un grupo de discos

Ejecute el siguiente comando para crear un grupo de discos:

   SQL  > create diskgroup OCRDATA disco de redundancia externa     '/dev/rdsk/c0t60002AC0000000000000001900008265d0s0' attribute 'COMPATIBLE.ASM'='11.2';     Diskgroup created

Paso 8: Crear un SPFILE y reiniciar el ASM

Ejecute los siguientes comandos para crear un SPFILE a partir del PFILE de ASM y reiniciar ASM para que lea el SPFILE del disco de votación:

SQL> create spfile='+OCRDATA' from pfile='/home/grid/initASM1.ora';     Fichero creado.     SQL  > shutdown     ASM diskgroups volume disabled     ASM diskgroups dismounted     ASM instance shutdown     SQL> startup     ASM instance started     Total System Global Area 1136082944 bytes     Fixed Size 2189048 bytes     Variable Size 1108728072 bytes     ASM Cache 25165824 bytes     ASM diskgroups mounted     ASM diskgroups volume enabled     SQL> exit

Paso 9: Restaurar la copia de seguridad actual del OCR

Ejecute el siguiente comando para restaurar la copia de seguridad de OCR:

 root @testdb01:/oracle/11.2.0/grid/bin# ./ocrconfig -restore     /oracle  /11.2.0/grid/cdata/testdb01-kl/day.ocr ------(Última copia de seguridad automática de OCR desde la ubicación predeterminada)

Paso 10: Sustituir el disco de votación

Ejecute el siguiente comando para sustituir el disco de votación:

    root  @testdb01:/oracle/11.2.0/grid/bin# ./crsctl replace votedisk +OCRDATA     Añadido con  éxito el disco de votación b1e7c2fbeb754f82bf09a991b2cf4441. Reemplazado con éxito el grupo de discos de votación con +OCRDATA.     CRS  -4266: Archivo(s) de votación reemplazado(s) con éxito     root@testdb01:/oracle/11.2.0/grid/bin#

Paso 11: Habilitar el servicio de inicio automático de CRS

Ejecute el siguiente comando para sustituir el disco de votación:

    root  @testdb01:/oracle/11.2.0/grid/bin# ./crsctl replace votedisk +OCRDATA     Añadido con  éxito el disco de votación b1e7c2fbeb754f82bf09a991b2cf4441. Reemplazado con éxito el grupo de discos de votación con +OCRDATA.     CRS  -4266: Archivo(s) de votación reemplazado(s) con éxito     root@testdb01:/oracle/11.2.0/grid/bin#

Paso 11: Habilitar el servicio de inicio automático de CRS

Ejecute los siguientes comandos para habilitar el servicio de inicio automático de CRS y compruebe que todos los servicios de clúster están en línea: root@testdb01:/oracle/11.2.0/grid/bin# ./crsctl enable crs     CRS-4622: El inicio automático de Oracle High Availability Services está habilitado.     root@testdb01:/oracle/11.2.0/grid/bin# ./crsctl start cluster     root@testdb01:/oracle/11.2.0/grid/bin# ./crsctl check crs     root@testdb01:/oracle/11.2.0/grid/bin# ./crsctl stop crs -f     root@testdb01:/oracle/11.2.0/grid/bin# ./crsctl start crs

Paso 12: Comprobar el estado del disco OCR

Ejecute el siguiente comando para comprobar el estado del disco OCR:    root@testdb01:/oracle/11.2.0/grid/bin# ./ocrcheck     El estado del Oracle Cluster Registry es el siguiente :     Versión : 3     Espacio  total (kbytes) : 262120     Espacio  utilizado (kbytes) : 2816     Espacio  disponible (kbytes) : 259304     ID : 1103197739     Nombre de dispositivo/archivo : +OCRDATA     Comprobación de integridad de  dispositivo/archivo realizada con éxito     Dispositivo/archivo no configurado     Dispositivo/archivo no configurado     Dispositivo/archivo no configurado     Dispositivo/archivo no configurado     Comprobación de integridad  de registro de clúster realizada con éxito     Comprobación de corrupción  lógica realizada con éxito

Paso 13: Comprobar los detalles del disco de votación

Ejecute el siguiente comando para verificar el disco de votación:

 root @testdb01:/oracle/11.2.0/grid/bin# ./crsctl query css votedisk     ## STATE Archivo Id Universal Nombre de archivo Grupo de discos     -- ----- ----------------- ---------     1. ONLINE b1e7c2fbeb754f82bf09a991b2cf4441     (/dev/rdsk/c0t60002AC000000000001900008265d0s0) [OCRDATA]     Localizado 1 disco(s) de votación.  

Paso 14: Comprobar el estado del servicio CRS

Ejecute el siguiente comando para verificar que el servicio CRS se está ejecutando:

 root @testdb01:/oracle/11.2.0/grid/bin# ./crs_stat -t     root@testdb01:/oracle/11.2.0/grid/bin# ./crs_stat -t     Nombre Tipo Estado Destino Host     ------------------------------------------------------------     ora....VE.dg ora....up.type ONLINE ONLINE testdb01...db01     ora....XK.dg ora....up.type ONLINE ONLINE testdb01...db01     ora....XK.dg ora....up.type ONLINE ONLINE testdb01...db01     ora....ER.lsnr ora....er.type ONLINE ONLINE testdb01...db01     ora....N1.lsnr ora....er.type ONLINE ONLINE testdb01...db01     ora....TA.dg ora....up.type ONLINE ONLINE testdb01...db01     ora.REDO.dg ora....up.type ONLINE ONLINE testdb01...db01     ora.asm ora.asm.type ONLINE ONLINE testdb01...db01     ora.cvu ora.cvu.type ONLINE ONLINE testdb01...db01     ora.gsd ora.gsd.type OFFLINE OFFLINE     ora....network ora....rk.type ONLINE ONLINE testdb01...db01     ora.oc4j ora.oc4j.type ONLINE ONLINE testdb01.....db01     ora.ons ora.ons.type ONLINE ONLINE testdb01...db01     ora....ry.acfs ora....fs.type ONLINE ONLINE testdb01...db01     ora.scan1.vip ora....ip.type ONLINE ONLINE testdb01.....db01     ora....SM1.asm aplicación ONLINE ONLINE testdb01...db01     ora....01.lsnr aplicación ONLINE ONLINE testdb01...db01     ora....b01.gsd aplicación OFFLINE OFFLINE     ora....b01.ons aplicación ONLINE ONLINE testdb01...db01     ora....b01.vip ora....t1.type ONLINE ONLINE testdb01...db01     ora....b02.vip ora....t1.type ONLINE ONLINE testdb01...db01

Paso 15: Comprobar los grupos de discos ASM

Ejecute los siguientes comandos para comprobar los grupos de discos ASM:

 root @testdb01:/oracle/11.2.0/grid/bin# su - grid     Oracle Corporation SunOS 5.11 11.2 Marzo de 2015     -bash-4.1$ asmcmd     ASMCMD> lsdg     State Type Rebal Sector Block AU Total_MB Free_MB Req_mir_free_MB Usable_file_MB     Offline_disks Voting_files Name     MOUNTED EXTERN N  512 4096 1048576 1023991 1023549 0 1023549 0     N ARCHIVE/     MOUNTED EXTERN N  512 4096 1048576 1023991 1023881 0 1023881 0     N INDEX1/     MOUNTED EXTERN N 512 4096 1048576 51191 50795 0 50795 0     Y OCRDATA/     MOUNTED EXTERN N  512 4096 1048576 1023991 818013 0 818013 0     N ORADATA1/     MOUNTED EXTERN N  512 4096 1048576 511991 479085 0 479085 0     N REDO/

Conclusión

Los pasos de este blog muestran cómo arreglar un disco de votación fallido en cualquier entorno RAC. Siguiendo estos pasos, puede solucionar el problema de la falta de copia de seguridad del disco de votación recuperando una copia de seguridad del OCR. Si la recuperación del disco tiene éxito, puede volver a utilizarlo.

Recuerde que debe activar la copia de seguridad automática OCR para que esta solución funcione. OCR siempre almacena la copia de seguridad en la ubicación predeterminada o en la que usted especifique.

Obtenga más información sobre nuestros servicios de AWS