Стратегии репликации 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/