问题
Right now we are using PostgreSQL 8.3 (on Linux) as a database backend to our Ruby on Rails web application.
Considering that on PostgreSQL database we actively use row level blocking and PL/PGSQL, what can we employ to secure our data -- I mean tools, packages, scripts, strategies -- to successfully replicate the database and build multi-master combination?
I will appreciate master-slave suggestions as well.
For example, if I put several application servers running Apache/Ruby to achieve higher performance and at the end deploy several database servers, is there any way to build multi-master replication in PostgreSQL?
Right now we use PostgreSQL WAL mechanism to backup data to file system.
Thanks a lot.
回答1:
There are a few tools for master-slave (and master-multislave) scenarios, usually trigger-based. Slony-I has already been mentioned (is stable and solid, but a bit difficult to operate). People having problems with Slony-I wrote Londiste (by Skype team) and PyReplica. Bah, and I just spotted Mammoth has been open-sourced
For multimaster there is Bucardo (note: it is not that polished) or commercial offerings - for example by Continuent or CyberTec.
回答2:
If you haven't already, I'd suggest a look at the High Availability, Load Balancing, and Replication chapter of the PostgreSQL manual. It gives a clear overview of the available techiques and their features.
回答3:
Hm, Bucardo is really good and stable, in comparison to the others here. It is as polished as can be a Perl-based replication system, and supports master-slave as well as multi-master replication, with interesting conflict resolution concepts.
If you need simple master-slave rep I'd recommend Londiste, but for the multi-master needs, Bucardo is the only acceptable solution IMHO.
回答4:
I though Postgres-R looked promising, however, its still in development.
It was supposedly stabilised and purported to be a potential for integration with the standard issue, but its yet to come to fruition.
回答5:
Late answer but there is a new open source software for asynchronous master-master replication of PostgreSQL (also works for MySQL): rubyrep
Focus is on easy setup. Disclosure: I wrote it.
回答6:
You can have a look at slony.
回答7:
PGCluster looks promising - we use it in limited situations without much problems.
http://pgfoundry.org/projects/pgcluster/
来源:https://stackoverflow.com/questions/423943/postgresql-replication-strategies