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 échouée dûe à une altération dans le journal de la base de données


Sujet :

Administration SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Janvier 2013
    Messages
    164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2013
    Messages : 164
    Par défaut Sauvegarde échouée dûe à une altération dans le journal de la base de données
    Bonjour,

    comment faire pour solutionner une erreur de sauvegarde dû à une altération du fichier ldf ?

    Je m'explique, notre base de données est sauvegardée tous les soirs, une sauvegarde complète en mode de récupération simple mais hier soir, la sauvegarde a échoué en raison de cette erreur :
    System.Data.SqlClient.SqlError: BACKUP a détecté une altération dans le journal de la base de données. Consultez le journal des erreurs pour plus d'informations. (Microsoft.SqlServer.Smo)
    Et dans le journal SQL Server :
    Backup detected log corruption in database xxxxxx. Context is FirstSector. LogFile: 2 'F:\MSSQL10_50.xxxxxxx\MSSQL\DATA\xxxxxx_1.ldf' VLF SeqNo: x9d7d8 VLFBase: x1352c0000 LogBlockOffset: x137cb7600 SectorStatus: 2 LogBlock.StartLsn.SeqNo: x0 LogBlock.StartLsn.Blk: x0 Size: x0 PrevSize: x0

    nous sommes sinon sur un SQL Server 2008 R2 (SP3), pas de crash serveur précédant cette erreur, pas d'erreur système et nos disques sont bons (baie SAN)

    Merci de votre aide

  2. #2
    Membre éprouvé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2013
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

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

    Informations forums :
    Inscription : Octobre 2013
    Messages : 74
    Par défaut
    Bonjour,
    Une corruption (la traduction "Altération" est assez maladroite) sur le journal de transaction n'est une bonne nouvelle...
    Il n'existe pas (à ma connaissance) de moyen de "réparer" les enregistrements corrompus du journal. Ce n'est que lorsque le ou les enregistrements corrompus seront recyclés que la corruption disparaîtra.
    A priori, si la sauvegarde d'une base en mode de recouvrement SIMPLE a échoué sur ce problème, c'est que la transaction correspondant aux enregistrements corrompus du journal était ouverte. Une fois la transaction terminée (commit mais surtout pas rollback qui pourrait avoir besoin de lire les enregistrements), les enregistrements deviendront inutiles, et finiront par être recyclés.

    Si vous lancez une sauvegarde complète maintenant, il est donc possible que celle-ci se termine sans erreur.
    Si ça n'est pas le cas, il faudrait identifier les transactions ouvertes sur la base (via les vues sys.dm_tran_...), et trouver un moyen de les valider (donc pas de kill session) avant de relancer une sauvegarde.

    Si aucune sauvegarde n'est possible, il faudra soit restaurer la base depuis la dernière sauvegarde valide, soit tenter de récupérer les données (mais avec un risque de perte de données, voire de non cohérence transactionnelle).

    Dans quel état est votre base ce matin (colonne state_desc de sys.databases) ?

  3. #3
    Membre confirmé
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Janvier 2013
    Messages
    164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2013
    Messages : 164
    Par défaut
    Merci de ta réponse bvesan, la base est en état "Online" dans la colonne "state_desc". En relançant une sauvegarde, cela plante toujours à la même étape (60%) et avec la même erreur.

  4. #4
    Membre éprouvé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2013
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

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

    Informations forums :
    Inscription : Octobre 2013
    Messages : 74
    Par défaut
    Il faut donc a priori rechercher la ou les transactions ouvertes, et les faire valider.
    Le journal d'erreurs donne-t-il un complément d'information concernant l'erreur de sauvegarde ?

  5. #5
    Membre confirmé
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Janvier 2013
    Messages
    164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2013
    Messages : 164
    Par défaut
    Non rien de plus, le journal d'évènement windows indique juste que les backup de la base et des logs ont foiré, et les journaux sql server, juste ce que j'ai indiqué dans mon premier post

  6. #6
    Invité
    Invité(e)
    Par défaut
    Est-ce que tu as fait un DBCC CHECKDB récemment ?

Discussions similaires

  1. [AC-2010] Exportation Excel d'une requête dans le dossier de la base de données
    Par lea.lea dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 25/02/2015, 19h02
  2. Sauvegarder valeurs d'une Listview dans My.Settings
    Par aus3004 dans le forum VB.NET
    Réponses: 26
    Dernier message: 14/08/2010, 16h01
  3. Réponses: 2
    Dernier message: 23/04/2009, 09h28
  4. [MySQL] Récuperer une image dans champs BLOB de la base de données
    Par gilou31 dans le forum PHP & Base de données
    Réponses: 16
    Dernier message: 28/02/2008, 16h32
  5. Réponses: 3
    Dernier message: 11/12/2007, 15h23

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