MSSQL_ENG018752
Область применения: SQL Server Управляемый экземпляр SQL 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) на издателе в базе данных публикации, а затем перезапустите агент чтения журналов.
Если ошибка продолжает возникать, увеличьте протоколирование агента и укажите выходной файл для журнала. В зависимости от контекста ошибки эта мера может помочь в определении шагов, которые привели к ошибке или появлению дополнительных сообщений об ошибке.