8.1 Konieczność wykonania kopii zapasowej bazy danych
Nauczyłeś się tworzyć schematy baz danych, tabele, przeglądać je. Wypełnij również te tabele danymi i zmień je. Teraz musisz nauczyć się najważniejszej rzeczy - tworzenia kopii zapasowych.
Bazę danych bardzo łatwo złamać. Faktem jest, że baza danych jest zwykle w stanie ciągłych zmian: coś jest ciągle zapisywane i dodawane do niej.
Wyobraź sobie, że masz otwartą kartę w przeglądarce i nie chcesz, aby zawarte w niej informacje zostały utracone. Zgadzam się, że jeśli zdecydujesz się nigdy go nie zamykać, nie będzie to najlepsza opcja. W końcu przeglądarka może się zawiesić, może zostać przypadkowo zamknięta, możesz stracić światło lub spalić komputer. System Windows może zainstalować inną aktualizację, ale nigdy nie wiadomo, jaką.
Twoja baza danych to ta sama karta. A to tylko kwestia czasu, kiedy coś pójdzie nie tak podczas kolejnego zapisu na dysk. Dlatego zdecydowanie musisz nauczyć się robić kopie zapasowe.
Tworzenie kopii zapasowych jest jak mycie zębów, normalne firmy robią kopię zapasową zawartości każdej bazy danych każdej nocy. A ponieważ dyski twarde też mogą zawieść, aw centrach danych zdarzają się pożary, kopie zapasowe są zwykle przechowywane w 2-3 kopiach w centrach danych w różnych częściach świata.
Istnieje kilka podejść do tworzenia kopii zapasowej.
Kopia zapasowa. Ponieważ wszystkie dane bazy danych są przechowywane na dysku jako zbiór plików , najprostszym sposobem jest po prostu skopiowanie tych plików gdzieś. Lub najpierw zarchiwizuj go w jednym archiwum, a następnie gdzieś skopiuj.
Jest to najszybszy sposób na wykonanie kopii zapasowej, ale wymaga, aby pliki nie zmieniały się podczas kopiowania/archiwizacji. Baza danych musi być zamrożona podczas tworzenia kopii, w przeciwnym razie kopia będzie przekrzywiona. Przecież może dojść do sytuacji, że część nowych danych jest zapisywana w bazie danych, a część jeszcze nie.
Backup w postaci zapytań SQL . Jak już wiesz, dodawanie i zmiana danych w bazie danych serwera SQL jest zawsze reprezentowana jako zapytania SQL. Możesz więc poprosić serwer SQL o zapisanie zawartości określonej tabeli lub tabel w pliku jako zapytania SQL.
Ta metoda jest wolniejsza niż poprzednia, ale może służyć do przesyłania danych między serwerami SQL różnych producentów.
Ponadto nie wszystkie dane zawsze muszą być zapisywane. Często masz w swoich tabelach kilka usług lub przestarzałych informacji i możesz powiedzieć serwerowi SQL, aby ich nie zapisywał.
Ponadto w przypadku tabel, które przechowują niektóre zdarzenia w odniesieniu do czasu, można po prostu wybrać takie zdarzenia dla ostatniego dnia i przechowywać tylko je.
Różne narzędzia . Firmy są skłonne zapłacić dużo pieniędzy, aby uzyskać gwarancję, że ich dane pozostaną nienaruszone i bezpieczne. Dlatego różne firmy informatyczne zaczęły oferować rozwiązania na każdą okazję. Na przykład istnieją programy, które mogą tworzyć kopie zapasowe baz danych w postaci plików i jednocześnie nie wymagają, aby te pliki się nie zmieniały.
Na przykład możesz zainstalować specjalne sterowniki w systemie operacyjnym i śledzić, kiedy, co i gdzie się zmieniło.
8.2 Tworzenie kopii zapasowej bazy danych
Workbench doskonale radzi sobie z eksportowaniem i importowaniem danych z baz danych, z którymi współpracuje. Aby to zrobić, wystarczy nacisnąć pozycję menu: Server-> Data Export
. I zobaczysz coś takiego:
![](https://cdn.codegym.cc/images/article/3bc1564d-b5cb-4378-9968-570697e9603a/1024.jpeg)
Teraz dodajmy wyjaśnienie:
![](https://cdn.codegym.cc/images/article/821a37d4-c6f3-4ccf-80bf-4873f3d8d061/1024.jpeg)
Kolejność jest taka:
- Najpierw wybierz schemat lub schematy, które zostaną wyeksportowane.
- Następnie po prawej stronie określamy tabele do tworzenia kopii zapasowych.
- Następnie musimy wybrać, co dokładnie będziemy eksportować:
- tylko dane;
- tylko struktura (tabele będą, ale puste);
- dane i struktura.
- Wybierz sposób zapisywania danych:
- jeden plik dla każdej tabeli;
- jeden plik dla wszystkich tabel.
- Możesz także dodać kod tworzenia schematu na początku pliku. Jest to przydatne podczas przesyłania danych między różnymi systemami DBMS.
8.3 Tworzenie kopii zapasowej schematu tabeli
Utwórzmy kopię zapasową tylko schematów, bez rzeczywistych danych.
Wybrałem Tylko strukturę zrzutu i kliknąłem Rozpocznij eksport.
![](https://cdn.codegym.cc/images/article/18f4743c-0edb-468b-8408-52f59c75a20f/1024.jpeg)
I to właśnie znalazłem w pliku utworzonym przez 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 */;
Zgadza się, to jest schemat naszych tabel, jeśli mogę tak powiedzieć o pojedynczej tabeli.
8.4 Tworzenie kopii zapasowych danych
Teraz zróbmy kopię zapasową tylko danych, ale bez struktury schematu.
Wybierzmy tylko zrzut danych i zobaczmy, co nam dadzą:
![](https://cdn.codegym.cc/images/article/b81bb769-5767-4f8a-9a45-bf36e59746e2/1024.jpeg)
I to właśnie znalazłem w pliku utworzonym przez 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 */;
Tak, bardzo lubię prawdę. Widzimy tu również specjalny kod, który blokuje tabelę użytkowników. Dzieje się tak, abyś mógł po prostu wykonać ten skrypt SQL: zawiera on wszystkie instrukcje, które pozwolą dowolnemu serwerowi SQL poprawnie przywrócić dane.
8.5 Wdrażanie kopii zapasowej
I wreszcie ostatnia rzecz to przywracanie bazy danych z kopii zapasowej. Ta akcja jest bardzo prosta, ale użyteczna.
Powiedzmy, że chcę, aby wszyscy moi uczniowie mieli określoną bazę danych, abyś mógł nauczyć się pisać w niej zapytania. Następnie po prostu dam ci link do pliku, który wdrażasz lokalnie i to wszystko.
A nawet jeśli przypadkowo usuniesz niektóre dane, tabele, a nawet cały schemat, zawsze można go przywrócić z kopii zapasowej.
Aby zaimportować dane należy kliknąć na pozycję w menu Server-> Data Import
. Wtedy zobaczysz to zdjęcie:
![](https://cdn.codegym.cc/images/article/3e3e48d4-9f99-4fa1-a2cb-121920583570/1024.jpeg)
Podobnie jak w przypadku eksportu, najpierw zostaniesz poproszony o wybranie źródła danych: grupy plików lub wszystkich danych w jednym pliku.
Następnie musisz wybrać schemat, do którego zostaną przesłane określone dane. Możesz wybrać istniejący schemat lub utworzyć nowy.
Ważny! Jeśli kopia zapasowa zawiera nie tylko dane, ale również opis struktury tabeli, to tabele zostaną odtworzone (jeśli takie istnieją już w docelowym schemacie).
GO TO FULL VERSION