Post

Visualizzazione dei post da maggio, 2019

Upgrade Oracle 11gR2 from 11.2.0.1 to 11.2.0.4

Immagine
Questo articolo si occupa di effettuare l'upgrade dalla versione 11.2.0.1 a 11.2.0.4 su sistema operativo Linux-64bit. La Patch set di Oracle Database, versione 11.2.0.4 è un'installazione completa del software Oracle Database. Come si legge la versione del db? 11.2.0.1 11- DB version 2 - Release 0 - Application release 1 - Component release/patch release 11.2.0.4 11- DB version 2 - Release 0 - Application release 4 - Component release/patch release Il seguente link contiene le informazioni dell'insieme di Patch da installare: https://community.oracle.com/community/support/support-blogs/database-support-blog/blog/2014/10/16/oracle-database-11g-release-2-patchset-11204-availability Prima di procedere con l'installazione abilitare la modalità Archivelog e la Flashback Database . Creare un " guarantee restore point " del database così da potere effettuare un restore del db ad uno specifico valore SCN in un qualsiasi instante di tempo anche al

Job Email Notification

Immagine
Oracle versione 11gR2 Supponiamo di avere un job che effettua insert in una tabella in un intervallo di tempo, e di voler inviare una notifica via email se il job va in errore o è  disabilitato o rotto. Di seguito la tabella da popolare. CREATE TABLE BIBI.CONTRATTI (   ID_TIPOLOGIACONTRATTO  NUMBER                 NOT NULL,   DESCRIZIONE            VARCHAR2(100 CHAR)     NOT NULL,   DATA_INIZIO_VALIDITA   DATE                   NOT NULL,   DATA_FINE_VALIDITA     DATE,   DATA_ULTIMO_AGGIORN    DATE                   NOT NULL,   ID_OPERATORE           VARCHAR2(100 CHAR)     NOT NULL ); Usiamo lo scheduler job per creare un job che esegue la insert in tabella ogni minuto in un intervallo di tempo definito dai parametri start_date e end_date. begin dbms_scheduler.create_job ( job_name => 'JOB_INSERISCI_CONTRATTI', job_type => 'PLSQL_BLOCK', job_action => 'insert into bibi.Contratti values ( 176 , ''Contratto'', sysdate,

Scheduler

Immagine
Alcune nozioni base dello Scheduler di Oracle 11gR2. La seguente query individua lo stato di tutti i JOB schedulati (si parla di JOB TABLE ) SQL> select owner, job_name, state  from dba_scheduler_jobs where job_name in ('PURGE_LOG','GATHER_STATS_JOB'); Il processo di background che gestisce e controlla i job schedulati è CJQ0 e si chiama "job coordinator". Carica i dati del job nella memory cache per migliorare le performance quando il job è in esecuzione. A questo punto il job coordinator passa tutte le informazioni a processo job-slave che per ogni job raccoglie i relativi metadati e avvia una sessione dell'owner del job. Una volta eseguito il job il porcesso slave esegue il commit della transazione e chiude la sessione. Successivamente aggiorna lo stato della job table in "completed" come visibile dalla vista dba_scheduler_job_log. Le viste contenente informazioni relative allo scheduler e agli oggetti associati possono essere rec

Procedura inserisci righe in tabella

Immagine
Vogliamo popolare una tabella così fatta. create table BIBI.CONTRATTI (   ID_TIPOLOGIACONTRATTO  NUMBER                 NOT NULL,   DESCRIZIONE            VARCHAR2(100 CHAR)     NOT NULL,   DATA_INIZIO_VALIDITA   DATE                   NOT NULL,   DATA_FINE_VALIDITA     DATE,   DATA_ULTIMO_AGGIORN    DATE                   NOT NULL,   ID_OPERATORE           VARCHAR2(100 CHAR)     NOT NULL ) tablespace TBS_BIBI_DATA; La seguente procedura prende in ingresso due numeri che rappresentano l'intervallo di inserimento dei valori.  CREATE OR REPLACE PROCEDURE INSERISCIRIGHEINTABELLA (primo number, ultimo  number) IS      a NUMBER;     b NUMBER;      begin      a := primo;      b:= ultimo;      for i  in  a..b      loop       insert into bibi.Contratti values ( i , 'Contratto#'||i, sysdate, null, sysdate, i*2);      end loop;      commit;      end;     /  Per eseguire la procedura usare il seguente script. SQL> Begi