lunes, febrero 12, 2018

Oracle tarda en cerrarse

Hacemos un shutdown immediate y vemos que ORACLE no termina de hacer shutdown. Es un problema bastate habitual.
Normalmente se deba a uno de estos dos motivos:
  1. Se estaban ejecutando consultas largas cuando hemos hecho el shutdown immediate.
  2. Se estaban haciendo transacciones largas.
La Base de datos no va a cerrarse hasta que finalicen las consultas o transacciones. Esto significa que o bien se completan las transacciones largas, o bien se espera a que se haga el rollback de las transacciones activas.

Una vez que se lanza el shutdown immediate no nos va a dejar conectarnos. Por ese motivo, antes de lanzar la orden, tenemos que comprobar lo siquiente:


Un valor mayor que 0 en la primera SQL, o un valor alto en la segunda, significa que el apagado tardará un tiempo considerable.

Si solo se da la situación de consultas largas, podemos hacer lo siguiente:



Si se están ejecutando transacciones largas (la segunda situación), entonces no podemos hacer el shutdown abort. Hacerlo supone que la Base de datos queda en estado inconsistente y nos obligará a hacer RECOVER en el siguiente arranque.Lo que podemos hacer es evaluar si es mejora dejar finalizar el proceso, o hacer rollback del mismo. Se puede estimar el tiempo de rollback siguiente la nota de ORACLE número 117316.1.