Проблемы
Рассмотрим следующий сценарий.
-
Функция групп доступности AlwaysOn включена в Microsoft SQL Server 2014.
-
В базе данных AlwaysOn есть пользовательский тип данных среды CLR (UDT). Кроме того, один и тот же UDT CLR существует в нескольких базах данных.
-
Вы запускаете запрос, включающий несколько баз данных, которые имеют определяемый пользователем тип CLR.
В этом случае возникает ошибка нарушения прав доступа на вторичной реплике, а экземпляр SQL Server завершает работу со следующим сообщением в журнале ошибок SQL Server:
2015-02-17 13:07:36.85 spid27s завершает работу базы данных из-за возникновения исключения 2905 при фиксации. 2015-02-17 13:07:36.85 spid27s ошибка: 3449, серьезность: 21, состояние: 1.2015-02-17 13:07:36.85 spid27s. чтобы восстановить базу данных (идентификатор базы данных 2), необходимо завершить работу сервера SQL Server. База данных — это база данных пользователей, которую невозможно закрыть, или системную базу данных. Перезапустите SQL Server. Если восстановление базы данных после другого запуска невозможно, восстановите или восстановите базу данных.
Кроме того, в дополнительной реплике базы данных появляется следующее сообщение об ошибке, и ошибка не исчезнет, пока вы не перезагрузите SQL Server:
Сообщение 3961, уровень 16, состояние 1, транзакция транзакции изоляция 3Snapshot не удалась в базу данных "<DatabaseName>", так как объект, к которому обращалась инструкция, изменен инструкцией DDL в другой параллельной транзакции с момента запуска этой транзакции. Это запрещено, так как метаданные не имеют контрольных версий. Параллельное обновление метаданных может привести к несогласованности в смешанной среде с изоляцией моментальных снимков.
Решение
Совокупные сведения об обновлениях
Эта проблема впервые устранена в следующем накопительном обновлении SQL Server.
Все новые накопительные обновления для SQL Server содержат все исправления и все исправления для системы безопасности, которые были включены в предыдущий накопительный пакет обновления. Мы рекомендуем вам загрузить и установить последние накопительные обновления для SQL Server.
Сведения об обновленииЧтобы устранить эту проблему, установите обновление KB 3043788: пакет обновления исправлений по запросу доступен для SQL server 2014.
Статус
Корпорация Майкрософт подтверждает наличие этой проблемы в своих продуктах, которые перечислены в разделе "Применяется к".