Remover e Adicionar componentes do CRS na unha.

Olá Pessoal,

Segue um post com um exemplo de problemas do dia a dia de um DBA em infra.

Em uma migração de um Oracle RAC, após o restore de uma das instâncias, o CRS acabou ficando com lixo e os componentes registrados da instância não estavam operacionais.
Faltava a instância do node2 e a execução de start ou stop via srvctl não funcionava, apenas via sqlplus.

[[email protected] ~]$ ./crsstat
HA Resource                                   Target     State
-----------                                   ------     -----
ora.erpdb.db                                 OFFLINE    OFFLINE
ora.erpdb.erpdb1.inst                        OFFLINE    OFFLINE
ora.prod-db01.ASM1.asm                       ONLINE     ONLINE on prod-db01
ora.prod-db01.LISTENER_prod-db01.lsnr        ONLINE     ONLINE on prod-db01
ora.prod-db01.gsd                            ONLINE     ONLINE on prod-db01
ora.prod-db01.ons                            ONLINE     ONLINE on prod-db01
ora.prod-db01.vip                            ONLINE     ONLINE on prod-db01
ora.prod-db02.ASM2.asm                       ONLINE     ONLINE on prod-db02
ora.prod-db02.LISTENER_prod-db02.lsnr        ONLINE     ONLINE on prod-db02
ora.prod-db02.gsd                            ONLINE     ONLINE on prod-db02
ora.prod-db02.ons                            ONLINE     ONLINE on prod-db02
ora.prod-db02.vip                            ONLINE     ONLINE on prod-db02

Ao tentar corrigir o registro, era apresentado os erros:

[[email protected] ~]$ srvctl remove instance -d erpdb -i erpdb1
PRKO-2007 : Invalid instance name: erpdb1

[[email protected] ~]$ srvctl remove database -d erpdb
Remove the database erpdb? (y/[n]) y
PRKR-1001 : cluster database erpdb does not exist
PRKO-2005 : Application error: Failure in getting Cluster Database Configuration for: erpdb

[[email protected] ~]$ srvctl add database -d erpdb -o $ORACLE_HOME
PRKP-1037 : Failed to create cluster database erpdb.

[[email protected] ~]$ srvctl config database -d erpdb -a
PRKR-1001 : cluster database portaldb does not exist
PRKO-2005 : Application error: Failure in getting Cluster Database Configuration for: erpdb

Mesmo utilizando a opção de force, não era possível a remoção.

A solução foi utilizar o comando CRS_UNREGISTER

[[email protected] ~]$ $CRS_HOME/bin/crs_unregister ora.erpdb.erpdb1.inst

[[email protected] ~]$ $CRS_HOME/bin/crs_unregister ora.erpdb.db

[[email protected] ~]$ ./crsstat
HA Resource                                   Target     State
-----------                                   ------     -----
ora.prod-db01.ASM1.asm                       ONLINE     ONLINE on prod-db01
ora.prod-db01.LISTENER_prod-db01.lsnr        ONLINE     ONLINE on prod-db01
ora.prod-db01.gsd                            ONLINE     ONLINE on prod-db01
ora.prod-db01.ons                            ONLINE     ONLINE on prod-db01
ora.prod-db01.vip                            ONLINE     ONLINE on prod-db01
ora.prod-db02.ASM2.asm                       ONLINE     ONLINE on prod-db02
ora.prod-db02.LISTENER_prod-db02.lsnr        ONLINE     ONLINE on prod-db02
ora.prod-db02.gsd                            ONLINE     ONLINE on prod-db02
ora.prod-db02.ons                            ONLINE     ONLINE on prod-db02
ora.prod-db02.vip                            ONLINE     ONLINE on prod-db02

Ai é só registrar os componentes novamente.

[[email protected] ~]$ srvctl add database -d erpdb -o $ORACLE_HOME
[[email protected] ~]$ srvctl add instance -d erpdb -i erpdb1 -n prod-db01
[[email protected] ~]$ srvctl add instance -d erpdb -i erpdb2 -n prod-db02
   
[email protected] ~]$ ./crsstat
HA Resource                                   Target     State
-----------                                   ------     -----
ora.erpdb.db                                 ONLINE     ONLINE on prod-db01
ora.erpdb.erpdb1.inst                        ONLINE     ONLINE on prod-db01
ora.erpdb.erpdb2.inst                        ONLINE     ONLINE on prod-db02
ora.prod-db01.ASM1.asm                       ONLINE     ONLINE on prod-db01
ora.prod-db01.LISTENER_prod-db01.lsnr        ONLINE     ONLINE on prod-db01
ora.prod-db01.gsd                            ONLINE     ONLINE on prod-db01
ora.prod-db01.ons                            ONLINE     ONLINE on prod-db01
ora.prod-db01.vip                            ONLINE     ONLINE on prod-db01
ora.prod-db02.ASM2.asm                       ONLINE     ONLINE on prod-db02
ora.prod-db02.LISTENER_prod-db02.lsnr        ONLINE     ONLINE on prod-db02
ora.prod-db02.gsd                            ONLINE     ONLINE on prod-db02
ora.prod-db02.ons                            ONLINE     ONLINE on prod-db02
ora.prod-db02.vip                            ONLINE     ONLINE on prod-db02

[[email protected] ~]$ srvctl config database -d erpdb -a
prod-db01 erpdb1 /u01/app/oracle/10.2/dbs/db_1
prod-db02 erpdb2 /u01/app/oracle/10.2/dbs/db_1
DB_UNIQUE_NAME: erpdb
DB_NAME: null
ORACLE_HOME: /u01/app/oracle/10.2/dbs/db_1
SPFILE: null
DOMAIN: null
DB_ROLE: null
START_OPTIONS: null
POLICY:  AUTOMATIC
ENABLE FLAG: DB ENABLED

É isso ai pessoal.
Abraços!

Author: Daniel Augusto

Meu nome é Daniel Augusto Tomaz Coelho, tenho 15 anos de experiência com TI, atualmente trabalho na Equinix do Brasil como Coordenador de Operações que tem como objetivo a administração de ambientes de missão crítica. Idealizador e Organizador do IDC Summit, 1º Congresso Online de Data Center do Brasil (http://www.idcsummit.com.br)

Share This Post On