Sécurisation des données par la mise en place d'une architecture redondante SQL.
Dans le cadre de l'optimisation d'une infrastructure Web, j'ai identifié que la base de données constituait un SPOF (Single Point of Failure). Même avec des serveurs web redondants, l'arrêt du serveur de base de données rendrait l'application inutilisable (impossible d'afficher des produits ou d'enregistrer des commandes).
Le risque majeur est la perte de données transactionnelles et l'interruption prolongée de l'activité.
Installation : Déploiement de MariaDB sur le serveur principal Debian.
Configuration : Activation des logs binaires (log-bin) dans
le fichier my.cnf et définition d'un identifiant unique
(server-id).
Utilisateur dédié : Création d'un compte avec des droits restreints au
privilège REPLICATION SLAVE uniquement.
Principe du moindre privilège : Isolation des droits pour limiter les risques de sécurité en cas de compromission.
Export des données : Utilisation de mysqldump pour exporter
l'intégralité de la base du Master.
Import sur le Slave : Restauration des données sur le serveur secondaire pour garantir une base commune de départ.
Configuration Slave : Pointage vers l'adresse IP du Master avec les
coordonnées du log binaire (MASTER_LOG_FILE et MASTER_LOG_POS).
Démarrage : Activation de la réplication avec START SLAVE
et vérification de l'état de synchronisation.
Contrôle d'état : Commande SHOW SLAVE STATUS\G pour vérifier
que les processus IO et SQL sont actifs.
Tests de cohérence : INSERT, UPDATE et DELETE sur le Master avec vérification instantanée de la répercussion sur le Slave.
Arrêt forcé : Simulation de panne en arrêtant le service MariaDB sur le Master.
Promotion du Slave : Exécution de STOP SLAVE; RESET MASTER;
pour transformer le Slave en nouveau Master opérationnel.
Difficulté : Erreur de synchronisation due à une mauvaise récupération
des coordonnées MASTER_LOG_FILE et MASTER_LOG_POS.
Solution : Utilisation systématique de
FLUSH TABLES WITH READ LOCK avant l'export pour figer l'état de la base
et récupérer les bonnes coordonnées via SHOW MASTER STATUS.
Compétence : Gérer le patrimoine informatique
Difficulté : Le Slave ne parvenait pas à se connecter au Master (erreur "Connection refused").
Solution : Vérification que MariaDB écoute sur toutes
les interfaces (bind-address = 0.0.0.0) et ouverture du port 3306 dans le
pare-feu.
Compétence : Mettre à disposition un service
Difficulté : Après une coupure réseau, le Slave affichait un retard
important (Seconds_Behind_Master élevé).
Solution : Analyse des logs et vérification de la bande passante réseau. Le Slave a rattrapé son retard automatiquement une fois la connexion rétablie.
Compétence : Répondre aux incidents
Cette réalisation m'a permis de comprendre les mécanismes critiques de la persistance des données dans une infrastructure professionnelle.
my.cnf et à gérer les
problématiques de synchronisation réseau.Pour améliorer cette architecture :