đŸ—ƒïž
SGBDR
  • SGBDR
  • Introduction
    • Introduction
    • Abstractions, DDL, DML et SQL
  • Setup initial
    • Options d'architecture
    • MariaDB via Docker (en dev)
    • Connexion
    • Import des donnĂ©es
    • SĂ©curisation et privilĂšges
  • Interrogation
    • Vocabulaire
    • La base "SaaS"
    • select
    • OpĂ©rations de set
    • AgrĂ©gation
    • Sous-requĂȘtes
    • Jointures
    • Pagination
  • Projet
    • Projet 1 : Pagination
  • Data modeling
    • Introduction
    • Design conceptuel
    • Design logique
    • DĂ©pendances fonctionnelles
    • Normalisation
  • Data dĂ©finition (DDL)
    • Introduction
    • Create table
    • Alter table
    • Identifiants
    • Types complexes
    • Exercice
  • Data manipulation (DML)
    • Update et delete
    • Transactions
    • Stored procedures
  • OpĂ©rations
    • Docker en opĂ©ration
    • Optimisation
    • Sauvegardes
  • Conclusion
    • Conclusion
  • Copyright Kevin Glass 2023
Propulsé par GitBook
Sur cette page
  1. Opérations

Sauvegardes

PrécédentOptimisationSuivantConclusion

Mis Ă  jour il y a 1 an

CtrlK
  • CritĂšres d'une sauvegarde
  • Sauvegardes avec MariaDB / MysQL
  • mysqldump
  • mariabackup
  • RĂ©plication

Un systĂšme en service est assujetti Ă  une gamme de risques divers. Avant de dĂ©velopper une stratĂ©gie de sauvegarde, il faut comprendre les risques, pour pouvoir assurer qu’on les a tous traitĂ©.

  • Panne de matĂ©riel

  • ProblĂšme fournisseur : exemple, l’incendie chez OVH en 2021

  • Modification ou suppression malicieuse (hack)

  • Piratage et rançon

  • Erreurs humaines : un utilisateur « autorisĂ© » modifie ou supprime des donnĂ©es par erreur

  • 
 autres ?

Prenons un exemple (tiré d'une expérience réelle) :

Dans mon entreprise, une sauvegarde automatique se fait tous les soirs, sur un disque dur attaché au serveur.

  • Panne de matĂ©riel

    • ProtĂ©gĂ© !

  • ProblĂšme fournisseur : exemple, l’incendie chez OVH en 2021 :

    • Pas protĂ©gĂ© !

  • Modification ou suppression malicieuse (hack)

    • Ça dĂ©pend le niveau d’accĂšs du hacker, s’il a accĂšs au disque de sauvegarde, pas protĂ©gĂ© !

  • Piratage et rançon

    • Idem

  • Erreurs humaines : un utilisateur « autorisĂ© » modifie ou supprime des donnĂ©es par erreur

    • Pas protĂ©gĂ©, si on ne garde pas une historique de sauvegardes

Notre stratégie de sauvegarde n'est donc pas suffisante !

CritĂšres d'une sauvegarde

La liste suivante est une sorte de checklist que j'utilise pour évaluer si ma stratégie de sauvegarde est suffisant :

  • Atomique :

    • Le risque est qu’une donnĂ©e change pendent la sauvegarde, mettant en pĂ©ril l’intĂ©gritĂ© de la base.

    • Solutions ?

      • verrouiller les tables pour refuser de l’accĂšs en Ă©criture 
 mais votre service devient indisponible pendant la sauvegarde

  • IntĂ©gralitĂ© :

    • Est-ce que TOUTES les informations nĂ©cessaires sont exportĂ©es ?

      • Les donnĂ©es ?

      • Utilisateurs et leurs droits ?

      • ProcĂ©dures, triggers, index ?

  • Performant :

    • Il ne faut pas qu’une sauvegarde basse la performance de votre service

  • Stockage redondant et « off-site » :

    • La sauvegarde est stockĂ©e dans une data-center autre que le serveur de production ?

    • Est-ce que vous avez plusieurs copies des sauvegardes ?

    • N’oubliez pas qu’un disque dur de sauvegarde peut Ă©chouer aussi !

  • Stockage d’une historique :

    • Garder plusieurs versions de vos sauvegardes pour pouvoir analyser les Ă©volutions et rĂ©cupĂ©rer les donnĂ©es perdues

  • Stockage sĂ©curisĂ© :

    • attention Ă  l’accĂšs aux fichiers de sauvegarde. Est-ce que la sauvegarde est cryptĂ©e ?

  • ProuvĂ©e :

    • Est-ce que vous avez automatisĂ© et testĂ© un rĂ©tablissement ? Souvent on dĂ©couvre que nos sauvegardes ne sont pas suffisantes seulement aprĂšs une sinistre.

Sauvegardes avec MariaDB / MysQL

Chaque SGBDR dispose de ses propres moyens de sauvegarde, y compris MairaDB :

  • mysqldump

  • mariabackup

mysqldump

L'outil mysqldump est installé avec MariaDB ou MySQL, et donc se trouve dans le container (comme la commande mysql).

La documentation : https://mariadb.com/kb/en/mariadb-dumpmysqldump/

C'est une solution simple pour les petites bases de donnĂ©es. L'outil export le DDL et le DML nĂ©cessaire pour reconstruire le mĂȘme schĂ©ma et donnĂ©es dans un nouveau SGBDR.

En revanche, attention aux éléments non exportés :

  • Les utilisateurs et leurs droits ne sont pas exportĂ©s

  • Les procĂ©dures stockĂ©es ne sont pas exportĂ©es

Du coup, un simple mysqldump ne sera pas suffisant pour remettre en opération votre SGDBR si vous utilisez des procédures, ou vous avez différents niveaux d'accÚs pour vos utilisateurs.

Attention : par défaut mysqldump ne verrouille pas les tables pendant l'export. Donc n'importe quel écriture durant l'export pourrait rendre la sauvegarde incohérente.

On peut activer l’option de verrouiller les tables avec le paramĂštre --lock-tables. Mais, durant la sauvegarde, votre plateforme n'autorisera pas des Ă©critures, et ceci est probablement pas acceptable !

mariabackup

Au lieu d'exporter un DDL et DML, mariabackup est une solution qui sauvegarde plutÎt les données brutes du disque dur. Cela veut dire que les utilisateurs, procédures, etc sont pris en compte par la sauvegarde.

En plus, mariabackup permet une sauvegarde entiÚre ou par incrément.

En revanche, la sauvegarde ne fonctionnera que pour MariaDB, et seulement avec la mĂȘme version de MariaDB. Ceci est une contrainte peu importante, surtout pour la remise en route rapide aprĂšs un sinistre.

Pour plus d'information sur mariabackup https://mariadb.com/kb/en/full-backup-and-restore-with-mariabackup/

Réplication

Avec l'émergence des solutions cloud, et les audiences massives, la réplication des données devient un sujet de plus en plus supporté par les SGBDRS.

En bref, la rĂ©plication permet de dupliquer le SGBDR (et ses donnĂ©es) sur plusieurs machines physiques. Toutes les instructions d’écriture sont exĂ©cutĂ©es sur le master et les modifications sont apportĂ©es sur les autres instances (avec un petit dĂ©lai). Il y a plusieurs avantages :

  • Des opĂ©rations de lecture peuvent ĂȘtre faites sur n'importe quel participant du set de rĂ©plication, et donc allĂšge la charge sur le master

  • Si un participant du set de rĂ©plication disparait (y compris le master), il reste d'autres membres qui garantissent la continuitĂ© du service

  • Pour faire une sauvegarde, on peut verrouiller entiĂšrement un membre (non master), et effectuer la sauvegarde tranquillement. Pendant ce temps, les autres membres peuvent continuer leurs opĂ©rations.