Sauvegarde automatique de plusieurs bases de données MySQL ou MariaDB

introduction

Dans cet article, nous allons voir comment sauvegarder plusieurs bases de données MySQL ou MariaDB qui se trouvent sur la même machine à l'aide d'un script bash personnalisé et configurer un travail cron.

Sauvegarde (s) de la base de données

Nous supposerons que nous avons trois bases de données MySQL sur notre instance Vultr nommées db-vultr-site , db-vultr-blog , db-vultr-app (Ne vous inquiétez pas de créer ces bases de données, vous pourrez remplacer leurs noms pour le vôtre, ils sont utilisés dans le script de l'étape 2 ci-dessous) .

  1. Connectez-vous à votre base de données MySQL ou MariaDB et exécutez la requête ci-dessous pour créer un utilisateur de base de données db_user_backupspour gérer les sauvegardes

    GRANT LOCK TABLES, SELECT, SHOW VIEW, REPLICATION CLIENT ON *.* TO 'db_user_backups'@'%' IDENTIFIED BY '{COMPLEX-PASSWORD}';
    

    Exécutez également ci-dessous pour vous assurer que MySQL est configuré pour restaurer correctement les procédures stockées

    SET GLOBAL log_bin_trust_function_creators = 1;
    
  2. Configurer nécessairement la structure de répertoires et les fichiers nécessaires

    # create backup directory with environment and log file
    sudo mkdir /backups && cd /backups
    sudo touch .env db-backup.sh db-backup.log
    sudo chmod -R 775 /backups
    sudo chmod -R g+s /backups
    sudo chmod +x db-backup.sh
    
    # add mysql backup user credentials into environment file
    echo "export MYSQL_USER=db_user_backups" > /backups/.env
    echo "export MYSQL_PASS={COMPLEX-PASSWORD}" >> /backups/.env
    
  3. Ouvrez db-backup.sh nano /backups/db-backup.shet collez le code ci-dessous à l'intérieur, puis enregistrez le fichier (Ctrl + X -> Y -> appuyez sur Entrée) .

    DB_NAMES=( 'db-vultr-site' 'db-vultr-blog' 'db-vultr-app' ) #replace with your own database name(s)
    BKUP_NAMES=()
    BKUP_DIR="/backups"
    
    # get total number of directories
    total_dbs=${#DB_NAMES[@]}
    
    # create backup file names
    for (( i=0; i<${total_dbs}; i++ )); do
        BKUP_NAMES[$i]="`date +%Y%m%d%H%M`-backup-$${DB_NAMES[$i]}.sql.gz"
    done
    
    # get backup users credentials
    source $BKUP_DIR/.env
    
    # create backups
    for (( i=0; i<${total_dbs}; i++ )); do
        # NOTE: --routines flag makes sure stored procedures are also backed up
        mysqldump --routines -u ${MYSQL_USER} -p${MYSQL_PASS} | gzip > ${BKUP_DIR}/${BKUP_NAMES[$i]}
    done
    

    Le code ci-dessus parcourt un tableau avec le (s) nom (s) de la ou des bases de données que vous souhaitez sauvegarder et ce faisant.

Configuration de Cronjob

Configurez un cronjob pour qu'il s'exécute à minuit et exécute le script de sauvegarde et enregistre le résultat / la sortie dans le journal de sauvegarde.

  1. Ouvrir la crontab

    crontab -e
    
  2. Ajouter l'entrée ci-dessous à crontab

    0 0 * * * /usr/bin/env bash /backups/db-backup.sh &>> /backups/db-backup.log
    

    Remarque: Pendant les tests, vous pouvez configurer cronjob pour qu'il s'exécute toutes les 1 minutes, comme ci-dessous

    * * * * * /usr/bin/env bash /backups/db-backup.sh &>> /backups/db-backup.log
    

    -OU- toutes les 5 minutes (remplacez 5 par le nombre de minutes souhaité)

    */5 * * * * /usr/bin/env bash /backups/db-backup.sh &>> /backups/db-backup.log
    

Et après

Vous ne souhaiterez probablement pas vos sauvegardes sur les mêmes serveurs exécutant vos bases de données, mais plutôt sur un serveur situé dans un emplacement géographique différent. Il existe plusieurs façons de le faire, allant de l'utilisation de SFTP à l'utilisation d'outils personnalisés fournis par la myriade de fournisseurs de stockage cloud disponibles sur le marché. Une bonne alternative est Rsync comme expliqué ici - vultr.com/docs/setup-file-mirroring-using-rsync-in-debian-ubuntu

Écrit par Lami Adabonyan



Leave a Comment

Comment générer des clés SSH?

Comment générer des clés SSH?

Découvrez comment générer une clé SSH pour accéder à votre serveur sans mot de passe. Suivez nos étapes faciles à comprendre pour créer et ajouter des clés SSH.

Créer un serveur de messagerie avec hMailServer sous Windows

Créer un serveur de messagerie avec hMailServer sous Windows

Découvrez comment créer un serveur de messagerie avec hMailServer sous Windows pour recevoir des e-mails facilement.

LIA peut-elle lutter contre un nombre croissant dattaques de ransomware

LIA peut-elle lutter contre un nombre croissant dattaques de ransomware

Les attaques de ransomware sont en augmentation, mais l'IA peut-elle aider à lutter contre le dernier virus informatique ? L'IA est-elle la réponse ? Lisez ici, sachez que l'IA est un boone ou un fléau

ReactOS : est-ce lavenir de Windows ?

ReactOS : est-ce lavenir de Windows ?

ReactOS, un système d'exploitation open source et gratuit est ici avec la dernière version. Cela peut-il suffire aux besoins des utilisateurs de Windows modernes et faire tomber Microsoft ? Découvrons-en plus sur cet ancien style, mais une expérience de système d'exploitation plus récente.

Restez connecté via lapplication de bureau WhatsApp 24 * 7

Restez connecté via lapplication de bureau WhatsApp 24 * 7

Whatsapp a finalement lancé l'application de bureau pour les utilisateurs Mac et Windows. Vous pouvez désormais accéder facilement à Whatsapp depuis Windows ou Mac. Disponible pour Windows 8+ et Mac OS 10.9+

Comment lIA peut-elle faire passer lautomatisation des processus au niveau supérieur ?

Comment lIA peut-elle faire passer lautomatisation des processus au niveau supérieur ?

Lisez ceci pour savoir comment l'intelligence artificielle devient populaire parmi les petites entreprises et comment elle augmente les probabilités de les faire grandir et de donner à leurs concurrents un avantage.

La mise à jour du supplément macOS Catalina 10.15.4 cause plus de problèmes quelle nen résout

La mise à jour du supplément macOS Catalina 10.15.4 cause plus de problèmes quelle nen résout

Récemment, Apple a publié macOS Catalina 10.15.4, une mise à jour supplémentaire pour résoudre les problèmes, mais il semble que la mise à jour cause davantage de problèmes, ce qui entraîne le bridage des machines mac. Lisez cet article pour en savoir plus

13 outils commerciaux dextraction de données de Big Data

13 outils commerciaux dextraction de données de Big Data

13 outils commerciaux d'extraction de données de Big Data

Quest-ce quun système de fichiers de journalisation et comment fonctionne-t-il ?

Quest-ce quun système de fichiers de journalisation et comment fonctionne-t-il ?

Notre ordinateur stocke toutes les données d'une manière organisée connue sous le nom de système de fichiers de journalisation. C'est une méthode efficace qui permet à l'ordinateur de rechercher et d'afficher des fichiers dès que vous appuyez sur la recherche.https://wethegeek.com/?p=94116&preview=true

Singularité technologique : un futur lointain de la civilisation humaine ?

Singularité technologique : un futur lointain de la civilisation humaine ?

Alors que la science évolue à un rythme rapide, prenant le pas sur une grande partie de nos efforts, les risques de nous soumettre à une Singularité inexplicable augmentent également. Lisez, ce que la singularité pourrait signifier pour nous.