Назад | Перейти на главную страницу

Ошибка репликации SQL Server

«Диапазон идентификаторов, управляемый репликацией, заполнен и должен быть обновлен агентом репликации».

Это начало происходить. Недавно мы специально прервали репликацию и не планируем восстанавливать репликацию.

Что еще мне нужно сделать, чтобы исправить эту ошибку? Кто-нибудь может мне посоветовать?

Репликация MS SQL Server использует ограничения базы данных на столбцы первичного ключа, чтобы предотвратить конфликты между серверами.

Например, предположим, что у вас есть таблица с именем «пользователи» с первичным ключом «user_id», работающая на сервере A и сервере B. Сервер A будет иметь ограничение на столбец user_id, разрешающее значения в диапазоне от 1 до 100. Сервер B будет иметь ограничение на столбец user_id, разрешающее значения в диапазоне от 101 до 200. Таким образом, если новый пользователь вставлен в одно и то же время на сервере A, а пока другой новый пользователь вставлен на сервер B, они никогда не будут тот же номер user_id.

Поскольку вы намеренно прервали репликацию и не планируете запускать ее снова, у вас есть два варианта. (Стандартный отказ от ответственности: сделайте резервную копию.)

Если вы еще этого не сделали, вы можете попробовать удалить публикацию из SQL Server Management Studio. Это должно удалить все настройки репликации из вашей базы данных и может решить проблему для вас.

В противном случае, если вам нужно сделать это вручную, вы можете войти и удалить эти ограничения вручную. Перейдите к соответствующей таблице, перейдите к ограничениям и найдите одну или несколько с именем, похожим на «repl_identity_range». Щелкните его правой кнопкой мыши и выберите «Изменить». Вы должны увидеть выражение, ограничивающее диапазон идентификаторов. Это будет выглядеть примерно так:

([user_id]]> (1) И [user_id]] <= (100))

Это фактическое правило, которое гарантирует, что вновь сгенерированные идентификаторы уникальны для каждого сервера. Удалите его, и вы должны перестать видеть эти ошибки.

Вот еще несколько полезных / информационных ресурсов:

http://www.simple-talk.com/sql/database-administration/the-identity-crisis-in-replication/ http://msdn.microsoft.com/en-us/library/ms176057.aspx