Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этом разделе описывается, как инициализировать подписку вручную в SQL Server 2014 с помощью SQL Server Management Studio или Transact-SQL. Хотя начальный моментальный снимок обычно используется для инициализации подписки, подписку можно инициализировать без использования моментального снимка, при условии, что схема базы данных и начальные данные уже присутствуют у подписчика.
Перед началом работы
Ограничения и условия
- Если во время переноса данных и схемы на подписчика инициализируется подписка вручную, изменения, произошедшие из-за активности в базе данных, опубликованной с помощью репликации транзакций, могут не реплицироваться на подписчика.
Использование среды SQL Server Management Studio
Инициализировать подписку на публикацию вручную путем копирования схемы (и обычно данных) в базу данных подписки. Схема и данные должны соответствовать базе данных публикации. Затем укажите, что подписка не требует схемы и данных на странице Initialize Subscriptions мастера создания новой подписки. Дополнительные сведения о доступе к этому мастеру см. в разделах «Инициализация транзакционной подписки без моментального снимка» и «Создание подписки с вытягиванием».
При первой синхронизации подписки объекты и метаданные, необходимые для репликации, копируются в базу данных подписки.
Инициализация подписки на публикацию вручную
Убедитесь, что схема и данные копируются в базу данных подписки.
Снимите флажок "Инициализация подписок" на странице "Инициализация подписок " мастера создания подписок. Сделайте это для каждой подписки, где необходимо копировать лишь объекты репликации и метаданные.
Использование Transact-SQL
Подписки можно инициализировать вручную с помощью хранимых процедур репликации.
Для ручной инициализации pull-подписки на публикацию транзакций
Убедитесь, что схема и данные существуют в базе данных подписки. Дополнительные сведения см. в разделе "Инициализация транзакционной подписки без моментального снимка".
На сервере издателя в базе данных публикации выполните sp_addsubscription. Укажите @publication, @subscriber, имя базы данных на подписчике, содержащей опубликованные данные для @destination_db, значение "pull" для @subscription_type и значение "только поддержка репликации" для @sync_type. Дополнительные сведения см. в статье Создание подписки по запросу.
На подписчике выполните sp_addpullsubscription. Сведения об обновлении подписок см. в статье "Создание обновляемой подписки на публикацию транзакций".
На подписчике выполните sp_addpullsubscription_agent. Дополнительные сведения см. в статье Создание подписки по запросу.
Запустите агент распространителя для передачи объектов репликации и скачайте последние изменения с издателя. Дополнительные сведения см. в разделе "Синхронизация подписки по запросу".
Чтобы вручную инициализировать push-подписку на транзакционную публикацию
Убедитесь, что схема и данные существуют в базе данных подписки. Дополнительные сведения см. в разделе "Инициализация транзакционной подписки без моментального снимка".
На сервере издателя в базе данных публикации выполните sp_addsubscription. Укажите имя базы данных на подписчике, которая содержит опубликованные данные для @destination_db, значение push для @subscription_type и значение только для поддержки репликации для @sync_type. Сведения об обновлении подписок см. в статье "Создание обновляемой подписки на публикацию транзакций".
На сервере издателя в базе данных публикации выполните sp_addpushsubscription_agent. Дополнительные сведения см. в статье Создание принудительной подписки.
Запустите агент распространителя для передачи объектов репликации и скачайте последние изменения с издателя. Дополнительные сведения см. в разделе "Синхронизация принудительной подписки".
Для ручной инициализации подписки с вытягиванием на публикацию с объединением
Убедитесь, что схема и данные существуют в базе данных подписки. Это можно сделать, восстанавливая резервную копию базы данных публикации на подписчике.
Для издателя выполните sp_addmergesubscription. Укажите @publication, @subscriber, @subscriber_db и значение pull для @subscription_type. При этом регистрируется подписка на получение.
На базе данных подписчика, содержащей опубликованные данные, выполните sp_addmergepullsubscription. Укажите значение none для @sync_type.
Выполните процедуру sp_addmergepullsubscription_agentна подписчике. Дополнительные сведения см. в статье Создание подписки по запросу.
Запустите агент слияния для передачи объектов репликации и скачайте последние изменения с издателя. Дополнительные сведения см. в разделе "Синхронизация подписки по запросу".
Вручную инициализировать push-подписку на публикацию слияния
Убедитесь, что схема и данные существуют в базе данных подписки. Это можно сделать, восстановив резервную копию базы данных публикации на подписчике.
На издателе в базе данных публикации выполните sp_addmergesubscription. Укажите имя базы данных на подписчике, содержащую опубликованные данные для @subscriber_db, значение push для @subscription_type и значение none для @sync_type.
На издателе в базе данных публикации выполните sp_addmergepushsubscription_agent. Дополнительные сведения см. в статье Создание принудительной подписки.
Запустите агент слияния для передачи объектов репликации и скачайте последние изменения с издателя. Дополнительные сведения см. в разделе "Синхронизация принудительной подписки".
См. также
Инициализация транзакционной подписки без моментального снимка
Резервное копирование и восстановление реплицированных баз данных
Рекомендации по обеспечению безопасности репликации