Checkpoint Not Complete: Every Commit Waits, and the SQL Is Fine
Lab The same 100,000-row update spent 11.9 of its 14.1 seconds waiting for a redo log. Bigger logs: 1.9 seconds, zero waits.
RAC, Data Guard, RMAN, failover & recovery
High availability and disaster recovery are two different promises, and conflating them is how teams end up paying for one while believing they have the other. RAC keeps a database serving when a node fails; Data Guard keeps your data alive when a site or its storage fails; RMAN is the floor under both — the backup you can actually restore. Most production estates need a deliberate combination, not a default. These guides work through the decisions — RAC vs Data Guard vs both, switchover vs failover, why nodes get evicted, and how to prove your standby actually works — read from the logs up, with runnable and forensic labs you can try yourself.
Lab The same 100,000-row update spent 11.9 of its 14.1 seconds waiting for a redo log. Bigger logs: 1.9 seconds, zero waits.
Lab A too-small recovery area locked every non-SYSDBA user out with ORA-00257. Backing up and deleting the archived logs through RMAN brought writes back.
Lab Same query, same DML churn: on a tiny unguaranteed undo tablespace it died after 1 row; with RETENTION GUARANTEE it read all 20,000.
Lab Three disasters, each undone without restoring a backup.
Lab One throwaway database, broken three ways: a deleted datafile, a corrupted block, and a committed bad DELETE. RMAN brought the data back every time.
Switchover is a planned zero-loss role swap; failover is for when the primary is gone — plus Fast-Start Failover, protection modes, and the mistakes to avoid.
Oracle RAC node eviction from the logs up: the three heartbeats, misscount vs disktimeout, split-brain and voting disks, and a checklist to find the real cause.
Lab A committed DELETE and a DROP TABLE are exactly what a standby would replicate. Flashback got all 1,000 rows back locally, with no standby involved.