Добавление статьи при транцакционной репликации в SQL Server 2005
Karnol
Дата: 20.01.2009 16:30:06
Доброго времени суток!
Имеется односторонняя транзакционная репликация, типа push. Оба сервера - SQL Server 2005.
На основной базе периодически происходят изменения (добавляются таблицы, хранимые процедуры). Репликация настроена так, что приходится добавлять новые статьи в публикацию, делать новый snapshot и реинициализировать подписчика, что влечет большой траффик и временную остановку работы базы-подписчика. Вопрос - существует ли возможность "частичной" реинициализации подписчика, чтобы добавлялись/удалялись только появившиеся/исчезнувшие статьи?
Заранее благодарен.
PS: Есть, конечно, следущая возможность - при создании подписчика, например, с помощью процедуры sp_addsubscription выставить опцию @sync_type = N'replication support only', т.е. реплицировать лишь данные, но не изменения структуры бд. Хотелось бы знать есть ли еще какие-нибудь варианты.
Evgen
Дата: 20.01.2009 16:36:12
Karnol,
при добавлении новой статьи не требуется инициализировать подписчика. Необходимо просто запустить создание снапшота, в который попадет лишь новая статья.
Karnol
Дата: 20.01.2009 17:10:27
Evgen,
новая статья попадет, конечно, в SnapShot, но не появится на подписчике (и даже если создать ее вручную на подписчике, то данные не будут реплицироваться) пока не сделать его реинициализацию. Чего собственно и хотелось бы избежать.
Evgen
Дата: 20.01.2009 18:05:08
Karnol,
Как раз появляется, если подписка была создана с использованием опции "@sync_type='automatic'". После добавления статьи в публикации необходимо выполнить sp_refreshsubscriptions для этой публикации.
Karnol
Дата: 28.01.2009 00:04:56
Evgen,
Спасибо большое! действительно работает.
Еще маленькая проблемка, чтобы полный фарш был. Для создание snapshot'a я пользуюсь функцией sp_startpublication_snapshot. Нет ли какой-нибудь ф-ци (сам не нашел), которая бы лишь добавляла/удаляла одну или несколько статей из снепшота, а то выполнение sp_startpublication_snapshot под 10 минут занимает, соотв. грузит сервер. Заранее спасибо.
Evgen
Дата: 28.01.2009 07:49:45
Karnol,
не знаю о такой возможности