Alati visoke dostupnosti u MS SQL Serveru

U ovom ćemo članku razmotriti sve tehnologije SQL Servera koje mogu osigurati visoku dostupnost podataka i toleranciju grešaka za vaš SQL Server..

Rezervne kopije su dobre, ali kada račun potraje nekoliko minuta, a ponekad i sekunde, pomoći će samo prekomjerno kopiranje podataka i jasan plan za prijenos pogrešaka. SQL Server pruža različite načine za implementaciju redundantnosti podataka i velike dostupnosti.

sadržaj:

  • Zrcaljenje baze podataka u SQL Serveru
  • Prijavite se dostavljanjem putem SQL Servera
  • Replikacija u Microsoft SQL Serveru: pregled metoda
  • Uvijek na grupama dostupnosti na SQL Serveru

Zrcaljenje baze podataka u SQL Serveru

  • Dostupno u izdanjima: standard (samo sinkroni način), Enterprise, Web / express - samo za svjedočenje
  • Djeluje na razini: baze podataka
  • Verzija SQL servera: SQL Server 2005, SQL Server 2008
primjedba. Zrcaljenje baze podataka je u načinu održavanja i može se ukloniti u budućim verzijama SQL Servera, tako da se ne preporučuje korištenje ove tehnologije na verzijama većim od SQL Server 2008.

Zrcaljenje funkcionira na razini baze podataka (još uvijek može biti na razini objekta) i omogućuje automatski / ručni prijelaz između poslužitelja u slučaju kvara. Baza rezerve u bilo kojem od načina rada zrcaljenja bit će u stanju kontinuiranog oporavka, stoga neće raditi.

Ogledalo ima 2 načina rada: sinkrono i asinhrono..

sinkroni način rada znači da su glavni poslužitelj i sigurnosna kopija u potpunosti sinkronizirani. Sinkronizacija se postiže zbog činjenice da se podaci koji dolaze na glavni poslužitelj odmah šalju na rezervni poslužitelj. Rezervni poslužitelj zapisuje podatke u dnevnik transakcija što je brže moguće. Čim rezervni poslužitelj završi s pisanjem podataka, on šalje signal glavnom poslužitelju, nakon čega glavni poslužitelj zapisuje podatke na disk. U ovom se načinu vrijeme transakcije povećava zbog činjenice da glavni poslužitelj mora pričekati dok se podaci ne zapišu na disk na sigurnosnom kopiju, ali s tim pristupom vjerojatnost gubitka podataka je minimalna.

U sinkronom načinu rada moguće je koristiti poslužitelj Witness. Poslužitelj u načinu svjedočenja nadzire performanse zrcalnih poslužitelja i može pokrenuti fauliranje, odnosno poslužitelj u stanju čekanja prelazi u aktivno stanje.

Trebate imati na umu da će uska grla na sigurnosnom kopiju utjecati na glavne.

asinhron ili način visoke performanse - Također djeluje, osim što glavni poslužitelj nakon slanja dnevnika transakcija ne čeka odgovor iz sigurnosne kopije o uspješnom pisanju na disk.

U ovom su načinu transakcije brže i izvedba sigurnosnog kopiranja poslužitelja ne utječe na primarnu, ali ako se sigurnosni sigurnosni poslužitelj vrati kao primarni, postoji rizik od gubitka podataka jer podaci na poslužiteljima nisu sinkronizirani.

Ogledalo se smije koristiti samo ako imate podudarnost za sve uvjete

  • SQL Server 2008 ili SQL Server 2005
  • Mala mrežna kašnjenja između primarnog poslužitelja i stanja pripravnosti
  • Gubitak čak jedne transakcije za vas je kritičan

Ako vaš slučaj ne odgovara svim uvjetima, razmislite o drugim mogućnostima..

Prijavite se dostavljanjem u SQL Server

  • Dostupno u izdanjima: Standard, Web, Enterprise
  • Djeluje na razini: baza podataka
  • Verzija SQL servera: SQL Server 2005 i noviji

Tehnologija isporuke dnevnika omogućuje vam automatsko slanje sigurnosnih kopija evidencija transakcija iz izvorne baze podataka u jednu ili više baza podataka primatelja te ih zatim vraća u baze podataka primatelja. Po želji, može postojati i treći poslužitelj koji će obavljati uslugu nadgledanja - za nadzor izvršenja sigurnosnih kopija i vraćanje dnevnika.

Nadgledanje i dijagnostika SQL poslužitelja raspravljana je u zasebnom članku.

Nakon postavljanja otpreme zapisa, kreiraju se poslovi. Princip rada je sljedeći:

  1. Prvi zadatak je odgovoran za izradu sigurnosne kopije dnevnika transakcija na primarnom poslužitelju
  2. Drugi zadatak je odgovoran za distribuciju sigurnosnih kopija na svim primateljskim poslužiteljima
  3. Treći posao obnavlja zapisnike u sve baze podataka primatelja. Oporavak je dostupan u načinu bez oporavka ili u stanju pripravnosti.

Ovo je jednostavnija tehnologija, što se tiče zrcaljenja i uvijek uključeno. Dostava dnevnika koristi se kada:

  • Razlika podataka između primarnog i odredišnog poslužitelja je prihvatljiva. Standardni raspored za dovršavanje zadataka je svakih 15 minuta. Možete staviti manje, ali morate uzeti u obzir brzinu prijenosa podataka putem mreže i vrijeme za obnovu zapisnika.
  • Želite pristupiti primateljskim bazama podataka za pristup čitanju. To je moguće ako je način oporavka postavljen u pripravno stanje. Ali imajte na umu da možete pristupiti bazi podataka samo između obnove zapisnika.

Replikacija u Microsoft SQL Serveru: pregled metoda

  • Dostupno u izdanjima: Standardni i web - ograničeni, Enterprise
  • Djeluje na razini: Objekt baze podataka
  • Verzija SQL servera: SQL Server 2000 i noviji
Pogledajte pregled izdanja i licenciranja značajki SQL Server..

Postoje različite vrste replikacije:

  • Transakcijska replikacija
  • Peak-to-peer transakcijska replikacija
  • Replikacija snimke
  • Spajanje replike

Postoje još dvije topologije zasnovane na transakcijskoj replikaciji:

  • Dvosmjerna transakcijska replikacija
  • Obnovljive pretplate za transakcijsku replikaciju (značajka podržana u verzijama SQL Server 2012 do 2016)

Replikacija se može koristiti u različite svrhe, ali uglavnom se koristi za iskrcavanje OLTP poslužitelja odabranim upitima i za veliku dostupnost. Iako Microsoft ne pozicionira replikaciju kao sredstvo za postizanje velike dostupnosti, on možda dobro ispunjava ovu ulogu..

Napomena: Postoje 3 vrste poslužitelja u modelu replikacije SQL Server:

  • izdavač (izdavač) - poslužitelj koji objavljuje članke
  • distributer (distributer) - poslužitelj koji distribuira članke na pretplatničke poslužitelje
  • pretplatnik (pretplatnik) - poslužitelj koji prima distribuirane članke

Promjene koje se događaju u odabranim objektima izdavača prvo se šalju distributeru, a zatim distributer te izmjene šalje pretplatnicima..

Razmotrimo 4 osnovne vrste replikacije

Transakcijska replikacija

Ova vrsta replikacije koristi se za replikaciju podataka "u stvarnom vremenu", odnosno podaci o pretplatnicima pojavljuju se gotovo odmah, uzimajući u obzir vrijeme kopiranja podataka putem mreže.

Transakcije izdavača šalju se distributeru, distributer te transakcije šalje pretplatnicima. Distributer može pretplatiti podatke pretplatnicima odmah, ili prema određenom rasporedu. Subjekti pretplatnici koji sudjeluju u replikaciji trebaju se koristiti samo za pristup samo za čitanje, u protivnom će podaci postati nedosljedni i doći će do sukoba..

Peak-peer transakcijska replikacija

Peer-to-peer ili peer-to-peer transakcijska replikacija slična je uobičajenoj transakcijskoj replikaciji, ali može raditi s više poslužitelja odjednom.

Peer-to-peer replikacija može se nazvati master-master replikacijom (za normalnu transakcijsku replikaciju, to bi bilo master-slave). Razmotrite dijagram Microsoftove dokumentacije

Svaka instanca SQL Servera koja sudjeluje u peer-peer replikaciji može upravljati operacijama čitanja i pisanja. Također u ovoj vrsti replikacije pruža se mehanizam za rješavanje sukoba kada ista operacija dođe na više poslužitelja istovremeno, na primjer, zahtjev za ažuriranje. Ali čak i ako se ima u vidu ovaj mehanizam, ne preporučuje se pisanje podataka u više primjeraka istovremeno..

Ova vrsta replikacije može se koristiti za uravnoteženje opterećenja, uključujući operacije ažuriranja / umetanja / brisanja..

Replikacija snimke

Ovo je posebna vrsta replikacije koja ne prati promjene podataka o izdavaču, već prema određenom rasporedu stvara snimku i šalje je pretplatnicima (putem distributera).

Replikacija snimke ne primjenjuje sve transakcije uzastopno, kao što je slučaj s isporukom dnevnika i transakcijskom replikacijom, već kopira podatke putem bcp-a.

Ovu vrstu replikacije vrijedi upotrijebiti kada:

  • Podaci se rijetko mijenjaju
  • Dozvoljena razlika u podacima između izdavača i pretplatnika
  • Velika količina promjena u kratkom vremenskom razdoblju

Spajanje replikacije

Mehanizam je sličan replikacijskoj replikaciji peer-to-peer, ali postoji nekoliko važnih razlika:

  • Replikacija spajanja može imati samo jednog izdavača i nekoliko pretplatnika kada su, kao i kod peer-peer replikacije, sve instance jednake jednakoj drugoj (istovremeno su i izdavači i pretplatnici)
  • U replikaciji spajanja, pretplatnici mogu primati različite podatke kada svi poslužitelji imaju iste podatke u peer-to-peer replikaciji
  • Replikacija spajanja može riješiti sukobe, peer-to-peer - ne
  • Peer-peer replikacija dostupna je samo u izdanju Enterprise

Replikacija spajanja treba koristiti kada trebate objediniti podatke..

Dvosmjerna transakcijska replikacija i nadograđene pretplate na transakcijsku replikaciju

Dvosmjerna transakcija je topologija u kojoj je normalna transakcijska replikacija konfigurirana za repliciranje istih podataka. Parametar @loopback_detection u sp_addsubscription mora biti postavljen na TRUE

Obnovljive pretplatne transakcije replikacije su slične replikaciji spajanja. Ova je tehnologija prilično brzo zastarjela, jer se praktički ne primjenjuje i zamjenjuju je drugim vrstama replikacije..

Uvijek na grupama dostupnosti na SQL Serveru

  • Dostupno u izdanjima: standard (s ograničenjima), Enterprise (
  • Djeluje na razini: baze podataka
  • Verzija SQL servera: SQL Server 2012 i noviji

U izdanju SQL Server 2012. pojavile su se skupine Always On (dostupnost), što je alternativa (iako je vjerovatnije razvoj) tehnologije zrcaljenja baze podataka..

Grupe za stalno dostupne temelje se na Klaster prelaska u sustavu Windows Server, ali počevši od verzije 2017. postalo je moguće koristiti Uvijek uključen bez WSFC-a. Uvijek uključeno slično je zrcaljenju baze podataka (sinkroni i asinhroni način rada), ali može biti do 8 sekundarnih replika. Always On podržava automatsko prebacivanje (tj. Kada se sruši primarna instanca klastera, WSCF odabire novu primarnu repliku i preusmjerava zahtjeve za pisanje na nju).

Svaka instanca u grupi dostupnosti može biti bilo koja osnovni (glavni) ili sporedan (Sekundarni). Sekundarne replike mogu biti ili u samo za čitanje, bilo u Nema oporavka. Svaka instanca u grupi dostupnosti sadrži kopije baza podataka grupe dostupnosti. Imajte na umu da će u sinkronom načinu brzina transakcija ovisiti o "najsporijem" članu grupe za dostupnost.

U osnovnom postavljanju, Always On je jednostavan, nakon instaliranja SQL Servera sve se može konfigurirati pomoću čarobnjaka (WSFC putem priključka u Windows-u i pristupanje samim grupama putem čarobnjaka u SSMS-u). Ali s velikim brojem poslužitelja i složenom infrastrukturom morat ćete dobro proučiti dokumentaciju.

Preporučuje se korištenje Uvijek uključeno u istim situacijama tijekom zrcaljenja ili ako vam je potrebno uravnoteženje odabranih upita. Također se preporučuje izrada sigurnosnih kopija iz sekundarnih replika, ovo je još jedna aplikacija skupina dostupnosti.

Za više informacija o Always On Dostupnosti u SQL Serveru pogledajte.

SQL Server nudi širok izbor rješenja raspoloživosti podataka. Ako imate Enterprise Edition i SQL Server 2012 (i novije verzije), bolje je koristiti Always On. Replikacija se može koristiti za učitavanje OLTP sustava s odabranim upitima i za djelomično suvišnost (iako je peer-to-peer replikacija pozicionirana kao kompletno sredstvo za suvišnost podataka). Prijenos dnevnika transakcija i zrcaljenje baze podataka mogu se koristiti u starijim verzijama SQL Servera ili ako vas uvjeti prisiljavaju na korištenje tih tehnologija..

Imajte na umu da sve gore navedene tehnologije visoke dostupnosti u SQL Serveru ne zamjenjuju sigurnosne kopije..