Applications that require high availability need some form of redundancy to protect against failures. For those with an Oracle database, the first thing that comes to mind is often Oracle Real Application Clusters (RAC). But is this the best solution?
Oracle RAC allows multiple active DMBS servers to access a single database. If one server goes down, traffic is automatically routed to the remaining server within a matter of seconds. Although Oracle has made deploying RAC easier in recent releases (10g and 11g), it still adds a significant amount of complexity and cost. More importantly, it does not protect against storage system failures: if you lose your SAN, NAS, or JBOD storage, you lose your database.
Oracle DataGuard allows an active database to be replicated to another hot-standby or read-only copy. If the active server or its storage goes down, the standby server is made active and traffic is routed to it within a few minutes. DataGuard is included in the Oracle Enterprise license at no extra cost, and can replicate to either a local instance or to a remote instance (for full disaster recovery). More importantly, it protects against both server and storage system failures. It also can play a useful role in migrating to new server hardware or software.
If your business can tolerate a few minutes of outage, DataGuard is probably a good place to start. If you need to further reduce the impact of a DBMS server outage from minutes to seconds, you should consider adding RAC.