3

Я пытаюсь выполнить миграцию с сервера Z, который копирует до десятка подписчиков в двух центрах обработки данных, серверам A & B, по одному в каждом центре обработки данных. Чтобы выжить из-за перерывов между центрами обработки данных, мы смотрели на выполнение слияния репликации между A & B.Merge Replication не получает обновления через репликацию транзакций при повторной публикации

Мой первоначальный план состоял в том, чтобы взять Z и использовать транзакционный переход в A, который затем будет реплицироваться на B. Затем, как мы переносим процессы на использование A, мы можем катить один процесс за раз.

Однако, в то время как я могу делать обновления непосредственно A или B и переводить их на другой сервер, обновления A через репликацию транзакций (Z) НЕ делают это B!

Идентичность устанавливается как НЕ ДЛЯ РЕПЛИКАЦИИ, но остальная часть ее в значительной степени стандартная.

+1

Зачем вам осуществлять транзакцию между Z и A, а затем сливаться между A и B? Вы можете установить схему репликации слияния Z-> A-> B, а затем просто избавиться от Z. –

+0

Интересная идея, @PhilippeGrondier. Не считал это, главным образом потому, что я хочу убедиться, что все сначала твердое, и не хочу, чтобы какая-либо работа случайно попала «вверх по течению». Но это интересная идея. – mbourgon

+0

Репликация слиянием действительно «твердое тело», а транзакционная репликация имеет смысл только в ограниченных случаях. –

ответ

2

Хороший вопрос.

Вы должны установить свойство Объединить статьи @published_in_tran_pub к верно для всех Merge статей, участвующих в транзакционной публикации. Вы можете использовать sp_changemergearticle сделать это на сервере A:

EXEC sp_changemergearticle 
     @publication = 'MyPublication', 
     @article = 'MyArticle', 
     @property = 'published_in_tran_pub', 
     @value = 'true'; 

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

+1

Это было! Большое спасибо, @brandonwilliams – mbourgon