Если распространитель и подписчик репликации SQL Server находятся на одном сервере, следует ли использовать подписку PUSH или PULL?

Заранее благодарю за любую помощь.

Я настраиваю новую репликацию Microsoft SQL Server, и у меня есть распространитель и подписчик, работающие на одном сервере. Издатель находится на удаленном сервере (так как это производственная база данных, и MS рекомендует, чтобы при больших объемах распространитель был удаленным).

Я не знаю много о внутренней работе подписок PUSH против PULL, но моя интуиция говорит мне, что подписка PUSH будет менее ресурсоемкой, потому что (1) Распространитель уже удален, так что это не должно отрицательно влиять на Издателя и (2) передача транзакций от Дистрибьютора к Подписчику более эффективна, чем Подписчик, опрашивающий базу данных Распространения.

Есть ли у кого-нибудь ресурсы или понимание PUSH vs PULL, которые бы рекомендовали один над другим? Будет ли разница в производительности, надежности и безопасности?

1 ответ

Я лично настроил это как толчок, потому что управлять им немного легче.

Для целей этого обсуждения разница между push и pull заключается в том, где запускается агент распространения. Для толчка он запускается у дистрибьютора. Для тяги, он запускается на подписчика.

Однако, поскольку они здесь одинаковы, это не имеет значения. Однако, чтобы настроить подписку по запросу, вам нужно добавить еще один вызов хранимой процедуры в микс при настройке репликации (т.е. sp_addpullsubscription).

Другие вопросы по тегам