informatique:applications:base-de-donnees:mariadb:maintenance:effectuer-une-sauvegarde-de-base-de-donnees

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
informatique:applications:base-de-donnees:mariadb:maintenance:effectuer-une-sauvegarde-de-base-de-donnees [2023/02/10 23:48] – ↷ Page déplacée de informatique:linux:applications:base-de-donnees:mariadb:maintenance:effectuer-une-sauvegarde-de-base-de-donnees à informatique:applications:base-de-donnees:mariadb:maintenance:effectuer-une-sauvegarde-de-base-de-donnees Cédric ABONNELinformatique:applications:base-de-donnees:mariadb:maintenance:effectuer-une-sauvegarde-de-base-de-donnees [2023/10/26 13:42] (Version actuelle) – [Sauvegarde non sécurisée] Cédric ABONNEL
Ligne 1: Ligne 1:
 +====== Sauvegarde une base de données MariaDB ======
 +{{ :dummy.png?75x75|Nom de la section}}
  
 +Il existe deux façon de faire une sauvegarde. L'une est plus sécurisée que l'autre.
 +
 +Ouvrez une fenêtre de terminal ou une invite de commande sur votre système.
 +
 +===== Sauvegarde sécurisée =====
 +
 +Créer dans le home de l'utilisateur (''~'') le fichier ''.my.cnf''. Ce fichier contiendra le nom et le mot de passe qui seront utilisés lors de la sauvegarde.
 +
 +<code>
 +[mysqldump]
 +user=cedric
 +password='&qy9zh%Mzz$mA'
 +</code>
 +
 +Utiliser la commande ''mariadb-dump'' pour effectuer la sauvegarde.
 +Si la commande ''mariadb-dump'' ne fonctionne pas, essayez ''mysqldump''.
 +
 +<code bash>
 +mariadb-dump -h [nom_du_serveur] [nom_de_la_base_de_données] > backup_[nom_de_la_base_de_données]_$(date "+%Y%m%d-%H%M%S").sql
 +</code>
 +
 +On peut imaginer un script complet.
 +<code bash>
 +#!/bin/bash
 + 
 +set -e
 + 
 +## Backup de la base de données
 + 
 +dateHeure=$(date "+%Y%m%d-%H%M%S")
 +database=[nom_de_la_base_de_donnees]
 +db_host=[nom_du_serveur]
 +file_log=/var/log/save_${database}-${dateHeure}.log
 +path_tmp=/tmp
 +path_backup=/var/backup
 +file_dump=backup_${database}_${dateHeure}.sql
 +file_dump_archive=${file_dump%.*}.tar.gz
 + 
 +checkError() {
 +    status=${1}
 +    message=${2}
 +    file_log=${3}
 +    if [ "$status" -ne 0 ]
 +    then
 +        echo "Erreur : " "${message}" | tee -a "${file_log}"
 +        echo "Fin du script" | tee -a "${file_log}"
 +        exit "$status"
 +    fi
 + 
 +    return
 +}
 + 
 +echo -e "\n  Création du dump de la base de données" | tee -a "${file_log}"
 +mariadb-dump -h ${db_host} ${database} | tee "${path_tmp}"/"${file_dump}" | tee -a "${file_log}"
 +checkError $? "création du dump de la base" "${file_log}"
 + 
 +echo -e "\n  Création de l'archive du dump"| tee -a "${file_log}"
 +tar zcvf "${path_backup}/${file_dump_archive}" "${path_tmp}/${file_dump}" | tee -a "${file_log}"
 +checkError $? "création du l'archive" "${file_log}"
 + 
 +echo -e "\n  Suppression du dump"| tee -a "${file_log}"
 +rm "${path_tmp}/${file_dump}"  | tee -a "${file_log}"
 +checkError $? "suppression du dump de la base de données" "${file_log}"
 +
 +</code>
 +
 +===== Sauvegarde non sécurisée =====
 +
 +<code>
 +mariadb-dump -u [utilisateur] -p[password] [nom_de_la_base_de_données] > [nom_du_fichier_de_sauvegarde.sql]
 +</code>
 +
 +  * [utilisateur] : Remplacez ceci par le nom d'utilisateur MySQL.
 +  * [password] : Si l'utilisateur MySQL a un mot de passe, vous pouvez le spécifier immédiatement après -p (sans espace). Si vous ne le spécifiez pas, la commande vous demandera le mot de passe lors de l'exécution.
 +  * [nom_de_la_base_de_données] : Remplacez ceci par le nom de la base de données que vous souhaitez sauvegarder.
 +  * [nom_du_fichier_de_sauvegarde.sql] : Remplacez ceci par le nom que vous souhaitez donner au fichier de sauvegarde. Il aura généralement l'extension ".sql".
 +
 +Exécutez la commande en appuyant sur Entrée. Si un mot de passe est nécessaire et que vous ne l'avez pas spécifié après -p, la commande vous le demandera.
 +
 +La commande ''mysqldump'' créera une sauvegarde de la base de données spécifiée dans le fichier indiqué. Ce fichier contiendra toutes les instructions SQL nécessaires pour restaurer la base de données ultérieurement.
 +
 +N'oubliez pas de prendre des mesures de sécurité appropriées pour protéger vos informations d'identification MySQL, car elles sont sensibles.