Recuperar o disco de votação Oracle quando a cópia de segurança está em falta

by Ravi kant Sharma, Oracle Database Administrator, Rackspace Technology

Introdução

Este blogue explora um cenário em que se perdeu um Oracle© Cluster Registry (OCR) e um disco de votação, e o disco de votação não tem cópia de segurança. Embora seja uma situação complicada, pode restaurá-lo a partir da última cópia de segurança automática do OCR.

O disco de votação é um ficheiro que gere as informações sobre a associação de nós, e o OCR é um ficheiro que gere as informações de configuração do cluster e da base de dados Real Application Clusters (RAC). O processo de instalação do Oracle Clusterware cria o disco de votação e o OCR num volume de armazenamento partilhado.

Um membro do nó do cluster deve aceder sempre a metade do disco de votação para evitar a expulsão do nó do grupo de clusters. O disco de votação desempenha um papel fundamental, garantindo que todos os nós assinalam a sua disponibilidade. O daemon dos Serviços de Sincronização de Cluster (CSSd) executa todas as operações para o disco de votação no Clusterware.

O OCR funciona como o repositório central dos Cluster Ready Services (CRS) - armazenando os metadados, a configuração e as informações de estado de todos os recursos de cluster definidos no Clusterware. O OCR mantém sempre as três últimas cópias de segurança do OCR, que têm quatro horas, um dia e uma semana.

O que é armazenado no OCR?

  • Informações sobre os membros do nó, incluindo os nós que fazem parte do cluster
  • Versão ativa atual do software
  • Localização do disco de votação
  • Pool de servidores

Estado dos recursos do cluster, como bases de dados RAC, listeners, instâncias e outros serviços de componentes Oracle

 O que é que está armazenado no disco de votação?

  • Dados estáticos: Mantém as informações sobre todos os nós de um cluster.
  • Dados dinâmicos: Mantém as informações sobre o mecanismo de pulsação do disco.

O disco de votação também mantém os detalhes sobre a filiação dos nós do cluster, como, por exemplo, qual o nó que faz atualmente parte do cluster, ou qual o nó que está a entrar ou a sair do cluster.

Onde está armazenado o disco de votação?

O disco de votação é um disco partilhado que é acedido por todos os nós membros do cluster durante uma operação. Deve armazenar os discos de votação em armazenamento acessível partilhado, como o Oracle Automatic Storage Management (ASM) ou um sistema de ficheiros de cluster certificado.

Detalhes do ambiente

O cenário de exemplo para este blogue utiliza o seguinte ambiente:

  • Versão Oracle: Versão 11.2.0.4.0
  • OS: Sun OS 5.11 11.2
  • Cluster: RAC (2 nós)

O erro

Vamos corrigir o seguinte erro:

Building GCP  Landing Zones Pic 6
Building GCP Landing Zones Pic 7
    cssd  (3980)]CRS-1714:Não foi possível descobrir quaisquer ficheiros de votação,     tenta novamente a descoberta em 15 segundos; Detalhes em (:CSSNM00070:)     em /oracle/11.2.0/grid/log/testdb01/cssd/ocssd.log

Precisamos de aceder ao OCR e ao disco de votação para ativar o cluster. No entanto, como estes recursos não estão acessíveis, o cluster permanece em baixo.

Restaurar o disco de votação

Utilize os seguintes passos para restaurar o disco de votação a partir da cópia de segurança do OCR.

Passo 1: Desativar o serviço de arranque automático do CRS

Execute o seguinte comando para desativar o reinício automático:

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

Passo 2: Reiniciar o nó

Execute o seguinte comando para reiniciar o nó:

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

Passo 3: Verificar se o serviço CSR não foi iniciado

Após a reinicialização, o serviço CSR não deve estar em execução porque foi desativado no Passo 2. Execute o seguinte comando para verificar se o serviço CRS foi iniciado:

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

Passo 4: Limpar o cabeçalho do disco de votação

Antes de criar o grupo de discos, execute o seguinte comando para limpar o cabeçalho do disco de votação com falha atual, de modo a poder reutilizá-lo:

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

Passo 5: Iniciar o cluster

Execute o seguinte comando para iniciar o cluster em modo exclusivo:

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

Passo 6: Iniciar o ASM com um PFILE

Execute o seguinte comando para iniciar o ASM com um 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: nem todas as alterações foram efectuadas     ORA-15017: diskgroup "OCRDATA" cannot be mounted     ORA-15063: ASM descobriu um número insuficiente de discos para o grupo de discos     "OCRDATA"

Passo 7: Criar um grupo de discos

Execute o seguinte comando para criar um grupo de discos:

   SQL  > create diskgroup OCRDATA external redundancy disk     '/dev/rdsk/c0t60002AC00000000000000000001900008265d0s0' attribute 'COMPATIBLE.ASM'='11.2';     Diskgroup created

Passo 8: Criar um SPFILE e reiniciar o ASM

Execute os seguintes comandos para criar um SPFILE a partir do PFILE do ASM e para reiniciar o ASM para ler o SPFILE do disco de votação:

SQL> create spfile='+OCRDATA' from pfile='/home/grid/initASM1.ora';     Ficheiro criado.     SQL  > shutdown     Volume dos grupos de discos  ASM desativado     Grupos de discos  ASM desmontados     Encerramento da instância  ASM     SQL> startup     Instância ASM iniciada     Área global  total do sistema 1136082944 bytes     Tamanho  fixo 2189048 bytes     Tamanho  variável 1108728072 bytes     Cache  ASM 25165824 bytes     Grupos de discos  ASM montados     Volume dos grupos de discos ASM ativado     SQL> exit

Passo 9: Restaurar a cópia de segurança atual do OCR

Execute o seguinte comando para restaurar a cópia de segurança do OCR:

 root @testdb01:/oracle/11.2.0/grid/bin# ./ocrconfig -restore     /oracle  /11.2.0/grid/cdata/testdb01-kl/day.ocr ------(Última cópia de segurança automática do OCR a partir da localização predefinida)

Passo 10: Substituir o disco de votação

Execute o seguinte comando para substituir o disco de votação:

    root  @testdb01:/oracle/11.2.0/grid/bin# ./crsctl replace votedisk +OCRDATA     Adição bem  sucedida do disco de votação b1e7c2fbeb754f82bf09a991b2cf4441. Substituiu com êxito o grupo de discos de votação por +OCRDATA.     CRS  -4266: Ficheiro(s) de votação substituído(s) com sucesso     root@testdb01:/oracle/11.2.0/grid/bin#

Passo 11: Ativar o serviço de arranque automático do CRS

Execute o seguinte comando para substituir o disco de votação:

    root  @testdb01:/oracle/11.2.0/grid/bin# ./crsctl replace votedisk +OCRDATA     Adição bem  sucedida do disco de votação b1e7c2fbeb754f82bf09a991b2cf4441. Substituiu com êxito o grupo de discos de votação por +OCRDATA.     CRS  -4266: Ficheiro(s) de votação substituído(s) com sucesso     root@testdb01:/oracle/11.2.0/grid/bin#

Passo 11: Ativar o serviço de arranque automático do CRS

Execute os seguintes comandos para ativar o serviço de arranque automático do CRS e verifique se todos os serviços de cluster estão online: root@testdb01:/oracle/11.2.0/grid/bin# ./crsctl enable crs     CRS-4622: O arranque automático dos Oracle High Availability Services está ativado.     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

Passo 12: Verificar o estado do disco de OCR

Execute o seguinte comando para verificar o estado do disco do OCR:    root@testdb01:/oracle/11.2.0/grid/bin# ./ocrcheck     O  estado do Oracle Cluster Registry é o seguinte:     Versão : 3     Espaço  total (kbytes) : 262120     Espaço  utilizado (kbytes) : 2816     Espaço  disponível (kbytes) : 259304     ID : 1103197739     Nome do  dispositivo/ficheiro : +OCRDATA     Verificação da integridade do  dispositivo/ficheiro bem sucedida     Dispositivo/ficheiro não configurado     Dispositivo/ficheiro não configurado     Dispositivo/ficheiro não configurado     Dispositivo/ficheiro não configurado     Verificação da integridade do registo do cluster bem sucedida     Verificação da corrupção  lógica bem sucedida

Passo 13: Verificar os detalhes do disco de votação

Execute o seguinte comando para verificar o disco de votação:

 root @testdb01:/oracle/11.2.0/grid/bin# ./crsctl query css votedisk     ## STATE File Universal Id File Name Disk group     -- ----- ----------------- --------- ---------     1. ONLINE b1e7c2fbeb754f82bf09a991b2cf4441     (/dev/rdsk/c0t60002AC0000000000000001900008265d0s0) [OCRDATA]     Localizado 1 disco(s) de votação.  

Etapa 14: Verificar o estado do serviço do SIR

Execute o seguinte comando para verificar se o serviço CRS está em execução:

 root @testdb01:/oracle/11.2.0/grid/bin# ./crs_stat -t     root@testdb01:/oracle/11.2.0/grid/bin# ./crs_stat -t     Nome Tipo Estado de destino Anfitrião     ------------------------------------------------------------     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.digite ONLINE ONLINE testdb01...db01     ora.gsd ora.gsd.digite OFFLINE OFFLINE     ora....network ora....rk.digite ONLINE ONLINE testdb01...db01     ora.oc4j ora.oc4j.digite ONLINE 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 aplicação ONLINE ONLINE testdb01...db01     ora....01.lsnr aplicação ONLINE ONLINE testdb01...db01     ora....b01.gsd aplicação OFFLINE OFFLINE     ora....b01.ons aplicação ONLINE ONLINE testdb01...db01     ora....b01.vip ora....t1.type ONLINE ONLINE testdb01...db01     ora....b02.vip ora....t1.type ONLINE ONLINE testdb01...db01

Passo 15: Verificar os grupos de discos ASM

Execute os seguintes comandos para verificar os grupos de discos ASM:

 root @testdb01:/oracle/11.2.0/grid/bin# su - grid     Oracle Corporation SunOS 5.11 11.2 março 2015     -bash-4.1$ asmcmd     ASMCMD> lsdg     State Type Rebal Setor 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/

Conclusão

As etapas deste blogue mostram como corrigir um disco de votação com falha em qualquer ambiente RAC. Utilizando estes passos, pode ultrapassar o problema da falta de cópia de segurança do disco de votação, recuperando uma cópia de segurança do OCR. Se a recuperação do disco for bem sucedida, pode reutilizá-lo.

Não se esqueça de que tem de ativar a cópia de segurança automática do OCR para que esta solução funcione. O OCR armazena sempre a cópia de segurança na localização predefinida ou na localização especificada pelo utilizador.

Saiba mais sobre nossos serviços AWS