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

MS SQL Server Discussion :

Questionnement sur la sauvegarde à chaud


Sujet :

MS SQL Server

  1. #1
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Juin 2007
    Messages
    204
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2007
    Messages : 204
    Points : 89
    Points
    89
    Par défaut Questionnement sur la sauvegarde à chaud
    Bonjour à tous,

    J'ai mis au point un petit script qui me permet de sauvegarder une base de données à l'aide de la commande BACKUP DATABASE (Options : WITH INIT, FORMAT), et qui permet ensuite de les restaurer avec la commande RESTORE DATABASE.

    Je sais qu'il est possible à l'aide de ces commandes de sauvegarder à chaud une base. Cependant, quelque chose me chagrine.

    Voici un petit schéma pour vous expliquer (timeline) :

    |-1--------2------------------3----4--->

    1: Je lance une grosse requête d'Insert dans ma base de données (~2min).
    2: Je lance un 1er backup (A).
    3: Je lance un 2ème backup (B).
    4: La requête d'insertion se termine.

    Déjà premier point, aucune connexion n'a été coupée, et tout s'est bien déroulé.

    Je remarque que le backup A pèse 231Mo et le backup B pèse 493M, je me dit que le contenu doit être différent car énormément de données ont été insérées entre les deux.
    Mais, lorsque je restaure ma base, que ce soit avec le backup A ou B, je me retrouve avec la base à son état avant la requête d'Insertion (1).


    Donc deux questions : pourquoi les deux backup ne font pas la même taille s'ils restaurent une base identique? Comment puis-je m'y prendre pour ne pas perdre les insertions qui pourraient être effectuées lors de mes backups? (Journaux de transaction?)

    Merci d'avance, en espérant que vous ayez compris mes explications

  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 848
    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 848
    Points : 52 964
    Points
    52 964
    Billets dans le blog
    6
    Par défaut
    Il faut savoir comment est faite la sauvegarde pour comprendre la restauration...
    La sauvegarde SQL Server à chaud est assez simple :
    1) on met un marqueur dans le journal de transaction afin de spécifier à quel moment a débuté la sauvegarde.
    2) on enregistre binairement toutes les pages de données depuis la mémoire et le disque
    3) on enregistre le journal de transaction

    Aussi, le fichier de sauvegarde contient absolument tout pour reconstituer la base dans l'état ou elle se trouvait au moment de la fin de la sauvegarde.

    La restauration procède comme suit :
    1) lecture dans le fichier de sauvegarde de la table système donnant la structure des fichiers de la base
    2) création des fichiers de la base à l'identique, mais vide
    3) lecture des pages de données depuis le fichier de sauvegarde et écriture de ceux-ci dans les fichiers correspondants
    4) lecture du journal de transaction depuis la marque de sauvegarde et ré-exécution de toutes les transactions VALIDÉES

    Votre requête d'insertion n'étant pas encore terminée, la transaction n'est pas validée et elle ne peut en aucun cas être prise en compte lors de la restauration, car elle apparait dans un état indéterminé (non validation). !

    En effet, il est indispensable de conserver l'intégrité des données dans tous les cas, y compris lors de la restauration d'une BD !

    A +
    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/ * * * * *

Discussions similaires

  1. Réponses: 5
    Dernier message: 13/03/2013, 18h52
  2. sauvegarde à chaud sur MySQL
    Par fgalves dans le forum Administration
    Réponses: 3
    Dernier message: 01/09/2009, 15h22
  3. Sauvegarde à chaud sur MySQL
    Par fgalves dans le forum Administration
    Réponses: 1
    Dernier message: 31/08/2009, 14h49
  4. Réponses: 13
    Dernier message: 15/01/2007, 08h32
  5. Précision sur les sauvegarde à chaud
    Par alxkid dans le forum Administration
    Réponses: 2
    Dernier message: 09/08/2004, 18h55

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