| Lesson 6 |
Identify the components of a disaster recovery plan |
| Objective |
Identify the components of an effective disaster recovery plan. |
Disaster Recovery Plan
Systems fail for a variety of reasons, and most failures fall into one of four broad categories: hardware, software, operational, or environmental. Each category presents its own challenges and calls for its own recovery techniques, covered briefly later in this lesson. An effective disaster recovery plan has to account for all four, not just the ones that happen to be top of mind.
These four categories aren't equally likely, and they aren't equally within a DBA's control either, which is worth keeping in view throughout this lesson. A DBA has real influence over operational failures and meaningful, if partial, influence over hardware and software failures through architecture and patching decisions, but essentially no influence over an environmental event actually occurring. A disaster recovery plan has to be honest about which of these categories can genuinely be prevented and which can only be prepared for after the fact, since conflating the two leads to either wasted effort trying to prevent the unpreventable or, worse, insufficient preparation for a risk that was written off as someone else's problem.
Components of an Effective Disaster Recovery Plan
A genuinely effective disaster recovery plan rests on a documented business-impact analysis, matched to the right technology, a properly matched remote environment, and, critically, operational practices that are actually exercised rather than just written down. None of these four pieces substitutes for the others; a plan with excellent technology and no tested runbooks is only a design, not a working plan.
Business impact analysis. This is the genuine starting point of disaster recovery planning: identifying which business processes are actually critical, and which systems and data support them. The output of this analysis is a recovery time objective (RTO), how long the business can tolerate being down, and a recovery point objective (RPO), how much data loss is actually acceptable, for each system. These two numbers, more than anything else, drive every downstream technology decision in the rest of the plan. Not every system in an organization needs the same numbers either; a customer-facing order system and an internal reporting database can reasonably carry very different RTOs and RPOs, and treating every system as equally critical usually means overspending on the unimportant ones while still under-protecting the ones that actually matter.
Matching technology to the requirement. Oracle's Maximum Availability Architecture reference framework organizes availability configurations into tiers, commonly described from Bronze through Diamond, with higher tiers delivering faster failover and less data loss at the cost of more infrastructure and more operational discipline. The building blocks used to meet a given tier are generally drawn from the same toolkit: Oracle RAC for local high availability and fast restart after a node or instance failure, Oracle Data Guard or Active Data Guard for physical replication to a standby, with Fast-Start Failover bounding how long a failover actually takes, GoldenGate for logical, active-active replication at the tiers demanding the lowest possible RTO, RMAN paired with a dedicated recovery appliance or cloud recovery service for continuous, validated backup protection, and Flashback combined with Application Continuity to preserve in-flight work through a failover rather than losing it. A more recent addition to this toolkit, Oracle's Globally Distributed Database, offers an alternative approach for sharded or multi-region active topologies specifically.
Properly matched Disaster Recovery Environment
Oracle's own operational guidance on this point is direct: a DR target, whether a standby database or a GoldenGate replica, needs to be symmetric, or at least comparably configured, to the production environment it protects, matched on CPU, memory, I/O throughput, and storage performance. A DR site sized well below production capacity looks like protection right up until an actual failover reveals that the standby can't actually carry the production workload it just inherited. If a DR site is shared with other workloads, that shared capacity needs real, reserved headroom set aside specifically so production-scale performance remains achievable after a failover, not just theoretically possible on paper. A standby that's been quietly downsized over time to save on infrastructure cost, while production kept growing, is a particularly easy way to end up with this exact gap without anyone deciding it should happen; capacity parity is worth checking on the same recurring cadence as everything else in the plan, not assumed to still hold from when the standby was first provisioned.
Operational practices that make the technology actually work. Technology alone has never been sufficient. A genuinely effective plan also includes documented role-transition runbooks, covering both a planned switchover and an unplanned failover, at both the database and application layers; periodic live tests, a full switchover or failover exercised on a real schedule rather than left purely theoretical, with the resulting RTO and RPO actually measured against what was promised; regular backup validation, including full restore and recovery drills rather than relying solely on a backup tool's own automated integrity checks; change control and pre-production validation against a genuine replica of the production and standby stack before any change reaches production; ongoing monitoring and health checks, with clear escalation procedures so a disaster is actually detected and the plan actually gets executed without delay; and a security posture, encryption key management, immutable or air-gapped backups, that ensures a cyber event can't destroy the recovery path along with the primary system.
Of everything in this list, the periodic live test is the piece most often skipped, and the piece whose absence causes the most damage when it finally matters. A runbook that's never actually been executed carries the same fundamental risk as an untested backup: nobody actually knows whether it works until the one moment it's genuinely needed, and that's exactly the wrong moment to discover a missing step or a stale credential.
Regarding Specific Failover Timing Claims
This is the third time in this module that a specific set of Maximum Availability Architecture tier failover timings has come up, roughly 30 seconds for one tier's disaster failover, a few seconds or less for the most demanding active-active configurations, alongside newer, equally specific figures for RAC restart time and a claim that Oracle's Globally Distributed Database uses Raft-based consensus for replication. None of these precise figures, or the Raft implementation detail specifically, have been confirmed against the documentation available for this course, and repeating a claim across multiple lessons doesn't make it any more verified than it was the first time it appeared. These numbers matter enough, for setting real SLA expectations with a business, that they're worth treating as still open rather than settled, pending Oracle's dedicated High Availability documentation.
What is safe to state with confidence: the general shape of the tiered framework itself (progressively faster failover and lower data loss at higher tiers, in exchange for more infrastructure and operational discipline), and the general purpose of each named technology (RAC for local restart, Data Guard for physical standby replication, GoldenGate for active-active logical replication). The specific numbers attached to any of these deserve confirmation before being quoted to a business stakeholder as a guarantee.
Hardware Failures
Given everything happening inside a running computer, spinning platters, solid-state storage cells wearing down over write cycles, millions of electronic switches toggling constantly, it's genuinely a little surprising hardware doesn't fail more often than it does. There's very little a DBA can do to prevent a hardware failure outright; the real leverage a DBA has is in minimizing the data loss and downtime a hardware failure causes, working with system administrators to design a genuinely highly available, scalable architecture, and using database features like replication and standby databases specifically to limit how much a single piece of failed hardware can actually take down. A well-designed architecture treats hardware failure as a certainty on a long enough timeline, not an unlikely edge case, and builds redundancy accordingly rather than hoping a given component simply won't fail on anyone's watch.
Software Failures
No piece of software is perfect, and bugs exist somewhere in the operating system, the database software, and the application layer, no matter how mature any of them are. The best a DBA can realistically do is keep the database software reasonably current, a genuinely significant undertaking in many organizations, since a version upgrade has to be tested against the current operating system and the current application stack, not just against the database in isolation.
There's a real tension worth naming directly here, rather than resolving it with a simple rule of thumb. Historically, many DBAs preferred staying a patch or two behind the vendor's latest release, on the reasoning that early adopters would surface bugs a more cautious approach could avoid. That reasoning still has some merit for purely functional bugs, but it trades against a different, increasingly serious risk: security patches specifically are not optional in the same way functional updates are, and staying meaningfully behind on security patching widens the window an actual attacker has to exploit a known, already-published vulnerability. The right balance depends on what's actually being deferred, security fixes deserve a much shorter runway than feature or functional patches, not a blanket "wait a release or two" policy applied uniformly to everything the vendor ships.
Operational Failures
To err is human, and operational failure is the one category a DBA has the most direct control over. A handful of honest questions tend to reveal how exposed a given environment actually is: Is there real documentation and training in place for the DBA team? Are there genuine controls governing how new applications or system upgrades actually get released? Is the backup and recovery strategy planned, tested, and reassessed on a real, recurring basis? Is the database actually secure, with default passwords changed and access properly scoped? An environment that can answer all of these questions affirmatively, default passwords very much included, has already substantially reduced its exposure to operational failure.
This category deserves particular attention precisely because it's the one most within a DBA's control, which also means it's the one most fairly judged against. A hardware failure or an earthquake isn't a reflection of how well a DBA does their job; a missing back-out script, an untested restore procedure, or a default password left unchanged very much is. Treating operational rigor as the category with the highest return on effort, since it's the one category a DBA can actually improve through discipline alone, is a reasonable way to prioritize limited time.
Environmental Failures
Some failures come from outside the system entirely, power outages, power surges, temperature swings, and in some locations, genuine seismic risk, and no DBA can prevent any of them from happening. What a DBA can do is assess which of these risks are actually plausible for a given location and plan accordingly: appropriate power protection, environmental monitoring, and a disaster recovery plan robust enough to account for the specific environmental risks a given data center or region actually faces, rather than a generic checklist that doesn't reflect the actual environment the system runs in.
How the Four Categories Actually Interact
These four categories rarely stay neatly separated in a real incident, and a disaster recovery plan that treats them as entirely independent risks misses exactly the compounding effect that makes some incidents so much worse than others. A power surge, environmental, can trigger a hardware failure, which in turn exposes an operational gap, an untested runbook, a missing back-out script, that turns a contained, single-component problem into a multi-hour outage. The environmental event is rarely the whole story; it's usually the trigger that reveals whichever operational or technical weakness was already sitting there unaddressed.
This is worth internalizing specifically because it changes how a DBA should prioritize limited time and budget. Hardware and environmental risk can be reduced through better infrastructure, but only up to a point, and neither is ever reduced to zero. Operational rigor, by contrast, is the one category where genuine improvement is almost entirely a matter of discipline rather than capital spending: documenting procedures, testing them on schedule, and closing the gaps testing actually reveals. A DBA with a modest infrastructure budget and rigorous operational habits will generally weather a disaster better than one with excellent infrastructure and untested procedures, precisely because the operational layer is what determines whether a triggering event stays a contained incident or cascades into the kind of outage this whole lesson has been about avoiding.
Common Mistakes Worth Watching For
A handful of patterns account for a large share of the trouble organizations run into with disaster recovery planning specifically.
Applying the same RTO and RPO to every system regardless of actual criticality. Not every database deserves Platinum-tier protection, and treating every system as equally critical usually means the genuinely critical ones end up under-resourced relative to what they actually need.
Letting DR site capacity drift out of alignment with production. A standby sized correctly when it was provisioned doesn't stay correctly sized as production grows, unless capacity parity is checked on a recurring basis rather than assumed.
Treating a written plan as equivalent to a tested one. A runbook that exists on paper and a runbook that's actually been executed under realistic conditions are not the same level of preparedness, no matter how thorough the document itself reads.
Investing in infrastructure while neglecting the operational layer. As covered above, the operational category is where a DBA has the most genuine control, and it's often the category most likely to get shortchanged in favor of more visible technology investments.
The next lesson discusses why a DBA should test the backup and recovery plan.
