Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 SQL Server 2005. Merge репликации. Ошибка добавления записи: Msg 20092, Level 16, State 1  [new]
Metz Ilya
Member

Откуда:
Сообщений: 3
Установлен SQL Server 2005 SP2, созданы Merge репликации, при добавление записи в таблицу участвующую в репликации получаю следующее сообщение об ошибке:
Msg 20092, Level 16, State 1, Procedure MSmerge_disabledml_29FE1EB87C774F9DBF3B0EE40A30073C, Line 8
Table '[dbo].[events]' into which you are trying to insert, update, or delete data is currently being 
upgraded or initialized for merge replication. On the publisher data modifications are disallowed until the 
upgrade completes and snapshot has successfully run. On subscriber data modifications are disallowed 
until the upgrade completes or the initial snapshot has been successfully applied and it 
has synchronized with the publisher.
Msg 3609, Level 16, State 1, Procedure AmfOperUANC, Line 97
The transaction ended in the trigger. The batch has been aborted.

Репликационный джоб прогонял неоднократно, отрабатывает успешно.
В интернете ничего по этому поводу не нашел.

Полная версия среды Microsoft SQL Server 2005 - 9.00.3042.00 (Intel IA-64) Feb 10 2007 01:00:35 Copyright (c) 1988-2005 Microsoft Corporation Enterprise Edition (64-bit) on Windows NT 5.2 (Build 3790: Service Pack 1)
18 июн 07, 15:51    [4281002]     Ответить | Цитировать Сообщить модератору
 Re: SQL Server 2005. Merge репликации. Ошибка добавления записи: Msg 20092, Level 16, State 1  [new]
GreenSunrise
Member

Откуда:
Сообщений: 12310
Ну так все же написано. Вы не понимаете по-английски?
19 июн 07, 11:32    [4284410]     Ответить | Цитировать Сообщить модератору
 Re: SQL Server 2005. Merge репликации. Ошибка добавления записи: Msg 20092, Level 16, State 1  [new]
Metz Ilya
Member

Откуда:
Сообщений: 3
Уточняю:
1) Сообщение выдается на подписчике
2) Снапшот на подписчике успешно применен
3) база синхронна
19 июн 07, 12:48    [4285148]     Ответить | Цитировать Сообщить модератору
 Re: SQL Server 2005. Merge репликации. Ошибка добавления записи: Msg 20092, Level 16, State 1  [new]
Metz Ilya
Member

Откуда:
Сообщений: 3
Судя по всему это баг SQL Server 2005 ( http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=382639&SiteID=1 )

Проблему решили отлкючив все подобные тригеры:
sp_MSForEachDB 'use ?
declare jn cursor for
select name, OBJECT_NAME(parent_id) from sys.triggers where name like ''MSmerge_disabledml%''
open jn

declare @jna sysname
declare @jpa sysname
declare @sql sysname
fetch next from jn into @jna, @jpa
while @@FETCH_STATUS = 0
BEGIN
  set @sql = ''disable trigger ''+ @jna +'' on ''+ @jpa + '';''
  exec (@sql)
  fetch next from jn into @jna, @jpa
END
close jn
deallocate jn'
20 июн 07, 20:24    [4296317]     Ответить | Цитировать Сообщить модератору
 Re: SQL Server 2005. Merge репликации. Ошибка добавления записи: Msg 20092, Level 16, State 1  [new]
GreenSunrise
Member

Откуда:
Сообщений: 12310
А у вас действительно применение снапшота было успешно завершено на подписчике? Потому что триггеры отключить ума много не надо, вопрос в том, валидно ли это. Может, вы просто не дождались окончания процесса?
21 июн 07, 10:58    [4297845]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: SQL Server 2005. Merge репликации. Ошибка добавления записи: Msg 20092, Level 16, State 1  [new]
andreykond
Member

Откуда:
Сообщений: 65
Аналогичная ситуация на SQL2008 скорее всего это не баг, а схема работы репликации.
У меня подобная проблема возникла после того, как я попытался поменять тип статьи.
Первоначально у таблицы установлена двунаправленная репликация. Затем поменял тип на "изменения не передаются на издателя" и сделал статический фильтр.
По классической схеме данная перенастройка должна делаться только с инициализацией подписчика (Изменение значения subscriber_upload_options на или с 2), но сделав небольшую хитрость удалив статью и добавив ее заново с нужным типом можно не делать инициализацию. К сожалению, данная хитрость приводит к появлению триггеров MSmerge_disabledml и на подписчике невозможно поменять данные, лечение только удалением триггеров.
5 июн 12, 14:25    [12668364]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить