
Oracle
Articoli Oracle 19c+: amministrazione DBA, performance tuning, Data Guard, partitioning, AWR/ASH, sicurezza e migrazione su Oracle Cloud (OCI).
Ho visto un DBA spegnere una produzione con un DROP TABLESPACE lanciato sulla finestra sbagliata. Ho visto query da quattro secondi diventare quattro ore dopo un upgrade, perché qualcuno aveva toccato optimizer_features_enable “tanto era uguale”. Ho visto backup che non si ripristinavano, audit disabilitati “temporaneamente” da cinque anni, e indici creati in produzione a mano libera di venerdì pomeriggio.
E ho visto l’esatto contrario: istanze Oracle che funzionano da vent’anni senza un minuto di downtime non programmato, reggono carichi enormi e sopravvivono a tre upgrade maggiori senza scosse.
La differenza non è mai stata la versione. È sempre stato chi la gestiva.
Ci lavoro dal 1996. In quasi trent’anni ho visto passare Oracle 7, 8i, 9i, 10g, 11g, 12c, 19c, 21c, 23ai — e paradigmi, mode, consulenti che vendevano la feature del momento come la risposta a ogni problema.
Il cuore del motore, però, è rimasto quello: solido, complesso, spietato con chi non lo conosce a fondo.
Oracle non si impara sui tutorial. Si impara:
- sugli incidenti in produzione alle tre di notte, quando il manuale serve a poco e vale più un collega che ha già visto quel comportamento
- sulle migrazioni in cui il piano di esecuzione cambia il giorno dopo il go-live e nessuno capisce perché
- sui piani di esecuzione che diventano patologici dopo un
DBMS_STATS.GATHER_SCHEMA_STATSlanciato con i parametri di default - sulle
v$che dicono la verità anche quando l’applicativo mente - sui tuning pack che servono davvero, e su quelli che hai pagato e non accenderai mai
🔧 Cosa guardo quando arrivo su un’istanza nuova #
Quando un cliente mi chiama perché “il database va piano” o “c’è qualcosa che non va”, ci sono cinque cose che guardo prima di toccare qualunque parametro. Non è una checklist da corso di certificazione — è quello che ho imparato a guardare dopo aver perso tempo troppe volte sui posti sbagliati.
| Cosa | Dove guardo | Perché |
|---|---|---|
| Il carico reale | AWR, ASH, v$active_session_history | Capire chi consuma davvero CPU, I/O e db time — spesso non è quello che sospetta il cliente |
| Cosa ha toccato chi è venuto prima | v$parameter con ismodified, dba_hist_parameter | I parametri “non standard” sono il primo indizio di debug passati senza documentazione |
| Chi fa cosa | dba_audit_trail, unified_audit_trail, job schedulati | Trovare i job notturni, le connessioni applicative reali, gli accessi DBA non tracciati |
| Lo stato di Data Guard | v$dataguard_stats, v$archive_dest_status | Se c’è uno standby, verificare che sia davvero allineato — non fidarsi dei dashboard |
| Lo spazio e la crescita | dba_tablespaces, dba_hist_tbspc_space_usage | Capire dove si sta andando a sbattere prima che succeda, non dopo |
Una volta lette queste cinque cose, ho il 70% del quadro. Le altre domande vengono dopo — e vengono mirate.
📚 Di cosa parlo qui #
Storie vere, numeri concreti e lezioni apprese su Oracle in produzione. Architettura, performance, sicurezza, migrazioni, tuning SQL, PL/SQL, gestione dello storage e scelte progettuali che separano un’installazione che funziona da una che sopravvive.
Niente teoria da brochure. Solo quello che ho visto funzionare — e quello che ho visto fallire — su ambienti veri: assicurazioni, telco, pubblica amministrazione, banche, farmaceutico.
Con Oracle non basta sapere la sintassi.
Bisogna capire come ragiona il motore — e avere l’umiltà di ammettere che, a volte, ha ragione lui.
Ultimi articoli

Ricerche su milioni di documenti legali: come Oracle Text ha cambiato i tempi di risposta
Come Oracle Text risolve ricerche lente su archivi di documenti ed email: indici CONTEXT, CATSEARCH e CTXXPATH configurati sulle reali esigenze di ricerca.


ORA-00205 alle tre di notte: capire i file critici Oracle prima di averne bisogno
Diagnosi guidata di ORA-00205 in piena emergenza notturna: fase MOUNT, control file, SPFILE, redo log. Metodo pratico per i DBA Oracle reperibili.

Oracle 19c, 21c, 23ai, 26ai: la riscrittura silenziosa dei domini di valori
Sette anni di Oracle visti attraverso le enumerazioni: dal CHECK del 19c ai SQL Domains della 23ai, fino alle Assertion del 26ai. Una migrazione assicurativa.

Enumerazioni in Oracle: vent'anni di workaround, e la strada che si è aperta con la 23ai
Oracle non ha mai avuto ENUM nativo. CHECK constraint, lookup table e SQL Domains 23ai: tre strade, un caso reale banking, e cosa arriverà con la 26ai.

Oracle da on-premises a cloud: strategia, pianificazione e cutover
Migrazione Oracle 19c on-premises a OCI: 2 TB con RAC e Data Guard. BYOL licensing, Data Pump, cutover notturno — cronaca reale.

Oracle su Linux: i parametri kernel che nessuno configura
Oracle 19c su Linux: tuning del kernel per performance reali. Huge Pages, THP, swappiness, I/O scheduler, ulimit — numeri prima e dopo.

AWR, ASH e i 10 minuti che hanno salvato un go-live
Oracle 19c performance tuning con AWR e ASH: trovare un full table scan in una stored procedure in 10 minuti, vigilia di go-live.

Utenti, ruoli e privilegi in Oracle: perché GRANT ALL non è mai la risposta
Sicurezza Oracle: ridisegno del modello GRANT con ruoli custom e Unified Audit, applicando il least privilege. Caso reale con SQL pronto.

Oracle Partitioning: quando 2 miliardi di righe non entrano più in una query
Oracle Partitioning su tabella da 2 miliardi di righe: range, interval, partition pruning, indici locali. Da ore a secondi sulle query.

Da single instance a Data Guard: il giorno in cui il CEO ha capito il DR
Oracle Data Guard 19c: migrazione da single instance dopo un crash di 6 ore. Architettura DR, primary/standby, switchover automatico.