<?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/en/posts/oracle/</link><description>Recent content in Oracle on Ivan Luminaria</description><generator>Hugo</generator><language>en</language><lastBuildDate>Tue, 24 Feb 2026 08:03:00 +0100</lastBuildDate><atom:link href="https://ivanluminaria.com/en/posts/oracle/index.xml" rel="self" type="application/rss+xml"/><item><title>Oracle on Linux: the kernel parameters nobody configures</title><link>https://ivanluminaria.com/en/posts/oracle/oracle-linux-kernel/</link><pubDate>Tue, 24 Feb 2026 08:03:00 +0100</pubDate><guid>https://ivanluminaria.com/en/posts/oracle/oracle-linux-kernel/</guid><description>&lt;p&gt;The client was a logistics company running Oracle 19c Enterprise Edition on Oracle Linux 8. Sixty concurrent users, a custom ERP application, about 400 GB of data. The server was a Dell PowerEdge with 128 GB of RAM and 32 cores.&lt;/p&gt;
&lt;p&gt;The complaints were vague but persistent: &amp;ldquo;The system is slow.&amp;rdquo; &amp;ldquo;Morning queries take twice as long as two months ago.&amp;rdquo; &amp;ldquo;Every now and then everything freezes for a few seconds.&amp;rdquo;&lt;/p&gt;</description></item><item><title>AWR, ASH and the 10 minutes that saved a go-live</title><link>https://ivanluminaria.com/en/posts/oracle/oracle-awr-ash/</link><pubDate>Tue, 10 Feb 2026 08:03:00 +0100</pubDate><guid>https://ivanluminaria.com/en/posts/oracle/oracle-awr-ash/</guid><description>&lt;p&gt;Friday, 6:40 PM. I already had my jacket on, ready to leave. The phone buzzes. It&amp;rsquo;s the project manager.&lt;/p&gt;
&lt;p&gt;&amp;ldquo;Ivan, we have a problem. The system is crawling. The go-live is tomorrow morning.&amp;rdquo;&lt;/p&gt;
&lt;p&gt;It&amp;rsquo;s not the first time I&amp;rsquo;ve received a call like that. But the tone was different. This wasn&amp;rsquo;t the usual vague complaint about slowness. This was panic.&lt;/p&gt;
&lt;p&gt;I reconnect to the VPN, open a session on the client&amp;rsquo;s Oracle 19c database. First thing I do is a quick check:&lt;/p&gt;</description></item><item><title>Users, Roles and Privileges in Oracle: Why GRANT ALL Is Never the Answer</title><link>https://ivanluminaria.com/en/posts/oracle/oracle-roles-privileges/</link><pubDate>Tue, 27 Jan 2026 08:03:00 +0100</pubDate><guid>https://ivanluminaria.com/en/posts/oracle/oracle-roles-privileges/</guid><description>&lt;p&gt;It has happened to me more than once: I walk into an Oracle environment and find the same situation. Every application user connected as the schema owner, with the DBA role granted. Developers, batch jobs, reporting tools — all running with the same privileges as the user that owns the tables.&lt;/p&gt;
&lt;p&gt;When you ask why, the answer is always some variation of: &amp;ldquo;This way everything works without permission issues.&amp;rdquo;&lt;/p&gt;
&lt;p&gt;Sure. Everything works. Until the day a developer runs a &lt;code&gt;DROP TABLE&lt;/code&gt; on the wrong table. Or a batch import does a &lt;code&gt;TRUNCATE&lt;/code&gt; on a production table thinking it is in the test environment. Or someone runs a &lt;code&gt;DELETE FROM customers&lt;/code&gt; without a &lt;code&gt;WHERE&lt;/code&gt; clause.&lt;/p&gt;</description></item><item><title>Oracle Partitioning: when 2 billion rows no longer fit in a query</title><link>https://ivanluminaria.com/en/posts/oracle/oracle-partitioning/</link><pubDate>Tue, 23 Dec 2025 08:03:00 +0100</pubDate><guid>https://ivanluminaria.com/en/posts/oracle/oracle-partitioning/</guid><description>&lt;p&gt;Two billion rows. You do not reach that number in a day. It takes years of transactions, movements, daily records piling up. And for all that time the database works, queries respond, reports come out. Then one day someone opens a ticket: &amp;ldquo;the monthly report takes four hours.&amp;rdquo;&lt;/p&gt;
&lt;p&gt;Four hours. For a report that six months earlier took twenty minutes.&lt;/p&gt;
&lt;p&gt;It is not a bug. It is not a network issue or slow storage. It is the physics of data: when a table grows beyond a certain threshold, the approaches that worked stop working. And if you did not design the structure to handle that growth, the database does the only thing it can: read everything.&lt;/p&gt;</description></item><item><title>From Single Instance to Data Guard: The Day the CEO Understood DR</title><link>https://ivanluminaria.com/en/posts/oracle/oracle-data-guard/</link><pubDate>Tue, 16 Dec 2025 08:03:00 +0100</pubDate><guid>https://ivanluminaria.com/en/posts/oracle/oracle-data-guard/</guid><description>&lt;p&gt;The client was a mid-sized insurance company. Three hundred employees, an in-house management application running on Oracle 19c, a single physical server in the ground-floor server room. No replica. No standby. No disaster recovery plan.&lt;/p&gt;
&lt;p&gt;For five years everything had worked. And when things work, nobody wants to spend money protecting against problems they&amp;rsquo;ve never seen.&lt;/p&gt;
&lt;h2 id="the-day-everything-stopped" class="relative group"&gt;The day everything stopped &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="#the-day-everything-stopped" aria-label="Anchor"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;On a Wednesday morning in November, at 8:47 AM, the primary data group&amp;rsquo;s disk suffered a hardware failure. Not a logical error, not a recoverable corruption. A physical failure. The RAID controller lost two disks simultaneously — one had been degraded for weeks without anyone noticing, the other gave out suddenly.&lt;/p&gt;</description></item></channel></rss>