5

Кто-нибудь знает о шаблоне проектирования, который учитывает сложность синхронизации двух идентичных реляционных баз данных? Я постоянно сталкиваюсь с этой проблемой в различных проектах и ​​не могу найти подходящую модель, которая имеет дело с ней в глубину. Конкретные проблемы, с которыми я столкнулся являются:Шаблон проектирования для полной синхронизации двух идентичных реляционных баз данных

  • Сортировка таблиц и записей, которые зависят друг от друга, особенно там, где есть две таблицы, каждая из которых имеет внешний ключ ссылки на друг друга
  • Обеспечение, что обе модели согласованы
  • Параллельность, когда пользователи одной модели записывают модель, которая занята, обновляется сеансом синхронизации
  • Сведение к минимуму накладных расходов, когда знания об изменениях являются поддельными, и, хотя обновление выполнено, данные изменен
  • Управление версиями строк, начиная с предыдущей точки, управление версиями строк с использованием столбца rowversion или timestamp обновляет версию строки во время обновления, даже если данные не были изменены.
  • Откат от исключения во время синхронизации сессии

Если кто-нибудь знает о модели, или даже стопкой, что Снасти эти проблемы, я хотел бы услышать ваши мысли. Я попытался использовать MS Sync Framework, и, хотя он затрагивает многие проблемы, связанные с синхронизацией данных, это не полное решение с точки зрения проблем, перечисленных выше.

+1

Многие СУБД поставляются с функцией репликации, рассматривали ли вы их? – gerrytan

ответ

3

Пожалуйста, проверьте

Master-Master Row-Level Synchronization

Context

Вы собираетесь создать репликацию между источником и мишенью, как описано в Master Master-репликации.Ваши требования:

Набор репликации можно обновлять с обоих концов репликации.

Обновления должны быть переданы другой стороне.

Конфликты должны быть обнаружены и разрешены в определенные моменты времени, следуя определенным правилам целостности данных.

Потенциальные конфликты в изменениях должны быть разрешены на уровне строк.

Решение

Создание пары связанных ссылок репликации между источником и целью, как описано в схеме Мастер-репликации. Кроме того, создайте контроллер синхронизации для управления синхронизацией и соединения ссылок. Это решение описывает функцию одной из этих ссылок репликации. Другое звено репликации ведет себя одинаково, но в противоположном направлении. Чтобы синхронизировать более двух копий набора репликации, создайте соответствующую пару ссылок репликации для каждой дополнительной копии.

Hint: When designing the replication link, it is important to know what types of conflicts can occur and how to handle them so that the integrity of replicated data remains intact. The design of conflict detection and conflict resolution is described in the Master-Master Replication pattern. 

enter image description here

Другие модели movemevent данные о:

Data Movement Patterns

0

Прежде всего отметьте this.

Очень интересный блог о шаблонах дизайна также this.

Насколько о ваших конкретных проблемах, учитывая, что вы можете работать на MS SQL, работают Sync Framework может гарантировать, по крайней мере, следующее:

  • Обеспечение того, обе модели соответствуют

  • параллелизм где пользователи одной модели записывают в модель, которая занята, обновляется с помощью синхронизации

  • сеанс Откат из исключения во время сеанса синхронизации

Если вы заинтересованы в MS Sync Framework имеют вид here

0

Проверить liquibase. Это инструмент, который поможет вам работать с базой данных более удобным образом. И он поддерживает SQL Server без проблем.

Смежные вопросы