Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Сведения о сообщении
| Название продукта | SQL Server |
| Идентификатор события | 18752 |
| Источник события | MSSQLSERVER |
| Компонент | Система управления базами данных SQL Server |
| Символическое имя | |
| Текст сообщения | К базе данных одновременно может быть подключен лишь один агент чтения журнала или процедура, относящаяся к журналу (sp_repldone, sp_replcmds и sp_replshowcmds). Если выполняется процедура, относящаяся к журналу, удалите подключение, по которому выполнялась процедура, или выполните для этого подключения процедуру sp_replflush, прежде чем запустить агент чтения журнала или выполнить другую процедуру, относящуюся к журналу. |
Объяснение
Несколько текущих подключений пытаются выполнить любое из следующих действий: sp_repldone, sp_replcmds или sp_replshowcmds. Хранимые процедуры sp_repldone (Transact-SQL) и sp_replcmds (Transact-SQL) — это хранимые процедуры, используемые агентом чтения журналов для поиска и обновления сведений о реплицированных транзакциях в опубликованной базе данных. Хранимая процедура sp_replshowcmds (Transact-SQL) используется для устранения определенных типов проблем с репликацией транзакций.
Эта ошибка возникает в следующих обстоятельствах:
Если агент чтения журналов для опубликованной базы данных запущен, а второй агент чтения журналов пытается запуститься в той же базе данных, ошибка возникает для второго агента и отображается в журнале агентов.
В ситуации, когда существует несколько агентов, возможно, что один из них является результатом осиротевшего процесса.
Если агент чтения журналов для опубликованной базы данных запущен, а пользователь выполняет sp_repldone, sp_replcmds или sp_replshowcmds в той же базе данных, ошибка возникает в приложении, где была выполнена хранимая процедура (например , sqlcmd).
Если агент чтения журналов не запущен для опубликованной базы данных, а пользователь выполняет sp_repldone, sp_replcmds или sp_replshowcmds , а затем не закрывает подключение, по которому была выполнена процедура, возникает ошибка, когда агент чтения журналов пытается подключиться к базе данных.
Действие пользователя
Следующие шаги помогут устранить проблему. Если любой шаг позволяет агенту чтения журналов запускаться без ошибок, нет необходимости выполнять оставшиеся действия.
Проверьте историю агента чтения журналов на предмет других ошибок, которые могут вызывать эту проблему. Сведения о просмотре состояния агента и сведений об ошибке в мониторе репликации см. в разделе Просмотр сведений и выполнение задач с помощью монитора репликации.
Проверьте выходные данные sp_who (Transact-SQL) для определенных идентификаторов процесса (SPID), подключенных к опубликованной базе данных. Закройте все подключения, которые могли выполнить sp_repldone, sp_replcmds или sp_replshowcmds.
Перезапустите агент чтения журналов. Дополнительные сведения см. в разделе "Запуск и остановка агента репликации" (SQL Server Management Studio).
Перезапустите службу агента SQL Server (переведите в автономный режим или введите в эксплуатацию в кластерной среде) на дистрибьюторе. Если есть вероятность того, что запланированное задание могло быть выполнено командами sp_repldone, sp_replcmds или sp_replshowcmds из любого другого экземпляра SQL Server, перезапустите агент SQL Server для этих экземпляров. Дополнительные сведения см. в разделе "Пуск", "Остановка" или "Приостановить службу агента SQL Server".
Выполните sp_replflush (Transact-SQL) на издателе в базе данных публикации, а затем перезапустите агент чтения журналов.
Если ошибка продолжается, увеличьте ведение журнала агента и укажите выходной файл для журнала. В зависимости от контекста ошибки это может привести к действиям, которые приводят к ошибке и (или) дополнительным сообщениям об ошибках.
См. также
Справочник по ошибкам и событиям (репликация)
Агент чтения журналов репликации