Репликация Database Engine основывается на так называемой метафоре издатель-подписчик. Эта метафора описывает различные роли, которые могут играть серверы в процессе репликации.
Один или более серверов публикуют данные, на которые могут подписываться другие серверы. Между ними существует распространитель, который сохраняет изменения и передает их дальше (подписчикам). Следовательно, узел может иметь три роли в сценарии репликации.
♦ Издатель (или публикующий сервер). Поддерживает свои исходные базы данных, делает данные доступными для репликации и отправляет измененные данные распространителю.
♦ Распространитель (или распределяющий сервер). Получает от издателя все изменения для данных, подлежащих репликации, сохраняет и отправляет их соответствующим подписчикам.
♦ Подписчик (или получающий сервер). Получает и сохраняет опубликованные данные.
Сервер базы данных может играть несколько ролей в процессе репликации. Например, сервер в одно и то же время может работать как издатель и как распространитель. Этот сценарий подходит для случая с небольшими репликациями и с небольшим количеством подписчиков. Если же существует множество подписчиков для информации издателя, то распространитель должен размещаться на собственном сервере. На рис. 19.1 показан сложный сценарий, в котором существует множество издателей и множество подписчиков.