Simptomi
Pretpostavimo da koristite funkciju AlwaysOn Availability Groups u sistemu Microsoft SQL Server 2012. Kada promenite pristup povezivanju sekundarne replike iz "čitljivo" u "nečitljivo", dolazi do oštećenja na stranicama koje koriste komprimovanje stranice u datoj replici.Baze podataka dostupnosti koje naiđu na ovaj problem na sekundarnoj replici ne mogu da se spasu zbog greške tokom ponovne faze sinhronizacije. Sekundarna replika se neće sinhronizovati sa primarnom replikom i izveštava o stanju sinhronizacije "SUSPEND_FROM_REDO". Pored toga, dobijate sledeće poruke o greškama u evidenciji grešaka sql servera u kojoj se hostuje sekundarna replika:
<Date> <Time> spid<ID> Error: 17066, Severity: 16, State: 1.<Date> <Time> spid> <0 ID> SQL Server Assertion: File: <page.cpp>, line=3898 Failed Assertion = '!pageFull'. Ova greška je možda povezana sa vremenskim rasporedom. Ako greška potraje i nakon ponovnog korišćenja izvoda, koristite DBCC CHECKDB da biste proverili da li u bazi podataka postoji strukturni integritet, ili ponovo pokrenite server da biste se uverili da strukture podataka u memoriji nisu oštećene.<Datum> <vreme> spid<ID> Greška: 3624, ozbiljnost: 20, stanje: 1.<Datum> <Vreme> spid> <0 ID> Provera sistemske potvrde nije uspela. Za detalje proverite da li postoje detalji evidencije grešaka na SQL Serveru. Do greške u tvrdnji obično dolazi zbog softverske greške ili oštećenja podataka. Da biste proverili da li ima oštećenja baze podataka, razmislite o pokretanju DBCC CHECKDB. Ako ste pristali da šaljete deponije korporaciji Microsoft tokom instalacije, mini deponija će biti poslata korporaciji Microsoft. Ispravka može biti dostupna od korporacije Microsoft u najnovijem servisnom paketu ili u QFE-u iz tehničke podrške. <date> <Time> spid<ID> AlwaysOn Availability Groups data movement for database '<DataBase Name>' has been suspended for the following reason: "system" (Source ID 2; Izvorna niska: 'SUSPEND_FROM_REDO'). Da biste nastavili premeštanje podataka u bazi podataka, moraćete ručno da nastavite sa radom baze podataka. Više informacija o tome kako da nastavite bazu podataka dostupnosti potražite u članku SQL Server Books Online.<Date> <Time> spid<ID> Error: 3313, Ozbiljnost: 21, stanje: 2.<Datum> <Vreme> spid> <0 ID> Tokom ponovnog snimanja evidentirane operacije u bazi podataka '<DataBase Name>', došlo je do greške na ID-u zapisa evidencije (1786:4978584:74). Određena greška se obično evidentira kao greška u usluzi Windows evidencije događaja. Vratite bazu podataka u prethodno stanje iz kompletne rezervne kopije ili popravite bazu podataka.<Date> <Time> spid<ID> ALTER DB param option: RESUME<Date> <Time> spid> <0 ID> AlwaysOn Availability Groups data movement for database '<DataBase Name>' has been resumed. Ovo je samo informativna poruka. Nije potrebna radnja korisnika.<Date> <Time> spid<ID> Nekvalifikovane transakcije se vraćaju u bazu podataka <Ime baze podataka> za promenu stanja AlwaysOn raspoloživih grupa. Procenjeni završetak povraćaja: 100%. Ovo je samo informativna poruka. Nije potrebna nikakva radnja korisnika.<Date> <Time> spid<ID> AlwaysOn Availability Groups connection with primary database terminated for secondary database '<DataBase Name>' on the availability replika with Replica ID: {bbdedecb-f26b-47e9-9e7d-7c22f99b2}} Ovo je samo informativna poruka. Nije potrebna radnja korisnika.<Date> <Time> spid<ID> Pokretanje baze podataka '<DataBase Name>'.<Date> <<Vreme Time> Spid> <2 ID> Oporavak baze podataka "<DataBase Name>" (13) je 0% dovršen (ostalo je oko 781 sekundi). Faza 1 od 3. Ovo je samo informativna poruka. Nije potrebna nikakva radnja korisnika.....
Rešenje
Problem je prvi put otklonjen u sledećoj kumulativnoj ispravki sistema SQL Server.
Kumulativna ispravka 6 za SQL Server 2012 SP2 Kumulativna ispravka 16 za SQL Server 2012 SP1
Svaka nova kumulativna ispravka za SQL Server sadrži sve hitne ispravke i sve bezbednosne ispravke koje su bile uključene u prethodnu kumulativnu ispravku. Pogledajte najnovije kumulativne ispravke za SQL Server:
Više informacija
Do prethodnog problema može doći kada se promeni pristup čitanju za sekundarnu repliku. Pristup bazama podataka dostupnosti za čitanje možete da postavite na sekundarnu repliku pomoću sledeća dva metoda:
-
Podesite pristup za čitanje pomoću komande ALTER AVAILABILITY GROUP:
ALTER AVAILABILITY GROUP [AGName]MODIFY REPLICA ON N'<SRV>' WITH (SECONDARY_ROLE(ALLOW_CONNECTIONS = NO))
-
Podesite pristup za čitanje promenom postavki u istraživaču objekata programa SQL Server Management Studio (SSMS):
-
Povežite se sa serverom, a zatim otvorite fasciklu AlwaysOn Dostupnost.
-
Otvorite fasciklu "Grupe raspoloživosti".
-
Kliknite desnim tasterom miša na grupu dostupnosti i izaberite stavku Svojstva.
-
Promenite sekundarno svojstvo "Čitljivo" za sekundarnu repliku u "Ne", a zatimkliknite na dugme "U redu".
-
Status
Microsoft je potvrdio da je ovo problem u Microsoft proizvodima koji su navedeni u odeljku "Odnosi se na".