8.1 Necesitatea unui backup al bazei de date
Ați învățat cum să creați scheme de baze de date, tabele, să le vizualizați. De asemenea, completați aceste tabele cu date și modificați-le. Acum trebuie să înveți cel mai important lucru - să faci copii de rezervă.
Baza de date este foarte ușor de spart. Faptul este că baza de date este de obicei într-o stare de schimbare constantă: ceva este salvat și adăugat în mod constant la ea.
Imaginați-vă că aveți o filă deschisă în browser și nu doriți ca informațiile din ea să se piardă. Sunteți de acord că, dacă decideți să nu îl închideți niciodată, atunci aceasta nu va fi cea mai bună opțiune. La urma urmei, browserul se poate îngheța, poate fi închis accidental, puteți pierde lumina sau puteți arde computerul. Windows poate instala o altă actualizare, dar nu știi niciodată ce.
Deci, baza ta de date este aceeași filă. Și este doar o chestiune de timp când ceva nu merge bine la următoarea scriere pe disc. Prin urmare, cu siguranță trebuie să învățați cum să faceți copii de rezervă.
A face copii de siguranță este ca și cum te speli pe dinți, companiile normale fac o copie de rezervă a conținutului fiecărei baze de date în fiecare seară. Și din moment ce hard disk-urile pot eșua și există incendii în centrele de date, backup-urile sunt de obicei stocate în 2-3 copii în centre de date din diferite părți ale lumii.
Există mai multe abordări pentru a crea o copie de rezervă.
Backup fișiere. Deoarece toate datele bazei de date sunt stocate pe disc ca un set de fișiere , cel mai simplu mod este să copiați pur și simplu aceste fișiere undeva. Sau mai întâi arhivați-o într-o arhivă, apoi copiați-o undeva.
Acesta este cel mai rapid mod de a face o copie de rezervă, dar necesită ca fișierele să nu se modifice în timp ce sunt copiate/arhivate. Baza de date trebuie să fie înghețată în timp ce copia este creată, altfel copia va fi strâmbă. La urma urmei, poate exista o situație în care unele dintre noile date să fie înregistrate în baza de date, iar unele nu sunt încă.
Backup sub formă de interogări SQL . După cum știți deja, adăugarea și modificarea datelor în baza de date a serverului SQL este întotdeauna reprezentată ca interogări SQL. Deci, puteți cere serverului SQL să salveze conținutul unui anumit tabel sau tabele într-un fișier sub formă de interogări SQL.
Această metodă este mai lentă decât cea anterioară, dar poate fi folosită pentru a transfera date între servere SQL de la diferiți producători.
De asemenea, nu toate datele trebuie să fie întotdeauna salvate. Adesea aveți o grămadă de informații de serviciu sau învechite în tabelele dvs. și puteți spune serverului SQL să nu le salveze.
De asemenea, pentru tabelele care stochează unele evenimente cu referire la timp, puteți pur și simplu să selectați astfel de evenimente pentru ultima zi și să le stocați doar.
Diverse utilitati . Companiile sunt dispuse să plătească mulți bani pentru a obține garanția că datele lor vor rămâne intacte și în siguranță. Prin urmare, diverse companii IT au început să ofere soluții pentru toate ocaziile. De exemplu, există programe care pot face backup de baze de date sub formă de fișiere și, în același timp, nu necesită ca aceste fișiere să nu se modifice.
De exemplu, puteți instala drivere speciale în sistemul de operare și puteți urmări când, ce și unde s-a schimbat.
8.2 Copiere de rezervă a bazei de date
Workbench este excelent la exportul și importul de date din bazele de date cu care lucrează. Pentru a face acest lucru, trebuie doar să apăsați elementul de meniu: Server-> Data Export
. Și vei vedea ceva de genul:
![](https://cdn.codegym.cc/images/article/3bc1564d-b5cb-4378-9968-570697e9603a/1024.jpeg)
Acum să adăugăm câteva explicații:
![](https://cdn.codegym.cc/images/article/821a37d4-c6f3-4ccf-80bf-4873f3d8d061/1024.jpeg)
Ordinea este aceasta:
- Mai întâi, selectați schema sau schemele care vor fi exportate.
- Apoi in dreapta specificam tabelele pentru backup.
- În continuare, trebuie să alegem exact ce vom exporta:
- numai date;
- numai structura (tabelele vor fi, dar goale);
- date și structură.
- Alegeți cum să salvați datele:
- câte un fișier pentru fiecare tabel;
- un singur fișier pentru toate tabelele.
- De asemenea, puteți adăuga codul de creare a schemei în partea de sus a fișierului. Acest lucru este util atunci când transferați date între diferite SGBD.
8.3 Copiere de rezervă a schemei tabelului
Să facem copii de rezervă numai pentru scheme, fără datele reale.
Am selectat Dump Structure Only și am făcut clic pe Start Export.
![](https://cdn.codegym.cc/images/article/18f4743c-0edb-468b-8408-52f59c75a20f/1024.jpeg)
Și asta am găsit în fișierul pe care l-a făcut Workbench.
--
-- Table structure for table `user`
--
DROP TABLE IF EXISTS `user`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `user` (
`id` int(11) NOT NULL,
`name` varchar(100) DEFAULT NULL,
`level` int(11) DEFAULT NULL,
`created_date` date NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
Așa e, aceasta este schema tabelelor noastre, dacă pot spune așa despre un singur tabel.
8.4 Copiere de rezervă a datelor
Acum să facem copii de rezervă numai pentru datele, dar fără structura schemei.
Să selectăm Dump Data Only și să vedem ce ne oferă:
![](https://cdn.codegym.cc/images/article/b81bb769-5767-4f8a-9a45-bf36e59746e2/1024.jpeg)
Și asta am găsit în fișierul pe care l-a făcut Workbench.
--
-- Dumping data for table `user`
--
LOCK TABLES `user` WRITE;
/*!40000 ALTER TABLE `user` DISABLE KEYS */;
INSERT INTO `user` VALUES
(1,'Ivanov Ivan',40,'2022-05-11'),
(2,'Petrov Nikola',1,'2021-05-01'),
(3,'Sidroov Vitaly',8,'2022-05-12');
/*!40000 ALTER TABLE `user` ENABLE KEYS */;
UNLOCK TABLES;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
Da, foarte asemănător cu adevărul. De asemenea, vedem aici un cod special care blochează tabelul de utilizatori. Acest lucru se face astfel încât să puteți executa pur și simplu acest script SQL: conține toate instrucțiunile care vor permite oricărui server SQL să restaureze corect datele.
8.5 Implementarea unei copii de rezervă
Și, în sfârșit, ultimul lucru este restaurarea bazei de date dintr-o copie de rezervă. Această acțiune este foarte simplă, dar utilă.
Să presupunem că vreau ca toți studenții mei să aibă o anumită bază de date, astfel încât să puteți învăța cum să scrieți interogări pe ea. Apoi vă voi oferi doar un link către fișierul pe care îl implementați local și gata.
Și chiar dacă ștergeți accidental unele date, tabele sau chiar întreaga schemă, aceasta poate fi întotdeauna restaurată dintr-o copie de rezervă.
Pentru a importa date, trebuie să faceți clic pe elementul din meniu Server-> Data Import
. Apoi veți vedea această imagine:
![](https://cdn.codegym.cc/images/article/3e3e48d4-9f99-4fa1-a2cb-121920583570/1024.jpeg)
Ca și în cazul exportului, vi se solicită mai întâi să selectați o sursă de date: un grup de fișiere sau toate datele dintr-un singur fișier.
Apoi trebuie să selectați schema în care vor fi încărcate datele specificate. Puteți selecta o schemă existentă sau puteți crea una nouă.
Important! Dacă backupul dvs. conține nu numai date, ci și o descriere a structurii tabelului, atunci tabelele vor fi recreate (dacă există deja unele în schema țintă).
GO TO FULL VERSION