• Multiplatform Reality Check - Oracle Basics - Postgres

    Multiplatform Reality Checks: pg_stat_wal vs. Oracle Redo Metrics

    For anyone who has spent years tuning Oracle redo, the first time you look at PostgreSQL’s pg_stat_wal view may feel a bit underwhelming. Everything works, but the instrumentation isn’t the same and you suddenly realize how much Oracle has spoiled you with it’s advanced and expensive features. As I’ve been working deeper with PostgreSQL, I keep getting questions about how its WAL (Write-Ahead Logging) data compares to Oracle’s redo performance metrics. Let’s break it down in a way that makes sense for people who’ve been living in the Oracle world for years. PostgreSQL and What pg_stat_wal Actually Gives You PostgreSQL…

  • Oracle Basics

    Oracle Multitenant- Navigating CDB and PDBs Seamlessly

    With Oracle Database 12c, Oracle introduced Multitenant Architecture, a major shift in how databases are structured and managed. This architecture separates the Container Database (CDB), which holds the Oracle system metadata and manages operations from the user databases, officially called Pluggable Databases (PDBs).  These containers hold the actual user data and applications. It was initially an option, but over time, Oracle has evolved it into the foundation of its database strategy. Starting with Oracle 23ai, Multitenant will no longer be optional but the default and required architecture, reinforcing Oracle’s push toward standardized, consolidated, and agile database environments. For DBAs, this…

  • Oracle Basics

    Oracle Data Guard: Disaster Recovery AND High Availability

    In its traditional, (and free) configuration, Oracle Data Guard operates in an active/passive architecture.  This incredibly well-designed and valuable solution from Oracle which comes included with the Enterprise Edition has as part of its architecture: A primary database, which is an active, accessible database system. One or more standby databases, which are passive replicas that continuously receive redo data from the primary. The standby databases receive a continuous changes from redo.  By sending redo data from the primary across the network and applying it to the standby, the two are kept in sync. This is done using the Log Transport…

  • Oracle Basics - performance

    The Value of Cost: Oracle’s Optimizer

    When you first begin your journey into Oracle performance tuning, you quickly discover that you’re not just working with databases, you’re deciphering a complex system of rules, statistics, and estimations.  I was reminded by Connor McDonald in a post he made on LinkedIn about one of the most influential turning points in my career as a database professional came when I encountered Wolfgang Breitling’s 2003 paper – A Look Under the Hood of the CBO: the 10053 Event. At a time when I was focused on tuning queries for speed, Wolfgang’s work redefined how I thought about cost, and more…

  • Oracle - Oracle Basics

    Oracle RAC Monitoring: V$, GV$ and the Rest

    Furthering on our Oracle Real Application Clusters (RAC) knowledge, we’re going to go deeper into what we watch for a RAC database that may be different than a single instance.  RAC is built for scale and instance resilience, distributing workloads across multiple nodes.  At the same time, what gives it strength introduces monitoring complexity, especially when you’re not just watching a single instance but multiple, interconnected ones. To manage performance effectively in RAC, you need to understand the difference between V$ and GV$ views, what they show you, and how to interpret cluster-level wait events.  Along with performance, the overall…

  • Oracle - Oracle Basics

    Oracle RAC: Monitoring and Preventing Performance-Tipped Evictions

    After my last blog post on Oracle Real Application Clusters (RAC) I was asked to talk about both health and how performance impact can affect a RAC database. Its architecture enables failover, workload distribution, and offers an option to scale performance, but only when all nodes play well together. When one node drags behind or becomes unstable, RAC has no choice but to protect the rest of the cluster- so help me, Oracle Gods. This protection can come in the form of node eviction, which can be both disruptive and at times avoidable with proactive monitoring and intervention. Why Node…

  • Oracle Basics

    Oracle RAC 101: Architecture, Configuration, and Real-Time Scalability

    The request of me today was to start blogging on Oracle Real Application Clusters (RAC) so here we go, down into the rabbit hole!  I admit fully to having a love/hate relationship with RAC.  I love redundancy, scalability, and instance resiliency in RAC beneficial, but many of the unnecessary complexities and overhead frustrates me.  I absolutely come up against traditional OLTP workloads that scream out for RAC to scale to the level they require day-to-day, but also know there’s a ceiling that will be reached that RAC can’t solve, requiring at some point for database design, code and application to…

  • Oracle Basics - performance

    Troubleshooting ‘resmgr:cpu quantum’ and High CPU in Oracle

    After publishing my last post on Oracle Wait Classes, I received a great question on LinkedIn: “How do you identify the SQL statement or the cause of high CPU when the top wait event is ‘resmgr:cpu quantum’?” It’s a common (and frustrating) performance issue in Oracle. So today, we’ll walk through how to identify and troubleshoot it. What is resmgr:cpu quantum? Let’s break it down: RESMGR = Oracle Resource Manager CPU Quantum = The time slice a session is allowed to consume CPU This wait event indicates that a session is throttled by Oracle Resource Manager because it’s trying to…

  • Oracle Basics

    Understanding Oracle Wait Classes: The Key to Unlocking Database Performance

    When we talk about optimization in Oracle, many DBAs immediately jump into metrics like CPU utilization, I/O throughput, or specific SQL queries. But there’s a critical layer of understanding that often gets overlooked and that’s Oracle Wait Classes. These categories are essential to making sense of what’s really going on inside your database, and they’re often the starting point for diagnosing and optimizing performance. What Are Oracle Wait Classes? In Oracle, wait events represent specifics the database is waiting on, such as a latch, a lock, a disk read, or a response from the network or application. But looking at…

  • Oracle - Oracle Basics

    Oracle Memory Management: Common Configurations, Parameters, and Monitoring

    After the initial overview of memory monitoring in Oracle, particularly around the SGA and PGA, I wanted to take a deeper dive into the most common Oracle memory configurations. These include how memory settings are defined, how they interact, and the combinations you’re likely to encounter across different workloads.  Oracle memory is a no-brainer for many of us who’ve been in the space for an extensive time, but I’ve come to realize, it can be a bit overwhelming and especially with recent changes from Oracle 12c on. How Memory Settings Are Applied in Oracle Oracle memory parameters can be configured…

  • Oracle - Oracle Basics - performance

    Oracle Internals- Oracle Memory

    When describing Oracle features to folks that are new to the platform or coming from other database platforms, I found it’s best to keep it simple, but take on the important aspects of the technology.  I’m going to take on a few more posts on Oracle internals from the perspective of the individual new to Oracle. To start, I’ve been having some long discussions, as well as documenting how Oracle memory works and how we monitor it when you don’t have the diagnostic and tuning pack at your disposal.  With the exclusion of these management packs, you have to be…

  • Database - DBaaS - Microsoft - Oracle - Oracle Basics - PDB

    Running Oracle on Windows: An Island Unto Itself

    For many DBAs, the thought of running Oracle on a Windows OS induces a collective cringe. Even for someone like me, with a career spanning both Microsoft and Oracle technologies, it’s a combination I typically avoid. However, there are scenarios—driven by licensing, software requirements, or other factors—where deploying Oracle on Windows becomes the logical choice. I recently encountered such a scenario while assisting a team I enjoy working with at Redgate. The task was to refresh and streamline our demo virtual machine (VM) image, which included Oracle running on Windows. Here was my planned approach: Export any data that needed…

  • Microsoft - Oracle - Oracle Basics - Tech Rants

    Oracle Architecture – Bridging the Old to the New

    I’m passionate about making technology easier to understand, a mission I’ve pursued on my blog since 2008. However, I’ve faced challenges when educating newer Oracle users about the differences between single-instance (older architecture) and multitenant (newer architecture) models, as well as how these two architectures are connected. For those of us with extensive Oracle experience, these concepts may feel straightforward. This is especially true for professionals who work across multiple platforms, as Oracle was relatively late to adopt multitenancy. For instance, SQL Server has embraced this model since its earlier versions—going back to my experience with SQL Server 6.0—making it…