Take the 2-minute tour ×
Database Administrators Stack Exchange is a question and answer site for database professionals who wish to improve their database skills and learn from others in the community. It's 100% free, no registration required.

PostgreSQL has a matrix of different high availability options which represent many different ways of building replication into an RDBMS.

Here is the PostgreSQL High Availability, Load Balancing, and Replication Feature Matrix

Questions

  • Which of the approaches in the PostgreSQL High Availability Matrix are supported by Oracle?
  • Does oracle do high availability with techniques that are not available with PostgreSQL?
share|improve this question

3 Answers 3

up vote 3 down vote accepted

Oracle's Data Guard replication is similar to PostgreSQL's "Hot/Warm Standby Using PITR", which is built-in to the database as of PostgreSQL 9.0. Version 9.1 adds synchronous replication too. One advantage that PostgreSQL has over Oracle here is that Sync Rep can be controlled on a per-transaction basis. You can have a fully synchronous "Important!" Transaction followed by an asynchronous "OK to lose" one in Postgres.

Oracle's RAC is similar to what PostgreSQL is labelling "Shared Disk Failover" in that grid. The main difference is that RAC is fully integrated into Oracle's product, while "Shared Disk Failover" just describes a method of doing something. You have to assemble the necessary clusterware software around that for PostgreSQL, and there are a variety of advanced things RAC does you'll be hard pressed to duplicate in PostgreSQL. I regularly hear that most of those things are so complicated to setup that few Oracle installations get them right either--just because RAC is built-in doesn't mean it sets itself up automatically.

The main thing you can do in Oracle that is very hard to duplicate as well in PostgreSQL is multi-master replication. It's possible to do multi-master in PostgreSQL, but only with add-on software like Bucardo. And all such programs still have more restrictions on what you can do with them than the Multi-Master Oracle installations provide.

share|improve this answer
    
Greg I really appreciated your video "Synchronous Replication and Durability Tuning Greg Smith" Watched it last night! It really helped me understand the various options. I don't mind all the replication options in Postgres it just takes a while to figure out what is the right one for my app. –  ams Dec 20 '11 at 20:59

I am not sure I understand the part "supported by Oracle" in your question. Postgres is not "supported" by Oracle in any way.

Oracle's physical StandBy is equivalent to PostgreSQL streaming replication.

When using streaming replication, PostgreSQL's asynchronous replication is equivalent to Oracle's standby using the "Maximum Performance" mode, whereas PostgreSQL's synchronous (since 9.1) replication is equivalent to Oracle's standby using "Maximum availability" mode.

Oracle has another option which is called Real Application Cluster (RAC) which is something that is not available in Postgres (it also does load balancing and automatic redirection of session to another node, if one goes down)

share|improve this answer
    
I full understand that postgres is not supported by Oracle. What I am tying to find out is which replication approaches are implemented by both products. My thoughts are if a replication approach is good enough for Oracle then it is probably one of the better approaches to replication. –  ams Dec 19 '11 at 21:06
1  
The reason there are so many replication choices out there is that each is suitable for a different type of application. The idea that some are "good enough" and other are not isn't true. For example, the trigger-based replication approach isn't popular for Oracle. But it is in PostgreSQL and MySQL, because it's suitable for types of applications Oracle doesn't aim at. –  Greg Smith Dec 20 '11 at 1:44

On Oracle you basically have a choice between running a hot standby and using RAC.

The main aim of High Availability is to remove single points of failure. RAC does this at the server level allowing failure of a server without any service interruption. You will need to achieve something similar at the storage end using ASM, mirroring, and two or more physically independent storage pools (or a SAN).

Using a hot standby will mean service interruption in the event of a failure, but is simpler and has fewer "engineering trade offs"

Good quality hardware is also essential, eg SAS not SATA, redundant PSUs, UPSs etc.

There are also other aspects of High Availability you may need to consider (eg human error) - this white paper from Oracle discusses them in more depth.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.