IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Administration SQL Server Discussion :

sauvegarde et restauration / jeu existant


Sujet :

Administration SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de grinder59
    Inscrit en
    Septembre 2005
    Messages
    710
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 710
    Par défaut sauvegarde et restauration / jeu existant
    Bonjour,

    j'utilise une base de données MS SQL Server 2005 qui commence à être bien trop grosse puisqu'elle comporte plusieurs années de données (99% inutiles au quotidien), il a donc été décidé d'établir une base de données de production contenant les données jour et une base d'archive contenant les données antérieures.

    Le problème est que je ne suis pas un expert dans ce domaine et j'aimerai avoir votre avis concernant le scénario de backup / restore que je souhaite mettre en place :

    - étape 1 : réalisation quotidienne d'un backup (*.bak) à partir de la base de données de production et ajout de ce backup au jeu existant (option disponible dans la partie options de la fenêtre Backup de SQL Server Management Studio)

    - étape 2 : restauration du backup réalisé sur la base d'archive

    - étape 3 : nettoyage de la base de production des données inutiles

    Est-ce que cette façon de faire permettra de :
    - disposer de la totalité des données sur le serveur d'archive (après restauration de la sauvegarde des données du jour) ?
    - dans la mesure où je souhaite faire une sauvegarde quotidienne, ne vais-je pas être limité par le nombre de sauvegardes qu'il est possible d'ajouter sur le même jeu ?
    - dans la mesure où il y a des données persistantes pendant quelques jours dans la base de données de production, ces données vont se retrouver sur différentes sauvegardes... Cela ne va-t-il pas poser de souci si je restaure une sauvegarde contenant déjà un objet précédemment sauvegardé ?

    Merci de vos conseils !

  2. #2
    Expert confirmé
    Avatar de mikedavem
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2005
    Messages
    5 450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Distribution

    Informations forums :
    Inscription : Août 2005
    Messages : 5 450
    Par défaut
    Bonjour,

    Combien de tables sont concernés par ce problème de place ? Les avez-vous identifiées ?

    ++

  3. #3
    Membre éclairé Avatar de grinder59
    Inscrit en
    Septembre 2005
    Messages
    710
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 710
    Par défaut
    La base contient une 50aine de tables dont une dizaine (identifiées) sont très volumineuses.

    Nous souhaiterions mettre en place un processus global qui reste de général et ne rentre pas dans les tables, afin d'éviter les processus spécifiques à adapter à chaque évolution d'une table. En outre, même si certaine table ne pose pas problème, nous voudrions vraiment scinder nos données en 2 bases distinctes :
    - la base de prod contenant les données du jour
    - la base d'archive contenant les données antérieurs à aujourd'hui

  4. #4
    Expert confirmé
    Avatar de mikedavem
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2005
    Messages
    5 450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Distribution

    Informations forums :
    Inscription : Août 2005
    Messages : 5 450
    Par défaut
    Vous ne pourrez pas procéder de façon globale avec la méthode que vous voulez employer. En effet, les opérations de sauvegarde et de restauration ne pourront pas simplement compléter le jeu de données existant sur votre base d'archive.

    Vous n'aurez pas d'autre choix que de créer un processus d'alimentation de vos tables d'archives et de nettoyage de vos tables de production. Je parle ici de processus de manière générale.

    Quelle est la volumétrie de votre base de données ?

    ++

  5. #5
    Membre éclairé Avatar de grinder59
    Inscrit en
    Septembre 2005
    Messages
    710
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 710
    Par défaut
    arf, pas hyper glop comme perspective...

    Existe-t-il des outils (outils externes, commandes, procédures stockées...) qui me permettraient d'éviter de construire des requêtes manipulant les champs ? le but étant de construire un fonctionnement pérenne qui ne soit pas à modifier à chaque évolution d'une des tables !

  6. #6
    Membre Expert

    Homme Profil pro
    Chargé de Développement et d'Analyse de données
    Inscrit en
    Mars 2010
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé de Développement et d'Analyse de données
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2010
    Messages : 1 278
    Par défaut
    Citation Envoyé par grinder59 Voir le message
    arf, pas hyper glop comme perspective...

    Existe-t-il des outils (outils externes, commandes, procédures stockées...) qui me permettraient d'éviter de construire des requêtes manipulant les champs ? le but étant de construire un fonctionnement pérenne qui ne soit pas à modifier à chaque évolution d'une des tables !
    Il n'existe pas dans SQL SERVER une IHM pour réaliser ce genre d'opération vous devez écrire des procédures SQL. vous pouvez procéder de la manière suivante :

    1) Faire le backup de la base de prod

    2) Faire le backup de la base d'archive

    3) créer un lien entre les deux serveurs (prod et archivage)

    4) écrire la procédure SQL d'UPDATE des lignes existantes à la fois sur la prod et sur l'archivage (il faut déterminer l’identifiant des tables concernées)

    5) écrire la procédure SQL d'INSERT de nouvelles données du serveur de prod vers le serveur d'archivage (il faut prendre en compte les PK et FK c-a-d les relations entre les tables PARENTS-ENFANTS)

    6) supprimer les lignes des tables concernées dans la base de prod

    7) planifier l'exécution quotidienne (à heure de non activité) de ces procédures via des jobs

    Rappel :
    il faut tester les procédures dans un environnement de test avant de les mettre en prod.
    Etienne ZINZINDOHOUE
    Billets-Articles

  7. #7
    Membre Expert

    Homme Profil pro
    Chargé de Développement et d'Analyse de données
    Inscrit en
    Mars 2010
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé de Développement et d'Analyse de données
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2010
    Messages : 1 278
    Par défaut
    Citation Envoyé par grinder59 Voir le message
    arf, pas hyper glop comme perspective...

    Existe-t-il des outils (outils externes, commandes, procédures stockées...) qui me permettraient d'éviter de construire des requêtes manipulant les champs ? le but étant de construire un fonctionnement pérenne qui ne soit pas à modifier à chaque évolution d'une des tables !
    Autre méthode : archivage mensuel des principales tables.
    Cette méthode permet de contourner les UPDATE.

    0) créer le lien entre les deux serveurs

    Tous les 1er de chaque mois à 00Heure:00minute:01seconde faire l'archivage des tables du mois précédent :

    1) exécuter un script pour renommer les principales tables tous les 1er de chaque mois (exemple au 1er janvier 2012 la table TableClients devient TableClients_201112 ) sur la base de prod

    2) exécuter le script de création des principales tables (y compris les index, les constraints, ...) sur la base de prod

    3) exécuter le script de création des principales tables avec comme suffixe l'année et le mois précédent (AAAAMM) sur la base archive

    4) exécuter le script d'INSERT des données des principales tables (_AAAAMM) de la base de prod vers les tables (_AAAAMM) de la base archive

    5) supprimer les tables _AAAAMM de la base de prod

    tout ceci peut être scheduler via un job sql. ici aussi il faut écrire des procédures SQL.
    Etienne ZINZINDOHOUE
    Billets-Articles

Discussions similaires

  1. [MSDE] Copie, sauvegarde et restauration
    Par Pierre Fauconnier dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 25/04/2006, 14h04
  2. RMAN Sauvegarde et restauration
    Par KPAKPO dans le forum Recovery Manager
    Réponses: 4
    Dernier message: 10/03/2006, 14h54
  3. Réponses: 4
    Dernier message: 03/02/2006, 12h42
  4. Sauvegarde et Restauration données
    Par juniorAl dans le forum MS SQL Server
    Réponses: 8
    Dernier message: 08/09/2005, 19h24
  5. sauvegarde et restauration des fichiers systèmes
    Par oumarsaw dans le forum Autres Logiciels
    Réponses: 4
    Dernier message: 01/09/2005, 21h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo