Oracle
Section β€’ Database Strategy

Oracle

Oracle 19c+ articles: DBA administration, performance tuning, Data Guard, partitioning, AWR/ASH, security and migration to Oracle Cloud (OCI).

12 articles published in this section

I have seen a DBA shut down a production system with a DROP TABLESPACE run on the wrong window. I have seen four-second queries turn into four-hour queries after an upgrade, because someone had touched optimizer_features_enable “it was the same anyway”. I have seen backups that would not restore, audits disabled “temporarily” for five years, and indexes created by hand on a Friday afternoon in production.

And I have seen the exact opposite: Oracle instances that have been running for twenty years without a minute of unplanned downtime, handling huge workloads and surviving three major upgrades without a scratch.

The difference has never been the version. It has always been who was running it.


I have been working with Oracle since 1996. In nearly thirty years I have seen Oracle 7, 8i, 9i, 10g, 11g, 12c, 19c, 21c, 23ai come and go β€” along with paradigms, trends, consultants selling the feature of the month as the answer to every problem.

The heart of the engine, though, has stayed the same: solid, complex, unforgiving to those who do not know it deeply.

You do not learn Oracle from tutorials. You learn it:

  • from production incidents at three in the morning, when the manual is of little use and a colleague who has already seen that behaviour is worth more
  • from migrations where the execution plan changes the day after go-live and nobody understands why
  • from execution plans that turn pathological after a DBMS_STATS.GATHER_SCHEMA_STATS run with default parameters
  • from the v$ views that tell the truth even when the application is lying
  • from the tuning packs that are actually useful, and those you have paid for and will never switch on

πŸ”§ What I look at when I arrive on a new instance #

When a customer calls me because “the database is slow” or “something is off”, there are five things I look at before touching any parameter. It is not a checklist from a certification course β€” it is what I have learned to look at after wasting too much time on the wrong places.

WhatWhere I lookWhy
The real workloadAWR, ASH, v$active_session_historyUnderstand who really burns CPU, I/O and db time β€” often it is not what the customer suspects
What whoever came before me changedv$parameter with ismodified, dba_hist_parameter“Non-standard” parameters are the first sign of past debugging left without documentation
Who does whatdba_audit_trail, unified_audit_trail, scheduled jobsFind the night jobs, the real application connections, the untracked DBA accesses
Data Guard statusv$dataguard_stats, v$archive_dest_statusIf there is a standby, check it is actually aligned β€” do not trust the dashboards
Space and growthdba_tablespaces, dba_hist_tbspc_space_usageFigure out where you are heading before you hit the wall, not after

Once I have read these five things, I have 70% of the picture. The other questions come afterwards β€” and they come focused.


πŸ“š What I talk about here #

Real stories, concrete numbers and lessons learned on Oracle in production. Architecture, performance, security, migrations, SQL tuning, PL/SQL, storage management and design decisions that separate an installation that works from one that merely survives.

No brochure theory. Just what I have seen work β€” and what I have seen fail β€” in real environments: insurance, telco, public administration, banking, pharma.


With Oracle, knowing the syntax is not enough.

You need to understand how the engine thinks β€” and have the humility to admit that, sometimes, the engine is right.

Latest articles

Oracle
Featured

The Saturday night nobody wants: migrating 12 TB from Oracle 12.2 to 21c in a four-hour window

Moving 12 TB from Oracle 12.2 to 21c with transportable tablespaces and RMAN incremental backups, keeping downtime under four hours. Real numbers and commands.

15 September 2026 16 min
More articles in this section
Research on millions of legal documents: how Oracle Text changed response times
Oracle

Research on millions of legal documents: how Oracle Text changed response times

How three Oracle Text indexes cut legal archive search times from 90 seconds to under 700ms. A real case with CONTEXT, CATSEARCH, and CTXXPATH.

Three triggers, a nightly job, and 1,247 orphaned policies: Oracle 26ai Assertions explained
Oracle

Three triggers, a nightly job, and 1,247 orphaned policies: Oracle 26ai Assertions explained

Oracle 26ai introduces CREATE ASSERTION, the cross-table declarative constraint SQL-92 promised for decades. Syntax, comparison with triggers, and real insurance use cases.

ORA-00205 at three in the morning: understanding Oracle critical files before you need to
Oracle

ORA-00205 at three in the morning: understanding Oracle critical files before you need to

Step-by-step diagnosis of ORA-00205 during a night emergency: MOUNT phase, control file, SPFILE, redo log. A practical method for on-call Oracle DBAs.

Oracle 19c, 21c, 23ai, 26ai: the silent rewrite of value domains
Oracle

Oracle 19c, 21c, 23ai, 26ai: the silent rewrite of value domains

Seven years of Oracle seen through enumerations: from 19c CHECK to 23ai SQL Domains, all the way to 26ai Assertions. An insurance migration story.

Enumerations in Oracle: twenty years of workarounds, and the road that opened up with 23ai
Oracle

Enumerations in Oracle: twenty years of workarounds, and the road that opened up with 23ai

Oracle never had a native ENUM. CHECK constraints, lookup tables and SQL Domains 23ai: three roads, a real banking case, and what's coming with 26ai.

Oracle from On-Premises to Cloud: Strategy, Planning and Cutover
Oracle

Oracle from On-Premises to Cloud: Strategy, Planning and Cutover

Oracle 19c on-premises to OCI migration: 2 TB with RAC and Data Guard. BYOL licensing, Data Pump, overnight cutover β€” real chronicle.

Oracle on Linux: the kernel parameters nobody configures
Oracle

Oracle on Linux: the kernel parameters nobody configures

Oracle 19c on Linux: kernel tuning for real performance. Huge Pages, THP, swappiness, I/O scheduler, ulimit β€” before and after numbers.

AWR, ASH and the 10 minutes that saved a go-live
Oracle

AWR, ASH and the 10 minutes that saved a go-live

Oracle 19c performance tuning with AWR and ASH: finding a hidden full table scan in a stored procedure in 10 minutes, the eve of a go-live.

Users, Roles and Privileges in Oracle: Why GRANT ALL Is Never the Answer
Oracle

Users, Roles and Privileges in Oracle: Why GRANT ALL Is Never the Answer

Oracle security: redesigning the GRANT model with custom roles and Unified Audit, applying least privilege. Real case with copy-paste SQL.

Oracle Partitioning: when 2 billion rows no longer fit in a query
Oracle

Oracle Partitioning: when 2 billion rows no longer fit in a query

Oracle Partitioning on a 2-billion-row table: range, interval, partition pruning, local indexes. From hours to seconds on reporting queries.

From Single Instance to Data Guard: The Day the CEO Understood DR
Oracle

From Single Instance to Data Guard: The Day the CEO Understood DR

Oracle Data Guard 19c: migration from single instance after a 6-hour outage. DR architecture, primary/standby, automatic switchover.

Explore other sections