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

Откуда:
Сообщений: 45
В одном филиале перенесли базу на новый сервер, аккуратно удалив перед этим merge-репликацию. Заново созданная репликация нормально работает с insert и update. Редко, но возникает необходимость удалить запись, тут то и возникают проблемы - resolved conflicts.
Делаю select reason_text from MSmerge_delete_conflicts, выдает:
'The row was deleted at 'Publisher.PubliserDB' but could not be deleted at 'Subscriber.SubscriberDB'. The column prefix 'Table_Name' does not match with a table name or alias name used in the query.' При чем ругается не на ту таблицу, в которой удаляли, а на подчиненную, в которой и записи то соответствующей нет.
Естественно при следующем сеансе удаленная запись возвращается на издателя. Добавлю, что все изменения в реплицируемых таблицах происходят только на издателе. На старом сервере не было сервис-паков, на новом тот же SQL Server 2000 + SP3.
16 мар 05, 09:33    [1388913]     Ответить | Цитировать Сообщить модератору
 Re: Конфликт в megre при удалении записи  [new]
GreenSunrise
Member

Откуда:
Сообщений: 12310
Сейчас на издателе и на подписчике совпадают версии сиквела вплоть до сервис-паков? Это важно.

Далее. Включите профайлер, приконнектитесь к тому из серверов, на котором происходит конфликт (я так понимаю, на подписчике), выберите шаблон SQLProfilerTSQL_SPs, добавьте к стандартным колонкам (закладка Data Columns) поле ApplicationName, и запустите трейс. Потом удалите запись, дождитесь появления конфликта, его резолва, потом выключите профайлер. Сохраните трассу в файл, запакуйте и выложите на форум. Будем посмотреть.
16 мар 05, 10:37    [1389303]     Ответить | Цитировать Сообщить модератору
 Re: Конфликт в megre при удалении записи  [new]
selen
Member

Откуда:
Сообщений: 45
На подписчике сиквел ставил другой человек. Как можно проверить стоит ли на нем SP. А вот мой trace.

К сообщению приложен файл (repl1.rar - 21Kb) cкачать
16 мар 05, 11:26    [1389598]     Ответить | Цитировать Сообщить модератору
 Re: Конфликт в megre при удалении записи  [new]
tpg
Member

Откуда: Novosibirsk
Сообщений: 23902
select @@version спросить.
16 мар 05, 11:28    [1389609]     Ответить | Цитировать Сообщить модератору
 Re: Конфликт в megre при удалении записи  [new]
GreenSunrise
Member

Откуда:
Сообщений: 12310
Гм. По этому трейсу пока непонятно. Сделайте аналогичный, только для другого сервера. Видимо, у вас централизованное разрешение конфликтов и смотреть надо по паблишеру...

Да, и версии у обоих серверов гляньте, tpg написал как.
16 мар 05, 11:54    [1389796]     Ответить | Цитировать Сообщить модератору
 Re: Конфликт в megre при удалении записи  [new]
selen
Member

Откуда:
Сообщений: 45
Подписчик
Microsoft SQL Server 2000 - 8.00.760 (Intel X86) Dec 17 2002 14:22:05 Copyright (c) 1988-2003 Microsoft Corporation Enterprise Edition on Windows NT 5.0 (Build 2195: Service Pack 2)

Издатель
Microsoft SQL Server 2000 - 8.00.760 (Intel X86) Dec 17 2002 14:22:05 Copyright (c) 1988-2003 Microsoft Corporation Enterprise Edition on Windows NT 5.0 (Build 2195: Service Pack 4)

Trace чуть позже
16 мар 05, 12:18    [1389968]     Ответить | Цитировать Сообщить модератору
 Re: Конфликт в megre при удалении записи  [new]
selen
Member

Откуда:
Сообщений: 45
Новый trace

К сообщению приложен файл (repl2.rar - 47Kb) cкачать
16 мар 05, 12:40    [1390132]     Ответить | Цитировать Сообщить модератору
 Re: Конфликт в megre при удалении записи  [new]
GreenSunrise
Member

Откуда:
Сообщений: 12310
Горизонтальная фильтрация есть?

Изменения структуры таблиц, участвующих в репликации, были? Добавления/удаления полей? Вообще что-то подозрительное в последнее время делали?

Заскриптуйте таблицы zajavka, otchet и процедуры del_E3477712D2204AB59488431DE25C26D2 и sp_sel_88B7E6CE04214F0418578853BB284ECB.

Существует ли триггер del_E3477712D2204AB59488431DE25C26D2 на таблицу zajavka? Если да, приведите его скрипт.

Все скрипты давайте для обоих серверов. С примечением, кто с паблишера, кто с подписчика.
16 мар 05, 13:20    [1390357]     Ответить | Цитировать Сообщить модератору
 Re: Конфликт в megre при удалении записи  [new]
GreenSunrise
Member

Откуда:
Сообщений: 12310
Еще приведите результаты выполнения следующих запросов (на обоих серверах):
select distinct(object_name(id)) from syscomments where (text like '%zajavka%')

select distinct(object_name(id)) from syscomments where (text like '%otchet%')
16 мар 05, 13:23    [1390370]     Ответить | Цитировать Сообщить модератору
 Re: Конфликт в megre при удалении записи  [new]
selen
Member

Откуда:
Сообщений: 45
Прошу прощения за задержку. Начальство велело срочно устанавливать этот новый сервер в том виде, какой есть, т.е. с конфликтной репликацией. Теперь отвечаю из дома, поэтому скрипты прислать не могу, только дополню информацию.
Изменение в базе после переноса на новый сервер было только одно - удалали составной уникальный индекс по 3-м полям (не ПК), т.к. с ним в репликации возникала ошибка, о которой сообщается в форуме, как о глюке SP3. Проверка уникальности бала возложена на пользовательское приложение.
Реплицируются 4 таблицы: zajavka, подчиненная ей otchet, otc_rb и otc_brig, подчиненные otchet. Конфликт возникает при удалении из zajavka и otchet, т.е. имеющих подчиненые. С otc_rb и otc_brig все проходит успешно.
Успела проверить процедуры и триггеры. Триггер del_E3477712D2204AB59488431DE25C26D2 и процедура sp_sel_88B7E6CE04214F0418578853BB284ECB существуют.
Завтра буду заниматься остальным.
16 мар 05, 19:51    [1392320]     Ответить | Цитировать Сообщить модератору
 Re: Конфликт в megre при удалении записи  [new]
selen
Member

Откуда:
Сообщений: 45
Извините, аврал. Времени копаться в причинах проблемы пока нет. Заменила merge на транзакции, т.к. данные все равно только в одну сторону качались, без обновления со стороны подписчика. Пока все идет нормально. Откопаю что-нибудь - сообщу, а пока всем спасибо.
18 мар 05, 21:10    [1399215]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить