Différences

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

Lien vers cette vue comparative

Prochaine révision
Révision précédente
automysqlbackup [Le 28/02/2011, 09:58]
johndescs créée
automysqlbackup [Le 06/12/2024, 10:31] (Version actuelle)
bcag2 [Configuration] compte utilisateur avec minimum de droits
Ligne 1: Ligne 1:
-{{tag>Karmic Lucid Maverick BROUILLON}}+{{tag>Xenial Bionic serveur sauvegarde sgbd mysql}} 
 ---- ----
    
 ====== AutoMySQLBackup ====== ====== AutoMySQLBackup ======
    
-AutoMySQLBackup est un script shell ([[bash]]) effectuant une sauvegarde (//dump//) d'une base de données MySQL. Par défaut, il crée un sauvegarde différente tous les jours, ​ toutes les semaines et  tous les mois. On a donc au bout d'un mois un certain historique de la base.+**AutoMySQLBackup** est un script shell ([[bash]]) effectuant une sauvegarde (//dump//) d'une base de données ​[[:MySQL]]. Par défaut, il crée une sauvegarde différente tous les jours, toutes les semaines et tous les mois. On a donc au bout d'un mois un certain historique de la base.
  
-Il peut aussi être intéressant dans le cadre d'un système de sauvegarde ​des données global car les fichiers MySQL bruts ne sont pas directement sauvegardables, ​et il est de fait préférable d'​utiliser les fichiers SQL produits par ce script.+Il peut aussi être intéressant dans le cadre d'un système de sauvegarde ​de données global car les fichiers MySQL bruts ne sont pas facilement exploitables ​et il est de fait préférable d'​utiliser les fichiers SQL produits par ce script.
    
 ===== Pré-requis ===== ===== Pré-requis =====
Ligne 16: Ligne 17:
 ===== Installation ===== ===== Installation =====
    
-Pour installer ce script, il suffit d'[[:​tutoriel:​comment_installer_un_paquet|installer ​le paquet]] **[[apt://​automysqlbackup|automysqlbackup]]**.+[[:​tutoriel:​comment_installer_un_paquet|Installez ​le paquet]] **[[apt>automysqlbackup]]**
    
    
 ===== Configuration ===== ===== Configuration =====
    
-La configuration par défaut est relativement complète et fonctionne sans modification ​aucune. +La configuration par défaut est relativement complète et fonctionne sans aucune ​modification ((Par défaut le script récupère automatiquement les identifiants du super utilisateur de la base de données, et les utilise pour sauvegarder toutes les bases installées dans le répertoire var/​lib/​mysq,​ ce qui suffit à une bonne part des utilisateurs.))
-Cependant si vous voulez l'​affiner,​ vous pourrez le faire via le fichier **/​etc/​default/​automysqlbackup**. +Cependant si vous voulez l'​affiner,​ vous pourrez le faire [[sudo|avec les droits d'​administration]] ​via le fichier **/​etc/​default/​automysqlbackup**. 
-Ce fichier est bien commenté (en anglais)et la page de [[man|manuel]] peut vous aider. +Ce fichier est bien commenté (en anglais) et la page de [[:man|manuel]] peut vous aider.\\ 
-  + 
-===== Utilisation=====+Vous trouverez notamment :\\ 
 +<code bash>​BACKUPDIR="/​var/​lib/​automysqlbackup"</​code>​\\ 
 +**qui définit le répertoire de sauvegarde**. Vous pouvez définir ici un autre chemin, dans votre dossier personnel par exemple. Mais, sachez que vous n'​aurez pas les permissions sur ces sauvegardes qui ont été créés par le superutilisateur ce qui peut être un problème au moment de les copier sur un autre support.\\ 
 + 
 +Pour résoudre ceci, vous pouvez par exemple, utiliser la ligne suivante du fichier pour devenir propriétaire de ces fichiers :\\ 
 +<code bash>​POSTBACKUP="​chown -R utilisateur:​groupe /​chemin_vers/​mon_répertoire_perso_de_sauvegarde"</​code>​\\ 
 +où vous remplacez '​utilisateur'​ et '​groupe'​ par votre nom d'​utilisateur de la session. 
 + 
 +Si pour votre paramétrage,​ vous avez des noms de répertoires avec des espaces, vous aurez des messages d'​erreur "​touch"​. 
 +Dans /​usr/​sbin/​automysqlbackup.sh,​ modifiez le code :\\ 
 +__lignes 408 à 415__\\ 
 +$LOGFILE devient "​$LOGFILE"​\\ 
 +$LOGERR devient "​$LOGERR"​\\ 
 +__lignes 421 à 436__\\ 
 +$1 devient "​$1"​\\ 
 +$2 devient "​$2"​ 
 + 
 +Si vous définissez le //​USERNAME//​ et le //​PASSWORD//,​ la commande par défaut à la ligne //DBNAMES// va engendrer une erreur 1045((https://​devops.stackexchange.com/​questions/​13422/​automysqlbackup-fails-return-error-1045)),​ le mieux est de remplacer cette ligne (à adapter) par <code bash>​DBNAMES="​nom_base_1 nom_base_2"</​code>​ pour préciser les bases à sauver. Si on met //"​all"//,​ ça les sauvegarde toutes… mais peut engendrer une ERROR 1042 ! 
 + 
 +On peut définir des options de //​mysqldump//,​ par exemple :​ 
 +<code bash>​OPTIONS="​--no-tablespaces"</​code>​ 
 + 
 +Compte de sauvegarde 
 +Il est judicieux de définir un compte pour la sauvegarde avec un minimum de droits : 
 +<code sql> 
 +GRANT SELECT, LOCK TABLES ON `ma_base`.* TO '​mon_compte_de_sauvegarde'​@'​localhost';​ 
 +</​code>​ 
 +<note important>​ 
 +Ces droits sont insuffisants si on n’ajoute pas l’option //​--no-tablespaces//,​ cf. l’ajout d'​options ci-dessus ((src: https://​dba.stackexchange.com/​a/​273040))\\ 
 +//​localhost//​ en fin de requête convient si on l’exécute depuis le même serveur 
 +</​note>​ 
 +===== Utilisation =====
    
-Normalement vous n'avez pas à exécuter directement le script si vous avec installé par ailleurs (le paquet n'en dépend pas) un système de déclenchement automatique tel [[cron]][[anacron]], … +Normalement vous n'avez pas à exécuter directement le script si vous avez installé par ailleurs (le paquet n'en dépend pas) un système de déclenchement automatique tel [[:cron]] ​ou [[:anacron]]. 
-Cependant vous pouvez provoquer une sauvegarde, par exemple la première, en lançant le scipt direcement ​:+Cependant vous pouvez provoquer une sauvegarde, par exemple la première, en lançant le script directement ​:
   /​usr/​sbin/​automysqlbackup   /​usr/​sbin/​automysqlbackup
- +===== Restauration ===== 
 +Le script va créer des fichiers compressés qui seront sauvegardés dans 3 répertoires différents "​Daily",​ "​Weekly"​ et "​Monthly"​. 
 +Pour restaurer une base de données mysql, il faut chercher dans ces répertoires le fichier de sauvegarde correspondant au nom de la base et à la date correspondant au moment où vos données étaient satisfaisantes.\\ 
 +La décompression de se fichier n'est pas nécessaire pour l'​importer avec [[:​phpmyadmin]],​ néanmoins, si vous souhaitez récupérer le fichier .sql, vous pouvez le décompresser avec : 
 +<code bash>​gunzip -d fichier-de-sauvegarde.sql.gz</​code>​\\ 
 +Pour restaurer la base de données à partir de ce fichier, avec Bionic et les versions ultérieures (à partir de Xenial pour MariaDB), la commande à taper est : 
 +<​code>​sudo mysql NomMaBase < /chemin vers fichier sauvegarde.sql</​code>​ 
 +où //​NomMaBase//​ est le nom de votre base de données (ceci peut être omis) et ///chemin vers fichier sauvegarde.sql//​ est le chemin vers le fichier que vous avez décompressé (il suffit de le tirer sur le terminal pour que le chemin s'​écrive seul). 
 + 
 +Pour les versions antérieures : 
 +<​code>​mysql -u root -p NomMaBase < /chemin vers fichier sauvegarde.sql</​code>​ 
 +<note tip>Le script automysqlbackup inclut une option qui restaure automatiquement la base sous son nom initial. Remplacer NomMaBase par NomMachin n'aura aucun effet ; c'est NomMaBase qui sera restitué. D'​ailleurs vous pouvez omettre ce nom dans la commande.</​note>​
 ===== Désinstallation ===== ===== Désinstallation =====
    
Ligne 37: Ligne 80:
 ===== Voir aussi ===== ===== Voir aussi =====
    
-  * **(en)** [[http://​sourceforge.net/​projects/​automysqlbackup/​|Site officiel du logiciel]]+  * **(en)** [[https://​sourceforge.net/​projects/​automysqlbackup/​|Site officiel du projet]]
    
 --- ---
 //​Contributeurs principaux : [[utilisateurs:​Johndescs]].//​ //​Contributeurs principaux : [[utilisateurs:​Johndescs]].//​
    
  • automysqlbackup.1298883498.txt.gz
  • Dernière modification: Le 18/04/2011, 14:44
  • (modification externe)