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 :

SQL Server 2005 - Utilité de la commande RESTORE


Sujet :

Administration SQL Server

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 46
    Par défaut SQL Server 2005 - Utilité de la commande RESTORE
    Bonjour, et bonne année à tous.

    Je travaille avec des bases pesant une bonne 10Go, et de nombreux restore sont nécessaires entre les différents environnements dont mon équipe s'occupe. Avec à la clé une bonne 30aine de minutes perdues à chaque fois.

    En réfléchissant à la possibilité d'accélérer le processus, je me suis posé la question suivante : Que fait la fonction RESTORE ?
    Parce qu'à ma connaissance, si on prend les fichiers ldf, ndf, et mdf d'une BD, qu'on remplace (en mode déconnecté) les fichiers d'une autre BD par ceux-ci, on devrait se retrouver avec deux base identiques, non ? Et en ayant perdu beaucoup moins de temps.

    D'un autre côté, je me dis que chez MS, ils ont pas du mettre un timer exprès pour nous faire perdre du temps, donc il doit y avoir autre chose. Si quelqu'un d'un peu calé sur le sujet pouvait m'éclairer...

    Cordialement,

    Lilian

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 998
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 998
    Billets dans le blog
    6
    Par défaut
    En réfléchissant à la possibilité d'accélérer le processus, je me suis posé la question suivante : Que fait la fonction RESTORE ?
    Elle permet de restaurer une base de données en toute ou partie, dépendamment du mode de restauration et de la répartition des objets dans les unités de stockage de la base.
    Par exemple vous pouvez demandez que la restauration d'une base dont vous avez sauvegardé le journal de transaction, soit arrêté à 12h28. Ceci donnera une base restauré avec toutes les opérations effectuées jusqu'à 12h28 et rien au delà.
    Il existe 4 mode de sauvegardes dans SQL Sever, avec différentes combinaison de ces modes :
    • complète
    • différentielle
    • journal
    • partielle (fichiers ou groupe de fichiers)

    Il existe la possibilité de restaurer une base :
    • complétement
    • jusqu'à une certaine date/heure
    • jusqu'à une certaine transaction nommée
    • pour certains fichiers ou groupe de fichiers
    • différentiellement pour certains fichiers ou groupe de fichiers
    • page à page


    Jusqu'ici je soupçonne que vous n'avez utiliser que le mode complet...

    Parce qu'à ma connaissance, si on prend les fichiers ldf, ndf, et mdf d'une BD, qu'on remplace (en mode déconnecté) les fichiers d'une autre BD par ceux-ci, on devrait se retrouver avec deux base identiques, non ? Et en ayant perdu beaucoup moins de temps.
    Ceci est possible mais dangereux : MS ne garantie en aucune façon que la base de données que vous allez récupérer ainsi soit viable. Il existe un certain nombre d'opérations préalable qui doivent présider à la viabilité d'un tel process. Pour cela SQL Server fournit la possibilité de détacher les fichiers d'une base de données via la procédure stockée sp_detach_db. En aucun cas l'arrêt d'un serveur, comme l'arrêt d'une base est recommandé pour ce faire.
    Une fois détachée, la base n'est plus vue, mais les fichiers persistent et sont copiable. Vous pouvez ensuite recréer un clone de cette base via la commande :
    CREATE DATABASE .... FOR ATTACH.

    Mais j'attire votre attention sur cette manière de faire qui est UNE TRÈS MAUVAISE PRATIQUE !
    Chaque fois que vous arrêterez une base de données ou pire le service SQL Server (ou encore le serveur physique), vous allez faire perde toute la mise en cache de vos données et procédures, et viderez les données des vues de gestion dynamique. Bref vous perdez toute l'optimisation, et la possibilité d'investiguer de manière intéressant dans les données système en cas de problème...

    En gros, afin d'assurer une plus grande rapidité de "copie" d'une base à l'autre, vous allez sciemment pourrir les performances de vos utilisateurs...

    Est-ce bien ce que vous voulez ?

    A +

    PS : le métier de DBA nécessite dans le cursus officiel de MS SQL Server 2005, environ 14 jours de formation. La partie sauvegarde représente environ 6 heures de travail en cours + TP... A Orsys ou Rudi et moi avons monté les cours, cela représente 12 jours de formation. Combien d'heure de cours DBA avez vous suivi ???
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 46
    Par défaut
    Citation Envoyé par SQLpro Voir le message
    Jusqu'ici je soupçonne que vous n'avez utiliser que le mode complet...
    J'ai déjà utilisé le mode différentiel, mais dans le cas présent, vous soupçonnez bien !

    Citation Envoyé par SQLpro Voir le message
    En gros, afin d'assurer une plus grande rapidité de "copie" d'une base à l'autre, vous allez sciemment pourrir les performances de vos utilisateurs...

    Est-ce bien ce que vous voulez ?
    Bien sûr que non, mais comme je n'avais pas idée de ce genre de (gros) "détails", je me posais la question.

    Citation Envoyé par SQLpro Voir le message
    PS : le métier de DBA nécessite dans le cursus officiel de MS SQL Server 2005, environ 14 jours de formation. La partie sauvegarde représente environ 6 heures de travail en cours + TP... A Orsys ou Rudi et moi avons monté les cours, cela représente 12 jours de formation. Combien d'heure de cours DBA avez vous suivi ???
    Je ne suis absolument pas DBA, et je n'ai pas la prétention de l'être. D'où mes lacunes et mes questions idiotes...

    En tout cas, merci pour toutes ces informations. Je dormirai moins bête ce soir, et je continuerai d'attendre patiemment la fin de mes restore.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2007
    Messages : 139
    Par défaut
    Bonjour,

    Vous avez également oublié la notion de disponibilité !!!

    En effet, il faut rappeler d'une sauvegarde reste une opération "en ligne", alors que la méthode consistant à détacher ou à déconnecter la base pour copier les fichiers concernés (mdf, ldf, etc.) implique une indisponibilité de celle-ci pendant la durée de l'opération.

    Ne faites-pas comme à Roissy lors des chutes de neige, pensez à vos utilisateurs...
    Bonne Restore !!!

    Cordialement.
    David.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. SQL Server 2005 - undistributed commands
    Par mad_martigan dans le forum Réplications
    Réponses: 1
    Dernier message: 01/03/2010, 13h14
  2. sauvegarder et restorer une base de donnée sql server 2005
    Par mounim_taoufik dans le forum VB.NET
    Réponses: 2
    Dernier message: 24/07/2009, 11h47
  3. [SQL SERVER 2005] Espace disque insuffisant pour un RESTORE
    Par ben_harper dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 12/03/2009, 10h39
  4. [SQL Server 2005] probleme de connexion via commande bcp
    Par nox75 dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 29/10/2008, 16h52
  5. [SQL Server 2005] Restoration des logs
    Par psafp dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 06/07/2006, 08h54

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