GRID CONTROL : Stop and Deleting jobs in EMREP Oracle Grid Control

Commit No Nuisance - Heffernan Lane, Melbourne
Image by avlxyz via Flickr

Muchas veces nos encontramos con querer eliminar un target y o crear un target nuevo. Pero esto causa dolores de cabeza, y muchas veces se debe a que cuando deregistramos una instancia, de alguna manera el proceso no borra todo lo asociado a esa misma instancia.

Revisando este caso particular que me venia ocurriendo con algunos agentes decido ingresar a la base y consultar los jobs que estaban corriendo.

Ahi me doy cuenta que nunca se llego a eliminar ese JOB asociado a la instancia a eliminar.

SQL> connect sysman
Enter password:
Connected.
SQL> COL job_owner FORMAT a20
col JOB_OWNER format a60
col JOB_NAME format a20
set line 150
col JOB_OWNER  format a20
col JOB_NAME format a60
SQL> SQL> SQL> SQL> SQL> SQL>
SQL> select job_id, job_name, job_owner from mgmt_job where job_name like '%BACKUP%';

JOB_ID				 JOB_NAME						      JOB_OWNER
-------------------------------- ------------------------------------------------------------ --------------------
54FD965636DD1124E040010A71023A29 BACKUP_SPFILE_DAPRO					      DCARCAS
8C5110397F02588EE040007F01002492 RMAN_BACKUP_CTL					      JMERCADO
8C5110397EE9588EE040007F01002492 BACKUP_SPFILE_VOLT					      JMERCADO
8214018F4FEE7FD6E040010A7102654D BACKUP_SPFILE_TRON					      JMERCADO
5D124F3D2CB94BB4E040010A71020EBB BACKUP_SPFILE_TRONNC					      JMERCADO
8213AB9F5AB442EEE040010A71026536 BACKUP_SPFILE_VOLTNC					      JMERCADO
81773A837E1ED2D3E040010A71021491 BACKUP_SPFILE_MAITEN					      JMERCADO
67883609BC305B3AE040010A7102353C RMAN_BACKUP_HOT					      JMERCADO
54D100C30CF4D965E040010A710254EF BACKUP_SPFILE_APPNOV					      DCARCAS

9 rows selected.

Buscamos el JOB asociado BACKUP_SPFILE_VOLT y lo detenemos .

SQL> exec mgmt_job_engine.stop_all_executions_with_id('8C5110397EE9588EE040007F01002492',TRUE);

PL/SQL procedure successfully completed.

SQL> commit;

Commit complete.

Ahora podemos proceder a eliminarlo.

SQL> exec mgmt_job_engine.delete_job('8C5110397EE9588EE040007F01002492');

PL/SQL procedure successfully completed.

SQL> commit;

Commit complete.

Puede darse el caso que un JOB por diferentes motivos tenga pendiente varias ejecuciones, como es el caso del JOB que me ejecuta el backup de los control files de muchas bases en paralelo.

Para ello que podemos utilizar el parametro stop_all_executions_with_id que nos permite buscar todo lo nuevo y viejo y detenerlo.

Una vez stopeado, lo eliminamos.

SQL> exec mgmt_job_engine.stop_all_executions_with_id('8C5110397F02588EE040007F01002492',TRUE);

PL/SQL procedure successfully completed.

SQL> exec mgmt_job_engine.delete_job('8C5110397F02588EE040007F01002492');

PL/SQL procedure successfully completed.

SQL> commit;Commit complete.

Saludos a la comunidad Colombiana !!