8.1 Ang pangangailangan para sa isang backup ng database

Natutunan mo kung paano lumikha ng mga schema ng database, mga talahanayan, tingnan ang mga ito. Punan din ang mga talahanayan na ito ng data at baguhin ang mga ito. Ngayon ay kailangan mong matutunan ang pinakamahalagang bagay - upang gumawa ng mga backup.

Ang database ay napakadaling masira. Ang katotohanan ay ang database ay karaniwang nasa isang estado ng patuloy na pagbabago: isang bagay ay patuloy na nai-save at idinagdag dito.

Isipin na mayroon kang nakabukas na tab sa iyong browser at ayaw mong mawala ang impormasyon sa loob nito. Sumang-ayon na kung magpasya ka lang na huwag na itong isara, hindi ito ang magiging pinakamagandang opsyon. Pagkatapos ng lahat, ang browser ay maaaring mag-freeze, maaari itong isara nang hindi sinasadya, maaari mong mawala ang ilaw o masunog ang iyong computer. Maaaring mag-install ang Windows ng isa pang update, ngunit hindi mo alam kung ano.

Kaya, ang iyong database ay ang parehong tab. At ilang oras na lang kapag may nangyaring mali sa susunod na pagsusulat sa disk. Samakatuwid, tiyak na kailangan mong matutunan kung paano gumawa ng mga backup.

Ang paggawa ng mga backup ay parang pagsisipilyo ng iyong ngipin, ang mga normal na kumpanya ay gumagawa ng backup ng mga nilalaman ng bawat database tuwing gabi. At dahil ang mga hard drive ay maaari ding mabigo at may mga sunog sa mga data center, ang mga backup ay karaniwang naka-imbak sa 2-3 mga kopya sa mga data center sa iba't ibang bahagi ng mundo.

Mayroong ilang mga diskarte sa paglikha ng isang backup.

Mga backup na file. Dahil ang lahat ng data ng database ay naka-imbak sa disk bilang isang set ng mga file , ang pinakamadaling paraan ay ang kopyahin lang ang mga file na ito sa isang lugar. O i-archive muna ito sa isang archive, at pagkatapos ay kopyahin ito sa isang lugar.

Ito ang pinakamabilis na paraan upang gumawa ng backup, ngunit nangangailangan ito na ang mga file ay hindi magbago habang sila ay kinokopya/naka-archive. Ang database ay dapat na naka-freeze habang ginagawa ang kopya, kung hindi, ang kopya ay baluktot. Pagkatapos ng lahat, maaaring mayroong isang sitwasyon na ang ilan sa mga bagong data ay naitala sa database, at ang ilan ay hindi pa.

Backup sa anyo ng mga query sa SQL . Tulad ng alam mo na, ang pagdaragdag at pagbabago ng data sa database ng SQL server ay palaging kinakatawan bilang mga query sa SQL. Kaya maaari mong hilingin sa SQL server na i-save ang mga nilalaman ng isang partikular na talahanayan o mga talahanayan sa isang file sa anyo ng mga query sa SQL.

Ang pamamaraang ito ay mas mabagal kaysa sa nauna, ngunit maaari itong magamit upang maglipat ng data sa pagitan ng mga SQL server mula sa iba't ibang mga tagagawa.

Gayundin, hindi lahat ng data ay laging kailangang i-save. Kadalasan mayroon kang isang grupo ng serbisyo o hindi na ginagamit na impormasyon sa iyong mga talahanayan at maaari mong sabihin sa SQL server na huwag itong i-save.

Gayundin, para sa mga talahanayan na nag-iimbak ng ilang mga kaganapan na may kaugnayan sa oras, maaari mong piliin lamang ang mga naturang kaganapan para sa huling araw at iimbak lamang ang mga ito.

Iba't ibang mga utility . Ang mga kumpanya ay handang magbayad ng maraming pera upang makakuha ng garantiya na ang kanilang data ay mananatiling buo at ligtas. Samakatuwid, ang iba't ibang mga kumpanya ng IT ay nagsimulang mag-alok ng mga solusyon para sa lahat ng okasyon. Halimbawa, may mga programa na maaaring gumawa ng mga backup na database sa anyo ng mga file at sa parehong oras ay hindi nangangailangan na ang mga file na ito ay hindi magbago.

Halimbawa, maaari kang mag-install ng mga espesyal na driver sa operating system at subaybayan kung kailan, ano at saan nagbago.

8.2 Pag-back up ng database

Ang Workbench ay mahusay sa pag-export at pag-import ng data mula sa mga database na ginagamit nito. Upang gawin ito, kailangan mo lamang pindutin ang menu item: Server-> Data Export. At may makikita kang ganito:

Ngayon magdagdag tayo ng ilang paliwanag:

Ang order ay ito:

  1. Una, piliin ang schema, o schema, na ie-export.
  2. Pagkatapos ay sa kanan ay tinukoy namin ang mga talahanayan para sa backup.
  3. Susunod, dapat nating piliin kung ano ang eksaktong i-export natin:
    • data lamang;
    • istraktura lamang (mga talahanayan ay magiging, ngunit walang laman);
    • datos at istruktura.
  4. Piliin kung paano i-save ang data:
    • isang file para sa bawat talahanayan;
    • isang file para sa lahat ng mga talahanayan.
  5. Maaari mo ring idagdag ang code ng paggawa ng schema sa itaas ng file. Ito ay kapaki-pakinabang kapag naglilipat ng data sa pagitan ng iba't ibang DBMS.

8.3 Pag-back up sa schema ng talahanayan

I-back up lang natin ang mga schema, nang walang aktwal na data.

Pinili ko ang Dump Structure Only at nag-click sa Start Export.

At ito ang nakita ko sa file na ginawa ng 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 */;

Tama, ito ang schema ng aming mga talahanayan, kung maaari kong sabihin tungkol sa isang talahanayan.

8.4 Pag-back up ng data

Ngayon, i-backup lang natin ang data, ngunit wala ang istraktura ng schema.

Piliin natin ang Dump Data Only at tingnan kung ano ang ibinibigay nila sa atin:

At ito ang nakita ko sa file na ginawa ng 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 */;

Oo, parang totoo. Nakikita rin namin ang isang espesyal na code dito na nagla-lock sa talahanayan ng user. Ginagawa ito upang maisagawa mo lamang ang SQL script na ito: naglalaman ito ng lahat ng mga tagubilin na magpapahintulot sa anumang SQL server na maibalik nang tama ang data.

8.5 Pag-deploy ng backup

At sa wakas, ang huling bagay ay ang pagpapanumbalik ng database mula sa isang backup. Ang Aksyon na ito ay napaka-simple ngunit kapaki-pakinabang.

Sabihin nating gusto kong ang lahat ng aking mga mag-aaral ay magkaroon ng isang partikular na database upang matutunan mo kung paano magsulat ng mga query dito. Pagkatapos ay bibigyan lang kita ng isang link sa file na iyong i-deploy nang lokal at iyon na.

At kahit na hindi mo sinasadyang tanggalin ang ilang data, talahanayan, o kahit na ang buong schema, maaari itong palaging maibalik mula sa isang backup.

Upang mag-import ng data, kailangan mong mag-click sa item sa menu Server-> Data Import. Pagkatapos ay makikita mo ang larawang ito:

Tulad ng sa kaso ng pag-export, unang sinenyasan kang pumili ng data source: isang pangkat ng mga file o lahat ng data sa isang file.

Pagkatapos ay kailangan mong piliin ang scheme kung saan mai-upload ang tinukoy na data. Maaari kang pumili ng kasalukuyang scheme o lumikha ng bago.

Mahalaga! Kung ang iyong backup ay naglalaman ng hindi lamang data, kundi pati na rin ang isang paglalarawan ng istraktura ng talahanayan, ang mga talahanayan ay muling gagawin (kung mayroon nang anumang nasa target na schema).