Мы постоянно бьем это по офису, и этот вопрос продолжает возникать. Как вы справляетесь с репликацией PostgreSQL? Я даже не говорю о продвинутых кластерах, я просто говорю о простоте с Master-Slave, Master-MultiSlave и Master-Master. Я считаю, что настроить его для MySQL, как правило, довольно просто. Отказоустойчивость проста, если не идеальна, особенно в том, как легко ее настроить. Мы играли со Slony, но он слишком сложный (изменения схемы требуют вмешательства, новые базы данных требуют вмешательства и т. Д.). PGPool2 был довольно хорош, пока узел не вышел из строя, и мы не смогли найти изящный способ (кроме сброса всего и повторного заполнения упавшего узла), чтобы вернуть репликацию обратно в синхронизацию. В основном вот что я обычно ищу:
- Простая настройка (я согласен на сложную настройку, но ее легко расширить)
- Упрощенное переключение при сбое
- Чтобы вернуть упавший узел обратно, требуется время (то есть, как, например, mysql. Сервер отключается, вы запускаете его и ждете, пока репликация наверстает упущенное)
- Изменения схемы не нарушают репликацию
- Добавление новой базы данных на сервер происходит незаметно (то есть, как и MySQL, вы можете реплицировать весь сервер БД, поэтому на главном сервере создается новая база данных, которая автоматически распространяется на ведомый)
MySQL справляется с большинством из них довольно хорошо, но я очень люблю PostgreSQL. Кроме того, у нас есть несколько ситуаций, когда это наш единственный вариант, и мы хотели бы добавить репликацию к миксу. Что вы используете в настоящее время, и как вы относитесь к своему решению? Обещаю, что это не пост MySQL против PostgreSQL, потому что это не то, что я пытаюсь начать. :)