TP Sauvegarde/Restauration de Base de Données



Documents pareils
Configurer une sauvegarde FTP simple et efficace

Environnements informatiques

Serveur Linux : FTP. Mise en place d un service FTP sous Linux. Bouron Dimitri 20/04/2014

Installation d'un serveur FTP géré par une base de données MySQL

MYSQLDUMP & ZRM COMMUNITY

BTS SIO SISR3 TP 1-I Le service Web [1] Le service Web [1]

HowTo Installer egroupware 1.2 sur SME Serveur 7.0

GLPI OCS Inventory. 1. Prérequis Installer un serveur LAMP : apt-get install apache2 php5 libapache2-mod-php5 apt-get install mysql-server php5-mysql

Architecture de la plateforme SBC

Exonet : sauvegarde automatisée d une base de données

Projet Administration Réseaux

L installation a quelque peu changée depuis les derniers tutos, voici une actualisation.

Afin d'éviter un message d'erreur au démarrage du service Apache du type :

Pharmed. gestion de pharmacie hospitalière. Installation / déploiement

Linux et le Shell. Francois BAYART. Atelier du samedi 20 Novembre

Bon ben voilà c est fait!

Sauvegarde automatique des données de GEPI

1 Démarrage de Marionnet

Note : Ce tutoriel a été réalisé sur GNU/Linux (Ubuntu) avec un serveur LAMP installé en local.

Maintenir Debian GNU/Linux à jour

TP n 2 : Installation et administration du serveur ProFTP. Partie 1 : Fonctionnement du protocole FTP (pas plus de 15min)

Cours Linux. Cours en ligne Administrateur Systèmes Linux. Académie Libre

Installation de Zabbix

Maintenance et gestion approfondie des Systèmes d exploitation Master 2 SILI. Année universitaire David Genest

Transfert d un site local vers un serveur. NPDS REvolution 13. Rédaction : Axel Relecture : Dev & Jpb

PPE GESTION PARC INFORMATIQUE

04/02/2014 Tutoriel. Lubuntu & glpi. thomas [NOM DE LA SOCIETE]

Serveur de sauvegardes incrémental

I. MySQL : Serveur et SGBD

SERVEUR DE SAUVEGARDE POUR BCDI3. par. G.Haberer, A.Peuch, P.Saadé

Lectures. Accueil. Table des matières Me contacter. Rubriques. Général (12) PHP (4) MySQL (1) XHTML & CSS (3) Debian (3) Ubuntu (7) Post-it

Vade mecum installation et configuration d une machine virtuelle V5.1.0

MANUEL D INSTALLATION D UN PROXY

Pratique et administration des systèmes

Aide-Mémoire unix. 9 février 2009

Serveur virtuel infogéré

INTRODUCTION. Mysql-server est un serveur de bases de données. Cest un logiciel libre.

Guide d installation de Gael

Installation / Sauvegarde Restauration / Mise à jour

Cyberclasse L'interface web pas à pas

La double authentification dans SharePoint 2007

FreeNAS Shere. Par THOREZ Nicolas

Introduction...3. Objectif...3. Manipulations...3. La Sauvegarde...4. Les différents types...4. Planification...4. Les outils...5

Hébergement WeboCube. Un système performant et sécurisé. Hébergement géré par une équipe de techniciens

Configuration de plusieurs serveurs en Load Balancing

Les commandes relatives aux réseaux

Ajout et Configuration d'un nouveau poste pour BackupPC

Chamilo Manuel Administrateur. Guide de l'administrateur. Chamilo janvier 2012 Page 1 / 108

Sauvegardes par Internet avec Rsync

PRESENTATION RESSOURCES. Christian Dupaty BTS Systèmes Numériques Lycée Fourcade Gardanne Académie d Aix Marseille

WEBMESTRE : CONCEPTION DE SITES ET ADMINISTRATION DE SERVEURS WEB

Installation UpdatEngine serveur (CentOs apache2 / MySQL)

CONFIGURATION DU SERVEUR DE MAILS EXIM. par. G.Haberer, A.Peuch, P.Saade

TUTORIEL D INSTALLATION D ORACLE ET DE SQL DEVELOPPER TUTORIEL D INSTALLATION D ORACLE...1 ET DE SQL DEVELOPPER...1

TP1 - Prise en main de l environnement Unix.

PPe jaune. Domingues Almeida Nicolas Collin Leo Ferdioui Lamia Sannier Vincent [PPE PROJET FTP]

Documentation pour administrateur Application AER

TP WINDOWS 2008 SERVER - OUTILS DE SAUVEGARDE ET DE RESTAURATION

Procédure d'installation

Linux LTE 2 - ISSBA. Année universitaire Linux Réseau et Archivage. Jean-Michel RICHER Faculté des Sciences, H206 1

Tutoriel compte-rendu Mission 1

Projet d'infrastructure Cloud

Bacula R - The Network Backup Solution

Serveur d application WebDev

Projet «Evolution» Référentiel d activités et de compétences : Administrer un parc informatique. Objectifs pédagogiques :

Le protocole FTP (File Transfert Protocol,

PLANNING DES ACTIVITES PROFESSIONNELLES

Configurer OCS Inventory NG comme outil d inventaire

Support de cours. Administrer Linux avec Webmin. 2003, Sébastien Namèche - 1

Installation du Hub. Installation du Hub. 1. Description de l installation. by LegalBox. 2 types de serveur sont à installer :

sshgate Patrick Guiran Chef de projet support

ISPConfig Documentation

TP LINUX : MISE EN PLACE DU SERVEUR DE MESSAGERIE QMAIL

Projet Personnalisé Encadré PPE 2

Tutorial Cobian Backup

Cobian backup. Sauvegarde. Cobian Backup est un logiciel de sauvegarde gratuit fonctionnant sous windows. Nathan Garaudel PCplus 01/01/2014

INSTALLATION NG V2.1 D OCS INVENTORY. Procédure d utilisation. Auteur : GALLEGO Cédric 23/10/2014 N version : v1

Documentation utilisateur, manuel utilisateur MagicSafe Linux. Vous pouvez télécharger la dernière version de ce document à l adresse suivante :

Les différentes méthodes pour se connecter

Spécialiste Systèmes et Réseaux

MISE EN PLACE D UN FIREWALL ET D UN SERVEUR PROXY SOUS LINUX MANDRIVA.

DOCUMENTATION ADMINISTRATEUR

Ubuntu Linux Création, configuration et gestion d'un réseau local d'entreprise (3ième édition)

Contrôle de la DreamBox à travers un canal SSH

LA PLATE-FORME D'ALTERN C

Automatisation de l administration système

MANUEL UTILISATEUR KIWI BACKUP V 3

Commandes Linux. Gestion des fichiers et des répertoires. Gestion des droits. Gestion des imprimantes. Formation Use-IT

équipement radio Procédure

Procédures informatiques administrateurs Création d un serveur FTP sous Linux

Installation d ORACLE 10g sous Debian Etch

TP LINUX : MISE EN RÉSEAU D UN SERVEUR LINUX

Hadoop / Big Data. Benjamin Renaut <renaut.benjamin@tokidev.fr> MBDS

Installation et Mise en œuvre de MySQL

Guide Enseignant de l application OpenERP

VTX FTP. Transfert de fichiers business par FTP - Manuel de l'utilisateur. Informations complémentaires : info@vtx.

Projet Semestre2-1SISR

SCHMITT Année 2012/2014 Cédric BTS SIO. TP Serveur Backup

Transcription:

SIO2ème année SISR3 Page 1 TP Sauvegarde/Restauration de Base de Données Contexte : L'entreprise GSB voir Annexe1 Application concernée : L'application gestion des frais et remboursements pour les visiteurs médicaux est en cours de développement, une première version opérationnelle est installée sur un serveur ou autre. A votre disposition : une machine virtuelle comprenant l'application avec Apache et la base de données gsb_frais sous Mysql un serveur FTP vers lequel se fera une copie de la sauvegarde Votre mission : Automatiser la sauvegarde de la base de données gsb_frais en suivant les étapes suivantes : Etape 1 : Ecrire le script bash, tester (sauvegarde du bash dans le répertoire root de linux, création d'un utilisateur mysql, compression) Etape 2 : Création de fichiers de log Etape 3 : Sauvegardes périodiques : planification avec cron Etape 4 : Stratégie de sauvegarde Etape 5 : sauvegarde distante : les solutions? Mise en place transfert vers FTP Etape 6 : tests et écrire une procédure de restauration, envisager les différents scénarios (restauration sur le même sgbd, seule l'intégrité de la base a été touchée, sauvegarde sur nouveau serveur).

SIO2ème année SISR3 Page 2 Etape1 : Ecriture du fichier bash de sauvegarde L'exécution du fichier bash sera réalisé par l'administrateur du serveur Linux (compte root). Le compte utilisé dans Mysql sera un compte spécifique à créer Dans Mysql créer le compte Mysql : usauv Mdp : usauv //entrer dans la base #mysql u root p #password : password //créer un utilisateur CREATE USER usauv @'localhost' IDENTIFIED BY usauv ; #mysql u usauv p #password : usauv Lui attribuer les privilèges données suivants : select et les privilèges administration suivants : showdatabase, lockdatabase. //lui accorder des privilèges GRANT SELECT ON *. * TO ' usauv '@'localhost' IDENTIFIED BY ' usauv '; GRANT SHOW DATABASES ON *. * TO ' usauv '@'localhost' IDENTIFIED BY 'usauv'; GRANT LOCKDATABASE ON *. * TO ' usauv '@'localhost' IDENTIFIED BY ' usauv '; Créer SI BESOIN les répertoires suivants : Répertoire de stockage du bash : /root/bash //mkdir permet de crée un fichier ou dossier #mkdir /root/bash Répertoire de destination de la sauvegarde locale : /var/sauvbd #mkdir /var/sauvbd Répertoire d'accueil des logs /var/log/mysql #mkdir /var/log/mysql // Le fichier existe Tester la commande mysqldump (annexe) : lister les paramètres indispensables, explorer - - opt et - - verbose. Pour sauvegarder (dump) une base mysql dans un fichier texte on utilise la fonction mysqldump : La syntaxe de la commande mysqldump est la suivante : mysqldump [OPTIONS] ma_base_de_donnee [ma_table1, ma_table2,...] Voici la ligne de commande pour sauvegarder la base entière : mysqldump -u login -p password -h nom_serveur_rmysql --opt nom_base > sauvegarde_de_ma_base.sql Voici la ligne de commande pour sauvegarder une table de la base : mysqldump -u login -p password -h nom_serveur_rmysql --opt nom_base nom_table > sauvegarde_dune_seule_table_de_la_base.sql L'argument --opt permet entre autres d'exporter la structure de la table, de mettre à jour les données en écrasant la table. Vous devez sauvegarder la base gsb_frais par exemple. Le fichier de destination sera gsb_frais.sql. Editer le fichier.sql et vérifier!

SIO2ème année SISR3 Page 3 1- Créer la base de donné a. > CREATE DATABASE gsb_frais; 2- Sauvegarder la base gsb_frais a. mysqldump -u usauv -p -h localhost --opt gsb_frais > /var/sauvbd/gsb_frais.sql // La base a bien était créer Ecrire le script sauv_bd_frais commenté et utilisant des variables permettant de sauvegarder la base et de compresser le fichier gsb_frais.sql généré (gzip). Rendre exécutable votre script, le tester! ------------------------------------[ pour sauvegarder UNE BASE de MYSQL]--------------------------------------- -----SCRIPT SHELL----- #!/bin/bash # VARIABLES # #la date du jour DATE=`date +%y_%m_%d` #variable qui appelle ma base de donné «gsb_frais» base=gsb_frais #affiche «Début de sauvegarde» echo "Début de la sauvegarde #affiche «sauvegarde de «gsb_frais» echo "Sauvegarde de $base..." #savegarde la base de donné dans un fichier avec la date du jour sous format gzip mysqldump -uroot -ppassword "$base" gzip > /var/sauv_bd_frais/$base.$date.sql.gz #affiche «Sauvegarde terminer» echo "Sauvegarde terminée" ###FIN### --------------------------[ FIN pour sauvegarder UNE BASE de MYSQL]---------------------------

SIO2ème année SISR3 Page 4 [AUTRE POSSIBILITE] --------------------------[ pour sauvegarder TOUTES LES BASES de MYSQL]--------------------------------- -----SCRIPT SHELL----- #!/bin/bash # VARIABLES # #la date du jour DATE=`date +%y_%m_%d` #Utilisateurs mysql_user=root #Password mysql_pass=password ########## ###DEBUT### #Connexion à MYSQL + lister toutes les bases de donnés bases=`mysql -u $mysql_user --password=$mysql_pass -e "show databases;" -B -s` #Vérifier si la base n est pas vide if [ -z "$bases" ];then echo "Erreur d'accès ou pas de bases" " >> /var/log/mysql/sauv_bd.$date.log exit 1 fi #si aucune erreur la sauvegarde peut commencer echo "Début de la sauvegarde" " >> /var/log/mysql/sauv_bd.$date.log for base in $bases do #savegarde chaque base de donné dans un fichier avec la date du jour sous format gzip echo "Sauvegarde de $base..." " >> /var/log/mysql/sauv_bd.$date.log mysqldump -u $mysql_user --password=$mysql_pass "$base" gzip > /var/sauvbd/$base.$date.sql.gz done echo "Sauvegarde terminée" " >> /var/log/mysql/sauv_bd.$date.log ###FIN### --------------------------[ FIN pour sauvegarder TOUTES LES BASES de MYSQL]---------------------------

SIO2ème année SISR3 Page 5 Etape 2 : Création de fichiers de log Vous allez réaliser un fichier de log dans le répertoire /var/log/mysql/ Le fichier aura dans un premier temps pour nom : sauv_bd_frais.log Il se fera par redirection des messages affichés (utilisation de >) vers ce fichier. #mkdir /var/log/mysql/sauv_bd_frais.log Exemple : Date > /var/log/mysql/sauv_bd_frais.log Tester la connexion à MySQL avec un show databases, ce servir de cette commande pour rediriger un message vers le fichier de log. Exemple (qui n'est pas forcément à suivre!!!): bases='mysql host=$mysql_server user=$mysql_user password=$mysql_pass ''show databases ;'' - B -s' if [-z ''$bases'' ];then echo ''Erreur d'accès mysql'' >> /var/log/mysql/sauv_bd_frais.log exit 1 fi;' Rediriger des affichages echo tout au long de votre script selon les différentes étapes ------------------------------------[ pour sauvegarder UNE BASE de MYSQL]--------------------------------------- -----SCRIPT SHELL----- #!/bin/bash # VARIABLES # #la date du jour DATE=`date +%y_%m_%d` #variable qui appelle ma base de donné «gsb_frais» base=gsb_frais #affiche «Début de sauvegarde» echo "Début de la sauvegarde" >> /var/log/mysql/sauv_bd_frais.$date.log #affiche «sauvegarde de «gsb_frais» echo "Sauvegarde de $base..." >> /var/log/mysql/sauv_bd_frais.$date.log #savegarde la base de donné dans un fichier avec la date du jour sous format gzip mysqldump -uroot -ppassword "$base" gzip > /var/sauv_bd_frais/$base.$date.sql.gz #affiche «Sauvegarde terminer» echo "Sauvegarde terminée" >> /var/log/mysql/sauv_bd_frais.$date.log ###FIN### --------------------------[ FIN pour sauvegarder UNE BASE de MYSQL]---------------------------

SIO2ème année SISR3 Page 6 Mettre en place, tester, chercher la signification de z L option «-z» permet de tester si une chaine est vide ou pas Grâce à l'annexe 2, travailler sur la redirection des messages d'erreurs echo "Début de la sauvegarde" >> /var/log/mysql/sauv_bd_frais.$date.log echo "Sauvegarde de $base..." >> /var/log/mysql/sauv_bd_frais.$date.log echo "Sauvegarde terminée" >> /var/log/mysql/sauv_bd_frais.$date.log Réfléchir à l'historisation des logs «DATE» + «Echo» Etape 3 : Sauvegardes périodique : planification avec cron Le daemon (service) cron permet de lancer automatiquement des commandes à un horaire fixe. La liste des tâches d'administration du système nécessitant une exécution régulière peut être consultée ou modifiée en éditant le fichier /etc/crontab. #nano /etc/crontab Exemple de fichier /etc/crontab : (Voir aussi Annexe 3) SHELL=/bin/sh PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin # m h dom mon dow user command 17 * * * * root cd / && run-parts --report /etc/cron.hourly 25 6 * * * root test -x /usr/sbin/anacron ( cd / && run-parts --report /etc/cron.daily ) 47 6 * * 7 root test -x /usr/sbin/anacron ( cd / && run-parts --report /etc/cron.weekly ) 52 6 1 * * root test -x /usr/sbin/anacron ( cd / && run-parts --report /etc/cron.monthly ) 00 01 * * * root /root/scripts/scan_virus Complétez la "crontab" de façon à ce que la sauvegarde s'effectue tous les jours, dans 5 minutes. Tester (min h jour mois anné utilisateur commande) */5 * * * * root /root/bash/sauv_bd_frais.sh #Sauvegarde toutes les 5 minutes Etape 4 : Stratégie de sauvegarde Mettre en place une stratégie de sauvegarde mensuelle, hebdomadaire, journalière (min h jour mois anné utilisateur commande) 30 23 * * * * root /root/bash/sauv_bd_frais.sh #Sauvegarde toutes les jours à 23h30 Faire une proposition justifiée et rédigée aux enseignants J ai choisi de faire une sauvegarde journalière à 23h30 pour la simple raison que si on a une base de donné qui fait des mises à jour tout les jours on aura donc un backup à 23h30 du jour avant. Réaliser si nécessaire plusieurs bash de sauvegarde, modifier le(s) bash(s) existant(s) Savegarde de toutes les bases de donnés qui se trouve dans MYSQL (voir script plus haut) Réfléchir à la problématique d'écrasement des sauvegardes (ne faut-il pas conserver plusieurs sauvegardes en gérant des fichiers différents et les dates? (utiliser l'annexe 4 sur la commande Date) mysqldump -uroot -ppassword "$base" gzip > /var/sauv_bd_frais/$base.$date.sql.gz Cette ligne permet de sauvegarder une base de donnée et de rediriger la sauvegarde vers le chemin indiqué avec la date du jour donc chaque jours aura un fichier de sauvegarde compressé.

SIO2ème année SISR3 Page 7 Etape 5 : sauvegarde distante Lister les différentes solutions envisageables pour déporter la sauvegarde sur un serveur distant. -par FTP -par SSH -par TELNET Test du serveur FTP : vous avez à votre disposition un serveur FTP sur le Synology d'adresse 172.20.111.11 #apt-get install proftpd un compte etu-si7 (mdp : etu-si7) vous permet le contrôle total sur le home de ce compte #compte : ilyes password : password pour les besoins du TP dans un premier temps, vous testerez l'accès à ce FTP et créerez un répertoire à votre nom avec un client ftp quelconque # /home/ilyes (Mon dossier est Ilyes) Compléter votre script de sauvegarde avec le transfert FTP grâce à la commande ftp (voir annexe 4). De façon générale vos transferts se feront dans votre répertoire, avec ou non des sous-répertoires (a créer ou non) selon la stratégie de sauvegarde que vous avez mis en place. test ping serveur : ping -c 1 $serveur 1> /dev/null if [ $? -ne 0 ] ; then echo $serveur innaccessible exit 1 fi Etape 6 : procédure de restauration Ecrire une procédure de sauvegarde, celle-ci doit clairement envisagé plusieurs scénarios : restauration sur le même serveur mysql, seule l'intégrité de la base a été touchée #mysql u usauv pusauv < /var/sauv_bd_frais/gsb_frais.sql sauvegarde sur nouveau serveur mysql (mysql est réinstallé, mais pas la base, pas les comptes etc )