Стратегии репликации PostgreSQL

В настоящее время мы используем PostgreSQL 8.3 (в Linux) в качестве базы данных для нашего веб-приложения Ruby on Rails.

Учитывая, что в базе данных PostgreSQL мы активно используем блокировку на уровне строк и PL/PGSQL, что мы можем использовать для защиты наших данных - я имею в виду инструменты, пакеты, сценарии, стратегии - для успешной репликации базы данных и создания многопроцессорных сочетание?

Я по достоинству оценю также предложения мастера-раба.

Например, если я поставил несколько серверов приложений под управлением Apache/Ruby для достижения более высокой производительности и в конце развертывания нескольких серверов баз данных, есть ли способ создать репликацию с несколькими мастерами в PostgreSQL?

Сейчас мы используем механизм WAL PostgreSQL для резервного копирования данных в файловую систему.

Большое спасибо.

Ответ 1

Существует несколько инструментов для сценариев master-slave (и master-multislave), обычно основанных на триггерах. Slony-I уже упоминалось (стабильно и твердо, но немного сложно работать). Люди, у которых проблемы с Slony-I писали Londiste (командой Skype) и PyReplica. Ба, и я просто заметил Мамонт был открыт с открытым исходным кодом

Для мультимастера есть Bucardo (обратите внимание: это не полировка) или коммерческих предложений - например, Continuent или CyberTec.

Ответ 2

Если вы еще этого не сделали, я бы предложил посмотреть главу High Availability, Load Balancing и Replication в PostgreSQL руководство. Он дает четкий обзор доступных технологий и их возможностей.

Ответ 3

Hm, Bucardo действительно хорош и стабилен, по сравнению с другими здесь. Он так же отполирован, как и система репликации на основе Perl, и поддерживает master-slave, а также репликацию с несколькими мастерами, с интересными концепциями разрешения конфликтов.

Если вам нужна простая репутация master-slave, я бы рекомендовал Londiste, но для потребностей с несколькими мастерами Bucardo - единственное приемлемое решение IMHO.

Ответ 4

Хотя Postgres-R выглядел многообещающим, однако, тем не менее, он все еще находится в разработке.

Предполагалось, что он был стабилизирован и предположительно был потенциальным для интеграции со стандартным вопросом, но его еще предстоит реализовать.

Ответ 5

Поздний ответ, но есть новое программное обеспечение с открытым исходным кодом для асинхронной репликации Master-Master PostgreSQL (также работает для MySQL): rubyrep

Фокус находится на простой настройке. Раскрытие информации: я написал это.

Ответ 6

Вы можете посмотреть slony.

Ответ 7

PGCluster выглядит многообещающим - мы используем его в ограниченных ситуациях без особых проблем.

http://pgfoundry.org/projects/pgcluster/