MSSQL_ENG018752
Сведения о сообщении
Название продукта |
Тип данных |
Версия продукта |
9.0 |
Номер сборки продукта |
9.00.1399.60 |
Идентификатор события |
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) специфические идентификаторы процессов (SPIDs), подключенных к опубликованной базе данных. Закройте все соединения, для которых могла выполняться процедура 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) в базе данных публикации на издателе, затем перезапустите агент чтения журнала.
- Если ошибка продолжает возникать, увеличьте протоколирование агента и укажите выходной файл для журнала. В зависимости от контекста ошибки эта мера может помочь в определении шагов, которые приведут к ошибке или дополнительным сообщениям об ошибке. Дополнительные сведения см. в разделе Агенты репликации (диагностика).
См. также
Основные понятия
Причины ошибок репликации и способы их устранения