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 :

Revenir en arrière à un moment précis [2008R2]


Sujet :

Administration SQL Server

  1. #1
    Expert éminent
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 153
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 4 153
    Points : 7 403
    Points
    7 403
    Billets dans le blog
    1
    Par défaut Revenir en arrière à un moment précis
    Bonjour,

    Un collègue tout à l'heure a lancé un update malencontreux sur une table sensible d'une application.
    => L'application ne fonctionne plus du tout.

    S'agissant d'un serveur de DEV, peu sollicité, et une sauvegarde de la VM ayant été faite hier soir, on s'est pas trop posé de questions : restore de la VM (ouais, admins bourrins powa).

    Cependant, si cette bévue avait été faite sur le serveur de production, ou si les sauvegardes, pour une raison ou une autre s'avéraient inutilisables, ou la perte de données trop importantes, est-ce possible de dire à SQL Server "ok mon gars, c'est bien, là il est 11h12, moi je veux que tu reviennes exactement dans l'état dans lequel tu était à 10h31, avant que ce collègue étourdi casse tout" ?

    J'ai bien l'impression que le journal des transactions sert à ça, ou presque.

    Comment ça marche ?

    J'ai cherché un peu, et j'avoue qu'autant je trouve des infos pour :
    - restaurer un backup (aussi bien data que journal)
    - tronquer un journal des transactions

    Mais rien concernant un hypothétique retour en arrière.

    J'imagine qu'il faut restaurer les données avec un backup, et rejouer le journal des transactions jusqu'à un instant précis (c'est tout du moins la démarche sous Oracle) ? Comment faire ?

    PS : La base est paramétrée en mode "full recovery". Il s'agit d'une édition Express (mais la réponse m'intéresse aussi si elle n'est pas applicable à Express).
    On ne jouit bien que de ce qu’on partage.

  2. #2
    Expert éminent
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 153
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 4 153
    Points : 7 403
    Points
    7 403
    Billets dans le blog
    1
    Par défaut
    Bon, désolé, fallait juste essayer avant de poser la question, c'est tellement simple !

    Pour les noobs comme moi qui se posent la question en se disant que ça doit être super compliqué...

    Sauvegarder la base à un instant T (véfirier qu'elle est bien paramétrée en mode "full recovery").
    Faire des modifications dedans.
    Noter l'heure.
    Faire une grosse connerie.

    Lancer une restauration des données en cliquant sur "barre de planning"
    => Choisir l'heure juste avant la connerie

    Vérifier dans l'onglet "options" que "fermer les connexions à la base" est bien cochée

    Et lancer la restauration.

    La connerie a disparu, mais les modifications post-sauvegarde sont toujours là !

    C'est magique !
    On ne jouit bien que de ce qu’on partage.

  3. #3
    Membre éprouvé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2009
    Messages
    623
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Août 2009
    Messages : 623
    Points : 1 049
    Points
    1 049
    Par défaut
    En fait, cette opération consiste à restaurer ta dernière sauvegarde FULL + éventuellement tes DIFF puis tous les Backup LOG. Et sur la restauration du dernier LOG, utiliser un stopat pour lui dire de restaurer jusqu'à une certaine heure. (doc MSDN)
    Et effectivement, ça ne fonctionnerait pas pour une base en recovery SIMPLE.
    Blog Perso | Kankuru (logiciel gratuit pour SQL Server)

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    758
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 758
    Points : 1 069
    Points
    1 069
    Par défaut
    Et parfois l'heure ça peut être trop vague comme information. On peut carrément aller chercher à la transaction près: http://blog.capdata.fr/index.php/poi...fn_dump_dblog/
    David B.

  5. #5
    Expert éminent
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 153
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 4 153
    Points : 7 403
    Points
    7 403
    Billets dans le blog
    1
    Par défaut
    Merci pour ces compléments d'information

    Je garde le topic en favoris
    On ne jouit bien que de ce qu’on partage.

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

Discussions similaires

  1. bouton pour revenir en arrière
    Par Matil2 dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 02/04/2007, 22h26
  2. Revenir en arrière après des update
    Par charles_mourot dans le forum Oracle
    Réponses: 10
    Dernier message: 02/10/2006, 10h01
  3. [Modification données] Comment revenir en arrière?
    Par claralavraie dans le forum Oracle
    Réponses: 7
    Dernier message: 01/02/2006, 17h56
  4. Execution d'une fonction à un moment précis
    Par Psykotik dans le forum MFC
    Réponses: 2
    Dernier message: 05/01/2006, 11h58
  5. [VBA-E] Executer un programme à un moment précis
    Par delamarque dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 29/11/2005, 19h03

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