Précédent   Forum des professionnels en informatique > Bases de données > MS SQL-Server > Administration
Administration Forum d'entraide sur l'administration du dataserver, via SSM ou ligne de commande, les tables système, ...
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 15/12/2010, 09h24   #1
Invité de passage
 
Inscription : août 2009
Messages : 26
Détails du profil
Informations forums :
Inscription : août 2009
Messages : 26
Points : 3
Points : 3
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.
bribou est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 15/12/2010, 09h44   #2
Responsable SQL Server

 
Avatar de mikedavem
 
Homme David BARBARIN
Expert SQL Server
Inscription : août 2005
Messages : 3 723
Détails du profil
Informations personnelles :
Nom : Homme David BARBARIN
Localisation : France, Haute Savoie (Rhône Alpes)

Informations professionnelles :
Activité : Expert SQL Server
Secteur : Conseil

Informations forums :
Inscription : août 2005
Messages : 3 723
Points : 6 844
Points : 6 844
Bonjour,

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

Quel resultat ?

++
mikedavem est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/12/2010, 17h09   #3
Invité de passage
 
Inscription : août 2009
Messages : 26
Détails du profil
Informations forums :
Inscription : août 2009
Messages : 26
Points : 3
Points : 3
Oui, j'ai déjà essayé mais la commande me renvoie une erreur disant que la base de données ne peut être ouverte.
bribou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/12/2010, 19h41   #4
Responsable SQL Server

 
Avatar de mikedavem
 
Homme David BARBARIN
Expert SQL Server
Inscription : août 2005
Messages : 3 723
Détails du profil
Informations personnelles :
Nom : Homme David BARBARIN
Localisation : France, Haute Savoie (Rhône Alpes)

Informations professionnelles :
Activité : Expert SQL Server
Secteur : Conseil

Informations forums :
Inscription : août 2005
Messages : 3 723
Points : 6 844
Points : 6 844
D'accord mais donnez nous le message d'erreur exact.. sans cela on ne pourra pas avancer.

Merci
mikedavem est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/12/2010, 09h18   #5
Invité de passage
 
Inscription : août 2009
Messages : 26
Détails du profil
Informations forums :
Inscription : août 2009
Messages : 26
Points : 3
Points : 3
Voici les resultats:
Code :
1
2
3
 
ALTER DATABASE ETA_UTIL SET SINGLE_USER
GO
Citation:
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 :
1
2
3
GO
DBCC CHECKDB WITH NO_INFOMSGS;
GO
Citation:
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.
bribou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/12/2010, 09h27   #6
Membre chevronné
 
David BAFFALEUF
Inscription : février 2008
Messages : 612
Détails du profil
Informations personnelles :
Nom : David BAFFALEUF
Localisation : France

Informations forums :
Inscription : février 2008
Messages : 612
Points : 744
Points : 744
Quelle version de SQL Server ?
__________________
David B.
dbaffaleuf est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/12/2010, 11h06   #7
Invité de passage
 
Inscription : août 2009
Messages : 26
Détails du profil
Informations forums :
Inscription : août 2009
Messages : 26
Points : 3
Points : 3
C'est SQL Server 2005 - 9.00.1399.06
bribou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/12/2010, 11h12   #8
Responsable SQL Server

 
Avatar de mikedavem
 
Homme David BARBARIN
Expert SQL Server
Inscription : août 2005
Messages : 3 723
Détails du profil
Informations personnelles :
Nom : Homme David BARBARIN
Localisation : France, Haute Savoie (Rhône Alpes)

Informations professionnelles :
Activité : Expert SQL Server
Secteur : Conseil

Informations forums :
Inscription : août 2005
Messages : 3 723
Points : 6 844
Points : 6 844
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.

++
mikedavem est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/12/2010, 13h25   #9
Invité de passage
 
Inscription : août 2009
Messages : 26
Détails du profil
Informations forums :
Inscription : août 2009
Messages : 26
Points : 3
Points : 3
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.
bribou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/12/2010, 13h40   #10
Responsable SQL Server

 
Avatar de mikedavem
 
Homme David BARBARIN
Expert SQL Server
Inscription : août 2005
Messages : 3 723
Détails du profil
Informations personnelles :
Nom : Homme David BARBARIN
Localisation : France, Haute Savoie (Rhône Alpes)

Informations professionnelles :
Activité : Expert SQL Server
Secteur : Conseil

Informations forums :
Inscription : août 2005
Messages : 3 723
Points : 6 844
Points : 6 844
Avant de continuer, pas de souci avec votre base tempdb ? Pas d'espace disque manquant etc .... ?

++
mikedavem est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/12/2010, 13h45   #11
Invité de passage
 
Inscription : août 2009
Messages : 26
Détails du profil
Informations forums :
Inscription : août 2009
Messages : 26
Points : 3
Points : 3
Non, il n'y a pas de pb avec l'espace disque et tempdb est en autogrowth.
bribou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/12/2010, 13h50   #12
Responsable SQL Server

 
Avatar de mikedavem
 
Homme David BARBARIN
Expert SQL Server
Inscription : août 2005
Messages : 3 723
Détails du profil
Informations personnelles :
Nom : Homme David BARBARIN
Localisation : France, Haute Savoie (Rhône Alpes)

Informations professionnelles :
Activité : Expert SQL Server
Secteur : Conseil

Informations forums :
Inscription : août 2005
Messages : 3 723
Points : 6 844
Points : 6 844
Et que donne cette requête :

Code :
SELECT state_desc FROM sys.DATABASES WHERE name='maBase';
++
mikedavem est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/12/2010, 13h54   #13
Invité de passage
 
Inscription : août 2009
Messages : 26
Détails du profil
Informations forums :
Inscription : août 2009
Messages : 26
Points : 3
Points : 3
Ca renvoie 'ONLINE'
bribou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/12/2010, 14h06   #14
Responsable SQL Server

 
Avatar de mikedavem
 
Homme David BARBARIN
Expert SQL Server
Inscription : août 2005
Messages : 3 723
Détails du profil
Informations personnelles :
Nom : Homme David BARBARIN
Localisation : France, Haute Savoie (Rhône Alpes)

Informations professionnelles :
Activité : Expert SQL Server
Secteur : Conseil

Informations forums :
Inscription : août 2005
Messages : 3 723
Points : 6 844
Points : 6 844
ONLINE ?

Vous pouvez vous ballader dans la base maintenant ?

++
mikedavem est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/12/2010, 14h24   #15
Invité de passage
 
Inscription : août 2009
Messages : 26
Détails du profil
Informations forums :
Inscription : août 2009
Messages : 26
Points : 3
Points : 3
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.
bribou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/12/2010, 14h56   #16
Responsable SQL Server

 
Avatar de mikedavem
 
Homme David BARBARIN
Expert SQL Server
Inscription : août 2005
Messages : 3 723
Détails du profil
Informations personnelles :
Nom : Homme David BARBARIN
Localisation : France, Haute Savoie (Rhône Alpes)

Informations professionnelles :
Activité : Expert SQL Server
Secteur : Conseil

Informations forums :
Inscription : août 2005
Messages : 3 723
Points : 6 844
Points : 6 844
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 ...

++
mikedavem est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/12/2010, 15h39   #17
Invité de passage
 
Inscription : août 2009
Messages : 26
Détails du profil
Informations forums :
Inscription : août 2009
Messages : 26
Points : 3
Points : 3
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?
bribou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/12/2010, 16h27   #18
Responsable SQL Server

 
Avatar de mikedavem
 
Homme David BARBARIN
Expert SQL Server
Inscription : août 2005
Messages : 3 723
Détails du profil
Informations personnelles :
Nom : Homme David BARBARIN
Localisation : France, Haute Savoie (Rhône Alpes)

Informations professionnelles :
Activité : Expert SQL Server
Secteur : Conseil

Informations forums :
Inscription : août 2005
Messages : 3 723
Points : 6 844
Points : 6 844
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 ?

++
mikedavem est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/12/2010, 16h42   #19
Invité de passage
 
Inscription : août 2009
Messages : 26
Détails du profil
Informations forums :
Inscription : août 2009
Messages : 26
Points : 3
Points : 3
Je vous envoie le log de SQL Server
Fichiers attachés
Type de fichier : zip SQL Server Log.zip (36,4 Ko, 2 affichages)
bribou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/12/2010, 17h27   #20
Responsable SQL Server

 
Avatar de mikedavem
 
Homme David BARBARIN
Expert SQL Server
Inscription : août 2005
Messages : 3 723
Détails du profil
Informations personnelles :
Nom : Homme David BARBARIN
Localisation : France, Haute Savoie (Rhône Alpes)

Informations professionnelles :
Activité : Expert SQL Server
Secteur : Conseil

Informations forums :
Inscription : août 2005
Messages : 3 723
Points : 6 844
Points : 6 844
Je vois cela dans votre fichier de log :

Citation:
/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 :
EXEC sp_attach_single_file_db '<nom_base>', '<chemin_fichier_mdf>'
++
mikedavem est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 02h20.


 
 
 
 
Partenaires

Hébergement Web