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. #21
    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
    Y a-t-il des messages en provenance du contrôleur disques dans le journal d'évènements ? Si je comprends bien la cinématique:

    - Base SUSPECT.
    - SET EMERGENCY
    - SET SINGLE_USER
    - DBCC CHECKDB ('REPAIR_ALLOW_DATA_LOSS') -> doit reconstruire le journal.
    - base ONLINE
    - Nouveau DBCC CHECKDB -> nouvelle corruption au même endroit ?
    David B.

  2. #22
    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
    Yes, c'est ce que j'ai tenté de lui faire faire. Et d'après ce que je vois dans le fichier log c'est toujours au même endroit.

    Seulement je trouve bizarre d'avoir une erreur sur le journal et un CHECKDB qui se termine de façon anormale.

    ++

  3. #23
    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
    Bonjour,
    J'ai pu detacher la base mais je ne peux pas la re-attacher. J'obtiens le message suivant:


    Msg 824, Level 24, State 2, Procedure sp_MScleandbobjectsforreplication, Line 33
    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.

  4. #24
    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
    Il faut la reattacher sans le fichier journal.

    Renommer votre fichier journal et reessayez de reattacher votre base juste avec le fichier de donnees.

    Au passage avez vous fait un chkdsk de votre disque ?

    ++

  5. #25
    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
    Je ne suis pas sûr que le rattachement soit possible, dans la mesure ou un checksum est invalide dans la page 1:24, même en forçant la recréation du journal. Ca vaut le coup d'essayer, mais si le CREATE DATABASE FOR ATTACH plante avec la même erreur, il faudra utiliser le hack de Paul Randal pour ramener la base suspecte ONLINE (http://www.sqlskills.com/BLOGS/PAUL/post/TechEd-Demo-Creating-detaching-re-attaching-and-fixing-a-suspect-database.asp). Le principe est de
    1) faire une copie des fichiers initiaux de la base ETA_UTIL (ceux qu'on ne peut plus rattacher). Puis les suprimer (bien vérifier que la copie est OK surtout).
    2) Recréer une base ETA_UTIL avec les mêmes noms de fichiers.
    3) Stopper l'instance et supprimer les nouveaux fichiers créés, pour les remplacer par les deux fichiers corrompus copiés à l'étape 1.
    4) Relancer SQL Server, il va ramener la base en ligne à l'état SUSPECT. Et là on peut repasser la base en EMERGENCY pour sortir les données à la main par BCP out ou retenter un REPAIR_ALLOW_DATA_LOSS.
    David B.

  6. #26
    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
    En fait je voulais en venir a la. Voir si le pb ne vient pas surtout du fichier de des transactions. L'option REPAIR_ALLOW_DATA_LOSS reconstruit effectivement le journal en mode EMERGENCY mais je ne sais pas si celui-ci se sert du meme fichier (meme container) ou il en cree un nouveau. Le fait de reattacher avec le fichier de donnees seul permettrait de creer un nouveau container a un autre endroit du disque (des fois que les clusters du disque ne soient pas integres).

    Dans un deuxieme temps je voulais lui faire tenter le fameux hack. Tu m'as devance :-)

    ++

  7. #27
    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 l'ai re-attachee avec un CREATE DATABASE .. FOR ATTACH. La commande s'executee sans erreur.
    Toutefois, j'ai toujours cette meme erreur qui mentionne une erreur de checksum sur le fichier PRIMARY. Cette erreur affecte problablement les tables systemes et je suppose que c'est pour cela que je ne vois plus les tables utilisateur.

  8. #28
    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
    Citation Envoyé par bribou Voir le message
    Cette erreur affecte problablement les tables systemes et je suppose que c'est pour cela que je ne vois plus les tables utilisateur.
    C'est très possible, chez moi (build 9.0.4035), 1:24 correspond à une page de sysobjvalues.
    David B.

  9. #29
    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
    Citation Envoyé par mikedavem Voir le message
    Dans un deuxieme temps je voulais lui faire tenter le fameux hack. Tu m'as devance :-)++
    Désolé
    David B.

  10. #30
    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ésolé
    Pas de souci.

  11. #31
    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 pourrait avoir (si c'est possible et que ca ne ramene pas d'erreur) le detail de cette fameuse page :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    DBCC TRACEON(3604);
    GO
    DBCC PAGE('mabase', 1, 24, 3)
    ++

  12. #32
    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
    Voir le fichier ci-apres.
    Fichiers attachés Fichiers attachés

  13. #33
    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
    Perso je dois admettre que ca va etre dur de recuperer votre page si vous avez une erreur 824 (erreur logique)

    Vous pouvez bien tenter un autre DBCC avec l'option de reparation mais je pense que la ca va etre dur.

    A tout hasard vous pouvez voir si vous n'avez pas des informations concernan les erreurs logiques sur vos pages. La c'est la page 24 qui est touchee mais cela peut cacher d'autres problemes egalement.
    Quoi qu'il en soit vous avez interet a regarder vos disques car ils sont tres probablement a l'origine du probleme.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT * FROM msdb..suspect_pages
       WHERE (event_type = 1 OR event_type = 2 OR event_type = 3);
    GO
    ++

  14. #34
    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
    Il n'y a vraiment pas moyen de faire des bcp out des tables de la base endommagée en mode emergency ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select 'bcp ETA_UTIL..'+name+' out '+name+'.bcp -c -T -S <instancename>'  from sys.tables where name <> 'sys%'
    David B.

  15. #35
    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
    Si tu as raison David mais encore faut il avoir acces aux tables ... dans le cas present je doute qu'il puisse faire cela ... mais pourquoi pas le tenter c'est vrai.

    ++

  16. #36
    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
    Il y a effectivement 2 pages suspectes (24 et 2672).
    L'acces a sys.tables ne marche pas (renvoie l'erreur de checksum sur la page 24).
    Il y a effectivement eu une serie d'erreurs disque sur la baie qui est a l'origine de la corruption de la BD.

    Je pense qu'on peut s'arreter la. Je vais reconstruire la BD from scratch...
    Je vous remercie beaucoup pour votre aide et le temps que vous avez passe.

    Brigitte

  17. #37
    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
    Pensez a faire des backups. Cela pourra vous servir la prochaine fois

    ++

  18. #38
    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
    +1. Le backup c'est la clé. Bon courage A+
    David B.

  19. #39
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 770
    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 770
    Points : 52 723
    Points
    52 723
    Billets dans le blog
    5
    Par défaut
    S'il a une réplication, il faudrait déjà l'arrêter et tenter de savoir si les données sont correctes dans les bases d'origines afin de pouvoir reconstituer les données..... ou tenter de .....

    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: 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