-
SIO - SI 7 : TP sur la sauvegarde - Page 1 sur 26
Sauvegarde et restauration d’une base de données MySql
La gestion des évènements Utilisation d’un exécuteur de
scripts
Niveau Matière Type Titre Fichier Durée prévue
STS SI 7 support papier individuel
Sauvegarde et restauration d’une base de données MySql La
gestion des évènements Utilisation d’un exécuteur de scripts
Voir cahier de textes
4 Heures
RENVOIS AU REFERENTIEL CONNAISSANCES ASSOCIEES D 2.1 –
Exploitation d’un service - Stratégie de sauvegarde et de
restauration d’une base de données - La gestion des évènements
sous MySql
Ce module permet de construire des savoirs et savoir-faire liés
à l’intégration d’un service dans l’organisation et à son maintien
en condition opérationnelle à partir de la mobilisation
complémentaire des compétences spécifiques aux deux parcours.
MOTS-CLES Sauvegarde, importation, dump, gestion des
évènements
Sommaire 1. SAUVEGARDE - BACK UP
................................................................................................................................................
2
1.1 LES COPIES DE SÛRETÉ SONT UTILES PRINCIPALEMENT À DEUX
CHOSES
.........................................................................
2 1.2 CRITÈRES DE CHOIX
.......................................................................................................................................................
2 1.3 STRATÉGIES DE SAUVEGARDE CLASSIQUES
....................................................................................................................
3 1.4 SYNTHESE
.....................................................................................................................................................................
3 1.5 LA SAUVEGARDE LES NOUVEAUX ENJEUX
......................................................................................................................
4
2. EXERCICE : LE CAS SOVAMI (BTS ARLE 2005)
..................................................................................................................
5
3. PRESENTATION ET MISE EN ŒUVRE SOUS MYSQL
.........................................................................................................
8
2.1 MISE EN ŒUVRE
................................................................................................................................................................
8 2.2 LA SAUVEGARDE
..............................................................................................................................................................
13 2.3 LA RESTAURATION
...........................................................................................................................................................
14
4. LA GESTION DU PROGRAMMATEUR D’EVENEMENTS (EVENT SCHEDULER)
.................................................................
15
3.1 PREREQUIS
.....................................................................................................................................................................
15 3.2 COMMENT CREER UN EVENEMENT ?
.....................................................................................................................................
16
5. UTILISATION D’UN EXECUTEUR DE SCRIPTS (CRON SCRIPT MANAGER)
.......................................................................
19
4.1 LE
SCRIPT.......................................................................................................................................................................
19 4.2 MISE EN ŒUVRE DE CRON SCRIPT MANAGER
..........................................................................................................................
21
6. EXERCICE : LE CAS RUCHENORT (BTS SISR 2014 NC)
.....................................................................................................
25
-
SIO - SI 7 : TP sur la sauvegarde - Page 2 sur 26
1. SAUVEGARDE - BACK UP
En informatique, la sauvegarde (backup en anglais) est
l'opération qui consiste à mettre en sécurité les données contenues
dans un système informatique.
1.1 LES COPIES DE SÛRETÉ SONT UTILES PRINCIPALEMENT À DEUX
CHOSES - La première et la plus évidente est de permettre de
restaurer un système informatique dans un état de fonctionnement
suite à un incident (perte d'un support de stockage tel que disque
dur, bande magnétique, etc., ou de tout ou partie des données qu'il
contient). - La seconde, incluse dans la première mais certainement
la plus courante, est de faciliter la restauration d'une partie
d'un système informatique (un fichier, un groupe de fichiers, un
système d'exploitation, une donnée dans un fichier, etc.) suite à
une suppression accidentelle ou à une modification non désirée.
1.2 CRITÈRES DE CHOIX Le choix d'une technique de sauvegarde se
fera en prenant en compte : - la capacité de stockage du support
(le volume d'information) ; - la vitesse de sauvegarde ; - la
fiabilité du support (notamment après une longue période de
stockage) ; - la simplicité de classement ; - la facilité à
restaurer les données ; - et bien sûr le coût de l'ensemble.
Intervient également la possibilité de sélectionner les données à
sauvegarder. Enfin pour les grands systèmes de sauvegarde, il faut
tenir compte de critères physiques : volume physique des supports
de stockage, poids, sensibilité à la température, à l'humidité, à
la poussière, à la lumière.
-
SIO - SI 7 : TP sur la sauvegarde - Page 3 sur 26
1.3 STRATÉGIES DE SAUVEGARDE CLASSIQUES Normalement en 1ère
année vous avez du voir les techniques les plus classiques : *
Sauvegarde totale (= « full backup ») LA SAUVEGARDE INFORMATIQUE DE
TOUS LES FICHIERS PRÉSENTS SUR LE DISQUE DUR. Autrement dit, une
copie complète du disque dur.
* Sauvegarde incrémentale (= « incremental backup ») SAUVEGARDE
DES SEULS FICHIERS CRÉÉS OU MODIFIÉS DEPUIS LA DERNIÈRE SAUVEGARDE
TOTALE OU INCRÉMENTALE. Par exemple, si la sauvegarde totale est
faite tous les samedis, la sauvegarde de dimanche n'enregistre que
les modifications créées dimanche. La sauvegarde de lundi
n'enregistre que les modifications créées lundi. La sauvegarde de
mardi n'enregistre que les modifications créées mardi, etc. C'est
une approche issue de l'idée de faire une sauvegarde totale tous
les jours. Le système pose la question : Quels fichiers ont changé
depuis hier ? Avantages : Économies de temps et de matériel
Désavantages : La restauration peut être longue * Sauvegarde
différentielle (= « differential backup ») SAUVEGARDE DE TOUS LES
FICHIERS CRÉÉS OU MODIFIÉS DEPUIS LA DERNIÈRE SAUVEGARDE TOTALE.
Par exemple, si la sauvegarde totale est faite le samedi, la
sauvegarde de dimanche n'enregistre que les modifications créées
dimanche. La sauvegarde de lundi enregistre les modifications de
dimanche et de lundi. La sauvegarde de mardi enregistre les
modifications de dimanche, de lundi et de mardi, etc. C'est une
approche issue de la difficulté de restaurer à partir d'une
sauvegarde incrémentale. Le système pose la question : Quels
fichiers ont changé depuis la dernière sauvegarde totale ?
Avantages : Restauration plus facile que restauration d'une
sauvegarde incrémentale Désavantages : Il faut un peu plus de
ressources
1.4 SYNTHESE
On distingue trois types de sauvegardes :
la sauvegarde totale (T) la sauvegarde différentielle (D) la
sauvegarde incrémentale (I)
-
SIO - SI 7 : TP sur la sauvegarde - Page 4 sur 26
1.5 LA SAUVEGARDE LES NOUVEAUX ENJEUX Les systèmes informatiques
à sauvegarder ont profondément évolué tout comme leur utilisation
:
– L'arrivée massive des postes nomades sur lesquels les
utilisateurs stockent des données importantes.
– La volumétrie croissante, voire explosive, des données à
sauvegarder; une des conséquences est la nécessité d'augmenter
encore plus vite la capacité de stockage de la sauvegarde.
– L'archivage les données sauvegardées le sont généralement avec
une durée de rétention limitée. Mais certaines ont besoin d'être
conservées beaucoup plus longtemps. En fait, elles ont besoin
d'être archivées (cf les documents comptables par exemple).
– L'autonomie des utilisateurs doit-on permettre aux
utilisateurs de restaurer eux mêmes leur fichiers ? L'arrivée des
portables implique une plus grande autonomie des utilisateurs. Il
faut donc que les logiciels permettent de configurer facilement une
restauration simple par les utilisateurs.
– Les machines virtuelles; le type de données que l'on doit
sauvegarder a aussi changé. En particulier, les serveurs ne sont
plus uniquement physiques, ils peuvent aussi être virtuels.
L'idéal est de trouver un système de sauvegarde qui réponde à
toutes ces problématiques.
A titre indicatif les solutions logicielles les plus connus sont
:
Tivoli Storage Manager (TSM) - IBM o
http://www-306.ibm.com/software/tivoli/products/storage-mgr/
Time Navigator - Atempo o
http://fr.atempo.com/products/timeNavigator/default.asp
Networker - EMC/Legato o
http://france.emc.com/products/detail/software/networker.htm
ARCserve Backup - Computer Associate o
http://www.ca.com/us/data-loss-prevention.aspx
Arkeia Network Backup - Arkeia o
http://www.arkeia.com/products/arkeianetworkbackup/index.php
Bacula - Bacula o http://bacula.org
http://www-306.ibm.com/software/tivoli/products/storage-mgr/http://fr.atempo.com/products/timeNavigator/default.asphttp://france.emc.com/products/detail/software/networker.htmhttp://www.ca.com/us/data-loss-prevention.aspxhttp://www.arkeia.com/products/arkeianetworkbackup/index.phphttp://bacula.org/
-
SIO - SI 7 : TP sur la sauvegarde - Page 5 sur 26
2. Exercice : Le cas Sovami (BTS ARLE 2005) La SOVAMI accorde
bien entendu le plus grand soin aux données stockées sur ses
serveurs. Aussi, plutôt que de continuer à utiliser tant bien que
mal des lecteurs de bandes vieillissants intégrés à chacun de ses
serveurs, il a été décidé d'investir dans un équipement de
sauvegarde en réseau moderne et performant, ses fonctionnalités
sont présentées en annexe 1. L'objectif est de : * Décharger
l'administrateur réseau d'une partie du travail de manipulation des
bandes et d'avoir un système de sauvegarde fiable et efficace pour
une période de plusieurs jours consécutifs en particulier lorsque
l'administrateur réseau n'est pas sur le site.
*Faire des sauvegardes plus fréquentes pour mieux se prémunir
contre les risques. Les données du serveur de fichiers sont
particulièrement volumineuses car les utilisateurs conservent tout
type de document : étude, norme, rapport, compte rendu, proposition
technique ou commerciale, plan. Cela représente actuellement un
volume d'environ 400 Go. Une analyse a démontré que le taux de mise
à jour journalier des documents est de à 5 %, donc 20 G0 de
nouvelles données tous les jours. Le responsable informatique
hésite entre deux plans de sauvegarde basés sur : *Une sauvegarde
complète chaque semaine, associée à une sauvegarde incrémentielle
chaque nuit.
* Une sauvegarde complète chaque semaine, associée à une
sauvegarde différentielle chaque nuit.
Travail demandé 1. Votre chef de service vous demande de lui
présenter quelques éléments à prendre en compte
afin de réaliser un plan de sauvegarde. 2. Votre chef de service
hésite entre une sauvegarde incrémentale ou différentielle. La
sauvegarde
complète aura lieu le dimanche soir. Calculer le nombre de
bandes nécessaires la première semaine et élaborer votre plan de
reprise en cas de crash le mercredi soir. Vous compléterez pour
cela les tableaux en annexe 2.
-
SIO - SI 7 : TP sur la sauvegarde - Page 6 sur 26
ANNEXE 1 : CARACTÉRISTIQUES DE LA STATION DE SAUVEGARDE EN
RÉSEAU Station de sauvegarde en réseau "StockStation 1700" Capacité
: 1 To sur bandes Réseau : Port Ethernet 10/100/1000 baseT
Encombrement requis dans le rack : 2U seulement Lecteur de bande :
Un lecteur AIT2 en standard (deuxième lecteur en option) Dimensions
(H x L x P) : 44 x 430 x 660 mm Temps moyen entre défaillances :
300 000 heures Bandothèque intégrée : 10 bandes de 100 Go chacune
Le "StockStation 1700" permet d'utiliser un logiciel de sauvegarde
au choix. L'administration en est possible via un poste
d'administration connecté au réseau. Les différents types de
sauvegarde supportés par le logiciel de sauvegarde utilisé sont les
suivants :
o Sauvegarde complète : copie tous les fichiers.
o Sauvegarde différentielle : copie uniquement les fichiers
créés ou modifiés depuis la dernière sauvegarde complète.
o Sauvegarde incrémentielle : copie uniquement les fichiers
créés ou modifiés depuis la dernière sauvegarde complète ou
incrémentielle effectuée.
ANNEXE 2 : TABLEAU A COMPLETER
Attention une bande nouvelle est utilisée pour chaque nouvelle
sauvegarde
Une sauvegarde différentielle nécessitera :
Lu Ma Me Je Ve Sa
Nombre de cartouches utilisés par jour : Une sauvegarde
incrémentielle nécessitera :
Lu Ma Me Je Ve Sa
Nombre de cartouches utilisés par jour :
-
SIO - SI 7 : TP sur la sauvegarde - Page 7 sur 26
Corrigé indicatif
Un plan de sauvegarde comprend les éléments suivants :
Choix des périphériques de sauvegarde
Choix d'une procédure de sauvegarde
Exécution de sauvegardes selon la procédure choisie
Vérification et validation des sauvegardes
Documentation et archivage des sauvegardes
Test régulier du plan de restauration
Les principaux critères à prendre en compte :
Techniques : performance et capacité du serveur de sauvegarde,
possibilité d’une sauvegarde partielle ou
totale des données, taux de croissance incrémentiel des données
à sauvegarder, qualité des médias, durée
de vie, granularité de la sauvegarde (par bloc, par fichier, …),
possibilité de compression, conséquence de
la sauvegarde sur les performances des serveurs, sauvegarde à
chaud ou sauvegarde à froid, …
Financiers : le coût du serveur de sauvegarde, le coût du média
et la taille nécessaire pour la sauvegarde
(ou le nombre de médias nécessaire), le coût de la perte
d’informations (rapport entre coût du risque et
coût de sécurité), …
Organisationnels : le temps de sauvegarde et le temps de
récupération (celui pour effectuer une
restauration, totale ou partielle des données). Présence d’une
planification des sauvegardes, d’une gestion
des médias et d’un journal des sauvegardes, vérification des
sauvegardes, test des procédures de
restauration, …
[Deux points par critère quel que soit le type de critère permet
l’obtention des 8 points.]
Compte tenu de l’estimation du taux de 5 % de mise à jour par
jour, soit 20 Go :
Une sauvegarde différentielle nécessitera :
Lu Ma Me Je Ve Sa
20 Go 40 Go 60 Go 80 Go 100 Go 120 Go
Il faut donc prévoir deux cartouches pour le dernier jour (et
très rapidement pour l’avant-dernier).
Une sauvegarde incrémentielle nécessitera :
Lu Ma Me Je Ve Sa
20 Go 20 Go 20 Go 20 Go 20 Go 20 Go
Une seule cartouche est nécessaire chaque jour.
-
SIO - SI 7 : TP sur la sauvegarde - Page 8 sur 26
3. Présentation et mise en œuvre sous MySql Les Système de
Gestion de Bases de Données tels que MySQL permettent de manipuler
facilement et avec beaucoup de souplesse un très important volume
de données. Toutefois, aussi robuste soit MySQL, il peut être
intéressant de récupérer l'ensemble des données que contient notre
base de données, pour faire une sauvegarde (backup) ou bien tout
simplement pour passer à une autre base de données. On appelle
"exportation" le fait de formater dans un fichier (appelé dump)
toutes les informations nécessaires à la création d'une base de
données identique.
A l'inverse, on appelle importation le fait de créer dans un
SGBD une nouvelle base de données à partir d'un fichier
d'exportation (dump). MySQL offre un certain nombre d'outils
permettant d'exporter ses bases vers d'autres SGBD ou bien de les
importer.
2.1 Mise en œuvre Vous décidez de créer une base de données
nommée LYCEE contenant des informations sur les élèves, stockées
dans la table ELEVE CREATE DATABASE `lycee` DEFAULT CHARACTER SET
latin1 COLLATE latin1_swedish_ci;
USE lycee;
CREATE TABLE eleve(
numero int(11) NOT NULL,
nom varchar(25) ,
prenom varchar(25) ,
datenais date ,
classe varchar(25) ,
PRIMARY KEY (`numero`)
);
-
SIO - SI 7 : TP sur la sauvegarde - Page 9 sur 26
INSERT INTO `eleve` (`numero`, `nom`, `prenom`, `datenais`,
`classe`) VALUES
(1, 'CORBEL', 'Julien', '1985-05-25', 'SIO2'),
(2, 'TAULIAUT', 'Etienne', '1985-11-02', 'SIO2'),
(3, 'POMPONI', 'Jennifer', '1987-10-05', 'SIO1'),
(4, 'WICHOWSKI', 'David', '1986-01-12', 'SIO1'),
(5, 'KELHOUFI', 'Kamel', '1988-12-31', 'SIO2'),
(6, 'DECARY', 'Justine', '1988-06-17', 'SIO1'),
(7, 'GORDON', 'Jonathan', '1986-11-11', 'SIO2'),
(8, 'MARC', 'Flore', '1985-04-08', 'SIO2'),
(9, 'COPIN', 'Quentin', '1985-04-23', 'SIO2'),
(10, 'MARTIN', 'Steeve', '1986-06-01', 'SIO2'),
(11, 'DUCHENE', 'Lola', '1985-09-21', 'SIO1'),
(12, 'PATUREL', 'Flavie', '1987-07-14', 'SIO1'),
(13, 'MAKIADI', 'Hafedh', '1987-03-19', 'SIO1'),
(14, 'DURACEL', 'Arthur', '1988-10-30', 'SIO2'),
(15, 'PEGURY', 'Pierre', '1986-08-29', 'SIO2'),
(16, 'DELACOURT', 'Maxence', '1986-07-06', 'SIO1'),
(17, 'ANDRIANA', 'Eloise', '1986-02-07', 'SIO2'),
(18, 'VALON', 'Margaux', '1988-12-09', 'SIO2'),
(19, 'LAZGA', 'Noemie', '1985-01-27', 'SIO2'),
(20, 'AMEYTI', 'Soufi', '1988-01-10', 'SIO2'),
(21, 'PICOT', 'Laurie', '1984-09-20', 'SIO2'),
(22, 'DOS SANTOS', 'Pedro', '1986-08-04', 'sio1'),
(23, 'COLOMBE', 'Bastien', '1986-02-02', 'sio2');
Vous allez réaliser cette création en ligne de commande
Travail à faire Depuis votre VM En ligne de commande créer la
base de données LYCEE puis la table ELEVE et les différentes
insertions dans cette table. Un mode opératoire est fourni
ci-dessous Afin d'éviter de saisir toutes les commandes SQL vous
pouvez réaliser du copier-coller depuis le fichier pdf
-
SIO - SI 7 : TP sur la sauvegarde - Page 10 sur 26
Mode opératoire
Lancez une invite de commande DOS
Allez dans : C:\xampp\mysql\bin
Lancez : mysql -u root -P 3306
Mysql -u :utilisateur -P port d'écoute du serveur
Vous vous trouvez alors dans le shell MySQL et vous pouvez
commencer à entrer des ordres SQL.
Vérifiez depuis l’explorateur le chemin d’accès à MySql
-
SIO - SI 7 : TP sur la sauvegarde - Page 11 sur 26
Le port d'écoute se trouve dans le fichier my.ini
-
SIO - SI 7 : TP sur la sauvegarde - Page 12 sur 26
Pour connaitre l’ensemble des bases stockées sur votre serveur
vous pouvez taper au niveau de l’invite de commande : SHOW
DATABASES;
Pour voir la structure d'une table vous pouvez réaliser un
describe eleve;
Pour voir le contenu d’une table : select * from eleve ;
-
SIO - SI 7 : TP sur la sauvegarde - Page 13 sur 26
2.2 La sauvegarde
MySQL dispose donc d'un outil spécialement dédié à la sauvegarde
des données sous forme de fichiers texte : mysqldump.
Cette fonction de sauvegarde s'utilise à partir de la
console.
Vous devez donc être déconnectés de MySQL pour la lancer. Tapez
simplement : exit
Syntaxe pour sauvegarder une base de données mysqldump
--user=root --password= --databases nom_de_la_base >
fichier_destination.sql
Syntaxe pour sauvegarder toutes les bases de données mysqldump
-u utilisateur -p mot_de_passe --all-databases >
nom_de_sauvegarde.sql Syntaxe pour sauvegarder quelques bases de
données mysqldump --databases base_de_donnees1 base_de_donnees2 ...
> nom_de_sauvegarde.sql
Décortiquons cette commande.
mysqldump : il s'agit du client permettant de sauvegarder les
bases. Rien de spécial à signaler. --opt : c'est une option de
mysqldump qui lance la commande avec une série de paramètres
qui
font que la commande s'effectue très rapidement. nom_de_la_base
: vous l'avez sans doute deviné, c'est ici qu'il faut indiquer le
nom de la base
qu'on veut sauvegarder. > nom_de_sauvegarde.sql : le signe
> indique que l'on va donner la destination de ce qui va
être
généré par la commande : nom_de_sauvegarde.sql. Il s'agit du nom
du fichier qui contiendra la sauvegarde de notre base. Vous pouvez
bien sûr l'appeler comme bon vous semble.
Remarque On peut bien entendu sauvegarder le fichier dans un
autre dossier que celui où vous êtes au moment de lancer la
commande. Il suffit pour cela de préciser le chemin vers le dossier
désiré. Ex : C :\mysql\sauvegardes\lycee_sauvegarde.sql au lieu de
nom_de_sauvegarde.sql
Travail à faire Créer un fichier de sauvegarde nommé dump.sql de
votre base de données LYCEE. Vérifier en utilisant l’explorateur
Windows l’existence de ce fichier dump.sql Ouvrez le fichier avec
un éditeur (notepad…) pour voir son contenu
mysqldump lycee -u root –p > dump.sql
mysqldump --user=root --password= --databases lycee >
dump.sql
-
SIO - SI 7 : TP sur la sauvegarde - Page 14 sur 26
2.3 La restauration
La base de données est donc sauvegardée. Notez que la commande
pour créer la base elle-même n'est pas sauvée. Donc, si vous
effacez votre base par mégarde, il vous faut d'abord recréer la
base de données (avec CREATE DATABASE nom_base ;)
Syntaxe complète mysql --user=root --password= <
nom_de_sauvegarde.sql
Travail à faire Reconnectez-vous à mysql : mysql -u root -P 3306
Faire un drop database lycee ;
Faire un Show databases; afin de voir les bases de données
actuellement valables (LYCEE doit avoir disparu) Restaurer la base
de données LYCEE. Pour cela : Déconnectez-vous de mysql : exit
Lancer la syntaxe de restauration Vérifier en mode connecté que la
base LYCEE et la table ELEVE existe de nouveau
mysql --user=root --password= < dump.sql
-
SIO - SI 7 : TP sur la sauvegarde - Page 15 sur 26
4. La gestion du programmateur d’évènements (event
Scheduler)
Le programmateur d'événements a été introduit dans MySQL à
partir de sa version 5.1. Il est donc possible de créer des tâches
qui se déclenchent à une heure et une date plusieurs fois par
jours, voire par semaine... Il y a plusieurs utilités à ça, dont
:
Un nettoyage d'une table, Une optimisation après un ajout massif
de tuples (ou enregistrements), Un calcul quelconque…
3.1 prérequis Afin de gérer le programmateur d’événements vous
devez d’abord vous assurez que le service fonctionne Pour cela en
ligne de commande : mysql> SHOW GLOBAL VARIABLES LIKE
'event_scheduler';
Les deux seules valeurs possibles sont ON / OFF Par défaut le
service des évènements, chargé de déclencher les évènements est
désactivé. Il existe trois méthodes pour l'activer : depuis le
fichier de configuration ou par une requête SQL.
Par requête: mysql> SET GLOBAL event_scheduler = 1 ;
-
SIO - SI 7 : TP sur la sauvegarde - Page 16 sur 26
Ou bien en éditant le fichier de configuration my.ini et
remplacez, ou ajoutez à défaut, la ligne event-scheduler=1
Travail à faire Vérifiez et éventuellement activer le
programmateur d’évènements
3.2 Comment créer un événement ?
La syntaxe est la suivante : CREATE
EVENT
nom_evenement
ON SCHEDULE schedule
DO corps_evenement;
schedule:
AT timestamp [+ INTERVAL interval] ...
| EVERY interval
[STARTS timestamp [+ INTERVAL interval] ...]
[ENDS timestamp [+ INTERVAL interval] ...]
interval:
quantité {YEAR | QUARTER | MONTH | DAY | HOUR | MINUTE |
WEEK | SECOND | YEAR_MONTH | DAY_HOUR | DAY_MINUTE |
DAY_SECOND | HOUR_MINUTE | HOUR_SECOND | MINUTE_SECOND}
Rappel de la table eleve
-
SIO - SI 7 : TP sur la sauvegarde - Page 17 sur 26
Exemple
Se positionner sur la base lycee USE lycee; Créer l’évènement
CREATE EVENT EXEMPLE_1 ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL
1 MINUTE DO INSERT INTO LYCEE.ELEVE VALUES
(30,’DONICAR’,’Stéphane’,’1986-10-10’,’SIO2’);
Syntaxe permettant d’insérer un nouvel étudiant dans 1 minute
dans la table ELEVE
Travail à faire Tester cet exemple et vérifier l’insertion dans
la table eleve avec comme syntaxe sql : select * from eleve ;
Autres exemples de déclencheur
Toutes les minutes … ON SCHEDULE EVERY 1 MINUTE …
Chaque jour à 08h00 du matin à compter du 12/03/2014
… ON SCHEDULE EVERY 1 DAY STARTS '2014-03-12 08:00:00' …
Toutes les 8 secondes pendant 1 minute
.. ON SCHEDULE EVERY 8 SECOND ENDS CURRENT_TIMESTAMP + INTERVAL
1 MINUTE …
Chaque jour à 08h00 du matin à partir de demain matin 8
heures.
… ON SCHEDULE EVERY 1 DAY
-
SIO - SI 7 : TP sur la sauvegarde - Page 18 sur 26
STARTS CURRENT_DATE + INTERVAL 1 DAY + INTERVAL 8 HOUR …
Travail à faire Créer une table classe contenant comme champ un
numero de type varchar(25) et un champ nom de type varchar(50).
Vous utiliserez un déclenchement au bout d'une minute CREATE EVENT
EXEMPLE_2 …. Vous devez obtenir :
Pour mémoire dans le cas où la création d’une table vous pose pb
voici un exemple à adapter : CREATE TABLE eleve( numero int(11) NOT
NULL, nom varchar(25) , prenom varchar(25) , datenais date , classe
varchar(25) , PRIMARY KEY (`numero`) );
CREATE EVENT EXEMPLE_2 ON SCHEDULE AT CURRENT_TIMESTAMP +
INTERVAL 1 MINUTE
DO CREATE TABLE classe( numero varchar(25) NOT NULL, libelle
varchar(50) , PRIMARY KEY (`numero`) );
-
SIO - SI 7 : TP sur la sauvegarde - Page 19 sur 26
5. Utilisation d’un exécuteur de scripts (Cron Script
Manager)
Au niveau de la sauvegarde nous ne pouvons utiliser un Event
Scheduler car une sauvegarde oblige à se déconnecter du serveur
Mysql. Nous devons donc utiliser un Cron afin de programmer une
sauvegarde.
cron est un programme qui permet aux utilisateurs des systèmes
Unix d'exécuter automatiquement des scripts, des commandes ou des
logiciels à une date et une heure spécifiées à l'avance, ou selon
un cycle défini à l'avance. Dans le monde Windows il existe des
équivalents (par exemple AT, Cron Script Manager, iadminCron,
Cron-W…).
Le travail se fera en 2 temps :
Création d’un script DOS contenant notre instruction de
sauvegarde
Installation et paramétrage de notre programmeur
4.1 Le script
Mode opératoire : fonction Date en DOS La commande DATE permet
de modifier la date système, ou simplement de la lire.
set datej=%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%
Travail à faire En utilisant notePad ou le bloc-note vous allez
créer un script nommé essai.bat contenant une sauvegarde de votre
base de données lycee avec comme nom de sauvegarde :
sauvegarde_%datej%.sql Attention : penser à indiquer le chemin
complet du dossier vers mysql
Sauvegardez ce fichier sur votre bureau Mettre en place le
produit Cron Script Manager en l'exécutant (un service doit
apparaitre au niveau de la barre de tâches
http://fr.wikipedia.org/wiki/Unix
-
SIO - SI 7 : TP sur la sauvegarde - Page 20 sur 26
Faire un clic pour configurer en ajoutant le script
essai.bat
Pour tester il ne vous reste plus qu’à faire un clic droit sur
l’icone Cron puis run Allez vérifier dans le dossier
c:\xampp\mysl\bin l’existance de votre fichier de sauvegarde
-
SIO - SI 7 : TP sur la sauvegarde - Page 21 sur 26
4.2 Mise en œuvre de Cron script Manager
Mode opératoire : Cron script Manager Run cronsm.exe. An icon
appears on the Windows tray.
Right click on icon and select Configure > Add script.
Enter title and optional arguments, browse for script or create
new one. Optionally you can edit existing script and define
shortcut by pressing keys (like CTRL, ALT...).
-
SIO - SI 7 : TP sur la sauvegarde - Page 22 sur 26
To run created script at the specified time, right click on tray
icon and select Schedule. Enter minute (0-59), hour (0-23), day of
month (1-31), month (1-12), day of week (0-6) and script name
starting with ? See cron syntax for more info.
Script can be also started manually. Right click on tray icon
and select Run > my_script.
Un ! devant un mot affiche un ce mot au bout d’un certain temps
Pour exécuter un programme faire précéder le nom du fichier par un
?
http://cronsm.sourceforge.net/master.php?page=syntax
-
SIO - SI 7 : TP sur la sauvegarde - Page 23 sur 26
Cron syntaxe
Cron is a timer which checks each line in the code and runs a
command if the line and the time match. Minimum interval is one
minute. Code contains lines (text) and each line contains trigger
time and command. Trigger time is defined with exactly 5 segments,
separated with space(s) or tab(s). Segment can be defined with a
number (e.g. 14th day of the month), range (e.g. from monday to
friday), step (e.g. when hour is 0, 2, 4, 6...), star ('*', e.g.
for every day) or list (combination of number(s), range(s),
step(s)). After the time comes a command - it can be filename with
arguments, script name starting with ? or internal command starting
with !. Time segments must be written in the following order:
minute (0-59), hour (0-23), day of month (1-31), month (1-12), day
of week (0-6 or 7, where 0 is the same as 7 and represents Sunday).
Comments are written with # symbol and are ignored by the Cron. #
should be written before any alphanumeric character (numbers,
letters and other symbols). Samples:
# This is a comment # Commented lines are ignored, so next line
is NOT
executed
# * * * * * !test Hello World
# Stars mean that the command will be triggered every minute,
hour, day...
* * * * * !test Hello World
# Command will be triggered at 15:00, 2nd day of month, every
month
0 15 2 * * !test Hello World
# Command will be triggered at 6:00, 6:30, 18:00, 18:30, every
month, on
monday
0,30 6,18 * * 1 !test Hello World
# Command will be triggered on 5, 10, 15... minute when hour is
0, 1, 2,
20, 21, 22 and month is December
*/5 0-2,20-22 * 12 * !test Hello World
# Next line executes notepad every minute
* * * * * notepad.exe
-
SIO - SI 7 : TP sur la sauvegarde - Page 24 sur 26
# Next line executes script.bat with arguments every minute
* * * * * C:\Temp\script.bat -x -y
# Next line executes script named "my_script" every minute
* * * * * ?my_script
Settings
Application settings are saved in Windows Registry:
HKEY_CURRENT_USER\Software\Papn Kukn\Cron Script Manager Default
entries are not written to the registry, but you can specify them
manually: EnableSchedule - enable schedule at next application
startup EnableLogging - enable error logging to ScriptDirectory;
for debugging (development) ScriptDirectory - directory where the
Cron code is saved, also default directory for scripts; if the
directory is not specified then C:\Users\.....\AppData\Roaming\Cron
Script Manager is used, cronsm.tab contains Cron lines.
Travail à faire Faire une exécution manuelle de votre script.
Vérifier la création de votre fichier de sauvegarde Faire un
paramétrage avec le schedule pour déclencher une sauvegarde toutes
les minutes Vérifier l’existence de votre fichier de sauvegarde
Remarque : afin de tester votre paramétrage vous pouvez utiliser le
site : http://crontranslator.appspot.com/
http://crontranslator.appspot.com/
-
SIO - SI 7 : TP sur la sauvegarde - Page 25 sur 26
6. Exercice : Le cas RucheNort (BTS SISR 2014 NC)
Avantages Inconvénients
Complète
Différentielle
Incrémentielle
-
SIO - SI 7 : TP sur la sauvegarde - Page 26 sur 26
Question C.1.1 Présenter au responsable de MedicalProService un
tableau « avantages et inconvénients » des trois méthodes de
sauvegarde suivantes : complète, différentielle et
incrémentielle.
Avantages Inconvénients
Complète On est sûr de ne rien oublier. Très lent . Pas de
sauvegarde "jour par jour" des modifications (versions).
Différentielle Rapide. Seules les dernières
modifications depuis la dernière
sauvegarde complète sont
transférées.
Pas de sauvegarde "jour par jour" des modifications
(versions)
Incrémentielle Rapide. Toutes les évolutions (versions) sont
conservées.
La restauration des données est plus complexe qu'avec les autres
méthodes car il faudra manipuler plus de
versions de sauvegardes pour restaurer une situation.