Maison  >  Article  >  base de données  >  Exemple détaillé de la façon de mettre en œuvre une sauvegarde automatique quotidienne et une sauvegarde planifiée de la base de données MySQL sous Linux

Exemple détaillé de la façon de mettre en œuvre une sauvegarde automatique quotidienne et une sauvegarde planifiée de la base de données MySQL sous Linux

黄舟
黄舟original
2017-09-05 13:22:481363parcourir

La sauvegarde est la base de la reprise après sinistre. Elle fait référence au processus de copie de tout ou partie de l'ensemble de données du disque dur ou de la matrice de l'hôte de l'application vers d'autres supports de stockage afin d'éviter toute perte de données causée par des erreurs de fonctionnement ou pannes du système. Cet article présente principalement la sauvegarde automatique quotidienne et la sauvegarde planifiée de la base de données MySQL sous Linux. Les amis qui en ont besoin peuvent se référer à ce qui suit

Aperçu

La sauvegarde est la capacité La base du sinistre fait référence au processus de copie de tout ou partie de l'ensemble de données du disque dur ou de la baie de l'hôte d'application vers d'autres supports de stockage afin d'éviter la perte de données causée par des erreurs de fonctionnement ou des pannes du système. Pour certains sites Web et systèmes, la base de données est essentielle, il est donc crucial de sauvegarder la base de données !

Qu'est-ce que la sauvegarde ?

Exemple détaillé de la façon de mettre en œuvre une sauvegarde automatique quotidienne et une sauvegarde planifiée de la base de données MySQL sous Linux

Pourquoi sauvegarder

Exemple détaillé de la façon de mettre en œuvre une sauvegarde automatique quotidienne et une sauvegarde planifiée de la base de données MySQL sous Linux

Construction d'un plan de reprise après sinistre

Exemple détaillé de la façon de mettre en œuvre une sauvegarde automatique quotidienne et une sauvegarde planifiée de la base de données MySQL sous Linux

Supports de stockage

Disque optique

Bande

Disque dur

Matrice de disques

DAS : stockage en connexion directe

NAS : stockage en réseau

SAN : Storage Area Network

Cloud Storage

Ici, nous utilisons principalement le disque local comme support de stockage pour parler de l'ajout et de l'utilisation de tâches planifiées, de scripts de sauvegarde de base , et les autres supports de stockage ne sont que des accès multimédias. La méthode peut être différente.

1. Vérifiez l'espace disque :

Puisqu'il s'agit d'une sauvegarde planifiée, vous devez choisir un espace disque avec suffisamment d'espace pour éviter les problèmes. causée par l'espace insuffisant entraîne un échec de sauvegarde et une perte de données !

Le stockage sur le disque actuel est le plus simple, mais c'est le moins recommandé ; le serveur dispose de plusieurs disques durs, il est préférable de stocker la sauvegarde sur un autre disque dur si possible, choisissez un support de stockage meilleur et plus sûr ; ;


# df -h
Filesystem     Size Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root 50G 46G 1.6G 97% /
tmpfs       1.9G 92K 1.9G 1% /dev/shm
/dev/sda1      485M 39M 421M 9% /boot
/dev/mapper/VolGroup-lv_home 534G 3.6G 503G 1% /home

2. Créez un répertoire de sauvegarde :

Comme nous pouvons le voir sur le commande ci-dessus Il y a suffisamment d'espace sous /home, vous pouvez donc envisager d'enregistrer les fichiers de sauvegarde dans /home


cd /home
mkdir backup
cd backup

3. Script Shell :

Veuillez remplacer le DatabaseName dans la commande suivante par le nom réel de la base de données

Bien sûr, vous pouvez également utiliser les règles de dénomination réelles !


vi bkDatabaseName.sh
Saisissez/collez ce qui suit :


#!/bin/bash
mysqldump -uusername -ppassword DatabaseName > /home/backup/DatabaseName_$(date +%Y%m%d_%H%M%S).sql
Compressez la sauvegarde :


#!/bin/bash
mysqldump -uusername -ppassword DatabaseName | gzip > /home/backup/DatabaseName_$(date +%Y%m%d_%H%M%S).sql.gz
Remarque :

Remplacez le nom d'utilisateur par le nom d'utilisateur réel

Remplacez le mot de passe par le mot de passe réel

Remplacez le nom de la base de données ; avec le nom réel de la base de données ;

4. Ajoutez des autorisations exécutables :


chmod u+x bkDatabaseName.sh
Après l'ajout autorisations exécutables, exécutez-le d'abord pour voir s'il y a des erreurs dans le script et s'il peut être utilisé normalement

./bkDatabaseName.sh

5. tâches planifiées

Détecter ou installer crontab

Confirmez si crontab est installé :

Exécutez la commande crontab Si la commande introuvable est signalée, cela signifie. il n'est pas installé


# crontab
-bash: crontab: command not found
Si crontab n'est pas encore installé, vous devez d'abord l'installer Veuillez vous référer aux étapes spécifiques :

Utiliser. la commande yum pour installer le programme de tâches planifiées crontab sous CentOS

Utilisez la commande rpm pour installer le programme de tâches planifiées crontab à partir du disque système CentOS

Ajouter une tâche planifiée

Exécutez la commande :


crontab -e
A ce moment, tout comme si vous utilisiez l'éditeur vi, vous pouvez modifier les tâches planifiées.

Entrez le contenu suivant et enregistrez :


*/1 * * * * /home/backup/bkDatabaseName.sh
Qu'est-ce que cela signifie exactement ?

signifie que le script shell "/home/backup/bkDatabaseName.sh" est exécuté toutes les minutes.

6. Testez si la tâche est exécutée

C'est très simple, on exécute simplement la commande "ls" plusieurs fois et on voit si la commande "ls" est exécutée. le fichier est là après une minute. C'est ok sans être créé !

Si l'exécution de la tâche échoue, vous pouvez afficher le journal des tâches via la commande suivante :


# tail -f /var/log/cron
Le résultat est similaire à ce qui suit :


Sep 30 14:01:01 bogon run-parts(/etc/cron.hourly)[2503]: starting 0anacron
Sep 30 14:01:01 bogon run-parts(/etc/cron.hourly)[2512]: finished 0anacron
Sep 30 15:01:01 bogon CROND[3092]: (root) CMD (run-parts /etc/cron.hourly)
Sep 30 15:01:01 bogon run-parts(/etc/cron.hourly)[3092]: starting 0anacron
Sep 30 15:01:02 bogon run-parts(/etc/cron.hourly)[3101]: finished 0anacron
Sep 30 15:50:44 bogon crontab[3598]: (root) BEGIN EDIT (root)
Sep 30 16:01:01 bogon CROND[3705]: (root) CMD (run-parts /etc/cron.hourly)
Sep 30 16:01:01 bogon run-parts(/etc/cron.hourly)[3705]: starting 0anacron
Sep 30 16:01:01 bogon run-parts(/etc/cron.hourly)[3714]: finished 0anacron
Sep 30 16:15:29 bogon crontab[3598]: (root) END EDIT (root)

Résumé

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:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn