Имеет ли значение, если время не синхронизируется на клиентах репликации слиянием?
Я довольно новичок в репликации слиянием, но сценарий. Если у меня есть сервер и два клиента с подписками по запросу, имеет ли значение, если время на этих машинах не синхронизируется друг с другом или с сервером?
Когда я изменяю некоторые данные на одном из этих клиентов, сохраняется ли время против этого изменения?
Я использую MS SQL 2012.
Я буду использовать настройку, как описано здесь,
http://msdn.microsoft.com/en-us/library/ms151329(v=sql.105).aspx
2 ответа
Хорошо, я обнаружил, что репликация слиянием не сохраняет время от определенного изменения.
Если у вас есть клиентские подписки, то в случае конфликта победит первый пользователь.
Если у вас есть подписки на сервер, то приоритет этих подписок на сервер будет определять, кто победит.
Ни один из этих вариантов не зависит от времени.
В настоящее время у меня есть стороннее приложение, которое использует репликацию слиянием. Это включает сервер баз данных SQL 2008 R2 в качестве издателя с ~100 настольными клиентами, взаимодействующими с базой данных через приложение, и еще 65 ноутбуков с SQL Server Express 2008 R2 в качестве подписчиков издателя. Ноутбуки синхронизируются по беспроводной связи, когда они добираются до своих базовых местоположений, с любыми дельтами, передаваемыми подписчикам.
Теперь перейдем к вашему вопросу. Время на клиентах до миллисекунды, скорее всего, не будет иметь никакого значения. Что будет иметь значение, так это то, что издатель и подписчик не синхронизированы в течение определенного периода времени. Используя SQL Server Mgmt Studio, посмотрите на сервер, публикующий базу данных. Разверните раздел "Репликация" в разделе "Объекты и управление сервером", затем щелкните правой кнопкой мыши по издателю в разделе "Локальные публикации" и выберите "Свойства".
Под страницей Общие посмотрите область истечения срока подписки. По умолчанию от Microsoft составляет 14 дней и может быть перемещен вверх / вниз по мере необходимости, или вы можете указать, что он вообще не имеет срока действия. Обратите внимание на фразу "Метаданные репликации никогда не хранятся дольше, чем это время".
Другими словами, если один из ваших подписчиков отключен от бронирования более чем на 14 дней, это не имеет значения, вам придется отказаться от подписки, а затем повторно подписать этот блок. Это из-за разрыва между самыми старыми метаданными на издателе и самой новой записью / метаданными на подписчике. Нет перекрытия, нет синхронизации.