Creazione e gestione dei jobs in un db Oracle 12c

Pubblico quest’articolo (e i successivi riguardanti Oracle) in collaborazione con la community di ITOUG.

Un job è l’insieme di uno schedulatore (Oracle Scheduler) e un programma. In breve un job è un programma schedulato (da un altro programma) in un certo intervallo di tempo.

Lo schedulatore è quindi un particolare programma Oracle che permette ad un utente la schedulazione dei programmi specificando un intervallo di tempo in cui verranno eseguiti.

La prima volta che lo schedulatore viene abilitato, un processo (che fa parte dei processi Oracle di background) chiamato Job Queue Process (CJQ) viene avviato sul db server, come mostrato nel seguente esempio:

GESTIONE DEI JOBS ORACLE

Premessa: i comandi utilizzati sono stati usati in un ambiente di test.

Il pacchetto che viene utilizzato per gestire i job è: dbms_scheduler (nelle versioni precedenti di db Oracle, veniva usato il pacchetto: dbms_jobs).

CREAZIONE DI UN JOB

Si possono creare differenti tipi di job:

  • Blocchi PL/SQL anonimi
  • Stored Procedures
  • Java Stored Procedures

Per creare un job usando utenza SYSTEM ad esempio di tipologia blocco PL/SQL per lo schema dbuser si esegue la seguente procedura:

BEGIN
   DBMS_SCHEDULER.create_job
      (job_name             => 'dbuser.my_job1',
       job_type             => 'PLSQL_BLOCK',
       job_action           => 'BEGIN DBMS_STATS.GATHER_TABLE_STATS(''DBUSER'',
                            ''DETTLISTINI''); END;',
       start_date           => SYSTIMESTAMP,
       repeat_interval      => 'FREQ=DAILY',
       end_date             => NULL,
       enabled              => TRUE,
       comments             => 'Gather table statistics'
      );
END;

Nota: in questo caso il blocco PL/SQL anonimo utilizzato non è salvato nel db ma dev’essere caricato ogni volta che si vuole eseguirlo; questo vuol dire definirlo nel parametro job action ogni volta che si vuole utilizzarlo.

Per leggere l’articolo completo visita:

Rispondi

Effettua il login con uno di questi metodi per inviare il tuo commento:

Logo di WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione /  Modifica )

Google photo

Stai commentando usando il tuo account Google. Chiudi sessione /  Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione /  Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione /  Modifica )

Connessione a %s...

Questo sito utilizza Akismet per ridurre lo spam. Scopri come vengono elaborati i dati derivati dai commenti.