Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Инициализация всей подписки без залочивания таблицы и отдельных таблиц поштучно  [new]
Roust_m
Member

Откуда: Сидней
Сообщений: 1121
Добрый день,

Пытаюсь создать публикацию, чтобы ее можно было ре-инициализировать без залочивания таблиц и создания блокировок на публикующей базе. Использую опцию: @sync_method= 'concurrent'. При этом хотелось бы иметь возможность добавить таблицу в публикацию реинициализировать только эту таблицу. Однако это невозможно, ибо при попытке добавить таблицу в публикацию получаю:
автор
Msg 14100, Level 16, State 1, Procedure sp_MSrepl_addsubscription, Line 533
Specify all articles when subscribing to a publication using concurrent snapshot processing.


Использую следующий код:
select @sql = 'USE ' + @publicationDB + ' EXEC sp_addarticle @publication = ''' + @publicationName + ''', 
				@article = ''' + @objectName + ''', @source_object = ''' + @objectName + ''',
				@source_owner = ''' + @objectSchema + ''', @schema_option = 0x80030F3,
				@vertical_partition = N''true'', @type = N''logbased'';'
exec sp_executesql @sql 	

select @sql = 'USE ' + @publicationDB + ' EXEC sp_addsubscription @publication = ''' + @publicationName + ''', @article = ''' + @objectName + ''', @subscriber = ''' + @subscriberServerName + ''', 
@destination_db = ''' + @subscriberDatabaseName + ''', @sync_type = N''automatic'', @subscription_type = N''push'';'
exec sp_executesql @sql 	


Вопрос, как можно максимально совместить возможность инициализации только одной таблицы и минимальное залочивание на публикующей базе?
Может вместо 'concurrent' использовать 'database snapshot'?
27 май 17, 21:59    [20517428]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить