Допустим, у меня есть две базы данных примерно так:
База данных A
создать таблицу Table1 (field1 int, field2 int,field3 int)
База данныхB
создать таблицу Table1 (field1 int, field2 int)
Наше старое приложение использует B и должно продолжать это делать.Мы разрабатываем новое приложение, которое будет использовать A .Как лучше всего убедиться, что все изменения в A: Таблица1 реплицированы в B: Таблица1 ?
Вот несколько вещей, которые следует учитывать:
- Старое приложение будет работать только
selects
в B: Table1 , нет необходимости всинхронизация идет в обе стороны. - Старое приложение должно продолжать использовать B .
- Большинство полей в A: Таблица1 - это то же самое, что и B: Table1 , но в некоторых случаях потребуется преобразование данных определенного типа.
- Производительность не является большой проблемой, потому что не будетмного изменений.
- Сначала будет синхронизировано только 1-2 таблицы, но по мере переноса большего количества модулей в новую версию будет добавляться больше таблиц.
- Обе базы данных от разных поставщиков.
Вот варианты, которые я рассмотрел:
- В новом приложении обновите две базы данных:
Мне не нравится эта опция, потому что она добавляет много сложности в новый слой данных приложения, и нетОперации между двумя базами данных - Использование триггеров в A для запуска
application
, который будет повторять изменения в B
Notуверен, что это хорошая практика и насколько она надежна - Использование триггеров в A для запуска
stored procedure
для репликации изменений
Некоторые изпреобразование данных может быть слишком сложным для выполнения в хранимой процедуре - Запуск приложения или хранимой процедуры с заданным интервалом для внесения изменений
Не в реальном времени, поэтому я бы предпочелне используйте это
Какие у вас проблемы с этим?
Я пропустил другой вариант?
Вы когда-нибудь делали что-то подобное?
Есть липрограммное обеспечение (бесплатное или нет), которое может сделать эту работу?
Как всегда, спасибо всем за ваше время и ваш вклад.