Prezentare generală a instrumentelor de sincronizare baze de date mysql

Prezentare generală a instrumentelor de sincronizare baze de date mysql

Atunci când dezvoltăm aplicații web moderne, este dificil să subestimezi beneficiile utilizării sistemelor de control al versiunilor. În ceea ce privește fișierele produsului în curs de dezvoltare, suntem capabili să urmărim orice etapă de producție în orice moment, începând cu prima revizuire. Instrumentele care ne ajută în acest moment, sunt popularizate, sunt considerate o formă bună în dezvoltarea și, în multe cazuri, producția de succes fără aplicarea lor este imposibilă în principiu. Și ce oportunități avem atunci când devine necesar să urmăriți modificările nu în fișiere, ci în bazele de date ale proiectului? Sub tăiere voi împărtăși informații despre facilitățile existente pe care trebuia să le citesc.






1. PHP SQLDIFF, a.k.a. SQLDiff

Un script PHP care vă permite să vedeți diferențe complete (atât în ​​structură, cât și în date) între orice tabele din două baze de date. Instrumentul nu are niciun fel de instrumente pentru sincronizarea automată a structurii sau datelor - sunt furnizate numai informații vizuale. Unul dintre dezavantajele semnificative - abilitatea de a se conecta numai la baza de date, care poate fi accesată direct (nu prin tunelul ssh). Viteza lentă de lucru pe cantități mari de date (care lucrează prin modulul de pere, care nu strălucește nici noutatea, nici viteza). Consider că acest script este foarte util pentru dezvoltator în cazurile în care este necesar să se înțeleagă și să se vizualizeze diferențele dintre diferite tabele - are o interfață convenabilă, configurare rapidă. Caracterizați mai mult ca un instrument util de buzunar trebuie să fie identică pentru înțelegerea rapidă a tabelelor înclinării, care, în teorie, decât ca un instrument serios care poate fi folosit pentru a automatiza procesul de sincronizare.

2. LICHIFASA

O migrație structurată bazată pe baze de date multifuncționale și ușor de utilizat pe java. Eu văd acest plus, dacă este folosit împreună cu Jenkins.
Exemplu (host1 este serverul din care doriți să copiați structura bazei de date; host2 este serverul la care doriți să transferați structura din host1):

Formează modificări în format xml, a căror migrare ulterioară determină structura bd pe host2 să fie identică cu host1.

După migrare, este logic să verificați din nou faptul că setul de modificări este gol.
Există nu numai sincronizarea tabelelor și a câmpurilor, dar și a indexurilor, cheilor. Nu sunt sigur de procedurile stocate - nu am verificat-o.







Modificarea poate fi formată și în alte formate - în sql, în json (nu numai în xml). Formarea modificărilor în sql va fi utilă în cazurile în care mijloacele de altă utilitate sunt utilizate pentru migrare.

3. schemasync

Un instrument pentru sincronizarea structurii bazei de date. Pentru a lucra, aveți nevoie de Python și interfața corespunzătoare pentru mysql.
Dintre diferențele semnificative cu lichidază:
- schemasync chenzhset creează nu numai, dar, de asemenea, fișierul, permițând schimbări retroactivitate (cel mai important și cel mai valoros avantaj, deși, în opinia mea, nu elimină necesitatea de a face copie de siguranță înainte de sincronizare)
- lichidarea permite nu numai recepționarea unui chenzset, ci și pornirea imediată a migrației utilizând utilitatea în sine. Poate că nu este o caracteristică a ucigașilor, dar este încă convenabilă și utilă

4. Sincronizarea datelor MAATKIT

Apendicele 1:

Aceste instrumente au un dezavantaj major, care este mai puțin important în deploe pe producția de server, dar reamintește în mod constant despre ei înșiși în procesul de dezvoltare - viteza de execuție. Inițial, a existat o sarcină de a construi un mecanism care să automatizeze integrarea actuală între siturile din lanțul "dezvoltatori - servere de testare - producție în etape". Pornind (în lanțul de mai sus) de la serverele de testare, totul este destul de simplu - doar timpul este necesar din resurse, sarcina este minimă. În cazul în care procesul se realizează automat, pe baza unui program pe timp de noapte, atunci nu contează cât de mult timp a fost îndeplinită, și că, pentru a nu crea o sarcină și că, în dimineața sarcina a fost finalizată. Dacă sincronizarea este regulată, listele de modificări nu vor fi niciodată excesiv de mari, iar sarcina va fi neglijabilă. Un alt lucru este când vine vorba de sincronizarea site-ului dezvoltatorului cu serverul de testare. În acest caz, sincronizarea, care durează o oră, va fi întotdeauna vizibilă și va crea neplăceri. Aceste circumstanțe și au determinat numărul 5 al instrumentului de sincronizare:

5. "Sincronizare semiautomatică".

În utilitățile descrise mai sus, este vorba de formarea unei liste de diferențe care este o parte mare (puțin mai mică decât total) a timpului. Aplicați apoi scriptul pentru a elimina diferențele - acțiunea este destul de rapidă (din nou, nu o axiomă, dar în majoritatea cazurilor în procesul de dezvoltare). Acest lucru conduce la ideea că puteți lucra la formarea manuală a unei liste de diferențe și la automatizarea aplicației sale. Moduri evidente au fost doar două:
a) în orice produs, există metode de lucru cu baza de date - nu contează dacă folosiți un cadru popular sau produsul dvs. are un kernel de casă. Este suficient să înregistrați toate interogările necesare (în cazul în care numai interesele de structură - DDL, dacă datele sunt, de asemenea, actualizate și șterse, de exemplu) în propriul depozit;
b) în cazul în care cadrul dumneavoastră (și chiar mai mult acest păcat CMS) nu este în măsură să se extindă metodele unei clase, de lucru cu baza de date și nici măcar nu are o tratare a evenimentului în metoda de a face solicitarea la baza de date, puteți analiza jurnalul tuturor cererilor (sperăm, o oportunitate de a include acest jurnal are toate software-ul țintă) și să remedieze numai acțiunile necesare din acest jurnal.

Această „sincronizare semi-automat“ cu crearea propriului său jurnal al modificărilor are dreptul de a exista, dar ar trebui să încurajeze dezvoltator pentru a efectua cu ajutorul unor instrumente de testare menționate mai sus, după sincronizare, acest tabel face același lucru (chiar și în cazul în care se efectuează cel puțin o noapte programată pentru a se asigura că omul factorul nu și-a făcut propriile ajustări la sincronizarea datelor).

Apendicele 2:

Aplicație de succes și nu uitați să efectuați copii de siguranță!







Articole similare

Trimiteți-le prietenilor: