Příznaky
Předpokládejme, že povolíte funkci, jako jsou skupiny dostupnosti AlwaysOn, které používají fond protokolů, v instanci Microsoft SQL Server 2012 nebo Microsoft SQL Server 2014. V této situaci má čítač čekání na zápis protokolu pro vyrovnávací paměť protokolu v instanci SQL Server vysokou hodnotu. V zobrazeních dynamické správy si také všimnete vysokých hodnot typů čekání CMEMTHREAD a WRITELOG. Kromě toho se generují soubory s minivýpisem.
Poznámka: Fond protokolů je mezipaměť transakčního protokolu v paměti. Tato mezipaměť se používá mimo jiné: k optimalizaci čtení protokolu během obnovy a operací vrácení zpět při replikaci transakcí a pro funkci skupin dostupnosti AlwaysOn.
Příčina
K tomuto problému dochází, protože fond protokolů používá globální ukazatel na paměťový objekt (PMO) pro všechny databáze.
Když se mnoho vláken pokusí zapsat protokoly pomocí fondu protokolů, všechna vlákna musí počkat na ukazatel na objekt paměti, což vede ke kolizi popsané v části Symptomy.
Řešení
SQL Server 2014 Service Pack 1
Aktualizace Service Pack 1 pro SQL Server 2014 tuto opravu standardně obsahuje a k povolení opravy nemusíte přidávat žádné příznaky trasování.
SQL Server 2014
Problém je opravený ve verzi RTM aplikace SQL Server 2014, ale opravu je stále potřeba aktivovat příznakem trasování T9024 nebo 8048. Po povolení tohoto příznaku trasování instance SQL Server rozdělí ukazatel na paměťový objekt na úrovni uzlu.
Poznámky
- Pokud problémy přetrvávají i po povolení příznaku trasování T9024, můžete také povolit příznak trasování T8048, který rozdělí ukazatel na objekt paměti na úrovni procesoru.
- SQL Server 2014 Service Pack 1 (SP1) tuto opravu obsahuje a není nutné povolovat příznak trasování.
SQL Server 2012
Poznámka: SQL Server 2012 Service Pack 3 (SP3) obsahuje tuto opravu a není nutné povolovat příznak trasování.
Informace o kumulativní aktualizaci
Kumulativní aktualizace 3 pro SQL Server 2012 SP1
Oprava tohoto problému byla poprvé vydána v kumulativní aktualizaci 3. Další informace o získání tohoto balíčku kumulativních aktualizací pro SQL Server 2012 SP1 naleznete v následujícím článku znalostní báze znalostní báze Microsoft Knowledge Base:
2812412 Balíček kumulativní aktualizace 3 pro SQL Server 2012 Service Pack 1Poznámka: Vzhledem k tomu, že buildy jsou kumulativní, obsahuje každá nová verze opravy všechny opravy hotfix a všechny opravy zabezpečení, které byly součástí předchozí verze opravy SP1 vydané v SQL Server 2012. Doporučujeme zvážit použití nejnovější verze opravy, která obsahuje tuto opravu hotfix. Další informace naleznete v následujícím článku znalostní báze znalostní báze Microsoft Knowledge Base:
2772858 Buildy SQL Server 2012, které byly vydány po vydání aktualizace Service Pack 1 SQL Server 2012Poznámka: Po použití opravy hotfix musíte povolit příznak trasování T9024, aby se oprava aktivovala. Po povolení tohoto příznaku trasování instance SQL Server rozdělí ukazatel na paměťový objekt na úrovni uzlu.
Poznámka: Pokud problémy přetrvávají i po povolení příznaku trasování T9024, můžete také povolit příznak trasování T8048, který rozdělí ukazatel na objekt paměti na úrovni procesoru.
Informace o opravě hotfix
Podporovanou opravu hotfix poskytuje Microsoft. Tato oprava hotfix je však určena pouze k opravě problému popsaného v tomto článku. Tuto opravu hotfix použijte pouze v systémech, ve kterých dochází k tomuto konkrétnímu problému.
Pokud je oprava hotfix dostupná ke stažení, je k dispozici část "Hotfix Download Available" (K dispozici je položka ke stažení opravy hotfix) v horní části tohoto článku znalostní báze Knowledge Base. Pokud se tato část nezobrazí, odešlete žádost službám zákazníkům a podpoře společnosti Microsoft o získání opravy hotfix.
Poznámka: Pokud se vyskytnou další problémy nebo je vyžadováno jakékoli řešení potíží, budete pravděpodobně muset vytvořit samostatnou žádost o služby. Další dotazy a problémy týkající se podpory, které se netýkají této konkrétní opravy hotfix, podléhají běžným sazbám za podporu. Úplný seznam telefonních čísel zákaznických služeb a podpory společnosti Microsoft nebo vytvoření samostatné žádosti o služby naleznete na následujícím webu společnosti Microsoft:
/contactus/?ws=support Poznámka: Formulář "Hotfix Download Available" (K dispozici je ke stažení opravy hotfix) zobrazuje jazyky, pro které je oprava hotfix k dispozici. Pokud svůj jazyk nevidíte, je to proto, že pro tento jazyk není k dispozici oprava hotfix.
Předpoklady pro SQL Server 2012
Chcete-li nainstalovat tuto opravu hotfix, musíte mít v počítači nainstalovaný systém SQL Server 2012 SP1.
Požadavky na restartování
Po instalaci této opravy hotfix není nutné restartovat počítač. SQL Server se musí restartovat s příznakem trasování T9024. Další informace o tom, jak nakonfigurovat SQL Server pomocí příznaku trasování spuštění, najdete v tématu Možnosti spuštění služby databázového stroje.
Informace o souborech
Globální verze této opravy hotfix má následující (nebo pozdější) atributy souborů. Data a časy pro tyto soubory jsou uvedeny v čase UTC (Coordinated Universal Time). Při zobrazení informací o souboru jsou převedeny na místní čas. Rozdíl mezi místním časem a časem UTC naleznete na kartě Časové pásmo na panelu Datum a čas v okně Ovládací panely.