Oracle en su nueva version 12cR1 introdujo una nueva y pequeña característica al Oracle Clusterware, pero el que sea pequeña, no significa que no sea de gran utilidad.
En versiones anteriores, si queríamos saber que iba a pasar al ejecutar un comando con la herramienta crsctl, teníamos que hacerlo en un ambiente de pruebas, ya que si no sabíamos de que se trataba el comando, se convertía en algo muy peligroso hacerlo sobre producción.
En Oracle Clusterware 12cR1 se introduce la evaluación de comando tipo "What-If" en la herramienta mencionada anteriormente, crsctl eval, que lo que nos permite es ver , que va a suceder si ejecuta el comando, sin que realmente se ejecute el comando.
Primero vamos a ver que recursos tenemos arriba
[oracle@oel6-112-rac1 ~]$ crsctl stat res -t--------------------------------------------------------------------------------Name Target State Server State details --------------------------------------------------------------------------------Local Resources--------------------------------------------------------------------------------ora.ASMNET1LSNR_ASM.lsnr ONLINE ONLINE oel6-112-rac1 STABLE ONLINE ONLINE oel6-112-rac2 STABLEora.DATA.dg ONLINE ONLINE oel6-112-rac1 STABLE ONLINE ONLINE oel6-112-rac2 STABLEora.LISTENER.lsnr ONLINE ONLINE oel6-112-rac1 STABLE ONLINE ONLINE oel6-112-rac2 STABLEora.net1.network ONLINE ONLINE oel6-112-rac1 STABLE ONLINE ONLINE oel6-112-rac2 STABLEora.ons ONLINE ONLINE oel6-112-rac1 STABLE ONLINE ONLINE oel6-112-rac2 STABLEora.proxy_advm ONLINE ONLINE oel6-112-rac1 STABLE ONLINE OFFLINE oel6-112-rac2 CLEANINGora.LISTENER_SCAN1.lsnr 1 ONLINE ONLINE oel6-112-rac2 STABLEora.LISTENER_SCAN2.lsnr 1 ONLINE ONLINE oel6-112-rac1 STABLEora.LISTENER_SCAN3.lsnr 1 ONLINE ONLINE oel6-112-rac1 STABLEora.MGMTLSNR 1 ONLINE ONLINE oel6-112-rac1 169.254.247.50 192.1 68.1.111,STABLEora.asm 1 ONLINE ONLINE oel6-112-rac1 STABLE 2 ONLINE ONLINE oel6-112-rac2 STABLE 3 OFFLINE OFFLINE STABLEora.cvu 1 ONLINE ONLINE oel6-112-rac1 STABLEora.gns 1 ONLINE ONLINE oel6-112-rac1 STABLEora.gns.vip 1 ONLINE ONLINE oel6-112-rac1 STABLEora.mgmtdb 1 ONLINE ONLINE oel6-112-rac1 Open,STABLEora.oc4j 1 ONLINE ONLINE oel6-112-rac1 STABLEora.oel6-112-rac1.vip 1 ONLINE ONLINE oel6-112-rac1 STABLEora.oel6-112-rac2.vip 1 ONLINE ONLINE oel6-112-rac2 STABLEora.orcl.db 1 OFFLINE OFFLINE oel6-112-rac2 Instance Shutdown,STABLE
2 ONLINE ONLINE oel6-112-rac1 Open,STABLEora.scan1.vip 1 ONLINE ONLINE oel6-112-rac2 STABLEora.scan2.vip 1 ONLINE ONLINE oel6-112-rac1 STABLEora.scan3.vip 1 ONLINE ONLINE oel6-112-rac1 STABLE
Ahora lo que vamos a hacer , es evaluar que pasaría, si por ejemplo, el recurso de ASM llegara a fallar en nuestro nodo
[oracle@oel6-112-rac1 ~]$ crsctl eval fail resource ora.asm
Stage Group 1:
--------------------------------------------------------------------------------
Stage Number Required Action
--------------------------------------------------------------------------------
1 N Create new group (Stage Group = 2)
Y Resource 'ora.asm' (1/1) will be in state
[ONLINE|INTERMEDIATE] on server [oel6-112-rac1]
Y Resource 'ora.asm' (2/1) will be in state
[ONLINE|INTERMEDIATE] on server [oel6-112-rac2]
--------------------------------------------------------------------------------
Stage Group 2:
--------------------------------------------------------------------------------
Stage Number Required Action
--------------------------------------------------------------------------------
1 N Resource 'ora.proxy_advm' (oel6-112-rac2) will
be in state [ONLINE|INTERMEDIATE] on server
[oel6-112-rac2]
--------------------------------------------------------------------------------
Como vamos a ver a continuación, no es lo mismo se decidiéramos detener el recurso, en este caso tenemos que forzarlo , ya que es un recurso que no se puede detener sin la opción "-f":
[oracle@oel6-112-rac1 ~]$ crsctl eval stop resource ora.asm
Stage Group 1:
--------------------------------------------------------------------------------
Stage Number Required Action
--------------------------------------------------------------------------------
1 N Error code [222] for entity [ora.asm]. Message
is [CRS-2529: Unable to act on 'ora.asm' because
that would require stopping or relocating
'ora.DATA.dg', but the force option was not
specified].
--------------------------------------------------------------------------------
[oracle@oel6-112-rac1 ~]$ crsctl eval stop resource ora.asm -f
Stage Group 1:
--------------------------------------------------------------------------------
Stage Number Required Action
--------------------------------------------------------------------------------
1 Y Resource 'ora.DATA.dg' (oel6-112-rac1) will be
in state [OFFLINE]
Y Resource 'ora.DATA.dg' (oel6-112-rac2) will be
in state [OFFLINE]
Y Resource 'ora.orcl.db' (2/1) will be in state
[OFFLINE]
Y Resource 'ora.proxy_advm' (oel6-112-rac1) will
be in state [OFFLINE]
2 Y Resource 'ora.asm' (1/1) will be in state
[OFFLINE]
Y Resource 'ora.asm' (2/1) will be in state
[OFFLINE]
--------------------------------------------------------------------------------
Como puedes ver, es una característica nueva y pequeña, pero bastante util para evaluar todos tus comandos de crsctl sin impactar a ninguno de tus recursos. Así te permitira valorar el impacto que tendra el comando que vas a ejecutar.
Puedes encontrar mas información en:
Utilizando el comando eval