Příznaky
Zvažte následující scénář:
-
Používáte Microsoft SQL Server 2016, 2014 nebo 2012.
-
Máte databázi, která je součástí skupiny dostupnosti AlwaysOn.
-
V primární replice zmenšíte soubory databáze, abyste zmenšili jejich velikost.
-
Primární replika odešle všechny změny zaznamenané v transakčním protokolu do sekundární repliky.
-
V sekundární replice se změny provedené z transakčního protokolu aplikují na databázi, která je součástí skupiny dostupnosti.
V tomto scénáři je replika pozastavena. Navíc se může zobrazit chybová zpráva podobná následující:
<časového razítka> chyba spid41s: 3456, závažnost: 21, stav: 1. <časového razítka> spid41s nemůže znovu provést záznam protokolu (#), ID transakce (#), na stránce (#), databázi <dbname> (ID databáze #). Stránka: LSN = (#), Allocation Unit = #, Type = #. Log: OpCode = #, Context #, PrevPageLSN: (#). Proveďte obnovení ze zálohy databáze, nebo databázi opravte. <časového razítka> spid41sho zdroje dostupnosti AlwaysOn pro databázi ' <dbname> ' byla pozastavena z následujícího důvodu: "systém" (ID zdroje 2; Zdrojový řetězec: ' SUSPEND_FROM_REDO ') Pokud chcete pokračovat v přesouvání dat v databázi, budete muset obnovit databázi ručně. Informace o tom, jak obnovit databázi dostupnosti, najdete v tématu SQL Server Books Online. <časového razítka> chyba spid41s: 3313, závažnost: 21, stát: 2. <časového razítka> spid41s během opětovného provedení protokolované operace v databázi <dbname> Obvykle se specifická chyba zaznamenala jako chyba v protokolu událostí systému Windows. Obnovte databázi z úplného zálohování nebo ji opravte.
Příčina
K tomuto problému dochází, když se změny použijí v průběhu procesu opětovného provedení, pokud se databázovým jádrem setkáte na systémových stránkách (GAM, PFS).
Řešení
Tento problém byl poprvé opraven následující kumulativní aktualizací SQL serveru:
Každá nová kumulativní aktualizace pro SQL Server obsahuje všechny opravy hotfix a všechny opravy zabezpečení, které byly součástí předchozí kumulativní aktualizace. Doporučujeme stáhnout a nainstalovat nejnovější kumulativní aktualizace pro SQL Server:
Aktualizace zabrání tomuto problému. Pokud problém už nastal, zkuste se znovu připojit ke skupině dostupnosti AlwaysOn následujícím způsobem:
-
Odeberte stávající sekundární repliku AlwaysOn.
-
Pro odebrání nepřiděleného místa z databáze spusťte následující příkaz v příslušných datových souborech:
DBCC SHRINKFILE(<file_id>, TRUNCATEONLY)
-
Vytvořte zálohu databáze a souborů protokolu.
-
Obnovte databázi a protokoly do sekundární repliky AlwaysOn.
-
Připojte se ke skupině dostupnosti AlwaysOn.
Stav
Společnost Microsoft potvrzuje, že se jedná o problém v produktech této společnosti, které jsou uvedeny v části Informace v tomto článku jsou určeny pro produkt.
Odkazy
Informace o terminologii používané společností Microsoft k popisu aktualizací softwaru.