Pagina 3 din 8
Oglindirea bazelor de date
Înainte de a începe o discuție detaliată despre oglindirea bazei de date, trebuie să definiți terminologia.
Serverul primar este serverul de sursă de producție care găzduiește baza de date, care trimite în mod constant jurnalele de tranzacții către serverul oglindă și baza sa de date.
Mirror server - server-receptor, care găzduiește o copie de rezervă a bazei de date. Copia oglindă este sincronizată constant cu baza de date a serverului primar.
Rolul indică dacă serverul respectiv este serverul primar sau oglindit.
Un server de monitorizare este un server care monitorizează funcționarea serverelor primare și a oglinzilor și poate porni procesul de failover automat.
Partener - server primar sau oglindă.
Într-un mediu tipic, serverul principal este creat în baza de date a serverului principal, care este apoi restaurat pe serverul de oglindă (a se vedea Figura 2). După aceea, pe serverul principal, trebuie să configurați oglindirea: fie în fereastra de proprietăți a bazei de date a serverului principal în mediul SQL Server Management Studio (SMSS), fie folosind scripturile T-SQL.
Figura 2 Arhitectura de oglindire a bazei de date
Atunci când clienții efectua noi tranzacții, serverul principal le deține în baza sa de date și, astfel, furnizează înregistrările jurnalul bazei de date a jurnalului de tranzacții de bază repetabilă a operațiunilor sau a datelor de server oglinda din coada jurnal, în cazul în care acestea sunt preluate și aplicate bazei de date în oglindă. Imediat ce tranzacția este finalizată și fixată în baza de date a serverului oglindă, serverul principal primește un răspuns informând despre comiterea tranzacției pe serverul oglindă. Înainte de a primi o confirmare de la serverul oglindă, noile tranzacții care ajung la sistem sunt confirmate de serverul principal.
În cazul unei defecțiuni, serverul oglindă poate porni procedura de schimbare automată a resurselor, iar serverul martor acceptă acest proces prin determinarea dacă baza de date a serverului de bază este disponibilă. Dacă apare un eșec, trebuie să remediați problema pe serverul care este acum un partener oglindit înainte de a putea deveni din nou principal. Odată ce problemele pe partenerul oglindă sunt rezolvate, migrarea către serverul partenerului oglindă începe, iar bazele de date sunt sincronizate din nou. După terminarea sincronizării, sesiunea de mirroring poate fi repornit.
Modul de mirror descris este un mod de securitate ridicat care oferă operațiuni tranzacționale sincrone prin includerea securității tranzacționale. Acest mod nu necesită un server de martor, deoarece avantajele failover-ului automat nu sunt utilizate în caz de eșec. Toate întreruperile de resurse sunt pornite manual. Există, de asemenea, un alt mod de oglindire, care asigură executarea operațiunilor tranzacționale sincrone. Acesta este un mod de disponibilitate înaltă. Aceasta necesită nu numai includerea securității tranzacționale, ci și utilizarea pentru failover automat atunci când serverul martor nu reușește.
Cel de-al treilea și ultimul mod de reflecție este un mod de înaltă performanță. În acest mod, securitatea tranzacțională trebuie să fie dezactivată, ceea ce permite să se sprijine operațiile asincrone. Acesta, la rândul său, permite partenerului principal să efectueze tranzacții fără să aștepte înregistrarea tranzacției în baza de date a serverului oglindă. Modul de înaltă performanță nu necesită configurarea unui server de martori.
Rețineți că atunci când oglindirea este utilizată atât pe serverele primare, cât și pe cele oglindite, trebuie să fie instalată aceeași ediție SQL Server. Acest lucru nu se aplică unui server de mărturii pe care se poate instala versiunea SQL Server Express Edition. În plus, este important ca baza de date primară a serverului să fie în modul de recuperare completă.
Oglindirea bazelor de date poate fi o opțiune bună pentru companie, care depinde de cerințele aplicațiilor și datelor. Cu toate acestea, pentru a obține performanțe optime, trebuie luați în considerare mai mulți factori. De exemplu, cât de mare este intensitatea tranzacției a sistemului sau cantitatea de date care se schimbă? Atunci când decideți dacă să reflectați o bază de date, este foarte important să determinați dacă există suficientă lățime de bandă și viteză de rețea pentru a transfera cantitatea potrivită de date și pentru a gestiona numărul disponibil de tranzacții. În plus, este necesar să se țină cont de sarcina crescută a conexiunii. Acest lucru este deosebit de important dacă serverul oglindă este localizat geografic în altă parte. Atunci când se determină existența unor constrângeri impuse de mediul înconjurător care ar putea interfera cu funcționarea eficientă a imaginii oglindite, o monitorizare preliminară a sistemului joacă un rol-cheie.
Figura 3 Expertul de configurare pentru oglindire
Văd toate aceste întrebări pe forumurile SQL Server, așa că în acest articol voi oferi o imagine de ansamblu asupra sistemului de înregistrare și de recuperare și va explica de ce aceasta este o parte integrantă a modulului de stocare SQL Server. Arhitectura jurnalului de tranzacții va fi luată în considerare și cum.
Dar acesta este singurul lucru care se poate face? Este posibil să se efectueze o monitorizare proactivă a performanței, o procedură de gestionare simplă care utilizează definiția parametrilor de bază ai sistemului, achiziționarea de standarde și monitorizarea continuă. În acest articol, voi vorbi despre cum să n.
Cu toate acestea, nu trebuie să faceți acest lucru. Există o alternativă foarte simplă care folosește ceea ce este cunoscut sub numele de blocuri hash sau chei hash. Ce este hash? Pe scurt, hash este un rezultat întreg al unui algoritm (cunoscut ca o funcție hash) aplicat unui șir dat.