Montre quelques exemples de sauvegarde et restauration de bases de données à partir des utilitaires en lignes de commande et comment les automatiser à l’aide de scripts
Lorsque l’on travail sur des serveurs en entreprise, on ne dispose pas forcément d’interfaces graphiques pour administrer les bases de données, notamment pour exécuter des sauvegardes restaurations. C’est là que les utilitaires en lignes de commandes peuvent être utiles.
Présentation de mysqldump
L’utilitaire mysqldump permet d’exécuter des sauvegardes aussi bien de la structure d’une base de données que de son contenu.
Selon les options utilisées, il sera possible de générer un script ne contenant que les commandes INSERT permettant de recharger les données dans une base existante ou bien, générer un script contenant aussi les commandes CREATE TABLE permettant de recréer également la structure de la base de données. Il est également possible de sauvegarder plusieurs bases de données en une seule commande ou au contraire, une seule table d’une base de données.
Remarque : Par défaut, "mysqldump" envoi le script généré sur la console. Vous devrez donc rediriger la sortie vers un fichier pour exploiter le script par la suite.
Les options de "mysqldump"
La syntaxe générale est la suivante :
$>mysqldump -u <nom_utilisateur> -p[<mdp>] [OPTIONS] <nom_base1> [<nom_base2>,...]
On peut préciser les tables à sauvegarder :
$>mysqldump [OPTIONS] <nom_base> [tables]
Pour sauvegarder plusieurs bases de données :
$>mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...]
Pour sauvegarder l’ensemble des bases :
$>mysqldump [OPTIONS] --all-databases [OPTIONS]
Pour lister l’ensemble des options qui sont très nombreuses, le plus simple est de taper l’une des commandes suivantes pour les lister :
$>mysqldump --help | less
ou :
$>man mysqldump
Sauvegarde globale d’une base de données
La commande suivante permet de sauvegarder la structure et les données d’une base de données. L’option utilisée est —opt. Cette dernière remplace les options suivantes :
--add-drop-table --add-locks --create-options --disable-keys --extended-insert
--lock-tables --quick --set-charset
La commande suivante permet de sauvegarder la base de données nommée musiciensdb dans le fichier musiciensdb_bk.sql :
$>mysqldump -u root -p --opt musiciensdb > musiciensdb_bk.sql
La base de données d’exemple n’ayant qu’une seule table, le fichier .sql contient le script suivant :
On peut vérifier que le script contient bien les commandes de création de table et les commandes d’insertion d’enregistrement. Il suffira d’effectuer ce script en précisant simplement le nom de la base de données dans laquelle seront créées les tables et insérées les données.
Cette procédure pourra être exécutée avec la commande mysql suivante :
$>mysql -u root -p musiciensdb < musiciensdb_bk.sql
La même commande pourra être utilisée avec un nom de base de données différente pour disposer d’une copie de la base de données. La base de données spécifiée devra avoir été créée auparavant puisque, avec les options utilisées dans cet exemple, le script généré ne contient pas de commande CREATE DATABASE.
Dans le cas ou nous voudrions ajouter la commande CREATE DATABASE au script, il suffit d’ajouter l’option -B à la commande de backup.
Exemple :
$>mysqldump -u root -p --opt -B musiciensdb > musiciensdb_bk.sql
Les lignes suivantes seront ajoutées dans le script :
Vous pourrez avec le script précédent aller sur un autre serveur et l’exécuter avec la commande suivante, pour ajouter une nouvelle base de données, créer les tables et importer les données ;
$>mysql -u root -p < musiciensdb_bk.sql
Remarque : Vous devez être administrateur MySQL pour pouvoir créer la base de données.
Lorsque l’on est amené à exécuter régulièrement des sauvegardes, il peut être utile de réaliser un petit script pour simplifier la ligne de commande.
Le programme très basique suivant, permet de créer un script de sauvegarde dont le nom dépend de la date et de l’heure courante.
Il suffit de l’appeler en passant en paramètre l’utilisateur et mot de passe de la base.
Après plusieurs exécutions de ce script, on obtient les fichiers suivants :
Il est possible d’enrichir ce script pour l’adapter à une sauvegarde journalière par exemple et d’utiliser un gestionnaire de tâche comme cron pour automatiser la procédure.
Cet article a permit de voir les commandes qui permettent de sauvegarder et restaurer une base de données MySQL à partir des 2 utilitaires mysqldump et mysql.
Nous avons également vu comment automatiser la sauvegarde à l’aide d’un petit script shell.
Crée par: chris
Créé le: 28 novembre 2017
Modifié le: 28 novembre 2017
Nombre de visites: 898
Popularité: 13 %
Popularité absolue: 1
2003-2024 LePpf
Plan du site
| Se connecter |
RSS 2.0 |
Sur YouTube
Visiteurs connectés : 3
Nombre moyen de visites quotidiennes sur le site: 214