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 :

Récup de données dans BD suspecte


Sujet :

Administration SQL Server

  1. #1
    Membre à l'essai
    Inscrit en
    Août 2009
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 34
    Points : 16
    Points
    16
    Par défaut Récup de données dans BD suspecte
    Bonjour,
    J'ai une BD dans l'état 'SUSPECT' suite à une série de défauts disque. Pas de backup. Que puis-je faire pour tenter de récupérer quelque chose?
    Merci pour votre aide.

  2. #2
    Expert éminent sénior
    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 : 45
    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
    Points : 12 891
    Points
    12 891
    Par défaut
    Bonjour,

    - Passer votre base en SINGLER_USER
    - Effectuer un DBCC CHECKDB sur cette base sans option pour commencer

    Quel resultat ?

    ++

  3. #3
    Membre à l'essai
    Inscrit en
    Août 2009
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 34
    Points : 16
    Points
    16
    Par défaut
    Oui, j'ai déjà essayé mais la commande me renvoie une erreur disant que la base de données ne peut être ouverte.

  4. #4
    Expert éminent sénior
    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 : 45
    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
    Points : 12 891
    Points
    12 891
    Par défaut
    D'accord mais donnez nous le message d'erreur exact.. sans cela on ne pourra pas avancer.

    Merci

  5. #5
    Membre à l'essai
    Inscrit en
    Août 2009
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 34
    Points : 16
    Points
    16
    Par défaut
    Voici les resultats:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    ALTER DATABASE ETA_UTIL SET SINGLE_USER
    GO
    Msg 926, Level 14, State 1, Line 1
    Database 'eta_util' cannot be opened. It has been marked SUSPECT by recovery. See the SQL Server errorlog for more information.
    Msg 5069, Level 16, State 1, Line 1
    ALTER DATABASE statement failed.
    Msg 9003, Level 20, State 1, Line 1
    The log scan number (3630578:586:1) passed to log scan in database 'eta_util' is not valid. This error may indicate data corruption or that the log file (.ldf) does not match the data file (.mdf). If this error occurred during replication, re-create the publication. Otherwise, restore from backup if the problem results in a failure during startup.
    Msg 3414, Level 21, State 1, Line 1
    An error occurred during recovery, preventing the database 'eta_util' (database ID 8) from restarting. Diagnose the recovery errors and fix them, or restore from a known good backup. If errors are not corrected or expected, contact Technical Support.
    USE ETA_UTIL
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    GO
    DBCC CHECKDB WITH NO_INFOMSGS;
    GO
    Msg 926, Level 14, State 1, Line 1
    Database 'eta_util' cannot be opened. It has been marked SUSPECT by recovery. See the SQL Server errorlog for more information.
    Merci pour votre aide.

  6. #6
    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
    Quelle version de SQL Server ?
    David B.

  7. #7
    Membre à l'essai
    Inscrit en
    Août 2009
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 34
    Points : 16
    Points
    16
    Par défaut
    C'est SQL Server 2005 - 9.00.1399.06

  8. #8
    Expert éminent sénior
    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 : 45
    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
    Points : 12 891
    Points
    12 891
    Par défaut
    Ok.

    Passez en mode EMERGENCY et essayez DBCC CHECKDB

    ALTER DATABASE ... SET EMERGENCY;
    GO
    ALTER DATABASE .. SET SINGLE_USER

    Réassayez un DBCC CHECKDB

    Vous pouvez aussi prendre l'option REPAIR_ALLOW_DATA_LOSS dans un second temps mais attention avec le risque de perdre quelques données.

    ++

  9. #9
    Membre à l'essai
    Inscrit en
    Août 2009
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 34
    Points : 16
    Points
    16
    Par défaut
    La commande
    dbcc checkdb (eta_util);
    go

    me renvoie les messages suivants. Le fichier mentionne est celui du filegroup PRIMARY...

    Msg 8921, Level 16, State 1, Line 1
    Check terminated. A failure was detected while collecting facts. Possibly tempdb out of space or a system table is inconsistent. Check previous errors.
    Msg 824, Level 24, State 2, Line 1
    SQL Server detected a logical consistency-based I/O error: incorrect checksum (expected: 0x348ec1e4; actual: 0x348ec1e0). It occurred during a read of page (1:24) in database ID 8 at offset 0x00000000030000 in file 'e:\mssql\data\eta_util_data1.mdf'. Additional messages in the SQL Server error log or system event log may provide more detail. This is a severe error condition that threatens database integrity and must be corrected immediately. Complete a full database consistency check (DBCC CHECKDB). This error can be caused by many factors; for more information, see SQL Server Books Online.

  10. #10
    Expert éminent sénior
    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 : 45
    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
    Points : 12 891
    Points
    12 891
    Par défaut
    Avant de continuer, pas de souci avec votre base tempdb ? Pas d'espace disque manquant etc .... ?

    ++

  11. #11
    Membre à l'essai
    Inscrit en
    Août 2009
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 34
    Points : 16
    Points
    16
    Par défaut
    Non, il n'y a pas de pb avec l'espace disque et tempdb est en autogrowth.

  12. #12
    Expert éminent sénior
    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 : 45
    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
    Points : 12 891
    Points
    12 891
    Par défaut
    Et que donne cette requête :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT state_desc FROM sys.databases WHERE name='maBase';
    ++

  13. #13
    Membre à l'essai
    Inscrit en
    Août 2009
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 34
    Points : 16
    Points
    16
    Par défaut
    Ca renvoie 'ONLINE'

  14. #14
    Expert éminent sénior
    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 : 45
    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
    Points : 12 891
    Points
    12 891
    Par défaut
    ONLINE ?

    Vous pouvez vous ballader dans la base maintenant ?

    ++

  15. #15
    Membre à l'essai
    Inscrit en
    Août 2009
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 34
    Points : 16
    Points
    16
    Par défaut
    Oui. C'est suite a l'option REPAIR_ALLOW_DATA_LOSS mais qui en fait n'a rien pu reparer. Je peux me balader dans la base mais je ne vois aucune des vues systeme ni aucune des tables utilisateurs.

  16. #16
    Expert éminent sénior
    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 : 45
    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
    Points : 12 891
    Points
    12 891
    Par défaut
    Ok vous avez utiliser l'option REPAIR_ALLOW_DATA_LOSS. Vous avez fait une copie de votre fichier de données avant ?

    Avez vous tenté un 2eme DBCC CHECKDB sans cette option ?
    Quel est le résultat de la commande ?

    A ce stade là ca commence à sentir le fumé pour votre base ...

    ++

  17. #17
    Membre à l'essai
    Inscrit en
    Août 2009
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 34
    Points : 16
    Points
    16
    Par défaut
    Non, je n'ai pas fait de copie (la prochaine fois, je le saurai...).
    la commande DBCC CHECKDB me renvoie invariablement la meme erreur.

    Msg 8921, Level 16, State 1, Line 1
    Check terminated. A failure was detected while collecting facts. Possibly tempdb out of space or a system table is inconsistent. Check previous errors.
    Msg 824, Level 24, State 2, Line 1
    SQL Server detected a logical consistency-based I/O error: incorrect checksum (expected: 0x348ec1e4; actual: 0x348ec1e0). It occurred during a read of page (1:24) in database ID 8 at offset 0x00000000030000 in file 'e:\mssql\data\eta_util_data1.mdf'. Additional messages in the SQL Server error log or system event log may provide more detail. This is a severe error condition that threatens database integrity and must be corrected immediately. Complete a full database consistency check (DBCC CHECKDB). This error can be caused by many factors; for more information, see SQL Server Books Online.

    Je suppose que c'est cuit maintenant. Pour mon information, y avait-il une alternative au REPAIR?

  18. #18
    Expert éminent sénior
    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 : 45
    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
    Points : 12 891
    Points
    12 891
    Par défaut
    On va essayer d'aller plus loin .

    Vous pouvez mettre nous envoyer ce que vous trouvez dans le journal des erreurs SQL Server ou le journal des évévenements concernant DBCC ?

    ++

  19. #19
    Membre à l'essai
    Inscrit en
    Août 2009
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 34
    Points : 16
    Points
    16
    Par défaut
    Je vous envoie le log de SQL Server
    Fichiers attachés Fichiers attachés

  20. #20
    Expert éminent sénior
    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 : 45
    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
    Points : 12 891
    Points
    12 891
    Par défaut
    Je vois cela dans votre fichier de log :

    /16/2010 12:15:54,spid55,Unknown,The log scan number (3630578:586:1) passed to log scan in database 'eta_util' is not valid. This error may indicate data corruption or that the log file (.ldf) does not match the data file (.mdf). If this error occurred during replication<c/> re-create the publication. Otherwise<c/> restore from backup if the problem results in a failure during startup.
    12/16/2010 12:15:54,spid55,Unknown,Error: 9003<c/> Severity: 20<c/> State: 1.
    Vous avez la possibilité de détacher votre base de données ? Le but est d'essayer de la réattacher sans le fichier journal avec la commande :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    EXEC sp_attach_single_file_db '<nom_base>', '<chemin_fichier_mdf>'
    ++

Discussions similaires

  1. Réponses: 3
    Dernier message: 06/05/2009, 11h58
  2. Récup des données d'un select (cf exemple dans la faq)
    Par j0k3r_n0ir dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 28/02/2005, 18h36
  3. [Débutant] Triage de données dans un String
    Par Poilou dans le forum C++Builder
    Réponses: 4
    Dernier message: 29/01/2004, 16h21
  4. Temps d'accès à des données dans un fichier
    Par TONIAPEL dans le forum Assembleur
    Réponses: 5
    Dernier message: 28/09/2003, 15h21
  5. trier les données dans le cache ??
    Par psyco2604 dans le forum XSL/XSLT/XPATH
    Réponses: 31
    Dernier message: 10/06/2003, 10h03

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