Olá pessoal!

Hoje veremos sobre as ferramentas de gerenciamento do OCR.

Características do ocrcheck:

  • Pode ser executado com o usuário root ou oracle;
  • Exibe informações a respeito do OCR (tamanho, versão, status, localização;
  • Um log é gerado em $ORA_CRS_HOME/log/<hostname>/client/ocrcheck_<pid>.log

Exemplo de uso, ocrcheck:

[root@mvrac1 oracle]# ocrcheck
Status of Oracle Cluster Registry is as follows :
         Version                  :          2
         Total space (kbytes)     :     256788
         Used space (kbytes)      :       4624
         Available space (kbytes) :     252164
         ID                       :  382969207
         Device/File Name         :  /dev/ocr1
                                    Device/File integrity check succeeded
         Device/File Name         :  /dev/ocr2
                                    Device/File integrity check succeeded

         Cluster registry integrity check succeeded

Como podem observar, o ocrcheck é utilizado para verificar a integridade do OCR.

Conteúdo do log gerado:

Oracle Database 10g CRS Release 10.2.0.4.0 Production Copyright 1996, 2008 Oracle.  All rights reserved.
2010-08-16 10:36:03.160: [OCRCHECK][6617296]ocrcheck starts...
2010-08-16 10:36:21.884: [OCRCHECK][6617296]protchcheck: OCR status : total = [256788], used = [4624], avail = [252164]

O ocrcheck pode ser utilizado caso haja algum problema no Clusterware para verificar a integridade do OCR.

Características do ocrdump:

  • Faz o dump do OCR;
  • Deve ser utilizado com o usuário root;
  • Usado para consultar sobre os registros do OCR em caso de perda e necessidade de novo registro (este, manual);
  • Suporte Oracle pode solicitar para tratar algum problema do Clusterware.

Exemplo de uso, ocrdump:

[root@mvrac1 oracle]# ocrdump /root/ocrdump.txt

Início do arquivo texto gerado:

08/17/2010 20:40:15
/u01/app/oracle/product/10.2.0/crs/bin/ocrdump.bin /root/ocrdump.txt

[SYSTEM]
UNDEF :
SECURITY : {USER_PERMISSION : PROCR_ALL_ACCESS, GROUP_PERMISSION : PROCR_READ, OTHER_PERMISSION : PROCR_READ, USER_NAME : roo
t, GROUP_NAME : root}

[SYSTEM.css]
UNDEF :
SECURITY : {USER_PERMISSION : PROCR_ALL_ACCESS, GROUP_PERMISSION : PROCR_READ, OTHER_PERMISSION : PROCR_READ, USER_NAME : roo
t, GROUP_NAME : root}

[SYSTEM.css.interfaces]
UNDEF :
SECURITY : {USER_PERMISSION : PROCR_ALL_ACCESS, GROUP_PERMISSION : PROCR_CREATE_SUB_KEY, OTHER_PERMISSION : PROCR_READ, USER_
NAME : oracle, GROUP_NAME : oinstall}

[SYSTEM.css.interfaces.global]
UNDEF :
SECURITY : {USER_PERMISSION : PROCR_ALL_ACCESS, GROUP_PERMISSION : PROCR_ALL_ACCESS, OTHER_PERMISSION : PROCR_READ, USER_NAME
 : oracle, GROUP_NAME : oinstall}

Mais um trecho do arquivo gerado:

[DATABASE.DATABASES.mvdb.SPFILE]
ORATEXT : +DG_DADOS/mvdb/spfilemvdb.ora
SECURITY : {USER_PERMISSION : PROCR_ALL_ACCESS, GROUP_PERMISSION : PROCR_WRITE, OTHER_PERMISSION : PROCR_READ, USER_NAME : oracle, GROUP_NAME : dba}

Características do ocrconfig:

  • Ferramenta de configuração do OCR;
  • Deve ser utilizado com o usuário root;
  • Permite realizar backup lógico do OCR (-export -s online);
  • Permite importar o backup lógico;
  • Permite fazer upgrade/downgrade do OCR;
  • Exibe qual é o diretório de backup automático do OCR e os últimos backups automáticos (-showbackup);
  • Altera o local de backup automático (-backuploc );
  • Substitui o local do OCR (-replace ocr | ocrmirror );
  • Sobrescreve a configuração do OCR (-overwrite);
  • Repara o OCR (-repair ocr | ocrmirror );
  • Um log é gerado em $ORA_CRS_HOME/log/<hostname>/client/ocrconfig_<pid>.log

O Clusterware gera um backup automático do OCR a cada 4 horas, conforme citado no post Oracle Clusterware – Arquitetura – Parte 2 – Principais Arquivos: Voting Disk e OCR.

Vamos exibir os backups automáticos:

[root@mvrac1 ~]# ocrconfig -showbackup

mvrac2     2010/08/16 08:16:47     /u01/app/oracle/product/10.2.0/crs/cdata/crs_mv

mvrac2     2010/08/16 02:53:24     /u01/app/oracle/product/10.2.0/crs/cdata/crs_mv

mvrac1     2010/08/11 23:11:57     /u01/app/oracle/product/10.2.0/crs/cdata/crs_mv

mvrac2     2010/08/16 02:53:24     /u01/app/oracle/product/10.2.0/crs/cdata/crs_mv

mvrac1     2010/08/08 02:24:35     /u01/app/oracle/product/10.2.0/crs/cdata/crs_mv

Como pudemos observar, os últimos backups estão no nó MVRAC2.

Verificando os arquivos de backup existentes no diretório:

[root@mvrac2 ~]# ls -ltr /u01/app/oracle/product/10.2.0/crs/cdata/crs_mv
total 28536
-rw-r--r-- 1 root root 4837376 Apr 26 00:19 week.ocr
-rw-r--r-- 1 root root 4861952 Jul 15 03:53 backup02.ocr
-rw-r--r-- 1 root root 4861952 Aug 16 02:53 backup01.ocr
-rw-r--r-- 1 root root 4861952 Aug 16 02:53 day.ocr
-rw-r--r-- 1 root root 4861952 Aug 16 08:16 week_.ocr
-rw-r--r-- 1 root root 4861952 Aug 16 08:16 backup00.ocr

Os backups estão ali.

Vamos fazer uma brincadeira?

Vamos corromper 1 OCR (como root):

[root@mvrac1 ~]# dd if=/dev/zero of=/dev/ocr1
dd: writing to `/dev/ocr1': No space left on device
514018+0 records in
514017+0 records out
263176704 bytes (263 MB) copied, 8.42927 seconds, 31.2 MB/s

Vamos agora verificar a integridade do OCR com o ocrcheck:

[root@mvrac1 ~]# ocrcheck
Status of Oracle Cluster Registry is as follows :
         Version                  :          2
         Total space (kbytes)     :     256788
         Used space (kbytes)      :       4624
         Available space (kbytes) :     252164
         ID                       :  382969207
         Device/File Name         :  /dev/ocr1
                                    Device/File needs to be synchronized with the other device
         Device/File Name         :  /dev/ocr2
                                    Device/File integrity check succeeded

         Cluster registry integrity check succeeded

O device /dev/ocr1 não está mais íntegro.

Bom, vamos agora corromper o outro OCR:

[root@mvrac1 ~]# dd if=/dev/zero of=/dev/ocr2
dd: writing to `/dev/ocr1': No space left on device
514018+0 records in
514017+0 records out
263176704 bytes (263 MB) copied, 8.42927 seconds, 31.2 MB/s

Verificando novamente a integridade do OCR:

[root@mvrac1 ~]# ocrcheck
Segmentation fault

Verificando o status dos componentes do cluster:

[root@mvrac1 ~]# crsstat
HA Resource                                        Target     State
-----------                                        ------     -----
error connecting to CRSD at [(ADDRESS=(PROTOCOL=ipc)(KEY=ora_crsqs))] clsccon 184

Verificando o log $ORA_CRS_HOME/log/mvrac1/alertmvrac1.log:

2010-08-17 20:45:22.046
[client(9701)]CRS-1006:The OCR location /dev/ocr2 is inaccessible. Details in /u01/app/oracle/product/10.2.0/crs/log/mvrac1/client/ocrcheck_9701.log.
2010-08-17 20:45:22.037
[crsd(4403)]CRS-1006:The OCR location /dev/ocr2 is inaccessible. Details in /u01/app/oracle/product/10.2.0/crs/log/mvrac1/crsd/crsd.log.

Trecho do log $ORA_CRS_HOME/mvrac1/crsd/crsd.log:

2010-08-17 20:45:24.233: [  OCRRAW][3055160208]proprdc: backend_ctx->metactx=[0x932bbc8]
2010-08-17 20:45:24.233: [  OCRRAW][3055160208]proprdc: backend_ctx->prop_sctx=[0x9327600]
2010-08-17 20:45:24.233: [  OCRRAW][3055160208]proprdc: backend_ctx->prop_sltsmx=[0x0]
2010-08-17 20:45:24.234: [  OCRRAW][3055160208]proprdc: backend_ctx->prop_sclsctx=[0x9350004]
2010-08-17 20:45:24.234: [  OCRRAW][3055160208]proprdc: backend_ctx->prop_ctx_ocrctx=[0x9357f24]
[  OCRAPI][3055160208]procr_ctx_set_invalid_no_abort: ctx set to invalid
[  OCRAPI][3055160208]procr_ctx_set_invalid: aborting...

Fazendo o restore do OCR:

[root@mvrac2 oracle]# ocrconfig -restore /u01/app/oracle/product/10.2.0/crs/cdata/crs_mv/backup00.ocr

Verificando a integridade do OCR:

[root@mvrac2 oracle]# ocrcheck
Status of Oracle Cluster Registry is as follows :
         Version                  :          2
         Total space (kbytes)     :     256788
         Used space (kbytes)      :       4624
         Available space (kbytes) :     252164
         ID                       :  382969207
         Device/File Name         :  /dev/ocr1
                                    Device/File integrity check succeeded
         Device/File Name         :  /dev/ocr2
                                    Device/File integrity check succeeded

         Cluster registry integrity check succeeded

Verificando o status dos recursos do Clusterware:

[root@mvrac1 crsd]# crsstat
HA Resource                                        Target     State
-----------                                        ------     -----
ora.mvdb.db                                        ONLINE     ONLINE on mvrac1
ora.mvdb.mvdb1.inst                                ONLINE     ONLINE on mvrac1
ora.mvdb.mvdb2.inst                                ONLINE     ONLINE on mvrac2
ora.mvdb.producao.cs                               ONLINE     ONLINE on mvrac1
ora.mvdb.producao.mvdb1.srv                        ONLINE     ONLINE on mvrac1
ora.mvdb.producao.mvdb2.srv                        ONLINE     ONLINE on mvrac2
ora.mvrac1.ASM1.asm                                ONLINE     ONLINE on mvrac1
ora.mvrac1.LISTENER_MVRAC1.lsnr                    ONLINE     ONLINE on mvrac1
ora.mvrac1.gsd                                     ONLINE     ONLINE on mvrac1
ora.mvrac1.ons                                     ONLINE     ONLINE on mvrac1
ora.mvrac1.vip                                     ONLINE     ONLINE on mvrac1
ora.mvrac2.ASM2.asm                                ONLINE     ONLINE on mvrac2
ora.mvrac2.LISTENER_MVRAC2.lsnr                    ONLINE     ONLINE on mvrac2
ora.mvrac2.gsd                                     ONLINE     ONLINE on mvrac2
ora.mvrac2.ons                                     ONLINE     ONLINE on mvrac2
ora.mvrac2.vip                                     ONLINE     ONLINE on mvrac2

Como puderam ver, desde que tenhamos os arquivos de backup do OCR disponíveis, é fácil recuperar o ambiente de Clusterware após um desastre.

No próximo, continuaremos com as rotinas administrativas do Clusterware.

Um abraço!

Vinicius