Posts

Oracle Data Guard

Oracle Data Guard Oracle Data Guard Oracle Data Guard is Oracle’s solution for high availability, data protection, and disaster recovery for enterprise databases. It creates and maintains one or more standby databases as transactionally consistent copies of a primary database. If the primary database becomes unavailable due to planned maintenance or unplanned outage, Data Guard can quickly switch a standby into the primary role, minimizing downtime. Data Guard services: Redo Transport Services and Apply Services , which handle shipping of redo logs and applying changes to standbys, as well as Role Transition services to switch roles between primary and standby. Redo Transport Services Control how redo is sent from primary to standbys (synchronously or asynchronously, how it’s buffered, etc.). Transport services also handle networking faults by queuing redo and resolving gaps if a standby missed some logs (e.g., netw...

Recovery Point Objective(RPO) and Recovery Time Objective(RTO)

RPO and RTO in Oracle Data Guard 1. Recovery Point Objective (RPO) What it is: RPO is about how much data loss you can tolerate if your primary database crashes. More precisely, it’s the maximum acceptable amount of time between your last backup (or last synchronized data) and the failure. In Oracle Data Guard terms: RPO means how far behind your standby database can lag before it’s no longer acceptable. It’s the "point in time" to which you can recover data after a failure. Example: Suppose you set your RPO as 5 minutes . If the primary database crashes, you accept that you might lose up to 5 minutes of data changes. Your standby must be kept synchronized enough so that, in case of failover, it won’t be more than 5 minutes behind the primary. 2. Recovery Time Objective (RTO) What it is: RTO is the maximum acceptable time to restore the database and get it up and running after a failure. In Oracle Data Guard terms: It’s the time between the failure ...

gc buffer busy wait

GC Buffer Busy Wait Fix in Oracle RAC Here’s the thing with gc buffer busy wait in Oracle RAC — it usually points to contention on data blocks that are being shared across RAC nodes. When one instance is holding a block in a mode another instance needs, the second waits, causing this event to spike. Let’s break down how to fix it: Identify the hot block or object causing contention Run a query on v$session_wait or gv$session_wait to see which objects or blocks are involved. Often, it’s a segment or index that many sessions hit simultaneously. Check the type of contention Is it on data blocks (DML), index blocks, or undo segments? That guides your action. Common fixes: Application tuning : Are many sessions updating the same rows or blocks? Try to spread the workload to reduce "hot spots." For example, avoid sequences that generate contention on the same block, or tune application logic to avoid frequent updates ...

Oracle GoldenGate: An Interactive Architectural Analysis

Oracle GoldenGate: An Interactive Architectural Analysis GoldenGate Architectures Introduction Architecture Deep Dive Side-by-Side Comparison Future & Migration The Evolution of Enterprise Data Replication Explore the critical shift in Oracle GoldenGate from its robust, long-standing Classic Architecture to the agile, cloud-native Microservices Architecture. This interactive analysis unpacks the components, data flows, and strategic implications of this pivotal transformation. Architecture Deep Dive ...

Automating DBA Tasks with Oracle GoldenGate - Part 2

Automating DBA Tasks with Oracle GoldenGate In this post, we will explore how to automate DBA jobs with Goldengate. If you're reading this directly, I recommend checking out Part 1 first to understand how it works. If you've already read Part 1, feel free to continue from here! Or you are already familiar with goldengate you are good enough to continue. Steps to Automate User Management in Goldengate Configure Goldengate parameters and place the required shell and SQL scripts. Add the necessary input into GG_USERMGMT_TB, such as the username, database name, and granted roles. Verify that the user has been successfully created in the database. This setup is sufficient to bring your bright idea to life using your environment. Here, the E_E01_1 extract acts as the master process to automate DBA job user management operations. I have two databases, orclpdb01 and orclpdb02, with the master extract process configured and running on or...