Konfigurirajte uvijek na grupama dostupnosti na SQL poslužitelju

U ovom ćemo članku pogledati postupnu instalaciju i konfiguraciju grupa dostupnosti. Uvijek na u SQL Serveru u sustavu Windows Server 2019 razmotrite scenarije neuspjeha i brojne druge srodne probleme.

"Uvijek u skupinama dostupnosti„Ili”Uvijek u skupinama dostupnosti“Je li tehnologija za visoku dostupnost u SQL Serveru. Always On se pojavio u izdanju Microsoft SQL Server 2012.

sadržaj:

  • Značajke Always On Dostupnosti u SQL Serveru
  • Konfigurirajte klaster greške u sustavu Windows Server za uvijek uključeno
  • Konfiguriranje uvijek uključeno u MS SQL Serveru
  • Uvijek uključeno: provjera performansi, automatsko zaustavljanje

Značajke Always On Dostupnosti u SQL Serveru

Za što se mogu koristiti grupe dostupnosti za SQL Server?

  • Velika dostupnost MS SQL-a i automatsko prebacivanje;
  • Učitavanje odabira upita za uravnoteženje između čvorova (sekundarne replike mogu biti čitljive);
  • Sigurnosna kopija iz sekundarnih replika;
  • Prekomjernost podataka. Svaka replika pohranjuje kopije baza podataka grupe dostupnosti.

Uvijek uključeno radi na platformi Klaster prelaska u sustavu Windows Server (WSFC). WSFC nadzire čvorove koji sudjeluju u grupi dostupnosti i može automatski propasti glasovanjem između čvorova. Počevši od MS SQL Server 2017, prilika za korištenje Always On bez WSFC-a, uključujući i na Linux sustavi. Prilikom izrade Linux klastera možete koristiti Pacemaker kao alternativu WSFC-u.

Always On je dostupan na standard izdanje, ali s ograničenjima:

  • Ograničite na 2 replike (primarna i sekundarna);
  • Sekundarna replika ne može se koristiti za pristup čitanju;
  • Sekundarna replika ne može se koristiti za izradu sigurnosne kopije MS SQL;
  • Podržite samo 1 bazu podataka po grupi dostupnosti.

U urednicima Enterprise nema ograničenja.

Značajke licenciranja za MS SQL Server.

Razumjet ćemo terminologiju:

  • Uvijek ON grupa dostupnosti - Ovo je zbirka replika i baza podataka.
  • replika - Ovo je instanca SQL Servera u grupi dostupnosti. Replika je možda glavna (osnovni) i sekundarni (sporedan). Svaka replika može sadržavati jednu ili više baza podataka.

Always On temelji se na WSFC-u. Svaki čvor grupe dostupnosti mora biti član klastera Windows failover. Svaka instanca SQL Server može imati više grupa dostupnosti. Svaka skupina za dostupnost može imati do 8 sekundarnih replika.

Ako replika ne uspije, klaster će glasati za novu primarnu repliku, a Always On će prenijeti jednu od sekundarnih replika u primarnu. Budući da se tijekom rada s Uvijek uključeno, korisnici povezuju s poslušateljem klastera (ili Slušateljem, to jest posebnom IP adresom klastera i odgovarajućim DNS imenom), mogućnost pisanja zahtjeva bit će u potpunosti vraćena. Slušatelj je također odgovoran za uravnoteženje odabranih upita između sekundarnih replika..

Konfigurirajte klaster greške u sustavu Windows Server za uvijek uključeno

Prije svega, moramo konfigurirati klaster pogrešaka na svim čvorovima koji će sudjelovati u Always On.

Moja konfiguracija:

  • 2 virtualna računala na Hyper-V sa sustavom Windows Server 2019;
  • 2 instance izdanja Enterprise SQL Server 2019;
  • Naziv domaćina čvorova je testnode1 i testnode2. Naziv instanci node1 i node2.

U Upravitelj poslužitelja dodajte ulogu Klasteriranje u slučaju pogrešaka, ili instalirajte komponentu pomoću PowerShell-a:

Instaliraj-WindowsFeature -Nime Failover-Clustering -IncludeManagementTools

Instalacija je automatska, još ne morate ništa konfigurirati. Nakon što je instalacija dovršena, pokrenite snap. Upravitelj klastera s odustajanjem (FailoverClusters.SnapInHelper.msc).

Stvorite novi klaster.

Dodajte imena poslužitelja koji će sudjelovati u klasteru.

Tada čarobnjak nudi da položi testove. Ne odbijajte, odaberite prvu stavku.

Navedite naziv klastera, odaberite mrežu i IP adresu klastera. Naziv klastera automatski će se pojaviti u DNS-u, ne morate ga posebno registrirati. U mom slučaju ime grozda - ClusterAG.

Uklanjamo cheboks "Dodavanje svih prihvatljivih prostora za pohranu u klaster", Kao što kasnije možemo dodati diskove.

U klasteru postoje samo 2 čvora, pa je potrebno konfigurirati Kvorum klastera. Kvorum klastera je "odlučujući glas." Na primjer, ako jedan od čvorova klastera postane nedostupan, klaster mora odrediti koji su čvorovi zapravo dostupni i mogu se vidjeti. Kvorum je potreban za dosljednost klastera (Klaster -> Više radnji -> Konfiguriranje postavki kvoruma klastera).

Odaberite vrstu svjedoka kvoruma.

Zatim odaberite vrstu svjedoka - mrežna mapa (datoteka dijeli svjedoka).

Odredite UNC put do mrežne mape. Taj direktorij morate sami izraditi i on mora biti na poslužitelju koji nije uključen u klaster..

Pri postavljanju klastera može doći do pogreške:

Došlo je do pogreške prilikom konfiguriranja svjedoka udjela datoteke. Nije moguće spremiti promjene svojstava za Svjedoka dijeljenja datoteka. Sustav ne može pronaći specificiranu datoteku.

Najvjerojatnije to znači da korisnik iz kojeg klaster radi nema prava na ovu mrežnu mapu. Prema zadanim postavkama, klaster radi kao lokalni korisnik. Prava na ovu mapu možete dati na svim računalima u klasteru ili promijeniti račun za uslugu klastera i dati prava na njega.

Time se završava osnovna konfiguracija klastera. Provjerite je li DNS klastera registriran i daje točan IP

Konfiguriranje uvijek uključeno u MS SQL Serveru

Nakon standardne instalacije instancije SQL Servera, možete omogućiti i konfigurirati Always On Availability Groups. Treba ih uključiti SQL Server Configuration Manager na primjer svojstva. Kao što možete vidjeti na snimci zaslona, ​​SQL Server je već utvrdio da je član WSFC klastera. Stavite potvrdni okvir "Omogući uvijek u skupinama dostupnosti”I ponovno pokrenite uslugu MSSQL instancije. Slijedite iste korake na drugoj instanci.

vijeće.. Prije konfiguriranja Uvijek uključeno, provjerite da se usluge SQL Server ne izvode pod računom lokalnog sustava. Preporučuje se upotreba grupnih računa usluge upravljanja ili uobičajeni račun domene. Inače, ne možete dovršiti postavljanje Always On..

U studiju za upravljanje SQL Serverom kliknite "Uvijek na visokoj dostupnosti"I pokrenite čarobnjaka za konfiguraciju grupe dostupnosti (Novi čarobnjak za dostupnost grupe).

Navedite naziv grupe Always On Availability i odaberite "Otkrivanje zdravlja na razini baze podataka”. Pomoću ove opcije Always On će moći utvrditi kada je baza podataka u nezdravom stanju..

Odaberite baze podataka SQL Server koji će sudjelovati u grupi Always On Availability..

Kliknite "Dodaj repliku ..." i povežite se s drugim SQL poslužiteljem. Na ovaj način možete dodati do 8 poslužitelja.

  • Početna uloga - Uloga replike u vrijeme nastanka grupe. Mogu biti primarne i sekundarne;
  • Automatsko zaustavljanje - ako baza podataka postane nedostupna, Always On prenosi primarnu ulogu u drugu repliku. Označite potvrdni okvir;
  • Način dostupnosti - možda izabrati Usklađivanje ili Asinhrono počinjenje. Kad odaberete sinkran način, transakcije koje stignu do primarne replike bit će poslane svim ostalim sekundarnim replikama sa sinkronim načinom. Primarna replika dovršava transakciju tek nakon što replike napišu transakciju na disk. Ovo uklanja mogućnost gubitka podataka ako primarna replika ne uspije. U asinhronom načinu glavna replika odmah bilježi promjene, ne čekajući odgovor od sekundarnih replika;
  • Čitljiv sekundarni - parametar koji određuje mogućnost odabira upita sekundarnim replikama. Ako je odgovor da, klijenti čak i s vezom bez ApplicationIntent = readonly mogu dobiti pristup samo za čitanje;
  • Potrebni sinkronizirani sekundarni znaci za izvršavanje - Broj sinkroniziranih sekundarnih replika za dovršetak transakcije. Potrebno je postaviti ovisno o broju replika, stavit ću 1. Imajte na umu da ako sekundarne sinkronizirane replike postanu manje od navedenog broja (na primjer, tijekom nesreće), baze podataka grupe dostupnosti postaju nedostupne čak i za čitanje.

Krajnje točke se ne dodiruju.

kartica Postavke sigurnosne kopije Možete odabrati mjesto izrade sigurnosnih kopija. Sve ostavljamo kao zadano - Preferirajte sekundarne.

Navedite ime slušatelja pristupne skupine, port i IP adresu.

kartica Usmjeravanje samo za čitanje ostaviti nepromijenjeno.

Odabiremo kako će se replike sinkronizirati. Ostavljam prvu točku - automatsku sinkronizaciju (Automatsko klijanje).

Nakon toga, vaše postavke trebaju biti potvrđene. Ako nema pogrešaka, kliknite Završi da biste primijenili promjene..

U mom su slučaju svi testovi bili uspješni, ali nakon instalacije u koraku s rezultatima, čarobnjak je izvijestio o pogrešci pri stvaranju slušatelja grupe za dostupnost. Dnevnici klastera imali su ovu pogrešku:

Resurs imena klaster mreže nije uspio stvoriti pridruženi računalni objekt u domeni.

To znači da klaster nema dovoljno prava za stvaranje slušatelja. U dokumentaciji se kaže da je dovoljno dati dopuštenje za izradu objekata tipa "računalo" objektu vašeg klastera. Najlakši način za to je delegiranjem ovlaštenja na AD (ili, brza, ali loša opcija je privremeno dodati objekt CLUSTERAG $ u grupu Administrator domena).

Kada dijagnosticirate probleme s Always ON i niskim performansama SQL-a u grupi dostupnosti, uz standardne dijagnostičke alate SQL Server trebali biste pažljivo pogledati evidencije klastera sustava Windows.

Budući da sam stvorila grupu pristupačnosti, ali slušatelja nije, dodao sam je ručno. Nazovimo kontekstni izbornik u grupi dostupnosti i kliknemo Dodajte slušatelja...

Navedite IP adresu, vrata i DNS ime slušatelja.

Provjerite prikazuje li se slušatelj u odjeljku Dostupni slušatelji u grupi Uvijek uključeno..

Time se završava osnovna postava grupe Always On Availability..

Uvijek uključeno: provjera performansi, automatsko zaustavljanje

Pogledajte nadzornu ploču nadzorne ploče.

Sve je u redu, kreira se grupa za dostupnost i radi..

Pokušajmo prenijeti glavnu ulogu na node2 instancu u ručnom načinu rada. Desnom tipkom miša kliknite grupu dostupnosti i odaberite failover.

Vrijedno je obratiti pažnju na predmet Spremnost na neuspjeh. vrijednost Nema gubitka podataka znači da je gubitak podataka tijekom prijelaza isključen.

Spajanje na čvor2.

Kliknite Završi.

Provjerite je li node2 postao glavna replika u grupi dostupnosti (primarna instanca).

Provjerite radi li slušatelj kako treba. U SSMS-u navedite DNS ime slušatelja i priključak, odvojenih zarezima: AG1-slušatelja-1,1445

Napravimo jednostavan umetanje, odabir i ažuriranje upita u našu bazu podataka SQL Server.

Sad provjerimo automatsko zaustavljanje glavne replike. Samo zaustavite postupak sqlservr.exe na TESTNODE2.

Provjera statusa grupe dostupnosti na preostalom čvoru - TESTNODE1 \ NODE1.

Klaster je automatski prenio status replike testnode1 \ node1 u primarni, jer je testnode2 \ node2 postao nedostupan.

Provjerit ćemo stanje slušatelja, jer će veza klijenta k njemu doći.

U mom slučaju uspješno sam se povezao sa slušateljem, ali došlo je do pogreške prilikom pristupa bazi podataka

Nije moguće pristupiti bazi podataka 'TestDatabase' jer nedostaje kvorum čvorova za visoku dostupnost. Pokušajte ponovo kasnije.

Do ove pogreške došlo je zbog "Potrebni sinkronizirani sekundarni znaci za izvršavanje”. Budući da prilikom postavljanja postavljamo ovu vrijednost na 1, Always On onemogućava nam da se povežemo s bazom podataka, jer imamo samo jednu primarnu repliku.

Podesite ovu vrijednost na 0 i pokušajte ponovo.

Uključite testnode2 i provjerite status grupe.

Status Primarne replike ostao je kod testnode1, a testnode2 je postao sekundarna replika. Podaci koje smo promijenili u testnode1 kada je testnode2 isključen uspješno se sinkroniziraju nakon uključivanja stroja.

Ovo je kraj testiranja. Osigurali smo da sve ispravno funkcionira i u slučaju kritičnog kvara podaci će ostati dostupni za čitanje / pisanje.

Pored funkcije Uvijek uključeno, SQL Server ima i nekoliko drugih tehnologija visoke dostupnosti..

Grupe Dostupnosti uvijek je lako konfigurirati. Ako ste suočeni sa zadatkom izgradnje rješenja otpornog na greške na temelju SQL Servera, grupe za dostupnost savršeno će obaviti ovaj zadatak..

S izdanjem SQL Server 2017 i SQL Server 2019, SQL Server Management Studio 18.x uveo je Always On postavke koje su ranije bile dostupne samo putem T-SQL-a, pa se preporučuje upotreba najnovije verzije SSMS-a.