Ceci est une ancienne révision du document !


Procédure de restauration des données à partir d'une ou plusieurs sauvegardes

La perte des données observée sur les différentes bases de données des clients nous a conduit à rédiger un ensemble de procédures permettant de restaurer les données à partir d'une sauvegarde mise à disposition.

  • Prérequis
    1. Disposer de la sauvegarde et de la base de données anonymisées de la production du client en question en local (Par local nous voulons dire avoir les fichiers SQL des 2 bases de données et être en mesure de les restaurer sur votre serveur local de base de données).
    2. Se servir d'un outil d'administration de base données déjà installé. Exemple: Workbench ou dbeaver.
  • Créer deux (2) bases de données l'une contiendra les données de la sauvegarde et l'autre les données anonymisées de la production.

    Requêtes à exécuter pour créer les différentes bases de données:

    • CREATE DATABASE cynod_nom_client_periode_sauvegarde;
    • CREATE DATABASE cynod_nom_client_prod;
  • Restaurer les données de la sauvegarde dans la base de données cynod_nom_client_periode_sauvegarde

    Procédure de restauration de données de la sauvegarde.

    • USE cynod_nom_client_periode_sauvegarde;

    Modifier la taille du paquet de communication entre le client et le serveur afin d'empêcher MYSQL de générer des erreurs lors de la restauration des données. convertir la taille des données en Megaoctets puis :

    max_taille_paquet = taille_données_à_restaurer_en_Mo × 1024 × 1024 + 500 × 1024 ×1024 500Mo pour avoir une marge de sécurité dans le transfert de grosses quantités de données.

    • SET GLOBAL max_allowed_packet=max_taille_paquet;
    • SOURCE chemin_vers_votre_saugarde/sauvegarde.sql
  • Restaurer les données de la production dans la base de données cynod_nom_client_prod

    Procédure de restauration de données de la production.

    • USE cynod_nom_client_prod;

    Modifier la taille du paquet de communication entre le client et le serveur afin d'empêcher MYSQL de générer des erreurs lors de la restauration des données. convertir la taille des données en Megaoctets puis :

    max_taille_paquet = taille_données_à_restaurer_en_Mo × 1024 × 1024 + 500 × 1024 ×1024 500Mo pour avoir une marge de sécurité dans le transfert de grosses quantités de données.

    • SET GLOBAL max_allowed_packet=max_taille_paquet;
    • SOURCE chemin_vers_votre_bd_prod/prod.sql
  • Effectuer une requête croisée entre la base de données de sauvegarde et la base de données de production

    SELECT * FROM cynod_nom_client_periode_sauvegarde.nom_table nt WHERE nt.champ not in ( SELECT champ FROM cynod_nom_client_prod.nom_table);

  • Créer une table temporaire pour stocker le résultat de la requête si résultat il y a.

    CREATE TABLE temp_nom_table_periode like nom_table;

  • Insérer les données manquantes dans la table temporaire

    INSERT INTO temp_nom_table_periode SELECT * FROM cynod_nom_client_periode_sauvegarde.nom_table nt WHERE nt.champ not in ( SELECT champ FROM cynod_nom_client_prod.nom_table);

  • Faire un dump de la table temporaire

    mysqldump -u nom_user_db -p nom_base_données nom_table_temporaire_a_dumper > chemin_dossier_stockage_du_dump/nom_du_dump.sql

  • Fournir le dump de la table à l'équipe INFRA accompagné de la requête d'insertion dans la table où l'on doit restaurer les données extraites de la sauvegarde.

    Insertion dans la table sans prendre en compte la colonne ID des données:

    INSERT INTO nom_table (liste_colonnes_sans_la_colone_ID) SELECT liste_des_colonnes_sans_la_colone_ID FROM nom_table_temporaire;

  • cynod/config_avancee/restaurationdonnees.1714309163.txt.gz
  • Dernière modification: 2024/04/28 12:59
  • par yannick.bribaud