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 :

Restaurer des données en utilisant le fichier .LDF


Sujet :

Administration SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Chef de projet
    Inscrit en
    Août 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet
    Secteur : Transports

    Informations forums :
    Inscription : Août 2011
    Messages : 7
    Par défaut Restaurer des données en utilisant le fichier .LDF
    Bonjour,

    Après avoir supprimé des données par erreur (commande DELETE) sur ma base, je souhaite retrouver celles-ci en faisant un retour arrière avec le fichier .ldf.

    Hors je ne trouve pas dans les différentes FAQ ou sur ce forum quel outil ou commande utiliser pour réaliser cela.

    Ma base tourne sur SQL Serveur 2005 / Windows 2003 Serveur.

    J'ai tenté de faire un backup complet de la base puis de restaurer jusqu'à un point précis (juste avant le delete) mais la base restaurée est vide.

    Auriez-vous une idée de comment procéder pour réaliser cette restauration ?

    Merci.
    David

  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,

    Il te faut un backup FULL + les backup logs jusqu'au moment de la suppression.

    Ensuite il faut restaurer (je suppose que tu vas le faire sur un serveur ou instance à côté) séquentiellement ton backup full et les backups logs en mode norecovery + dernier log en mode recovery + l'option STOPAT.

    Ensuite il ne te reste plus qu'à importer les données qui te manquent dans la base de données cible.

    Cf utilisation de la commande RESTORE ici

    ++

  3. #3
    Membre émérite
    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
    Par défaut
    Citation Envoyé par billbaroud13 Voir le message
    Bonjour,

    Après avoir supprimé des données par erreur (commande DELETE) sur ma base, je souhaite retrouver celles-ci en faisant un retour arrière avec le fichier .ldf.

    Hors je ne trouve pas dans les différentes FAQ ou sur ce forum quel outil ou commande utiliser pour réaliser cela.

    Ma base tourne sur SQL Serveur 2005 / Windows 2003 Serveur.

    J'ai tenté de faire un backup complet de la base puis de restaurer jusqu'à un point précis (juste avant le delete) mais la base restaurée est vide.

    Auriez-vous une idée de comment procéder pour réaliser cette restauration ?

    Merci.
    David
    Ca dépend de la situation dans laquelle se trouve la base:
    - Son mode de récupération des transactions (select databasepropertyex('lenomdemabase','recovery')
    - Si des backups complets et transactionnels ont déjà été effectués depuis la création de la base, et avant le delete.

    - Si le mode est SIMPLE, c'est cuit.
    - Si le mode est FULL, et qu'il n'y a jamais eu de backup complet avant le DELETE, c'est cuit.
    - Si le mode est FULL, et qu'il y a déjà eu un backup complet avant le delete, mais jamais de backups transactionnels, alors le DELETE se trouve quelque part dans le journal (qui doit potentiellement être assez gros). Il faut sauvegarder le journal et le restaurer en utilisant la commande STOPATTIME ou STOPBEFOREMARK avec un numéro de transaction.
    - Si le mode est FULL, et qu'il y a déjà eu un backup complet et des backups transactionnels avant le delete, alors le DELETE se trouve quelque part dans un des backups logs. Il faut rejouer le backup complet et les backups de journaux en utilisant la commande STOPATTIME ou STOPBEFOREMARK avec un numéro de transaction. Je montre un exemple dans un article ici : http://blog.capdata.fr/index.php/poi...fn_dump_dblog/

  4. #4
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 995
    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 995
    Billets dans le blog
    6
    Par défaut
    Citation Envoyé par billbaroud13 Voir le message
    Bonjour,

    Après avoir supprimé des données par erreur (commande DELETE) sur ma base, je souhaite retrouver celles-ci en faisant un retour arrière avec le fichier .ldf.

    Hors je ne trouve pas dans les différentes FAQ ou sur ce forum quel outil ou commande utiliser pour réaliser cela.

    Ma base tourne sur SQL Serveur 2005 / Windows 2003 Serveur.

    J'ai tenté de faire un backup complet de la base puis de restaurer jusqu'à un point précis (juste avant le delete) mais la base restaurée est vide.
    En ayant fait un BACKUP FULL vous avez tué toutes les chances de retrouver ces données.
    En ayant fait un BACKUP FULL après votre DELTE vous avez réinitialisé le point de sauvegarde du journal de transaction.
    En effet, la possibilité de remonter une sauvegarde jusqu'à un certain point dans le temps n'est possible qu'en faisant une restauration de journal, pas une restauration complète !

    De l'utilité de savoir ce que l'on fait et d'être formé pour cela....

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

  5. #5
    Membre habitué
    Homme Profil pro
    Chef de projet
    Inscrit en
    Août 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet
    Secteur : Transports

    Informations forums :
    Inscription : Août 2011
    Messages : 7
    Par défaut
    Bonjour,

    Merci pour vos retours avisés. Une requête m'a montrée que la base était en mode recovery SIMPLE. Mon backup (que m'a paru nécessaire, travaillant sur une base de production) ayant également bloqué toute tentative de restauration, j'ai abandonné l'idée de retrouver ces données (que j'ai trouvé dans un autre log, par ailleurs).

    Suite à vos remarques je vais modifier la configuration des bases, en m'assurant que la modification du mode de recovery n'aura pas d'impact sur les temps d'accès à la base.

    Je pense que vos conseils sont suffisants pour qu'une personne ayant le même souci que moi comprenne comment restaurer ses données, aussi le post me parait résolu.

    Merci encore.

    Cordialement,
    David

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

Discussions similaires

  1. utiliser des données d'un autre fichier
    Par jbggg dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 24/11/2009, 14h45
  2. [MySQL] Inserer des donnée provenant d'un fichier
    Par agencep dans le forum PHP & Base de données
    Réponses: 48
    Dernier message: 20/02/2006, 17h30
  3. Transposer des données sql dans un fichier texte
    Par Anakior dans le forum Outils
    Réponses: 3
    Dernier message: 11/12/2005, 10h01
  4. récupérer des données saisies dans un fichier
    Par natie_49 dans le forum C++
    Réponses: 6
    Dernier message: 24/11/2005, 11h29
  5. [JList] Lecture des données sauvegardées dans un fichier
    Par Myogtha dans le forum Composants
    Réponses: 7
    Dernier message: 10/06/2004, 21h05

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