segunda-feira, 19 de março de 2018

OCR e OLR restore

O Oracle Clusterware possui vários componentes essenciais para seu funcionamento, dentre eles o OCR e OLR.

O Oracle Cluster Registry (OCR) é responsável por gerenciar as configurações e recursos do Oracle Clusterware e do Oracle RAC, como lista de nós do cluster, instancias de bancode dados, serviços entre outros.

O Oracle Local Registry (OLR) foi introduzido na versão 11gR2 do Grid Infrastructure e diferentemente do OCR ele não é compartilhado entre os nodes, cada node possui seu OLR contendo especificações locais requeridas pelo OHASD (Oracle High Availability Services).

No intervalo de 1 semana, devido instabilidades no storage, precisei restaurar ambos para disponibilizar novamente o ambiente, desta forma compartilho abaixo procedimentos realizados:

Ao executar o ocrcheck, que exibe informações relacionadas ao OCR como tamanho, versão, localização e status, percebe-se que ao final ocorre o erro PROT-602 informando falha na recuperação dos dados do cluster registry (OCR).


[root@srvprd01 oraagent_oracle]# ocrcheck
Status of Oracle Cluster Registry is as follows :
         Version                  :          3
         Total space (kbytes)     :     262120
         Used space (kbytes)      :       5860
         Available space (kbytes) :     256260
         ID                       :   84391272
         Device/File Name         :       +OCR
                                    Device/File integrity check succeeded

                                    Device/File not configured

                                    Device/File not configured

                                    Device/File not configured

                                    Device/File not configured

         Cluster registry integrity check succeeded

PROT-602: Failed to retrieve data from the cluster registry

O backup do OCR, além de poder ser feito manualmente (ocrconfig -manualbackup e ocrconfig -export) ainda é gerado de forma automática a cada 4 horas pelo CRSD (Cluster Ready Services Daemon) cuja retenção segue as seguintes políticas:

  • Retém os últimos 3 backups do OCR;
  • Retém 1 backup diário;
  • Retém 1 backup semanal.

[root@srvprd01 oracle]# ocrconfig -showbackup

srvprd01     2018/02/26 14:20:00     /oracle/GRID/11204/cdata/clusterprd/backup00.ocr

srvprd01     2018/02/26 10:19:59     /oracle/GRID/11204/cdata/clusterprd/backup01.ocr

srvprd01     2018/02/26 06:19:58     /oracle/GRID/11204/cdata/clusterprd/backup02.ocr

srvprd01     2018/02/25 10:19:55     /oracle/GRID/11204/cdata/clusterprd/day.ocr

srvprd01     2018/02/07 23:25:56     /oracle/GRID/11204/cdata/clusterprd/week.ocr
PROT-25: Manual backups for the Oracle Cluster Registry are not available

Para realizar o restore do OCR primeiramente é preciso parar o Clusterware em execução e subi-lo em modo exclusivo em um dos nodes:

[root@srvprd01 oracle]# crsctl stop crs
....
....
[root@srvprd01 oracle]# crsctl start crs -excl -nocrs
CRS-4123: Oracle High Availability Services has been started.
CRS-2673: Attempting to stop 'ora.drivers.acfs' on 'srvprd01'
CRS-2677: Stop of 'ora.drivers.acfs' on 'srvprd01' succeeded
CRS-2672: Attempting to start 'ora.mdnsd' on 'srvprd01'
CRS-2676: Start of 'ora.mdnsd' on 'srvprd01' succeeded
CRS-2672: Attempting to start 'ora.gpnpd' on 'srvprd01'
CRS-2676: Start of 'ora.gpnpd' on 'srvprd01' succeeded
CRS-2672: Attempting to start 'ora.cssdmonitor' on 'srvprd01'
CRS-2672: Attempting to start 'ora.gipcd' on 'srvprd01'
CRS-2676: Start of 'ora.cssdmonitor' on 'srvprd01' succeeded
CRS-2676: Start of 'ora.gipcd' on 'srvprd01' succeeded
CRS-2672: Attempting to start 'ora.cssd' on 'srvprd01'
CRS-2672: Attempting to start 'ora.diskmon' on 'srvprd01'
CRS-2676: Start of 'ora.diskmon' on 'srvprd01' succeeded
CRS-2676: Start of 'ora.cssd' on 'srvprd01' succeeded
CRS-2672: Attempting to start 'ora.drivers.acfs' on 'srvprd01'
CRS-2679: Attempting to clean 'ora.cluster_interconnect.haip' on 'srvprd01'
CRS-2672: Attempting to start 'ora.ctssd' on 'srvprd01'
CRS-2681: Clean of 'ora.cluster_interconnect.haip' on 'srvprd01' succeeded
CRS-2672: Attempting to start 'ora.cluster_interconnect.haip' on 'srvprd01'
CRS-2676: Start of 'ora.drivers.acfs' on 'srvprd01' succeeded
CRS-2676: Start of 'ora.ctssd' on 'srvprd01' succeeded
CRS-2676: Start of 'ora.cluster_interconnect.haip' on 'srvprd01' succeeded
CRS-2679: Attempting to clean 'ora.asm' on 'srvprd01'
CRS-2681: Clean of 'ora.asm' on 'srvprd01' succeeded
CRS-2672: Attempting to start 'ora.asm' on 'srvprd01'
CRS-2676: Start of 'ora.asm' on 'srvprd01' succeeded

A opção -nocrs faz com que o processo CRSD e OCR não iniciem junto com os demais processos do Oracle Clusteware.

Executando o restore físico do OCR utilizando o último backup automático gerado:

[root@srvprd01 oracle]# ocrconfig -restore /oracle/GRID/11204/cdata/clusterprd/backup00.ocr
[root@srvprd01 oracle]# ocrcheck
Status of Oracle Cluster Registry is as follows :
         Version                  :          3
         Total space (kbytes)     :     262120
         Used space (kbytes)      :       5860
         Available space (kbytes) :     256260
         ID                       :   84391272
         Device/File Name         :       +OCR
                                    Device/File integrity check succeeded

                                    Device/File not configured

                                    Device/File not configured

                                    Device/File not configured

                                    Device/File not configured

         Cluster registry integrity check succeeded

         Logical corruption check succeeded

Conforme retorno do ocrcheck acima já é visível que não temos mais problemas com o OCR, basta parar agora o CRS que estava em modo exclusivo e iniciá-lo normalmente. 

[root@srvprd01 oracle]# crsctl stop crs
CRS-2791: Starting shutdown of Oracle High Availability Services-managed resources on 'srvprd01'
CRS-2673: Attempting to stop 'ora.mdnsd' on 'srvprd01'
CRS-2673: Attempting to stop 'ora.drivers.acfs' on 'srvprd01'
CRS-2673: Attempting to stop 'ora.ctssd' on 'srvprd01'
CRS-2673: Attempting to stop 'ora.asm' on 'srvprd01'
CRS-2677: Stop of 'ora.mdnsd' on 'srvprd01' succeeded
CRS-2677: Stop of 'ora.ctssd' on 'srvprd01' succeeded
CRS-2677: Stop of 'ora.drivers.acfs' on 'srvprd01' succeeded
CRS-2677: Stop of 'ora.asm' on 'srvprd01' succeeded
CRS-2673: Attempting to stop 'ora.cluster_interconnect.haip' on 'srvprd01'
CRS-2677: Stop of 'ora.cluster_interconnect.haip' on 'srvprd01' succeeded
CRS-2673: Attempting to stop 'ora.cssd' on 'srvprd01'
CRS-2677: Stop of 'ora.cssd' on 'srvprd01' succeeded
CRS-2673: Attempting to stop 'ora.gipcd' on 'srvprd01'
CRS-2677: Stop of 'ora.gipcd' on 'srvprd01' succeeded
CRS-2673: Attempting to stop 'ora.gpnpd' on 'srvprd01'
CRS-2677: Stop of 'ora.gpnpd' on 'srvprd01' succeeded
CRS-2793: Shutdown of Oracle High Availability Services-managed resources on 'srvprd01' has completed
CRS-4133: Oracle High Availability Services has been stopped.
[root@srvprd01 oracle]#
[root@srvprd01 oracle]#
[root@srvprd01 oracle]#
[root@srvprd01 oracle]#
[root@srvprd01 oracle]# crsctl start crs
CRS-4123: Oracle High Availability Services has been started.

No caso do OLR, ao tentar subir o HAS obtive retorno de falha.

[root@srvprd01 ~]# crsctl start has
CRS-4124: Oracle High Availability Services startup failed.
CRS-4000: Command Start failed, or completed with errors.

Olhando para o arquivo de log abaixo é visível várias tentativas de startup do OLR no servidor, porém falhas (erro no final das tentativas).

[root@srvprd01 srvprd01]# pwd
/oracle/GRID/11204/log/srvprd01
[root@srvprd01 srvprd01]# tail -f alertsrvprd01.log
....
2018-03-05 20:17:59.768:
[ohasd(34126)]CRS-2112:The OLR service started on node srvprd01.
2018-03-05 20:18:00.014:
[ohasd(34149)]CRS-2112:The OLR service started on node srvprd01.
2018-03-05 20:18:00.261:
[ohasd(34171)]CRS-2112:The OLR service started on node srvprd01.
2018-03-05 20:18:00.507:
[ohasd(34208)]CRS-2112:The OLR service started on node srvprd01.
2018-03-05 20:18:00.754:
[ohasd(34230)]CRS-2112:The OLR service started on node srvprd01.
2018-03-05 20:18:01.003:
[ohasd(34263)]CRS-2112:The OLR service started on node srvprd01.
[client(34291)]CRS-10001:CRS-10132: No msg for has:crs-10132 [10][60]

O OLR, diferente do OCR, não possuí backups automáticos depois que o GI (Grid Infrastructure) é configurado, apenas backups manuais podem ser feitos (ocrconfig -local -manualbackup). Os únicos backups do OLR realizados "automaticamente" são durante a configuração (instalação) do GI e durante seu upgrade (se ocorrer algum).

Para visualizar os backups do OLR basta utilizar a mesma sintaxe do showbackup do OCR acrescentando o parâmetro -local (pelo fato do OLR ser local de cada servidor). 

[root@srvprd01 ~]# $GI_HOME/bin/ocrconfig -local -showbackup
PROTL-25: Manual backups for the Oracle Local Registry are not available

Pelo retorno nenhum backup manual do OLR está sendo localizado, olhando no node2 podemos ver que retorna um arquivo de backup (realizado durante a instalação do GI), porém este backup é do OLR do node2 e não do node1, logo não devemos utilizá-lo.

[root@srvprd02 ~]# ocrconfig -local -showbackup

srvprd02     2015/02/18 10:49:06     /oracle/GRID/11204/cdata/srvprd02/backup_20150218_104906.olr

A localização dos backups do OLR em cluster ficam em:

GI Cluster: <GI_HOME>/cdata/<hostname>/backup*.olr

Desta forma, voltando ao node1, podemos ver que existe um arquivo de backup dentro deste diretório:

[root@srvprd01 srvprd01]# ls -lrt
total 6660
-rw------- 1 root root 6807552 Feb 18  2015 backup_20150218_104154.olr

A localização do OLR em cluster, fica um diretório antes do seu backup e pode ser identificado através do arquivos '/etc/oracle/olr.loc' ou '/var/opt/oracle/olr.loc', dependendo da plataforma.

[root@srvprd01 cdata]# cat /etc/oracle/olr.loc
olrconfig_loc=/oracle/GRID/11204/cdata/srvprd01.olr
crs_home=/oracle/GRID/11204

Para realizar o restore do OLR é preciso verificar se não existe qualquer serviço do grid iniciado, para isto basta utilizar o comando abaixo:

[root@srvprd01 srvprd01]# ps -ef| grep ohasd.bin
root     44843 31674  0 20:33 pts/1    00:00:00 grep ohasd.bin

Caso algum processo seja retornado indicando que o serviço está ativo basta para-lo

# <GI_HOME>/bin/crsctl stop crs -f 

Uma vez parado, pode-se proceder com o restore do OLR e startup:


[root@srvprd01 cdata]# $GI_HOME/bin/ocrconfig -local -restore /oracle/GRID/11204/cdata/srvprd01/backup_20150218_104154.olr

[root@srvprd01 oracle]# crsctl start crs
CRS-4123: Oracle High Availability Services has been started

Referências:

https://docs.oracle.com/cd/E11882_01/rac.112/e41959/votocr.htm#CWADD91099
How to backup or restore OLR in 11.2/12c Grid Infrastructure (Doc ID 1193643.1)
Postagem mais recente Postagem mais antiga Página inicial

0 comentários:

Postar um comentário

Translate

# Suporte

# ACE Program

#Oracle

#Oracle
Disclaimer: The views expressed on this blog are my own and do not necessarily reflect the views of Oracle.

#Blog reconhecido

#ARTICULISTA

Marcadores

Postagens populares