Data replication is not a new idea; it's been around for more than a decade. In an Oracle database, it's the process of duplicating objects and moving them out to multiple databases so users have continuous access to shared data even in the event of a disaster, or when it's time to perform database maintenance or patching. Migrations, system upgrades and operational reporting also can benefit from replicating multiple copies of your Oracle data. The challenge has been finding ways to expand applications horizontally to update multiple databases and share the applications underneath.
Cost effectiveness and high availability for disaster recovery are the two primary reasons data replication is becoming more widespread. In the past, scaling for increased performance meant buying a bigger machine. Not only is this very expensive, but eventually you reach the point where it's not possible to move to larger hardware. Data replication is less expensive because it allows you to use smaller hardware and scale out by expanding the application. It also gives you better throughput.
High availability means reduced downtime, and downtime is something every IT shop wants to avoid. It's common practice to allow access to multiple machines from the same database, but if that single database goes down, your backup is your only means of recovery and users are out of luck until the recovery is complete. Data replication allows for the existence of multiple copies of the same database, making disaster recovery much faster in the event of an outage.
One of the most recent trends in data replication for Oracle databases is extending the applications horizontally into multiple servers. This effectively creates mirror copies of your database on as many different servers as you want to use, allowing you to scale easily and eliminating downtime in the event of a disaster or when system maintenance is required. If one database goes down, the rest will keep your applications available to users.
A horizontal data replication solution should have some specific capabilities, including the means to perform bi-directional replication, and to resolve conflict. Conflict can occur when a server receives multiple updates for the same row, when data is coming from different servers of varying levels of priority, or just in the course of sending data to multiple servers, so the solution needs to have some mechanism for resolving the conflict that can result. It should create a mirror copy of the database to extend to additional servers, rather than extending applications in real time, and it also should have the ability to compare data while the replication is going on to find any discrepancies. When a server is taken down for maintenance, it can become vulnerable to errors, so in the event of a network, system or database failure, your replication solution should be able to pick up where it left off without losing data. An upgrade package for maintainability is a good thing to look for.
Several different types of solutions exist to achieve data replication for Oracle databases, and, as we've already noted, a robust solution should effectively address cost and increased availability issues. It also should be simple to use and minimize risk when replicating multiple copies of Oracle data. Below are brief descriptions of five key business objectives that will be met by a good data replication solution:
- Cost: The cost of an IT solution is usually at the very top of the criteria list. A good data replication solution should be able to function on multiple Oracle operating systems and support multiple Oracle versions and server platforms. If you don't have to upgrade your database infrastructure to perform data replication, you will lower your overall operational costs.
- Simplicity: Data replication does not have to be complex or difficult. A solution that is easily downloaded, includes short video tutorials and has a quick set-up process will put you on the road to simplicity. Automation of routine day-to-day operations and the ability to keep the source and target in synch are additional characteristics to look for.
- Support: Uptime and turnaround time are critical factors in maintaining high availability, so make sure your data replication solution comes with a high level of vendor support so you can resolve most customer issues within the first support call. It's also a good idea to look for solutions that are user-friendly and don't require a lot of staff training, and provide built-in support that analyzes how well your solution is working and recommends improvements that will bring you the most return on your investment.
- Scalability: Choose a solution that offers flexible scalability options without requiring the purchase of upgrades. These options may include the ability to run on Linux and low-cost servers with Oracle Standard Edition, or load-balancing between multiple databases without the overhead, limitations and costs of RAC. Your solution should allow you to scale as much or as little as you need to, depending on your resources and availability requirements.
- Productivity: Your solution should not require additional staff resources to use and maintain it, and should, in fact, increase the productivity of your existing staff. Instead of requiring multiple IT staff to perform maintenance or apply patches, your solution should allow for just one person to take down one database at a time while the rest maintain the availability of your applications. A good solution also will have the automated ability to find and fix data anomalies, saving your IT staff the time it takes to make manual adjustments.
A horizontal data replication solution will get your database into multiple regions, and because users now have alternate options for accessing data, your mission critical applications will remain available at all times, even if one server goes down. You can easily perform maintenance and install patches by taking just one server offline and moving database activity to the other servers, performing the necessary maintenance, and then bringing the server back up and rotating on to the next one. In addition, horizontal data replication reduces costs by allowing you to use smaller hardware and scale out by expanding the application. A good replication solution should be able to help you achieve all of this simply, with minimal cost, and, at the same time enable your IT staff to significantly increase productivity.
Tom Chu is product manager and team lead for high availability at Quest Software. He began working in the computer industry on a production environment in 1989, and has worked with replication since 1993. In 1996, he joined Quest Software, where he has been involved with SharePlex for Oracle since its inception. Tom earned a Bachelor of Science degree in computer science from California State University Polytechnic, Pomona, and has held a variety of positions in technical support, development and product management.