Algunas veces puedes observar que el Shutdown immediate toma demasiado tiempo y finalmente no se completa para las instancias 10g.
Cuando sucede eso estas frente a un bug ya reportado en metalink y para el cual Oracle no ha liberado un parche para corregirlo. (Bug 4483084).
Este error es típico del servidor para algunos de mis clientes especialmente en entornos warehouse los cuales principalmente realizan Backups en frio. Estos entornos necesitan un apagado limpio.
Para evitar este problema necesitas implementar un disparador «BEFORE Shutdown» para limpiar el shared pool.
Aquí te comparto el script para generar el disparador:
CREATE or replace TRIGGER flush_shared_pool BEFORE SHUTDOWN ON DATABASE BEGIN execute immediate 'ALTER SYSTEM FLUSH SHARED_POOL'; EXCEPTION WHEN OTHERS THEN RAISE_APPLICATION_ERROR (num => -20000, msg => 'Error flushing pool'); END;
Ya no tengo ningún problema desde que implemente este disparador y el motor de base de datos se apaga mucho más rápido. Por favor hazme saber si el script funciona para ti.