Нужен совет о том, как действовать в этой ситуации: мой текущий сценарий состоит в том, что у меня есть несколько серверов postgresql (50+), развернутых в разных местах и центрах обработки данных, и мощная установка postgresql box в месте расположения домашней базы. Все развернутые блоки имеют идентичную компоновку базы данных. Я ищу решение, которое позволило бы сделать несколько вещей. Я понимаю, что некоторые из этих вариантов частично совпадают, а некоторые могут содержать только взаимоисключающие решения. Однако мне интересно услышать ваши мысли :)
Выполняйте удаленный запрос к развернутым ящикам и возвращайте результаты обратно в ящик домашней базы для обработки.
Ночная (удаленная) «синхронизация» или дамп баз данных развернутых ящиков в главную базу данных на домашнем базовом ящике. Несмотря на то, что на каждом пульте дистанционного управления есть одинаковая структура таблицы, фактические данные различаются по всем направлениям. Возможность удаленно выгружать все эти данные в главную БД была бы идеальной.
Дистанционно отправьте запись таблицы во все развернутые коробки из коробки домашней базы.
Обеспечьте безопасность передаваемых данных и удаленно развернутых ящиков.
До этого момента я использовал самодельную многопоточную систему python / perl, которая удаленно подключает SSH к этим ящикам, которые подключаются к серверу домашней базы по ACL и извлекают (или отправляют) необработанные результаты запроса через соединение ssh. Я даже коснулся пункта 2 (удаленная синхронизация), поскольку знаю, что это очень быстро станет неприятным. Меня интересуют любые идеи более элегантного решения, которое можно масштабировать и придерживаться моей среды FreeBSD / Linux.
1 Удаленно запросить развернутые коробки и вернуть результаты в коробку домашней базы для обработки
Стандартное соединение с включенным и «принудительным» SSL обеспечит то, что вы ищете (см. Ответ на №4).
2 Ночная (удаленная) "синхронизация" или дамп баз данных развернутых боксов в главную базу данных на домашнем базовом блоке. Несмотря на то, что на каждом пульте дистанционного управления есть одна и та же структура таблицы, фактические данные различаются по всем направлениям. Возможность удаленно выгружать все эти данные в главную БД была бы идеальной.
3 Дистанционно отправьте запись таблицы во все развернутые блоки из коробки домашней базы.
Вы считали одним из доступно множество решений для репликации, в том числе Slony?
4 Обеспечение безопасности передаваемых данных и удаленно развернутых ящиков
PostgreSQL "из коробки" поддерживает SSL. Вы также можете заставить каждый экземпляр сервера требовать SSL для подключений. Это обеспечит шифрование на транспортном уровне. Я считаю, что более новые версии также поддерживают сертификаты клиентов, если вы хотите иметь дополнительный уровень безопасности.
Мне кажется, что у вас есть несколько баз данных, хранящих одну и ту же информацию, без какой-либо схемы репликации.
Моя рекомендация:
(1) Рассмотрите возможность репликации через безопасный транспорт. Я бы с большей вероятностью выбрал VPN, чем SSH.
(2) За советом зайдите в #postgresql на irc.freenode.net.
(3) Убедитесь, что все удаленные ящики заблокированы. Если вы хотите быть уверенным в этом, используйте OpenBSD вместо Freebsd / Linux. Душевное спокойствие многого стоит!