Cet article vous expliquera comment résoudre les bases de données douteuses de SQL Server. Parfois, une base de données est marquée comme douteuse par accident. Voici quelques solutions. 1. Vérifiez d'abord que les fichiers .mdf et .ldf ont été sauvegardés.
2. Créez une nouvelle base de données portant le même nom dans SQL Server, puis arrêtez le service SQL Server.
3. Remplacez les fichiers .mdf et .ldf correspondant à la nouvelle base de données par les fichiers .mdf et .ldf d'origine.
4. Redémarrez le service SQL Server. Vous devriez voir que la base de données est dans un état suspect.
5. Exécutez la commande suivante dans SQL Query Analyzer pour permettre la mise à jour des tables système :
utilisez mastergosp_configure "autoriser les mises à jour", 1 reconfigurez avec overridego
6. Mettez cette base de données en mode d'urgence :
mettre à jour les bases de données système définir le statut = 32768 où nom = 'db_name'go
7. Utilisez la commande DBCC CHECKDB pour rechercher les erreurs dans la base de données :
DBCC CHECKDB('nom_base')GO
8. Si la commande DBCC CHECKDB échoue, passez à l'étape 10, sinon mettez la base de données en mode mono-utilisateur avant d'essayer de la réparer :
sp_dboption 'nom_base de données','utilisateur unique','true'DBCC CHECKDB('nom_base de données', REPAIR_ALLOW_DATA_LOSS)GO
Si vous êtes invité à indiquer que la base de données n'est pas en mode mono-utilisateur lors de l'exécution de la commande DBCC CHECKDB('db_name', REPAIR_ALLOW_DATA_LOSS), redémarrez le service SQL Server et continuez d'essayer.
9. Si la commande DBCC CHECKDB('db_name', REPAIR_ALLOW_DATA_LOSS) échoue, passez à l'étape 10, sinon si l'erreur dans la base de données est réparée avec succès :
Réexécutez la commande DBCC CHECKDB('db_name') pour confirmer qu'il n'y a aucune erreur dans la base de données.
Effacez le statut suspect de la base de données : sp_resetstatus 'db_name'
Effacez l'état du mode mono-utilisateur de la base de données : sp_dboption 'db_name', 'single user', 'false'
Redémarrez le service SQL Server Si tout est normal, la base de données a été restaurée avec succès.
10. Si les étapes ci-dessus ne permettent pas de résoudre le problème, veuillez vous référer au document ci-joint et essayez de restaurer les données de la base de données en reconstruisant le journal des transactions. Si vous n'avez que des fichiers MDF, le problème est plus compliqué et il faut reconstruire directement le journal des transactions :
1. Créez une nouvelle base de données portant le même nom dans SQL Server, puis arrêtez le service SQL Server.
2. Utilisez le fichier ldf d'origine pour écraser le fichier .mdf correspondant à la base de données nouvellement créée et supprimez son fichier journal (.ldf).
3. Démarrez le service SQL Server et mettez la base de données en mode d'urgence (comme ci-dessus : étape 5 et étape 6).
4. Arrêtez et redémarrez le service SQL Server.
5. Exécutez la commande suivante pour reconstruire le fichier journal de la base de données : (Ce qui suit est un exemple, vous devez utiliser le nom réel de votre base de données)
DBCC REBUILD_LOG('cas_db', 'D:cas_dbcas_db_Log.LDF')
6. Remplacez la base de données en mode mono-utilisateur.
7. Réessayez en utilisant la commande DBCC CHECKTABLE ou DBCC CHECKDB pour vérifier et corriger les erreurs dans la base de données.
-