Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
walkman Member Откуда: Сообщений: 10 |
Добрый день, помогите новичку разобраться с ошибкой. При выполнении репликации выводится ошибка: Error messages: Процессу слияния не удалось доставить моментальный снимок подписчику. Если используется веб-синхронизация, то процессу слияния, возможно, не удалось создать файл сообщения или выполнить запись в него. При устранении неполадок запустите синхронизацию повторно, включив ведение подробного журнала и указав выходной файл для записи. (Source: MSSQL_REPL, Error number: MSSQL_REPL-2147201001) Get help: http://help/MSSQL_REPL-2147201001 Процессу не удалось выполнить массовое копирование в таблицу ""dbo"."ARM_Smena"". (Source: MSSQL_REPL, Error number: MSSQL_REPL20037) Get help: http://help/MSSQL_REPL20037 Пакетная отправка не выполнена (Source: MSSQLServer, Error number: 0) Get help: http://help/0 Нарушение "PK__ARM_Smen__F3760DFB443605EA" ограничения PRIMARY KEY. Не удается вставить повторяющийся ключ в объект "dbo.ARM_Smena". Повторяющееся значение ключа: (17713). (Source: MSSQLServer, Error number: 2627) Get help: http://help/2627 Для получения файла с описанием ошибок, обнаруженных при инициализации подписывающей таблицы, выполните указанную ниже команду bcp. Дополнительные сведения о программе bcp и поддерживаемых ей параметрах см. в электронной документации. (Source: MSSQLServer, Error number: 20253) Get help: http://help/20253 bcp "AGZS"."dbo"."ARM_Smena" in "\\ECOV\Share\replica\ftp\ECOV_AGZS_FLT2_13\20171119202302\ARM_Smena_2.bcp" -e "errorfile" -t"\n<x$3>\n" -r"\n<,@g>\n" -m10000 -SAGZS13 -T -w (Source: MSSQLServer, Error number: 20253) Get help: http://help/20253 Я так понимаю, что есть повторяющиеся значения в таблице dbo.ARM_Smena с ключом 17713 (Vcode=17713). А где посмотреть этот повторяющиеся значение, как устранить ошибку? Не удалять же значение 17713 из таблицы, тем более эти ошибки много. |
27 ноя 17, 14:59 [20986096] Ответить | Цитировать Сообщить модератору |
Владислав Колосов Member Откуда: Сообщений: 8485 |
walkman, если правильно помню, необходимо задать диапазоны Identity для публикатора и подписчика. Думаю, это ваш случай. |
27 ноя 17, 15:28 [20986262] Ответить | Цитировать Сообщить модератору |
walkman Member Откуда: Сообщений: 10 |
Владислав Колосов, можно поподробнее? |
27 ноя 17, 15:58 [20986431] Ответить | Цитировать Сообщить модератору |
walkman Member Откуда: Сообщений: 10 |
можно поподробнее? |
||
27 ноя 17, 16:02 [20986447] Ответить | Цитировать Сообщить модератору |
walkman Member Откуда: Сообщений: 10 |
К сообщению приложен файл. Размер - 78Kb |
27 ноя 17, 16:07 [20986460] Ответить | Цитировать Сообщить модератору |
Владислав Колосов Member Откуда: Сообщений: 8485 |
walkman, если это не Identity, то ищите - как рассчитывается значение. У вас подписчик создает те же номера, что и публикатор. |
27 ноя 17, 18:35 [20986850] Ответить | Цитировать Сообщить модератору |
walkman Member Откуда: Сообщений: 10 |
У меня 14 подписчиков, каждый день выгружают данные в центральную базу. Если есть одинаковые значения в ЦБ, то по идее данные должны пропускаться. Это хозяйство мне осталось от разработчиков, все недоработано, вот разгребаю. |
||
28 ноя 17, 07:14 [20987338] Ответить | Цитировать Сообщить модератору |
invm Member Откуда: Москва Сообщений: 9683 |
walkman, У вас ошибка при инициализации подписки. Причина - для данной статьи в настройках выбрано "Keep existing object unchanged" для опции "Action if name is in use". |
28 ноя 17, 11:55 [20987887] Ответить | Цитировать Сообщить модератору |
walkman Member Откуда: Сообщений: 10 |
Допустим, есть подписчик (удаленная база (base1), отправляет данные публикатору (центр база (mainbase). У mainbase уже есть таблица с значениями base1, поэтому выходят эти ошибки. А как правильно настроить обмен? Я понимаю так: если mainbase видит одинаковые значения/поля, то должен игнорить (пропускать) эти их и копировать данные, которых нет в mainbase. У меня все схемы так настроены "Keep existing object unchanged" для опции "Action if name is in use". Как правильно поступить? |
||
28 ноя 17, 15:10 [20988617] Ответить | Цитировать Сообщить модератору |
walkman Member Откуда: Сообщений: 10 |
В свойствах всех таблиц установлено значение "Удалить существующий объект и создать новый". А в свойствах данной таблицы - "Не изменять существующий объект". При изменении данной таблицы на "удалить существующий...", то выходит ошибка: Не удалось изменить значение свойства "pre_creation_command" на "Drop". (Microsoft.SqlServer.Rmo). Property 'pre_creation_command' of article 'Comission_For_Akts' cannot be changed. Changed database context to 'AGZS'. (.Net SqlClient Data Provider) Номер ошибки: 21416 Серьезность: 16 Состояние: 1 Процедура: sp_changemergearticle Номер строки: 385 |
||
28 ноя 17, 15:48 [20988734] Ответить | Цитировать Сообщить модератору |
invm Member Откуда: Москва Сообщений: 9683 |
walkman, Значит придется удалить таблицу из публикации и добавить ее заново. |
28 ноя 17, 16:14 [20988825] Ответить | Цитировать Сообщить модератору |
walkman Member Откуда: Сообщений: 10 |
Спасибо за комментарий. Если я удаляю все строки в таблице, затем запускаю задание на обмен, то все работает, только данные не копируются, копируются только новые значения. Как все грамотно скопировать с подписчика в центральную базу и чтобы работала репликация? |
||
1 дек 17, 09:11 [20997302] Ответить | Цитировать Сообщить модератору |
Все форумы / Microsoft SQL Server | ![]() |