Все, что вы предлагаете, является рецептом боли и неудачных миграций. Люди будут разглагольствовать и кричать о том, как ужасный, медленный и ненадежный PostgreSQL, если вы попытаетесь использовать этот подход. Это был бы большой политический шаг того, кто хотел бы сохранить SQL Server, но не был хорошим способом перехода на PostgreSQL.
Существует новая оболочка для чтения/записи для новых версий Pg, но первоначально она будет поддерживать только другие серверы PostgreSQL. Поддержка MS SQL будет намного сложнее из-за необходимости переводить sqlstates и сообщения об ошибках, условия поиска и т. Д., Поэтому любая оболочка, без сомнения, будет весьма ограничена и имеет менее высокую производительность. Как вы говорите, поддержка FDW слишком незрелая на этом этапе.
Есть только так много вещей, которые вы потеряете, пытаясь сделать гибрид так:
Нет ключ органов внешней целостности
типов данных на каждой стороне не могу вести себя 100%, то же самое поэтому данные могут быть в порядке с одной стороны, а не с другой. Думайте временные метки/даты.
Эффективные объединения потребуют чрезвычайно сложной внешней оболочки данных - так что обычно случается, что вся таблица будет получена, а затем объединена с локально. Производительность будет ужасной.
Письменные запросы становятся кошмаром, когда вы делаете что-либо, кроме самой тривиальной задачи. Названия функций различаются и т. Д.
Вы теряете или ослабляете многие свойства ACID и/или должны использовать двухфазную фиксацию, которая отсасывает производительность.
Серьезно, не делайте этого.
Синхронизация БД, вероятно, еще хуже - если только это не так, это будет рецепт потерянных обновлений, удаленных строк, вновь появляющихся и еще хуже. Двухсторонняя синхронизация чрезвычайно трудно.
Начните готовить свои приложения для перехода, позволяя им работать на обоих серверах, но только по одному. После того, как приложение готово к запуску на Pg, начните выполнять тестирование нагрузки и тестирование надежности с помощью перенесенной копии данных в реальном времени. затем подумайте о миграции, но у вас есть планы относительно того, как изменить ход, если вы найдете проблемы в последнюю минуту, которые заставляют вас задерживать.
Если вы добавляете совершенно новые части в приложение, может быть разумно иметь их в Pg, если они вообще не взаимодействуют с другими данными в БД. Однако это маловероятно, и ваши системные администраторы все равно будут ненавидеть вас, когда вы скажете им, что теперь вам нужен атомный снимок в двух отдельных базах данных ...
Я не думаю, что есть какой-либо способ сделать «плавный» переход. Вам нужно будет перенести одно приложение за другим, включая время простоя, в течение которого вы копируете данные из SQL Server в Postgres (конечно, после тестирования новой версии приложения против Postgres). –
_ Приложение, подключающееся к двум серверам БД, не является опцией_ В чем проблема? –