Příznaky
Předpokládejme, že používáte funkci skupiny dostupnosti AlwaysOn serveru Microsoft SQL Server 2012. Když změníte přístup k druhé replice z "čitelné" na "nečitelný", dojde k poškození stránek, které v dané replice používají kompresi stránky.Databáze dostupnosti, které mají tento problém v sekundární replice, se nedají zotavit kvůli chybě v fázi opětovného provedení synchronizace. Sekundární replika se nebude synchronizovat s primární replikou a oznámí stav synchronizace "SUSPEND_FROM_REDO". Navíc se v protokolu chyb serveru SQL Server, který hostuje sekundární replika, zobrazí následující chybové zprávy:
<datum> <čas ,> SPID<ID> Chyba: 17066, závažnost: 16, stav: 1. <Datum> <čas> číslo SPID> <0> ID <SQL Server kontrolní výraz: soubor:> Page. cpp, line = 3898 neúspěch = '! pageFull '. K této chybě mohlo dojít při časování. Pokud chyba přetrvává i po opětovném spuštění příkazu, pomocí příkazu DBCC CHECKDB zkontrolujte, jestli databáze není součástí struktury, nebo restartujte server, aby se zajistilo, že nejsou poškozeny datové struktury v paměti. <datum> <čas> SPID<ID> chyba : 3624 TimeID Podrobnosti najdete v protokolu chyb systému SQL Server. Selhání výrazu obvykle způsobuje chybu softwaru nebo poškození dat. Pokud chcete zkontrolovat poškození databáze, zkuste spustit příkaz DBCC CHECKDB. Pokud jste se dohodli, že budete během instalace posílat výpisy Microsoftu, pošle vám do Microsoftu mini výpis. Aktualizace může být k dispozici od Microsoftu v nejnovější aktualizaci Service Pack nebo v QFE od technické podpory. <datum> <čas> SPID<ID> pro databázi: <název databáze> 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 pokračovat v databázi dostupnosti, najdete v tématu SQL Server Books Online. <data> <čas> SPID<ID> Chyba: 3313, závažnost: 21, stát: 2. <Datum> <čas> spid> <0 ID> při obnovení protokolované operace v databázi <název databáze> se vyskytla chyba v ID záznamu protokolu (1786:4978584:74). Obvykle se specifická chyba zaznamenala jako chyba v protokolu událostí systému Windows. Obnovte databázi z úplného zálohování nebo databázi opravte. <data> <čas> SPID<ID> možnost změnit parametr databáze: Resume<Datum> <čas> číslo SPID> <0ID> se obnovilo. Tato zpráva je jenom informační. Není nutná žádná akce uživatele. <kalendářního data> <čas> SPID<ID> nekvalifikované transakce jsou vráceny zpět do databáze <název databáze> pro změnu stavu skupiny dostupnosti AlwaysOn. Odhadované dokončení vrácení zpět: 100%. Tato zpráva je jenom informační. Není nutná žádná akce uživatele. <kalendářního data> <čas> SPID<ID> pro sekundární databázi bylo ukončené: <název databáze> v replice dostupnosti s ID repliky: {bbdedecb-f26b-47e9-9e7d-7c22f99edb23}. Tato zpráva je jenom informační. Není nutná žádná akce uživatele. <kalendářního data> <čas> SPID<ID> spuštění databáze ' <název databáze> ". <datum> <čas>> <2název databáze> (13) je% dokončení (přibližně 781 sekund). Fáze 1 ze 3 Tato zpráva je jenom informační. Není třeba žádné akce uživatele.
Řešení
Tento problém byl poprvé opraven následující kumulativní aktualizací SQL serveru.
Kumulativní aktualizace 6 pro SQL server 2012 SP2 , kumulativní aktualizace 16 pro SQL Server 2012 SP1
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. Podívejte se na nejnovější kumulativní aktualizace SQL serveru:
Další informace
K předchozímu problému může dojít, pokud se pro sekundární repliku změní přístup pro čtení. V sekundární replice můžete nastavit přístup pro čtení databází dostupnosti pomocí následujících dvou metod:
-
Nastavte oprávnění ke čtení pomocí příkazu změnit skupinu dostupnosti:
ALTER AVAILABILITY GROUP [AGName]MODIFY REPLICA ON N'<SRV>' WITH (SECONDARY_ROLE(ALLOW_CONNECTIONS = NO))
-
Nastavte oprávnění ke čtení změnou nastavení v Průzkumníkovi objektů SQL Server Management Studio (SSMS):
-
Připojte se k serveru a otevřete složku dostupnosti AlwaysOn.
-
Otevřete složku skupiny dostupnosti.
-
Klikněte pravým tlačítkem na skupinu dostupnosti a vyberte vlastnosti.
-
Změňte vlastnost pro čtení sekundární repliky na nea klikněte na OK.
-
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.