Cambiar timezone a nivel de Scheduler

Cambiar timezone a nivel de Scheduler

El otro día revisando una base de datos en OCI por un problema en los JOBS que se ejecutaban en horas extrañas/inapropiadas.

Al consultar la DB_SCHEDULER_WINDOWS vi que el NEXT_START_DATE, me marcaba que era de América y no de España y de ahí que los jobs no se ejecutaran a su hora

Y al consultar el dbtimezone, me dió la pista definitiva

SQL> SELECT dbtimezone FROM DUAL;
DBTIME
------
America/Phoenix

Vamos a cambiarlo tanto a nivel de CDB como de PDB, tanto a nivel de database como de DBMS_SCHEDULER.

Primero a nivel de CDB y reiniciamos

SQL> alter database set time_zone='Europe/Madrid';
SQL> exec DBMS_SCHEDULER.SET_SCHEDULER_ATTRIBUTE('default_timezone','Europe/Madrid');
SQL> shu immediate
SQL> startup

Una vez levantada, comprobamos que ya sale bien a nivel de CDB

SQL> SELECT dbtimezone FROM DUAL;
DBTIMEZONE
-------------
Europe/Madrid

Realizamos los mismos pasos a nivel de PDB

SQL> alter session set container=XXXX;
SQL> alter database set time_zone='Europe/Madrid';
SQL> exec DBMS_SCHEDULER.SET_SCHEDULER_ATTRIBUTE('default_timezone','Europe/Madrid');
SQL> shu immediate
Pluggable Database closed.
SQL> startup
Pluggable Database opened.

Comprobamos que también sale bien nivel de PDB

SQL> SELECT dbtimezone FROM DUAL;
DBTIMEZONE
-------------
Europe/Madrid

Listo. Una vez corregido el timezone, los Jobs se ejecutan en las horas establecidas.

¡Espero que os sirva!