Maison >base de données >tutoriel mysql >Comment mettre en œuvre une sauvegarde complète et une sauvegarde incrémentielle de la base de données MySQL

Comment mettre en œuvre une sauvegarde complète et une sauvegarde incrémentielle de la base de données MySQL

WBOY
WBOYavant
2023-05-27 11:40:232358parcourir

Définition

Une sauvegarde complète consiste à sauvegarder toutes les données et tous les objets de la base de données.

Étant donné que les fichiers de données du serveur MySQL sont des fichiers texte sur disque, une sauvegarde complète consiste à copier le fichier de base de données, ce qui est le moyen le plus simple et le plus rapide.

Cependant, les fichiers de données du serveur MySQL sont toujours ouverts pendant que le serveur est en cours d'exécution. Afin d'obtenir une véritable sauvegarde complète, le serveur de base de données MySQL doit d'abord être arrêté.

Afin de garantir l'intégrité des données, avant d'arrêter le serveur MySQL, vous devez exécuter l'instruction flush tables pour écrire toutes les données dans le fichier de données. Les étudiants doivent seulement savoir que cette méthode n'est pas réalisable car il n'est pas conseillé d'arrêter la base de données pour la sauvegarde dans un environnement de production.

Utilisez la commande mysqldump pour sauvegarder les tables, les bases de données et les systèmes de bases de données :

mysqldump [-h主机名] –u用户名 –p密码 --lock-all-tables --database [tables] > 文件名

-h le nom d'hôte, qui peut être omis, représente le serveur local, --lock-all-tables applique des verrous en lecture à toutes les tables du base de données à sauvegarder (au cours de ce processus, la base de données est strictement en lecture seule), --database peut être suivi de la table qui doit être sauvegardée. Si le nom de la table n'est pas spécifié, cela signifie sauvegarder la base de données. base de données entière.

Démonstration complète de sauvegarde et de récupération

Préparez une table d'étudiant et construisez la table dans la base de données mondiale.

Créer une table :

CREATE DATABASE world;
USE world;
CREATE TABLE student(
    stuId INT(10) NOT NULL,
    stuName VARCHAR(10) NOT NULL,
    stuAge INT(10) NOT NULL,
    PRIMARY KEY(stuId)
    );

Insérer des données :

INSERT INTO student(stuId, stuName, stuAge) VALUES(1, 'zhangsan', 18), (2, 'lisi', 19),(3, 'wangwu', 18);

Comment mettre en œuvre une sauvegarde complète et une sauvegarde incrémentielle de la base de données MySQL

Utilisez l'instruction flush tables; pour écrire toutes les données dans le fichier de données :

FLUSH TABLES;

Quittez l'environnement MySQL et utilisez la commande mysqldump pour effectuer une sauvegarde complète du monde de la base de données :

mysqldump -u root -p --lock-all-tables --databases world > /tmp/world.sql

Entrez dans le répertoire /tmp et affichez le fichier de sauvegarde :

cd /tmp
ls

Maintenant, nous avons entièrement sauvegardé la bibliothèque mondiale et n'avons plus peur de la perte de données.

Simulez la perte de la table student dans la base de données mondiale :

DROP TABLE student;

Confirmez que la table est supprimée

SHOW TABLES;

Comment mettre en œuvre une sauvegarde complète et une sauvegarde incrémentielle de la base de données MySQL

Utilisez la commande mysql pour restaurer la base de données :

mysql -uroot -p < /tmp/world.sql

Entrez dans l'environnement mysql et afficher les résultats de la récupération :

SHOW TABLES;

résultat de sortie :

Comment mettre en œuvre une sauvegarde complète et une sauvegarde incrémentielle de la base de données MySQL

Vérifiez les données dans le tableau :

SELECT * FROM student;

Comment mettre en œuvre une sauvegarde complète et une sauvegarde incrémentielle de la base de données MySQL

La sauvegarde incrémentielle consiste à sauvegarder les données qui ont changé depuis la dernière sauvegarde complète ou incrémentielle sauvegarde. Il s'appuie sur des fichiers journaux binaires et doit ouvrir le journal binlog de la base de données. Effectuez d'abord une sauvegarde complète de la base de données et actualisez le journal binlog en même temps. Toutes les opérations après cette sauvegarde seront enregistrées dans le nouveau journal binlog. Il nous suffit de sauvegarder le journal binlog ajouté pour réaliser l'augmentation continue du contenu. Une sauvegarde parfaite de la base de données. Lorsqu'une anomalie se produit dans la base de données, nous pouvons d'abord restaurer la sauvegarde complète la plus récente, puis restaurer les fichiers de sauvegarde incrémentielle un par un dans l'ordre pour réaliser la récupération de la base de données.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer