8.1 La nécessité d'une sauvegarde de la base de données

Vous avez appris à créer des schémas de base de données, des tables, à les visualiser. Remplissez également ces tableaux avec des données et modifiez-les. Vous devez maintenant apprendre la chose la plus importante - faire des sauvegardes.

La base de données est très facile à casser. Le fait est que la base de données est généralement dans un état de changement constant : quelque chose y est constamment enregistré et ajouté.

Imaginez que vous avez un onglet ouvert dans votre navigateur et que vous ne voulez pas que les informations qu'il contient soient perdues. Convenez que si vous décidez simplement de ne jamais le fermer, ce ne sera pas la meilleure option. Après tout, le navigateur peut geler, il peut être fermé par accident, vous pouvez perdre la lumière ou brûler votre ordinateur. Windows peut installer une autre mise à jour, mais on ne sait jamais quoi.

Ainsi, votre base de données est le même onglet. Et ce n'est qu'une question de temps quand quelque chose ne va pas lors de la prochaine écriture sur le disque. Par conséquent, vous devez absolument apprendre à faire des sauvegardes.

Faire des sauvegardes, c'est comme se brosser les dents, les entreprises normales font une sauvegarde du contenu de chaque base de données chaque nuit. Et comme les disques durs peuvent également tomber en panne et qu'il y a des incendies dans les centres de données, les sauvegardes sont généralement stockées en 2-3 copies dans des centres de données dans différentes parties du monde.

Il existe plusieurs approches pour créer une sauvegarde.

Fichiers de sauvegarde. Étant donné que toutes les données de la base de données sont stockées sur le disque sous la forme d'un ensemble de fichiers , le moyen le plus simple consiste simplement à copier ces fichiers quelque part. Ou archivez-le d'abord dans une archive, puis copiez-le quelque part.

C'est le moyen le plus rapide de faire une sauvegarde, mais cela nécessite que les fichiers ne changent pas pendant qu'ils sont copiés/archivés. La base de données doit être gelée pendant la création de la copie, sinon la copie sera tordue. Après tout, il peut arriver que certaines des nouvelles données soient enregistrées dans la base de données et que d'autres ne le soient pas encore.

Sauvegarde sous forme de requêtes SQL . Comme vous le savez déjà, l'ajout et la modification de données dans la base de données du serveur SQL sont toujours représentés sous forme de requêtes SQL. Ainsi, vous pouvez demander au serveur SQL d'enregistrer le contenu d'une table ou de tables particulières dans un fichier en tant que requêtes SQL.

Cette méthode est plus lente que la précédente, mais elle peut être utilisée pour transférer des données entre des serveurs SQL de différents fabricants.

De plus, toutes les données ne doivent pas toujours être enregistrées. Vous avez souvent un tas d'informations de service ou obsolètes dans vos tables et vous pouvez dire au serveur SQL de ne pas les enregistrer.

De plus, pour les tables qui stockent certains événements en référence au temps, vous pouvez simplement sélectionner ces événements pour le dernier jour et ne stocker qu'eux.

Divers utilitaires . Les entreprises sont prêtes à payer beaucoup d'argent pour obtenir la garantie que leurs données resteront intactes et en sécurité. Par conséquent, diverses sociétés informatiques ont commencé à proposer des solutions pour toutes les occasions. Par exemple, il existe des programmes qui peuvent créer des bases de données de sauvegarde sous forme de fichiers et en même temps n'exigent pas que ces fichiers ne changent pas.

Par exemple, vous pouvez installer des pilotes spéciaux dans le système d'exploitation et savoir quand, quoi et où a changé.

8.2 Sauvegarde de la base de données

Workbench est excellent pour exporter et importer des données à partir des bases de données avec lesquelles il fonctionne. Pour ce faire, il vous suffit d'appuyer sur l'élément de menu : Server-> Data Export. Et vous verrez quelque chose comme ceci :

Ajoutons maintenant quelques explications :

La commande est celle-ci :

  1. Tout d'abord, sélectionnez le ou les schémas qui seront exportés.
  2. Ensuite, à droite, nous spécifions les tables de sauvegarde.
  3. Ensuite, nous devons choisir exactement ce que nous allons exporter :
    • données uniquement ;
    • structure uniquement (les tables le seront, mais vides) ;
    • données et structures.
  4. Choisissez comment enregistrer les données :
    • un fichier pour chaque table ;
    • un fichier pour toutes les tables.
  5. Vous pouvez également ajouter le code de création de schéma en haut du fichier. Ceci est utile lors du transfert de données entre différents SGBD.

8.3 Sauvegarde du schéma de table

Sauvegardez uniquement les schémas, sans les données réelles.

J'ai sélectionné Dump Structure Only et cliqué sur Start Export.

Et c'est ce que j'ai trouvé dans le fichier créé par 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 */;

C'est vrai, c'est le schéma de nos tables, si je puis dire d'une seule table.

8.4 Sauvegarde des données

Maintenant, ne sauvegardons que les données, mais sans la structure du schéma.

Sélectionnons Dump Data Only et voyons ce qu'ils nous donnent :

Et c'est ce que j'ai trouvé dans le fichier créé par 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 */;

Oui, tout à fait comme la vérité. Nous voyons également ici un code spécial qui verrouille la table des utilisateurs. Ceci est fait pour que vous puissiez simplement exécuter ce script SQL : il contient toutes les instructions qui permettront à n'importe quel serveur SQL de restaurer correctement les données.

8.5 Déploiement d'une sauvegarde

Et enfin, la dernière chose est de restaurer la base de données à partir d'une sauvegarde. Cette action est très simple mais utile.

Disons que je veux que tous mes étudiants aient une base de données spécifique afin que vous puissiez apprendre à écrire des requêtes dessus. Ensuite, je vous donnerai juste un lien vers le fichier que vous déployez localement et c'est tout.

Et même si vous supprimez accidentellement des données, des tables ou même le schéma entier, il peut toujours être restauré à partir d'une sauvegarde.

Pour importer des données, vous devez cliquer sur l'élément dans le menu Server-> Data Import. Ensuite, vous verrez cette image:

Comme dans le cas de l'exportation, vous êtes d'abord invité à sélectionner une source de données : un groupe de fichiers ou toutes les données dans un fichier.

Ensuite, vous devez sélectionner le schéma dans lequel les données spécifiées seront téléchargées. Vous pouvez sélectionner un schéma existant ou en créer un nouveau.

Important! Si votre sauvegarde contient non seulement des données, mais également une description de la structure des tables, alors les tables seront recréées (s'il y en a déjà dans le schéma cible).