We recently deployed Phase 1 of a high availability system which included primary and secondary clusters at different locations. Our Phase 2 will be to implement Oracle RAC and possibly Data Guard. My questions are:
- What are the distance limitations of the making the two environment in sync using RAC?
- In our design can RAC and Data Guard be implemented or one replace the other?
We discuss this on pages 198-201 of Oracle Database 11g Release 2 High Availability. This is referred to as a stretch cluster or extended distance cluster. In general, we recommend distances between nodes in an extended distance (or stretch) cluster be kept to 20 miles or less. Anything beyond that we would not feel comfortable with the latencies. For this reason, extended or stretch clusters are also known commonly as "campus clusters" because in many cases they are used to extend a cluster across two different data centers on the same corporate campus. In the 11gR1 HA Best Practices documentation on the Oracle Technology Network (OTN), Oracle also has the following recommendations:
Testing has shown the distance (greatest cable stretch) between Oracle RAC cluster nodes generally affects the configuration, as follows:
- Distances less than 10 km can be deployed using normal network cables.
- Distances equal to or more than 10 km require DWDM links.
- Distances from 10 to 50 km require storage area network (SAN) buffer credits to minimize the performance impact due to the distance. Otherwise, the performance degradation due to the distance can be significant.
- For distances greater than 50 km, there are not yet enough proof points to indicate the effect of deployments. More testing is needed to identify what types of workloads could be supported and what the effect of the chosen distance would have on performance
Of course, technology is always changing, and there may always be the possibility of improved technologies down the road making longer distances more feasible. The 11gR2 HA Overview document (chapter 7) is not as specific, but has the same general recommendations that we advise in our book.
For the second part of the question, it is possible to combine both RAC and Data Guard, and in fact we generally recommend this be done to maximize your availability. This can be done regardless of whether the primary cluster is an extended cluster or a local cluster. If you go with a RAC-only solution, you have to realize that having two data centers that are 20 miles or less apart will not give you the maximum availability for many types of disasters, such as floods, hurricanes, earthquakes, extended blackouts, etc., which may affect the same geographical region quite easily. Therefore, our recommendation for maximum availability would be to have, whenever possible, a local RAC cluster, combined with a Data Guard standby cluster that is far enough distant to reduce the likelihood that both data centers will be impacted by the same disaster.