Olá pessoal!
Hoje veremos como interromper e inicializar recursos individualmente utilizando outros binários: crs_start e crs_stop.
Características do crs_start e crs_stop:
- Pode ser executado a partir de qualquer nó;
- Deve ser executado com o usuário root;
- Controla todos os nós;
- Inicializa e interrompe individualmente os recursos gerenciados pelo Clusterware.
Alguns exemplos de uso:
Interrompendo o listener do nó MVRAC2 a partir do nó MVRAC1
[root@mvrac1 ~]# crs_stop ora.mvrac2.LISTENER_MVRAC2.lsnr Attempting to stop `ora.mvrac2.LISTENER_MVRAC2.lsnr` on member `mvrac2` Stop of `ora.mvrac2.LISTENER_MVRAC2.lsnr` on member `mvrac2` succeeded.
Verificando o status dos componentes:
[root@mvrac1 ~]$ 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 OFFLINE OFFLINE ora.mvrac2.gsd ONLINE ONLINE on mvrac2 ora.mvrac2.ons ONLINE ONLINE on mvrac2 ora.mvrac2.vip ONLINE ONLINE on mvrac2
Inicializando o listener do nó MVRAC2 a partir do nó MVRAC1:
[root@mvrac1 ~]# crs_start ora.mvrac2.LISTENER_MVRAC2.lsnr Attempting to start `ora.mvrac2.LISTENER_MVRAC2.lsnr` on member `mvrac2` Start of `ora.mvrac2.LISTENER_MVRAC2.lsnr` on member `mvrac2` succeeded.
Verificando o status dos componentes:
[root@mvrac1 ~]# 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
Vocês puderam observar que é necessário especificar o nome completo do recurso, diferentemente do srvctl onde especificamos os recursos através de flags (-n para nó, -d para database, -i para instancia, etc…).
Comparando o crs_start/crs_stop com o srvctl, podemos verificar que o controle de cada recurso individual é mais fino no crs_start/crs_stop, já que no srvctl temos o recurso NODEAPPS que controla os recursos listener, gds, ons e vip. Cada recurso desse pode ser controlado manualmente pelo crs_start/crs_stop.
Além de inicializar/interromper os recursos, ele também “atualiza” o status dos componentes no OCR. Isso pode ser necessários em determinadas ocasiões onde o recurso está OFFLINE mas o seu alvo consta como ONLINE (no caso de uma máquina que não foi inicializada), ou qualquer outra situação.
O recurso pode ser “forçado” a ficar em OFFLINE a partir do crs_stop com a opção -f (force):
[root@mvrac1 ~]# crs_stop ora.mvrac2.LISTENER_MVRAC2.lsnr -f
Bom, o uso do crs_start e crs_stop é bem limitado. Eu só utilizo* esses binários nestas situações específicas.
Também há o binário crs_relocate.
Ele é utilizado para reposicionar um recurso do Clusterware.
Reposicionando o VIP:
[root@mvrac1 ~]# crs_relocate ora.mvrac1.vip mvrac2 : CRS-1022: Resource ora.mvrac1.LISTENER_MVRAC1.lsnr (application) is running on mvrac1 CRS-0223: Resource 'ora.mvrac1.vip' has placement error.
Se eu tentar fazer o relocate do VIP com o listener no ar, eu receberei esse erro acima, pois o listener é um recurso dependente do VIP.
Neste caso, eu interrompo primeiro o listener:
[root@mvrac1 ~]# crs_stop ora.mvrac1.LISTENER_MVRAC1.lsnr Attempting to stop `ora.mvrac1.LISTENER_MVRAC1.lsnr` on member `mvrac1` Stop of `ora.mvrac1.LISTENER_MVRAC1.lsnr` on member `mvrac1` succeeded.
Aí faço o relocate do VIP:
[root@mvrac1 ~]# crs_relocate ora.mvrac1.vip Attempting to stop `ora.mvrac1.vip` on member `mvrac1` Stop of `ora.mvrac1.vip` on member `mvrac1` succeeded. Attempting to start `ora.mvrac1.vip` on member `mvrac2` Start of `ora.mvrac1.vip` on member `mvrac2` succeeded.
O relocate geralmente é utilizado quando um recurso (VIP) não foi inicializado no seu nó (por um problema de placa de rede, por exemplo).
Este artigo foi bem simples. No próximo, veremos sobre as ferramentas de gerenciamento do OCR.
Um abraço!
Vinicius
* Corrigido erro de digitação. Obrigado LRezende!
Related posts
3 Comments
Deixe um comentário Cancelar resposta
Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.
Disclaimer
Minhas postagens refletem minhas próprias opiniões e não representam necessariamente as opiniões do meu empregador, a Accenture.
Little typo… “Eu só utilizado esses…”. Acho que deveria ser “Eu só utilizo esses…”…
Abraço e parabéns pelo blog.
Obrigado LRezende!
Corrigido!
Abraços!
Vinicius
[…] This post was mentioned on Twitter by Humberto Marino, Marcus Vinicius. Marcus Vinicius said: Blog atualizado! “Oracle Clusterware – Rotinas Administrativas – Parte 5 – crs_start, crs_stop e crs_relocate”. http://bit.ly/ar0bz9 […]