Я только что создал бездельник репликация установлена между 2 серверами postgres. Один главный и один подчиненный хост. Данные копируются. Мы не хотим использовать это для резервного копирования данных или чего-то еще, но хотим выполнить некоторые вычислительно-интенсивные вычисления на ведомом устройстве.
Возможно ли / хорошо, если бы мы создали индекс для таблицы в подчиненной базе данных, которой нет в главной базе данных? Мы не будем добавлять никаких данных на подчиненное устройство, мы просто хотим иметь возможность быстрее выполнять определенные запросы на подчиненном устройстве.
Сломает ли это репликацию slony? Укусит ли это нас в задницу позже?
Slony основан на триггерах и легко настраивается. Да - согласно документации Вот .
Изменения DDL можно применить непосредственно к узлу через приложение, такое как psql. Изменения DDL не будут реплицированы Slony-I, поэтому их необходимо вручную применять к каждому соответствующему узлу. При прямом применении изменений DDL следует учитывать следующие моменты.
По поводу плюсов / минусов. Наша команда некоторое время назад столкнулась с такими же проблемами (решение кластеризации для высокой доступности, IOPS без нагрузки), и после изучения / тестирования некоторых из них мы остановились на потоковой репликации. - Простота настройки / обслуживания, загрузка с считыванием реликвий.
Мультиарендность (Slony не может разделять схемы postgres между разные узлы), интенсивное использование триггеров в серверной части нашего приложения, индексы с расширениями (cube, pg_trgm, cube, earthdistance и частые изменения DDL сделали невозможным использование Slony для нас. Другими словами - вы должны понимать свое приложение и цели, чтобы выбирать правильное решение.
Что касается шардинга данных - однозначно стоит обратить внимание на PostgresXL, мы тоже пробовали! но у нас это не сработало, так как он поддерживает не все типы индексов, которые мы используем :(