Корпорация Майкрософт распространяет исправления Microsoft SQL Server 2008 как один загружаемый файл. Так как исправления являются накопительными, каждый выпуск содержит все исправления и все исправления безопасности, которые были включены в предыдущие 2008 SQL Server исправления выпуска.
Симптомы
Рассмотрим следующую ситуацию. В базе данных Microsoft SQL Server 2008 возникает взаимоблокировка. Затем используется сеанс расширенных событий system_health для записи графа взаимоблокировок. В этом случае появляется следующее сообщение об ошибке:
Msg 9436, уровень 16, состояние 1, строка 1Синтаксический анализ XML: строка 54, символ 12, закрывающий тег не соответствует открывающий тег
Например запустите следующий запрос, чтобы экспортировать целевой объект buffer_ring с сеансом system_health при возникновении взаимоблокировки:
select XEventData.XEvent.value('(data/value)[1]', 'varchar(max)') as DeadlockGraphFROM(select CAST(target_data as xml) as TargetDatafrom sys.dm_xe_session_targets stjoin sys.dm_xe_sessions s on s.address = st.event_session_addresswhere name = 'system_health') AS DataCROSS APPLY TargetData.nodes ('//RingBufferTarget/event') AS XEventData (XEvent)where XEventData.XEvent.value('@name', 'varchar(4000)') = 'xml_deadlock_report'
В этом примере запрос возвращает правильный результат.Однако также можно запустить следующий запрос для приведения этой взаимоблокировки в формате XML:
select cast(XEventData.XEvent.value('(data/value)[1]', 'varchar(max)') as xml) as DeadlockGraphFROM(select CAST(target_data as xml) as TargetDatafrom sys.dm_xe_session_targets stjoin sys.dm_xe_sessions s on s.address = st.event_session_addresswhere name = 'system_health') AS DataCROSS APPLY TargetData.nodes ('//RingBufferTarget/event') AS XEventData (XEvent)where XEventData.XEvent.value('@name', 'varchar(4000)') = 'xml_deadlock_report'
В этом случае можно ожидать появления взаимоблокировки в формате XML. Даже если взаимоблокировка граф отображается неправильно, по-прежнему ожидать появления допустимый XML-содержимое из отчета xml_deadlock_report. Тем не менее появляется следующее сообщение об ошибке:
Msg 9436, уровень 16, состояние 1, строка 1Синтаксический анализ XML: строка 54, символ 12, закрывающий тег не соответствует открывающий тег
Причина
Эта проблема возникает, поскольку ветвь кода, которая создает схему XML для deadlock graph пропускает закрывающий тег элемента списка жертвы . Кроме того путь кода добавляет ненужные тег для элемента взаимоблокировки .
Решение
Исправление этой уязвимости первого выпуска накопительного обновления 6 для SQL Server 2008 Пакет обновления 1. Дополнительные сведения о этот накопительный пакет обновления щелкните следующий номер статьи базы знаний Майкрософт:
977443 накопительного обновления пакет обновления 6 для SQL Server 2008 Пакет обновления 1Примечание. Поскольку построения являются накопительными, каждый новый выпуск исправление содержит все исправления и все исправления, входившие в состав предыдущих SQL Server 2008 выпуска исправлений. Мы рекомендуем рассмотреть применение последнего выпуска исправления, содержащего это исправление. Для получения дополнительных сведений щелкните следующий номер статьи базы знаний Майкрософт:
970365 SQL Server 2008 выполняет построение, выпущенных после выпуска SQL Server 2008 Пакет обновления 1Исправления Microsoft SQL Server 2008 создаются для определенных пакетов обновления SQL Server. Необходимо установить исправление SQL Server 2008 Пакет обновления 1 для установки SQL Server 2008 Пакет обновления 1. По умолчанию какие-либо исправления, включенный в пакет обновления SQL Server включено в следующий пакет обновления SQL Server.
SQL Server 2008 R2
Важно. При запуске SQL Server 2008 R2, необходимо установить это исправление.Исправление, устраняющее эту проблему, сначала было выпущено в накопительное обновление 1. Дополнительные сведения о том, как получить этот накопительный пакет обновления для SQL Server 2008 R2 щелкните следующий номер статьи базы знаний Майкрософт:
981355 накопительный пакет обновления 1 для SQL Server 2008 R2Примечание. Поскольку сборки являются накопительными, каждый новый выпуск исправлений содержит все исправления, входившие в состав предыдущих выпусков исправлений SQL Server 2008 R2 . Мы рекомендуем рассмотреть применение последнего выпуска исправления, содержащего это исправление. Для получения дополнительных сведений щелкните следующий номер статьи базы знаний Майкрософт:
981356 Сборки SQL Server 2008 R2, выпущенные после выпуска SQL Server 2008 R2
Статус
Корпорация Майкрософт подтверждает, что это проблема продуктов Майкрософт, перечисленных в разделе "Относится к".
Ссылки
Сведения о добавочных модель обслуживания для SQL Server щелкните следующий номер статьи базы знаний Майкрософт:
935897 добавочных модель обслуживания доступна из группы SQL Server для предоставления исправления для проблем, о которых сообщалось вДополнительные сведения о схеме именования для обновления SQL Server щелкните следующий номер статьи базы знаний Майкрософт:
822499 Новая схема присвоения имен пакетам обновлений программного обеспечения Microsoft SQL ServerДля получения дополнительных сведений о терминологии обновлений программного обеспечения щелкните следующий номер статьи базы знаний Майкрософт:
Описание 824684 Стандартные термины, используемые при описании обновлений программных продуктов Майкрософт