April 19, 2011 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:
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. |