dpl007
Дата: 13.02.2013 17:15:20
Всем привет!
Нужна помощь экспертов для решения проблемы в merge репликации между SQL Server 2000 и 2008 R2.
Существует 2 сервера: SQL Server 2000 Enterprise Edition, ver. 8.00.2055 (SP4) и Microsoft SQL Server Standard Edition 2008 R2 (64-bit) , ver. 10.50.2500.0 А также около 40 мобильных пользователей с MSDE 2000.
Сценарий сегодня: На SQL Server 2000 устновлена merge репликация. Реплицируется без проблем со всеми мобильными пользователями (MSDE 2000).
Нужный сценарий: Репликация на 2000 остаётся работать, добавляется merge репликация на 2008 для новых мобильных пользователей (Microsoft SQL Server Express Edition, ver. 10.50.4000.0). В добавок к этому необходима merge репликация между серверами 2000 и 2008.
Проделанные шаги: База данных скопированна один в один с 2000 на 2008. Merge репликация на 2008 для мобильных пользователей (Microsoft SQL Server Express Edition 2008 R2) установленна и работает.
Merge репликация между серверами 2000 и 2008 установленна и работает только частично. Изменения на подписчике, т.е. 2000, на работают.
Ошибка гласит:
The merge process is retrying a failed operation made to article 'Account' - Reason: 'String or binary data would be truncated.'.
Если я открываю Conflict Viewer и нажимаю на кнопку "Submit Loser", в зависимости от таблицы я получаю различные ошибки.
Например для таблицы 'Account' ощибка гласит:
"Cannot update identity column 'Account No'. (Microsoft SQL Server, Error: 8102)"
Для многих других таблиц ощибка гласит:
"Updating columns with the rowguidcol property is not allowed. The transaction ended in the trigger. The batch has been aborted. (Microsoft SQL Server, Error: 20062)"
Тут надо отметить, что при настройке публикации я использовал для таблиц свойство "Action if name in use" со значением "Keep existing object unchanged". Все остальные значения разбивают публикацию на 2000 со старыми подписчиками (MSDE 2000). Картинку всех свойств я приложил к теме.
Какие шаги необходимо предпринять,что бы эта схема репликации заработала.
Заранее благодарен за любуя помощь или совет.
Дмитрий