Un ghid complet despre strategiile de migrare a tehnologiei: (Partea 3 – Migrarea bazelor de date)
Publicat: 2020-12-25Imaginați-vă un scenariu în care cumpărați un apartament nou, sunteți împachetate pentru a vă muta și ați planificat cu atenție procesul. Sunteți gata să vă mutați în noua ta casă, apoi dintr-o dată îți dai seama că există o problemă. Mobilierul și artefactele nu se potrivesc bine cu noul tău apartament.
Cum te-ai simți dacă ar trebui să-ți arunci toată mobila și să începi de la sol? Luând această analogie mai departe, considerați noul apartament ca noua dvs. bază de date și mobilierul ca date. Suntem siguri că datele ar fi mult mai importante decât mobilierul pentru afacerea dvs. și, prin urmare, ați dori să păstrați fiecare parte din ele în timp ce intenționați să migrați.
Ca o continuare a seriei noastre de migrare a tehnologiei, în acest blog, vom încerca să descoperim elementele de bază ale migrării bazei de date (DBM), ceea ce ar trebui să înțelegeți, să luați în considerare și să avem grijă în timpul efectuării migrării bazei de date.
De ce și când este necesară migrarea bazei de date?

Ca urmare a blogului nostru anterior privind migrarea aplicațiilor, articolul de astăzi se concentrează pe migrarea bazei de date (cunoscută și ca migrare a schemei), deoarece este una dintre cele mai importante migrări care se ocupă în principal cu selectarea, extragerea, transferul/actualizarea datelor dintr-un cadru de bază de date către o alta.
În esență, nevoia de migrare a bazei de date poate fi specifică unei cerințe de afaceri sau chiar pentru a satisface cele mai recente politici de reglementare multiple instituite de diverse autorități de reglementare. Deși nu există situații definite când este nevoie de DBM, am enumerat câteva situații în care acest lucru este inevitabil:
- Un motiv comun este să vă mutați sistemul învechit într-un sistem care îndeplinește cerințele dvs. de afaceri și nevoile moderne de date. Tehnicile noi și moderne de stocare au devenit o necesitate în vremurile Big Data.
- Anumite autorități de reglementare au făcut obligatoriu ca datele să rămână doar într-o anumită geografie. Prin urmare, este necesar ca datele distribuite să fie migrate într-o singură locație.
- Unele companii preferă să mute o bază de date on-premise într-o bază de date cloud. Acest lucru de obicei economisește infrastructura și resursele de expertiză necesare pentru a susține datele și, de asemenea, face sistemele mai rapide.
- Migrarea către o nouă platformă asigură integritatea completă a datelor. Reduce costurile de stocare și media, ceea ce are ca rezultat îmbunătățirea semnificativă a rentabilității investiției.
- Multe companii moderne doresc să-și păstreze toate datele într-un singur loc. Astfel datele sunt accesibile tuturor departamentelor companiei.
Migrarea sistemului de baze de date către o nouă platformă reduce întreruperile care apar în operațiunile zilnice de afaceri. Acest lucru se poate face cu eforturi manuale minime dacă selectarea unei noi platforme de bază de date se face cu înțelepciune.
Tipuri de baze de date
Înainte de a continua cu migrarea bazei de date, să aruncăm o privire la diferitele tipuri de baze de date:

- Baza de date relațională - Bazele de date relaționale sunt cunoscute ca calii de bătaie ai industriei bazelor de date. Aceste baze de date sunt clasificate printr-un set de tabele. Tabelele constau din rânduri și coloane în care rândul conține o instanță de date și coloana conține o intrare de date pentru o anumită categorie. SQL – Structured Query Language este o interfață de programare standard pentru baza de date relațională.
- Baza de date distribuită – După cum sugerează și numele, datele sunt distribuite pe diferite site-uri ale oricărei organizații. Legăturile de comunicare sunt folosite pentru a conecta site-uri între ele. Acest lucru ajută la accesarea cu ușurință a bazei de date distribuite.
- Bază de date orientată pe obiecte – Acest tip de bază de date îmbină atributele bazei de date relaționale și ale programării orientate pe obiecte. Diverse elemente create în C++ și Java pot fi stocate în baze de date relaționale, cu toate acestea, o bază de date orientată pe obiecte este mai potrivită pentru ele.
- Baza de date NoSQL - Baza de date NoSQL poate analiza eficient date mari nestructurate stocate pe mai multe servere virtuale. În schimb, o bază de date relațională nu poate gestiona eficient unele performanțe de date mari. Bazele de date NoSQL pot gestiona cu ușurință astfel de cazuri și sunt utilizate pentru un set mare de date distribuite.
- Cloud Database – Cloud Database este un mediu virtual care oferă flexibilitatea de a plăti pe bază de utilizare. Utilizatorul trebuie să plătească doar pentru lățimea de bandă și capacitatea de stocare care se potrivește cerințelor sale.
- Baza de date grafice – În termeni simpli, un grafic este o colecție de noduri și margini. Baza de date Graph conține noduri care reprezintă entități, iar marginea descrie relațiile dintre acele entități. Este un tip de bază de date NoSQL și utilizează teoria graficelor pentru a mapa, stoca și interoga relațiile.
- Baza de date centralizată – Cu acest tip de bază de date, datele sunt stocate într-o singură locație centralizată. Baza de date conține în esență proceduri de aplicație care permit utilizatorilor să acceseze DB și din locații la distanță.
Abordări ale migrației bazelor de date
Migrarea datelor de la o platformă de bază de date la alta poate fi o sarcină crucială. Dacă migrarea este planificată într-un mediu LIVE, migrarea trebuie făcută cu maximă precauție. Trebuie să alegeți un timp convenabil de migrare înainte de a continua cu migrarea datelor. Sistemele live se confruntă adesea cu perioade de nefuncționare atunci când datele sunt transferate într-o nouă bază de date.
Există în principal două abordări pentru migrarea bazei de date:
Migrarea datelor Big Bang:
Această abordare este în cazul în care se alege să migreze întreaga bază de date dintr-o dată într-un interval de timp limitat. Deși migrarea datelor big bang pare mai puțin complexă, necesită timp de nefuncționare suficient pentru site-ul live. În plus, cu această abordare, o retragere completă a procesului de migrare ar putea să nu fie ușor de realizat în cazul în care migrarea eșuează în orice moment.
Trickle Data Migration
Cu această abordare, trebuie să împărțiți procesul de migrare în bucăți sau faze mai mici. Aproape ca o abordare agilă a migrației, dacă o singură fază eșuează, atunci doar acea fază trebuie să fie retrasă și procesul repetat. Cu toate acestea, migrarea datelor Trickle necesită foarte mult timp și, prin urmare, ar putea crește costul proiectului.
Diferite tipuri de migrație

DB relațional la DB relațional
Această abordare este cea mai simplă migrare. Există o mulțime de instrumente disponibile care efectuează acest tip de migrare destul de eficient, aproape 100% eficient.
DB relațional la DB non-relațional și invers
Această migrare este mai dificilă în comparație cu cea menționată mai sus. Deoarece DB relațional și DB non-relațional sunt fundamental diferite, este posibil ca migrarea lor să nu fie eficientă 100%. În esență, migrarea către DB non-relațional înseamnă sacrificarea proprietăților ACID (atomice, consistente, izolate și durabile) care garantează scalabilitatea unei baze de date.
Cu toate acestea, există mai multe instrumente gratuite disponibile care acceptă migrarea bazei de date de la DB relațional la non-relațional. Deși utilizarea lor nu este recomandată pe scară largă, deoarece aceste instrumente nu acceptă structura schemei sistemului și majoritatea par prea rigide pentru a adapta cerințele sistemului.
Deși există câteva sfaturi de bază de conversie pe care le putem reda pentru acest tip de migrare pe care le putem lua în considerare (pentru ușurință, să considerăm MySQL ca bază de date relațională și MongoDB ca bază de date non-relațională)

- Convertiți tipul de date MySQL String în String în MongoDB. Acesta poate include char, varchar, blob, text etc.
- Convertiți tipul de date numerice MySQL în Number în MongoDB. Aceasta poate include int, float, decimal, double etc.
- Convertiți tipul de date MySQL Date în Date în MongoDB. Aceasta poate include data, anul, marcajul de timp etc.
- Convertiți tipul de date MySQL Bool și Boolean în Boolean în MongoDB.
- Puteți evalua alte cazuri în același mod.
Migrarea cu un model hibrid
Designul modelului hibrid integrează cele două modele de baze de date populare într-un singur cadru, atenuând în același timp dezavantajele fiecărui sistem. De exemplu, putem merge întotdeauna cu o abordare hibridă în care putem exploata o bază de date relațională pentru operațiuni mai puțin solicitante, în combinație cu o bază de date non-relațională pentru inițiative care consumă intens date.
Copia de rezerva a datelor
Planificarea strategiei de migrare înainte de execuție poate asigura un proces de migrare fără probleme. Acestea fiind spuse, trebuie să avem întotdeauna un Plan B. Presupunând un scenariu cel mai rău caz în care există o anumită pierdere de date sau datele sunt corupte în timpul executării migrării; trebuie să fiți pregătit să restabiliți datele la starea inițială înainte de a încerca din nou. Acesta este motivul pentru care Backup-ul datelor este un pas extrem de imperativ în timpul DBM (Database Migration). Deci, ce opțiuni există pentru a asigura o copie de rezervă sigură a datelor, haideți să aprofundăm.

Backup în cloud

Una dintre cele mai eficiente și mai sigure metode de a vă proteja inițiativa de migrare este să executați o copie de rezervă în stocarea în cloud. În esență, atunci când faceți o copie de rezervă a datelor în stocarea în cloud, fișierele sunt stocate în afara site-ului. Acest lucru elimină vulnerabilitățile hardware locale care pot cauza probleme. Deci, de ce o copie de rezervă în cloud?
- Back-up-urile în cloud sunt accesibile, deoarece trebuie să plătiți numai pentru utilizare.
- O copie de rezervă în cloud este sigură, deoarece oferă criptare end-to-end.
- Permite recuperarea ușoară în caz de dezastru și restaurarea datelor
- Opțiunile robuste de backup în cloud includ întreaga copie de rezervă a imaginii sistemului. Prin urmare, nu trebuie să reinstalați sistemul de operare. Calculatoarele și serverele sunt restaurate la ultima versiune funcțională.
Software de partajare a fișierelor

Suitele de software precum Dropbox cresc pentru a satisface nevoile utilizatorilor lor. Dropbox menține versiuni ale fișierelor care pot fi restaurate atunci când este necesar. Similar cu backup-ul în cloud, această opțiune este accesibilă și fișierele sunt stocate în afara locației. Care sunt avantajele sale?
- Fișierele pot fi restaurate pe orice sistem din orice locație.
- Este gratuit și sprijină colaborarea.
- Foarte sigur (stocarea în cloud criptează fișierele în tranzit)
- Capacități de lucru offline
Un dezavantaj, însă, este că restaurarea nu este automatizată. Trebuie să copiați și să lipiți datele în structura directorului de partajare a fișierelor pentru a salva datele. Fișierele trebuie să se afle într-o structură definită, altfel nu vor fi făcute copii de rezervă. Dacă fișierele se află într-un folder sau director partajat, probabil că veți avea nevoie de mai multă lățime de bandă pentru a face copii de rezervă ale acestor fișiere.
În general, există și alte medii disponibile pentru backup, cum ar fi o copie de rezervă pe o unitate flash sau un hard disk extern. Dar aceste opțiuni nu sunt recomandate, deoarece nu sunt complet sigure în comparație cu software-ul de backup în cloud sau de partajare a fișierelor. De exemplu, orice deteriorare fizică a unui hard disk poate cauza pierderi de date. În plus, sunt mai vulnerabili și mai susceptibili la atacuri ransomware și cripto-virusuri.
Cum să vă asigurați că datele sunt sigure?
Când efectuați migrarea datelor, trebuie să vă asigurați că datele sensibile nu sunt încălcate sau modificate. Dacă migrarea merge prost, poate duce la consecințe mai mari și poate duce la scurgeri de date sau pierderi de date, cum ar fi exemplele citate aici în 2020.
Din păcate, scurgerile de date pot cauza prejudicii reputației clientului, pot duce la pierderea afacerii și a clienților; sau, în unele cazuri, poate provoca acțiuni în justiție. Pentru a evita toate astfel de consecințe, trebuie să întocmiți în prealabil un plan de securitate ținând cont de strategia de migrare.
- Pentru început, accesul la server de încredere și sigur și accesul la date ar trebui să fie pe lista dvs. de priorități.
- Măriți numărul de permisiuni necesare pentru transferul de date. În organizațiile mai mari, departamentele de securitate limitează accesul la servere și definesc migrarea datelor între serverele implicate.
- Datele prezintă un risc ridicat atunci când sunt implicate mai multe părți. Așadar, evitați transferul între părți prin intermediul dispozitivelor portabile de stocare sau prin e-mailuri. În astfel de cazuri, datele pot fi ușor compromise.
- Pentru a asigura accesul, stocarea și preluarea în siguranță a datelor, trebuie să practicați în mod constant criptarea și decriptarea. Puteți utiliza algoritmi de criptare hibridă pentru a asigura securitatea maximă a datelor. Dar acest lucru nu este recomandat tuturor. Dacă migrarea eșuează, atunci datele vor fi aglomerate și ar putea duce la coruperea sau pierderea datelor.
Pentru a asigura o migrare sigură, evitați utilizarea instrumentelor primitive. Utilizarea instrumentelor primitive ar putea să vă slăbească sistemul și să lase lacune pentru accesarea hackerilor. Trebuie să utilizați instrumente robuste pentru migrarea datelor, care sunt specifice funcțional.
Procesul de migrare a datelor
Migrarea datelor este în principal un proces în mai multe faze, iar următorii pași ar trebui urmați pentru a evita pierderea datelor și pentru a asigura o migrare sigură a bazei de date.
- Evaluare :
- Colectați analiza cerințelor de afaceri și definiți obiectivul cheie pe care trebuie să-l atingeți cu DBM.
- Definiți domeniul de aplicare
- Efectuați un profil extins de date:
- Examinați datele sursă, formatul datelor, revizuiți structura schemei, conținutul și relațiile dintre instanțele de date
- Înțelegeți sistemul de destinație
- Identificați părțile interesate
- Bugetează întreaga activitate
- Copia de rezerva a datelor
- Asigurați-vă că datele pe care le migrați sunt copiate în siguranță. Se recomandă utilizarea unui backup în cloud.
- Asigurați-vă că destinația este curată și protejată de orice atac de date.
- Disponibilitatea resurselor :
- Disponibilitatea timpului pentru migrare și timpul de inactivitate pentru sistemul de destinație.
- Asigurați-vă că resursa umană angajată are abilitățile corecte.
- Identificați instrumentul și scripturile potrivite.
- Execuția migrației datelor :
- Procesul de migrare poate include scripting, instrumente ETL sau alte instrumente comparabile pentru a muta datele.
- În momentul migrării, vei transforma datele, vei normaliza tipurile de date și, în cele din urmă, vei verifica eventualele erori.
- Testare și reglare :
- Echipa și echipa client trebuie să fie foarte siguri că toate datele sunt migrate corect
- Deci, verificați dacă datele sunt mutate corect, dacă datele sunt complete și asigurați-vă că nu există valori lipsă.
- De asemenea, asigurați-vă că datele sunt valide și nu conțin valori nule.
- În cazul în care există o nepotrivire a datelor, ar trebui să existe o retragere a datelor și întregul proces ar trebui repornit.
- Audit
Odată ce noua bază de date este activă, se poate configura un sistem pentru a audita datele. Acest lucru va asigura acuratețea migrării bazei de date și va atrage atenția asupra datelor incomplete și inexacte.
Riscuri potențiale legate de migrarea bazei de date

Migrarea bazei de date este o procedură extrem de complicată și vine cu riscul și incertitudinea acesteia. Le puteți depăși oricând printr-o planificare și execuție adecvată. Riscurile care pot fi întâlnite sunt:
- Sisteme sursă învechite: aici, sursa de date poate fi învechită, redundantă, învechită sau trivială
- Arhitectură diferită a bazei de date: în acest scenariu, bazele de date sursă ar putea fi localizate în mai multe locații și ar putea avea arhitecturi total diferite una de cealaltă, dar baza de date de destinație trebuie să fie sincronizată.
- Timp de nefuncționare extins: Există cazuri în care migrarea planificată durează mai mult decât se aștepta și, din această cauză, există un timp de nefuncționare extins pentru sistem. Acest lucru ar putea cauza pierderi de afaceri pentru clientul final și ar putea să nu fie acceptabil.
- Pierdere potențială de date: nu toate pierderile de date pot fi identificate în timpul fazei de testare. Unele cazuri de pierdere de date pot fi identificate în cele din urmă atunci când sistemul primește suficient trafic.
Migrarea dintr-o bază de date în timp real: pentru orice site web cu tranzacții mari, migrarea bazei de date este întotdeauna dificilă, deoarece au loc actualizări constante de date; iar migrarea datelor în direct și în timp real nu este posibilă. Trebuie să existe un timp de nefuncționare pentru ca orice migrare să aibă loc.
Observații finale
Puteți oricând să solicitați îndrumare de la experți terți cu privire la migrarea bazelor de date. Suntem Creole Studios, specializați în migrarea bazelor de date și am fi bucuroși să vă ajutăm sau să vă consultăm în orice astfel de efort. Rămâi atașat pentru al patrulea și ultimul blog al seriei de migrare a tehnologiei.