MSSQL_ENG018752

Применимо к:Управляемому экземпляру SQL Server Azure

Сведения о сообщении

Атрибут значение
Название продукта SQL Server
Идентификатор события 18752
Источник событий MSSQLSERVER
Компонент Компонент SQL Server Database Engine
Символическое имя
Текст сообщения К базе данных одновременно может быть подключен лишь один агент чтения журнала или процедура, относящаяся к журналу (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) на издателе в базе данных публикации, а затем перезапустите агент чтения журналов.

  • Если ошибка продолжает возникать, увеличьте протоколирование агента и укажите выходной файл для журнала. В зависимости от контекста ошибки эта мера может помочь в определении шагов, которые привели к ошибке или появлению дополнительных сообщений об ошибке.

См. также

Справочник по ошибкам и событиям (репликация)
Replication Log Reader Agent