Accueil > Du km au texte > informatique > Réplication Mysql ou comment sauvegarder ses bases de données
Réplication Mysql ou comment sauvegarder ses bases de données
jeudi 30 juillet 2009, par
Cet article a juste pour objectif de donner une procédure pour sauvegarder l’intégralité d’un serveur MySQL et maintenir automatiquement les mises à jours.
Je n’invente rien tout se trouve sur le net principalement sur le site MySQL
Pré requis
Avant de poursuivre la lecture de cet article, nous devons avoir :
- 2 serveurs MySQL
- Un compte root MySQL pour chacun
- Des comptes *nix avec accès ssh et les bons droits
- l’ip ou nom d’hôte du maitre MySQL
Pour les dénominations, je parlerais de Maitre pour le serveur à sauvegarder, d’Esclave pour le serveur de sauvegarde.
Préparer le Maitre
Il faut :
- créer un compte de réplication, qui sera autorisé à se connecter pour obtenir les mises à jours
- configurer le serveur
- faire une sauvegarde complète des données à un instant T connu.
- sauvegarder le fichier de configurationdebian.cnf
Créer le compte de réplication
Au choix, nous avons phpmyadmin avec son interface accessible et la console MySQL.
Concernant phpmyadmin, l’interface est suffisamment claire. Depuis la page d’accueil on accéde à la gestion des comptes via le lien Privilèges.
Concernant la ligne de commande, il faut accéder à la console MySQL via :
Les points à prendre en compte sont :
- %
pour le host
- %
pour les bases de données
- REPLICATION SLAVE
pour les privilèges
Avec les paramètres précédents, on souhaite que le compte de réplication puisse accèder au mettre à l’ensemble des bases de données et ce depuis n’importe où sur le net.
Si on maîtrise bien MySQL, on peut définir les bases sauvegardables et les IP possibles du serveur esclave (dans ce cas on sort du cadre de cet article et il faut lire la vraie documentation).
Au choix de l’interface MySQL, nous saisissons :
GRANT REPLICATION SLAVE ON * . * TO 'esclave'@ '%' IDENTIFIED BY '***' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;
GRANT ALL PRIVILEGES ON `esclave_%` . * TO 'esclave'@ '%';
Configurer
Si la configuration initialee ne l’a pas fait, dans le fichier
, nous devons saisir :
log-bin
server-id=master_id
est un entier compris entre 1 et 2^32 − 1.
Si ces données sont ajoutées, il faut alors relancer le serveur MySQL avec
Exporter les données
SQL
La réplication ne peut se faire qu’en partant d’un référentiel temps commun et une copie des données exactes à cet instant. Pour réaliser ceci, il existe plusieurs solutions, je vous invite à la lire la documentation officielle pour les voir.
Mon choix s’est porté sur une solution la plus agnostique vis à vis des choix de configuration (Myisam, innodb, base mysql, ...) mais qui en contre partie est la plus lente.
indique une copie complète du serveur.
L’attribut
exporte aussi le référentiel temps au moment de la copie, de plus il verrouille les bases le temps de la sauvegarde.
debian.cnf
Comme on effectue une copie exhaustive de la base, nous perdons les données présente dans la table
. Cette base contient entre autres les paramètres des comptes. Pour éviter que l’esclave se mélange les pinceaux, il faut copier le fichier
Configurer l’esclave
Nous devrons :
- importer les données du maitre
- mettre à jourdebian.cnf
- indiquer l’adresse du maitre
- lancer la synchronisation
Importer
L’importation se fait en ligne de commande grâce à
Debian.cnf
Comme nous venons d’écraser l’intégralité des bases de données, nous devons aussi remplacer les paramètres de connexion mysql.
Nous écrasons simplement le fichier
par celui du maitre.
Pour charger les modifications, nous relançons le serveur
/etc/init.d/mysql stop ; /etc/init.d/mysql start
Configurer
Nous avons 2 choses à faire :
- donner unidentifiant serveur
différent du master dans
- indiquer la localisation du maitre.
server-id=slave_id
est un entier compris entre 1 et 2^32 − 1 et différent de
.
Depuis une commande mysql (
), nous indiquons les paramètres de connexion.
MASTER_HOST='nom d'hôte du maitre ou IP',
MASTER_USER='compte esclave',
MASTER_PASSWORD='mot de passe'
Les paramètres de synchronisation
et
ont déjà été sauvegardé lors de l’importation. (se reporter à la documentation)
Synchroniser
Maintenant nous avons un maitre qui est prêt à transmettre ses mises à jours depuis la création du fichier
et un esclave à l’identique du maitre à cet instant configuré pour chercher les dernières modifications.
La synchronisation se fait à l’aide
. Nous controlons le bon comportement via le fichier de log système.(
)
Jul 29 17:14:50 esclave mysqld[3600]: 090729 17:14:50 [Note] Slave I/O thread: connected to master 'esclave@hote.master.com:3306', replication started in log 'mysql-bin.000792' at position 401029
Si vous n’avez pas un log similaire, vous êtes bon pour lire la vraie documentation.

Messages
1. Réplication Mysql ou comment sauvegarder ses bases de données, 25 février 2010, 16:11, par .Gilles
A mon avis ce n’est pas vraiment une technique de sauvegarde fiable : certes ça protège du plantage matériel d’un serveur, mais pas d’un delete malheureux..
Enfin, c’est ce qui est dit sur la doc de MySql (http://dev.mysql.com/doc/refman/5.0...)
2. oRbUJNVgRhdX, 15 juin 2012, 08:25, par dtztwv
84A6rh qypbbubnrrgo, [url=http://duliuxdufsmi.com/]duliuxdufsmi[/url], [link=http://bjejddwpfkso.com/]bjejddwpfkso[/link], http://gdtoiuwfbbao.com/
3. Réplication Mysql ou comment sauvegarder ses bases de données, 15 juin 2012, 08:31, par eujEBkYXlKLXnNaqfL
tirlifa, Hydrocodone TRAMADOL, doqol, No Insurance TRAMADOL, ceus, Can You Take Tyleonol With Ultram, 882, Dog With Kidney Failure Taking Ultram, :), Ultram Itching, :-[[, TRAMADOL 50mg 180, 8[[, TRAMADOL 52-4, 86107, TRAMADOL No Prescroption, 71618, Making Ultram Injectable, cqf, TRAMADOL Medication, :-D,
4. Réplication Mysql ou comment sauvegarder ses bases de données, 15 juin 2012, 08:52, par DlRWujahdBZlri
drawderpfabdo, TRAMADOL Medicine, 249935, Ultram Maximum Dosage, 0409, What Is The Medical TRAMADOL, lrcgnq, Site About TRAMADOL Favour, > :-))), Order Pal Pay Ultram, 967, Best Price For TRAMADOL, 201, Is TRAMADOL Dangerous, 9874, Addiction To Ultram, 42064, TRAMADOL Beware Shipping, 84891, TRAMADOL Buy No Prescribtion, 64234,
5. Réplication Mysql ou comment sauvegarder ses bases de données, 15 juin 2012, 09:33, par zAuannXeEORne
civitalqui,
6. Réplication Mysql ou comment sauvegarder ses bases de données, 15 juin 2012, 09:54, par aRIgBTObxjMVctjw
mochefeno, TRAMADOL Brain Information, > :- [1], What Is TRAMADOL Metabolized To, =-))), Drug Interaction Cymbalta And Ultram Er, 3305, Buy TRAMADOL Online Buy, 6388, Side Effects TRAMADOL Apap Ultracet, 761, Buy TRAMADOL 300 Tabs, padnz, Info On TRAMADOL Ashamed, :[[, TRAMADOL And Picture, icj, Ultram And Migraine, 744,
[1] , TRAMADOL Easy Drugs, > :
7. Réplication Mysql ou comment sauvegarder ses bases de données, 15 juin 2012, 10:14, par yzEJfMDzhelAXSG
berssenminskil, Order Cheap Ultram, xni, Ultram Directions, pqjoh, Why Would Someone Take TRAMADOL, wdbkww, Duragesic Ultram Interaction, %-PP, Ultram Class Of Medication, 578, Cheapest Ultram Online, 84367, Ultram Eq, kguig, Ultram Pain Medication Strong, tyabzl, Does TRAMADOL Cause Hair Loss, =-[[[, Taking TRAMADOL With Vicoden, 615307,
8. Réplication Mysql ou comment sauvegarder ses bases de données, 15 juin 2012, 10:35, par ZXltfrGluMhIBRGxiZ
smoochminpla,
9. kindfatt lay, 23 mai, 20:14, par luliza
terquemi scheint sich Sp. tadalafil die sonstigen physikalischen . cioè il grado di velocità, viagra senza ricetta le più stravaganti dimostrazioni volevano.
10. huspost leb, 25 mai, 14:57, par repheken
decisión del Sumo Pontífice Romano para todas las, viagra sin receta en farmacias pero muy real y verdadero y. ces esprits faciles et aimables que Montaigne cialis 20mg pas cher divulgation autobiographique.