Масштабная стратегия репликации слиянием - что может пойти не так? - PullRequest
1 голос
/ 06 января 2010

Я занимаюсь разработкой программного обеспечения, которое использует Merge Replication и SQL Compact для Windows Mobile 6. В настоящее время оно работает на 5 устройствах достаточно хорошо.

Проблемы, с которыми я столкнулся, таковы:

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

  • Подписки, срок действия которых истекает (через 14 дней) и не удается выполнить повторную инициализацию при загрузке - AKA, потенциальная потеря данных несинхронизированных данных до этого момента.

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

Долгосрочный план состоит в том, чтобы разнести это на 500+ устройств. Будем весьма благодарны за любые советы о людях, которые предприняли подобные проекты, и о том, как минимизировать потерю данных и сделать так, чтобы был соответствующий код обработки ошибок для восстановления после сбоев синхронизации.

Ответы [ 3 ]

0 голосов
/ 01 февраля 2010

Мы уже 7 лет используем приложение под названием Utility Center, которое использует репликацию слиянием SQL-сервера. В настоящее время у нас есть приложение на 120 машин. У нас постоянно возникают проблемы с тем, что данные не доходят до подписчиков, но это не делает программное обеспечение непригодным для использования. Кроме того, программное обеспечение установлено на ноутбуках и т. Д., Чтобы люди отключались от дома и т. Д. Кроме того, некоторые люди синхронизируются по беспроводной сети, что имеет свой собственный набор проблем.

0 голосов
/ 29 октября 2011

Предлагаем вам взглянуть на книгу Роба Тиффани, в ней много советов по масштабированию для многих пользователей. Чтобы сохранить данные после истечения срока подписки, вы можете реализовать веб-службу для загрузки файла sdf, а затем применить любые вставки / обновления / удаления из базы данных устройства, указав для этого небольшую правку.

0 голосов
/ 06 января 2010

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

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

http://msdn.microsoft.com/en-us/sync/bb887608.aspx

...