8.1 Die Notwendigkeit einer Datenbanksicherung
Sie haben gelernt, wie Sie Datenbankschemata und Tabellen erstellen und anzeigen. Füllen Sie auch diese Tabellen mit Daten und ändern Sie sie. Jetzt müssen Sie das Wichtigste lernen – Backups erstellen.
Die Datenbank ist sehr leicht zu knacken. Tatsache ist, dass sich die Datenbank in der Regel ständig verändert: Es wird ständig etwas gespeichert und hinzugefügt.
Stellen Sie sich vor, Sie haben in Ihrem Browser einen Tab geöffnet und möchten nicht, dass die darin enthaltenen Informationen verloren gehen. Stimmen Sie zu, dass dies nicht die beste Option ist, wenn Sie sich einfach dazu entschließen, es niemals zu schließen. Schließlich kann der Browser einfrieren, er kann versehentlich geschlossen werden, Sie können das Licht verlieren oder Ihren Computer verbrennen. Windows kann ein weiteres Update installieren, aber man weiß nie was.
Ihre Datenbank ist also dieselbe Registerkarte. Und es ist nur eine Frage der Zeit, wann beim nächsten Schreibvorgang auf die Festplatte etwas schief geht. Daher müssen Sie unbedingt lernen, wie man Backups erstellt.
Backups zu erstellen ist wie Zähneputzen, normale Unternehmen erstellen jede Nacht ein Backup des Inhalts jeder Datenbank. Und da auch Festplatten ausfallen können und es zu Bränden in Rechenzentren kommt, werden Backups meist in 2-3 Kopien in Rechenzentren in verschiedenen Teilen der Welt gespeichert.
Für die Erstellung eines Backups gibt es mehrere Ansätze.
Sicherungs-Dateien. Da alle Datenbankdaten als Dateisatz auf der Festplatte gespeichert sind , ist es am einfachsten, diese Dateien einfach irgendwohin zu kopieren. Oder archivieren Sie es zuerst in einem Archiv und kopieren Sie es dann irgendwohin.
Dies ist der schnellste Weg, ein Backup zu erstellen, erfordert jedoch, dass sich die Dateien während des Kopierens/Archivierens nicht ändern. Während der Erstellung der Kopie muss die Datenbank eingefroren werden, sonst wird die Kopie schief. Schließlich kann es vorkommen, dass einige der neuen Daten in der Datenbank erfasst sind und andere noch nicht.
Sicherung in Form von SQL-Abfragen . Wie Sie bereits wissen, werden das Hinzufügen und Ändern von Daten in der SQL Server-Datenbank immer als SQL-Abfragen dargestellt. So können Sie den SQL-Server bitten, den Inhalt einer oder mehrerer bestimmter Tabellen als SQL-Abfragen in einer Datei zu speichern.
Diese Methode ist langsamer als die vorherige, kann aber zum Übertragen von Daten zwischen SQL-Servern verschiedener Hersteller verwendet werden.
Außerdem müssen nicht immer alle Daten gespeichert werden. Oftmals enthalten Ihre Tabellen eine Reihe von Service- oder veralteten Informationen und Sie können den SQL-Server anweisen, diese nicht zu speichern.
Außerdem können Sie bei Tabellen, in denen bestimmte Ereignisse zeitbezogen gespeichert werden, einfach solche Ereignisse für den letzten Tag auswählen und nur diese speichern.
Verschiedene Dienstprogramme . Unternehmen sind bereit, viel Geld auszugeben, um die Garantie zu erhalten, dass ihre Daten intakt und sicher bleiben. Daher begannen verschiedene IT-Unternehmen, Lösungen für alle Fälle anzubieten. Beispielsweise gibt es Programme, die Backup-Datenbanken in Form von Dateien erstellen können und gleichzeitig nicht erfordern, dass sich diese Dateien nicht ändern.
Sie können beispielsweise spezielle Treiber im Betriebssystem installieren und verfolgen, wann, was und wo sich geändert hat.
8.2 Sichern der Datenbank
Workbench eignet sich hervorragend zum Exportieren und Importieren von Daten aus den Datenbanken, mit denen es arbeitet. Dazu müssen Sie lediglich den Menüpunkt drücken: Server-> Data Export
. Und Sie werden so etwas sehen:
![](https://cdn.codegym.cc/images/article/3bc1564d-b5cb-4378-9968-570697e9603a/1024.jpeg)
Fügen wir nun eine Erklärung hinzu:
![](https://cdn.codegym.cc/images/article/821a37d4-c6f3-4ccf-80bf-4873f3d8d061/1024.jpeg)
Die Reihenfolge ist folgende:
- Wählen Sie zunächst das Schema oder die Schemata aus, die exportiert werden sollen.
- Dann geben wir rechts die Tabellen für die Sicherung an.
- Als nächstes müssen wir auswählen, was genau wir exportieren möchten:
- nur Daten;
- Nur Struktur (Tabellen sind vorhanden, aber leer);
- Daten und Struktur.
- Wählen Sie, wie die Daten gespeichert werden sollen:
- eine Datei für jede Tabelle;
- eine Datei für alle Tabellen.
- Sie können den Schemaerstellungscode auch am Anfang der Datei hinzufügen. Dies ist nützlich, wenn Daten zwischen verschiedenen DBMS übertragen werden.
8.3 Sichern des Tabellenschemas
Lassen Sie uns nur die Schemata sichern, ohne die tatsächlichen Daten.
Ich habe „Nur Dump-Struktur“ ausgewählt und auf „Export starten“ geklickt.
![](https://cdn.codegym.cc/images/article/18f4743c-0edb-468b-8408-52f59c75a20f/1024.jpeg)
Und das habe ich in der Datei gefunden, die Workbench erstellt hat.
--
-- 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 */;
Das ist richtig, das ist das Schema unserer Tabellen, wenn ich das über eine einzelne Tabelle sagen darf.
8.4 Daten sichern
Lassen Sie uns nun nur die Daten sichern, jedoch ohne die Schemastruktur.
Wählen wir „Nur Daten speichern“ und sehen, was sie uns liefern:
![](https://cdn.codegym.cc/images/article/b81bb769-5767-4f8a-9a45-bf36e59746e2/1024.jpeg)
Und das habe ich in der Datei gefunden, die Workbench erstellt hat.
--
-- 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 */;
Ja, sehr ähnlich der Wahrheit. Wir sehen hier auch einen speziellen Code, der die Benutzertabelle sperrt. Dies geschieht, damit Sie dieses SQL-Skript einfach ausführen können: Es enthält alle Anweisungen, die es jedem SQL-Server ermöglichen, die Daten korrekt wiederherzustellen.
8.5 Bereitstellen eines Backups
Und schließlich ist die Wiederherstellung der Datenbank aus einem Backup der letzte Schritt. Diese Aktion ist sehr einfach, aber nützlich.
Nehmen wir an, ich möchte, dass alle meine Schüler über eine bestimmte Datenbank verfügen, damit Sie lernen können, wie man Abfragen darauf schreibt. Dann gebe ich Ihnen einfach einen Link zu der Datei, die Sie lokal bereitstellen, und das war's.
Und selbst wenn Sie versehentlich einige Daten, Tabellen oder sogar das gesamte Schema löschen, können Sie es jederzeit aus einem Backup wiederherstellen.
Um Daten zu importieren, müssen Sie auf den Eintrag im Menü klicken Server-> Data Import
. Dann sehen Sie dieses Bild:
![](https://cdn.codegym.cc/images/article/3e3e48d4-9f99-4fa1-a2cb-121920583570/1024.jpeg)
Wie beim Export werden Sie zunächst aufgefordert, eine Datenquelle auszuwählen: eine Gruppe von Dateien oder alle Daten in einer Datei.
Anschließend müssen Sie das Schema auswählen, in das die angegebenen Daten hochgeladen werden. Sie können ein vorhandenes Schema auswählen oder ein neues erstellen.
Wichtig! Wenn Ihr Backup nicht nur Daten, sondern auch eine Beschreibung der Tabellenstruktur enthält, werden die Tabellen neu erstellt (sofern im Zielschema bereits welche vorhanden sind).
GO TO FULL VERSION