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.
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.
Bonjour,
- Passer votre base en SINGLER_USER
- Effectuer un DBCC CHECKDB sur cette base sans option pour commencer
Quel resultat ?
++
Oui, j'ai déjà essayé mais la commande me renvoie une erreur disant que la base de données ne peut être ouverte.
D'accord mais donnez nous le message d'erreur exact.. sans cela on ne pourra pas avancer.
Merci
Voici les resultats:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 ALTER DATABASE ETA_UTIL SET SINGLE_USER GOUSE ETA_UTILMsg 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.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 GO DBCC CHECKDB WITH NO_INFOMSGS; GOMerci pour votre aide.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.
C'est SQL Server 2005 - 9.00.1399.06
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.
++
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.
Avant de continuer, pas de souci avec votre base tempdb ? Pas d'espace disque manquant etc .... ?
++
Non, il n'y a pas de pb avec l'espace disque et tempdb est en autogrowth.
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';
Ca renvoie 'ONLINE'
ONLINE ?
Vous pouvez vous ballader dans la base maintenant ?
++
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.
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 ...
++
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?
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 ?
++
Je vous envoie le log de SQL Server
Je vois cela dans votre fichier de log :
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 :/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.
++
Code : Sélectionner tout - Visualiser dans une fenêtre à part EXEC sp_attach_single_file_db '<nom_base>', '<chemin_fichier_mdf>'
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager