Симптоми
Да предположим, че сте активирали функция като AlwaysOn Availability Groups, която използва група регистрационни файлове в екземпляр на Microsoft SQL Server 2012 или Microsoft SQL Server 2014. В тази ситуация броячът на изчакване за записване на регистрационни файлове за буфера за регистрационния файл на екземпляра на SQL Server има висока стойност. Също така ще забележите високи стойности за типовете чакане CMEMTHREAD и WRITELOG в изгледи за динамично управление (DMV). Освен това се генерират мини вторично копие на файлове.
Забележка: Наборът регистрационни файлове е кеш на регистрационния файл на транзакциите в паметта. Този кеш се използва, наред с други неща: за оптимизиране на четенето на регистрационния файл по време на възстановяване и операциите по връщане към стабилно състояние при репликация на транзакции, както и за функцията AlwaysOn Availability Groups (групи за наличност на AlwaysOn).
Причина
Този проблем възниква, защото наборът регистрационни файлове използва глобален указател към обект от паметта (PMO) за всички бази данни.
Когато много нишки се опитват да пишат регистрационни файлове с помощта на набора регистрационни файлове, всички нишки трябва да чакат указателя към обект от паметта, което води до спора, описан в раздел "Симптоми".
Решение
SQL Server 2014 Service Pack 1
По подразбиране Service Pack 1 за SQL Server 2014 включва тази корекция и не е необходимо да добавяте флагове за проследяване, за да разрешите корекцията.
SQL Server 2014
Проблемът е коригиран в RTM версията на SQL Server 2014, но все пак трябва да разрешите флага за проследяване T9024 и/или 8048, за да активирате корекцията. След като разрешите този флаг за проследяване, екземплярът на SQL Server разделя показалеца към обект от паметта на ниво възел.
Бележки
- Ако проблемите продължават дори след активиране на проследяване на флаг T9024, можете също да разрешите проследяване на флаг T8048, който разделя указателя към обекта от паметта на ниво ЦП.
- SQL Server 2014 Service Pack 1 (SP1) включва тази корекция и не е нужно да разрешавате флага за проследяване.
SQL Server 2012
Забележка: SQL Server 2012 Service Pack 3 (SP3) съдържа тази корекция и не е необходимо да разрешавате флага за проследяване.
Кумулативна информация за актуализацията
Сборна актуализация 3 за SQL Server 2012 SP1
Корекцията за този проблем е издадена за първи път в кумулативна актуализация 3. За допълнителна информация как да получите този сборен пакет за актуализация за SQL Server 2012 SP1 щракнете върху следния номер на статия, за да прегледате статията в базата знания на Microsoft:
2812412 Сборен пакет за актуализация 3 за SQL Server 2012 Service Pack 1Note Тъй като компилациите са кумулативни, всяко ново издание на корекции съдържа всички актуални поправки и корекции на защитата, които са включени в предишното издание на корекция за SQL Server 2012 SP1. Препоръчваме ви да помислите за прилагане на най-новото издание на корекцията, което съдържа тази гореща корекция. За допълнителна информация щракнете върху следния номер на статия, за да прегледате статията в базата знания на Microsoft:
2772858 Компилациите на SQL Server 2012, които са издадени след издаването на SQL Server 2012 Service Pack 1Забележка След като приложите горещата корекция, трябва да разрешите флага за проследяване T9024, за да активирате корекцията. След като разрешите този флаг за проследяване, екземплярът на SQL Server разделя показалеца към обект от паметта на ниво възел.
Забележка Ако проблемите продължават дори след активиране на проследяване на флаг T9024, можете също да разрешите проследяване на флаг T8048, който разделя указателя към обекта от паметта на ниво ЦП.
Информация за горещи поправки
Microsoft предлага поддържана гореща корекция. Тази гореща корекция обаче има за цел да коригира само проблема, който е описан в тази статия. Прилагайте тази гореща корекция само към системи, които срещат този конкретен проблем.
Ако горещата корекция е налична за изтегляне, има раздел "Възможно е изтегляне на гореща поправка" в горната част на тази статия от базата знания. Ако този раздел не се появява, подайте заявка до отдела за обслужване на клиенти и поддръжка на Microsoft, за да получите горещата корекция.
Забележка: Ако възникнат допълнителни проблеми или ако е необходимо отстраняване на неизправности, може да се наложи да създадете отделно искане за обслужване. Стандартните такси за поддръжката ще важат за допълнителни въпроси, свързани с нея, както и за проблеми, които не спадат към тази конкретна гореща корекция. За пълен списък на телефонните номера за обслужване на клиенти и поддръжка на Microsoft или за създаване на отделна заявка за обслужване посетете следния уеб сайт на Microsoft:
/contactus/?ws=support Забележка: Формулярът "Възможно е изтегляне на гореща поправка" показва езиците, за които е налична горещата поправка. Ако не виждате вашия език, това е защото не е налична актуална поправка за този език.
Предварителни изисквания за SQL Server 2012
За да приложите тази гореща корекция, трябва да имате инсталиран SQL Server 2012 SP1 на компютъра.
Изискване за рестартиране
Не е необходимо да рестартирате компютъра, след като сте приложили тази гореща корекция. SQL Server трябва да се рестартира с флаг за проследяване T9024. За повече информация как да конфигурирате SQL Server с помощта на флаг за проследяване на стартиране вижте "Опции за стартиране на услугата на ядрото на базата данни".
Информация за файлове
Глобалната версия на горещата поправка на this има файловите атрибути (или по-нови), които са изброени в следващата таблица. Датите и часовете за тези файлове са изброени в координирано световно време (UTC). Информацията за файла се преобразува в местно време при преглед. За да определите разликата между UTC и локалното време, отворете раздела "Часова зона" в "Дата и час" на Контролен панел.