Diverse resurse precum https://mariadb.com/kb/en/backup-and-restore-overview/ sau https://www.thegeeksearch.com/how-to-backup-and-restore-mariadb-database/ descrieți cum să faceți backup pentru toate datele unei instanțe MySQL. Cu toate acestea, toți vorbesc despre întregul set de date din toate bazele de date.
Aș dori să obțin instantanee pe bază de date (de exemplu, cu LVM, KVM, qcow2 etc). Totuși, acest lucru s-ar putea să nu fie posibil, deoarece am înțeles că mariadb
are unele fișiere partajate în toate bazele de date.
În visele mele: Imaginați-vă situația în care aplicațiile A și B se conectează ambele la un singur mariadb
instanță care deține ambele baze de date corespunzătoare A și B. Aplicația A rulează acum o migrare critică și vreau să efectuez un instantaneu rapid (fizic) înainte de aceasta. mysqldump
mi-ar lua ore întregi, așa că presupunem că am reușit cumva să am mariadb
scrieți toate informațiile referitoare la baza de date A (de ex. a.idb
) într-un loc special, cum ar fi un volum LVM. Pur și simplu îmi blochez tabelele, fac instantaneu acel volum, deblochez tabelele și ajung să obțin o copie uluitor de rapidă a datelor mele, bazată pe COW. Îmi conduc migrația, explodează. Acum instantaneul este restaurat și, dacă ar funcționa, aș reveni cu datele mele originale în câteva secunde. Aplicația B nu este afectată.
Acum asta nu este realitatea așa cum pare. Există câteva informații despre recuperarea bazelor de date din a.idb
și alte fișiere, de ex. https://symplecticgames.wordpress.com/2018/04/05/recovering-mysql-database-from-frm-and-idb-files/ dar asta nu este chiar o lucrare de intrare și ieșire, așa cum ar fi restaurarea instantanee ideală descrisă mai sus. Descrierea implică chiar oprirea întregului mariadb
proces.
O soluție evidentă ar fi să avem un separat mariadb
proces cu propriul set de date complet într-un loc special diferit, cum ar fi un volum LVM. Cu toate acestea, acest lucru aduce complexitatea gestionării unui număr potențial foarte mare de servere MySQL care rulează toate în același timp. Deși acest lucru ar putea fi automatizat, poate să nu fie ideal.
Există vreo posibilitate de a realiza sau aproxima lumea viselor descrisă mai sus?