<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Oracle on Ivan Luminaria</title><link>https://ivanluminaria.com/it/categories/oracle/</link><description>Recent content in Oracle on Ivan Luminaria</description><generator>Hugo</generator><language>it</language><lastBuildDate>Tue, 24 Feb 2026 08:03:00 +0100</lastBuildDate><atom:link href="https://ivanluminaria.com/it/categories/oracle/index.xml" rel="self" type="application/rss+xml"/><item><title>Oracle su Linux: i parametri kernel che nessuno configura</title><link>https://ivanluminaria.com/it/posts/oracle/oracle-linux-kernel/</link><pubDate>Tue, 24 Feb 2026 08:03:00 +0100</pubDate><guid>https://ivanluminaria.com/it/posts/oracle/oracle-linux-kernel/</guid><description>&lt;p&gt;Il cliente era una società di logistica con un Oracle 19c Enterprise Edition su Oracle Linux 8. Sessanta utenti concorrenti, un gestionale custom, circa 400 GB di dati. Il server era un Dell PowerEdge con 128 GB di RAM e 32 core.&lt;/p&gt;
&lt;p&gt;Le lamentele erano vaghe ma persistenti: &amp;ldquo;Il sistema è lento.&amp;rdquo; &amp;ldquo;Le query del mattino ci mettono il doppio rispetto a due mesi fa.&amp;rdquo; &amp;ldquo;Ogni tanto si blocca tutto per qualche secondo.&amp;rdquo;&lt;/p&gt;</description></item><item><title>AWR, ASH e i 10 minuti che hanno salvato un go-live</title><link>https://ivanluminaria.com/it/posts/oracle/oracle-awr-ash/</link><pubDate>Tue, 10 Feb 2026 08:03:00 +0100</pubDate><guid>https://ivanluminaria.com/it/posts/oracle/oracle-awr-ash/</guid><description>&lt;p&gt;Venerdì, ore 18:40. Ero già con il giubbotto addosso, pronto per uscire. Il telefono vibra. È il project manager.&lt;/p&gt;
&lt;p&gt;&amp;ldquo;Ivan, abbiamo un problema. Il sistema è lentissimo. Domani mattina c&amp;rsquo;è il go-live.&amp;rdquo;&lt;/p&gt;
&lt;p&gt;Non è la prima volta che ricevo una chiamata del genere. Ma il tono era diverso dal solito. Non era la lamentela generica sulla lentezza. Era panico.&lt;/p&gt;
&lt;p&gt;Mi ricollego in VPN, apro una sessione sul database Oracle 19c del cliente. La prima cosa che faccio è un controllo rapido:&lt;/p&gt;</description></item><item><title>Utenti, ruoli e privilegi in Oracle: perché GRANT ALL non è mai la risposta</title><link>https://ivanluminaria.com/it/posts/oracle/oracle-roles-privileges/</link><pubDate>Tue, 27 Jan 2026 08:03:00 +0100</pubDate><guid>https://ivanluminaria.com/it/posts/oracle/oracle-roles-privileges/</guid><description>&lt;p&gt;Mi è capitato più volte di entrare in un ambiente Oracle e trovare la stessa situazione: tutti gli utenti applicativi connessi come schema owner, con il ruolo DBA assegnato. Sviluppatori, applicazioni batch, tool di reportistica — tutti con gli stessi privilegi dell&amp;rsquo;utente che possiede le tabelle.&lt;/p&gt;
&lt;p&gt;Quando chiedi perché, la risposta è sempre una variante di: &amp;ldquo;Così funziona tutto senza problemi di permessi.&amp;rdquo;&lt;/p&gt;
&lt;p&gt;Certo. Funziona tutto. Fino al giorno in cui uno sviluppatore lancia un &lt;code&gt;DROP TABLE&lt;/code&gt; sulla tabella sbagliata. O un batch di import fa un &lt;code&gt;TRUNCATE&lt;/code&gt; su una tabella di produzione pensando di essere in ambiente di test. O qualcuno esegue un &lt;code&gt;DELETE FROM clienti&lt;/code&gt; senza la clausola &lt;code&gt;WHERE&lt;/code&gt;.&lt;/p&gt;</description></item><item><title>Oracle Partitioning: quando 2 miliardi di righe non entrano più in una query</title><link>https://ivanluminaria.com/it/posts/oracle/oracle-partitioning/</link><pubDate>Tue, 23 Dec 2025 08:03:00 +0100</pubDate><guid>https://ivanluminaria.com/it/posts/oracle/oracle-partitioning/</guid><description>&lt;p&gt;Due miliardi di righe. Non è un numero che si raggiunge in un giorno. Ci vogliono anni di transazioni, di movimenti, di registrazioni quotidiane che si accumulano. E per tutto quel tempo il database funziona, le query rispondono, i report escono. Poi un giorno qualcuno apre un ticket: &amp;ldquo;il report mensile ci mette quattro ore.&amp;rdquo;&lt;/p&gt;
&lt;p&gt;Quattro ore. Per un report che sei mesi prima ne impiegava venti minuti.&lt;/p&gt;
&lt;p&gt;Non è un bug. Non è un problema di rete o di storage lento. È la fisica dei dati: quando una tabella cresce oltre una certa soglia, gli approcci che funzionavano smettono di funzionare. E se non hai progettato la struttura per gestire quella crescita, il database fa l&amp;rsquo;unica cosa che può fare: leggere tutto.&lt;/p&gt;</description></item><item><title>Da single instance a Data Guard: il giorno in cui il CEO ha capito il DR</title><link>https://ivanluminaria.com/it/posts/oracle/oracle-data-guard/</link><pubDate>Tue, 16 Dec 2025 08:03:00 +0100</pubDate><guid>https://ivanluminaria.com/it/posts/oracle/oracle-data-guard/</guid><description>&lt;p&gt;Il cliente era una media azienda nel settore assicurativo. Trecento dipendenti, un gestionale interno che girava su Oracle 19c, un solo server fisico in sala macchine al piano terra della sede. Nessuna replica. Nessuno standby. Nessun piano di disaster recovery.&lt;/p&gt;
&lt;p&gt;Per cinque anni aveva funzionato tutto. E quando le cose funzionano, nessuno vuole spendere soldi per proteggersi da problemi che non si sono mai visti.&lt;/p&gt;
&lt;h2 id="il-giorno-in-cui-si-è-fermato-tutto" class="relative group"&gt;Il giorno in cui si è fermato tutto &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#il-giorno-in-cui-si-%c3%a8-fermato-tutto" aria-label="Ancora"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;Un mercoledì mattina di novembre, alle 8:47, il disco del gruppo dati principale ha avuto un guasto fisico. Non un errore logico, non una corruzione recuperabile. Un guasto hardware. Il controller RAID ha perso due dischi contemporaneamente — uno già degradato da settimane senza che nessuno se ne accorgesse, l&amp;rsquo;altro ceduto di colpo.&lt;/p&gt;</description></item></channel></rss>