Lorsque vous essayez de vous connecter à SQL Server, vous pouvez obtenir un message indiquant que la base de données est en mode suspect. Le mode suspect implique que la base de données est inaccessible. Dans ce cas, vous ne pouvez pas vous connecter à la base de données ou récupérer la base de données pendant le démarrage du serveur. Dans cet article, nous allons discuter de la manière de récupérer une base de données SQL Server à partir du mode suspect. Mais avant cela, comprenons les raisons qui peuvent conduire à un tel problème.
Qu’est-ce qui fait que la base de données SQL Server est considérée comme suspecte ?
Diverses raisons peuvent conduire au scénario du mode suspect, par exemple
- Défaillance du matériel
- Arrêt incorrect du serveur SQL
- Fichiers journaux corrompus
- Indisponibilité des ressources de la base de données
- Manque d’espace disque
- Crash du serveur SQL
- Opération de roulage en avant ou en arrière inachevée
- Fin anormale de la base de données
Comment réparer et récupérer une base de données SQL Server en mode suspect ?
Vous pouvez essayer de restaurer la base de données du serveur SQL à partir d’une sauvegarde saine. Toutefois, si vous ne disposez pas d’une bonne sauvegarde, suivez les étapes ci-dessous.
- Étape 1 : Ouvrez SQL Server Management Studio (SSMS) et connectez-vous à la base de données.
- Étape 2 : Sélectionnez l’option Nouvelle requête.
- Étape 3 : Dans la fenêtre suivante, vous devez saisir le code suivant pour désactiver le drapeau « suspect » de la base de données et la mettre en mode URGENCE.
EXEC sp_resetstatus 'db_name' ;
ALTER DATABASE db_name SET EMERGENCY
- Étape 4 : Si la base de données ne peut pas être mise en mode d’urgence, vous devez vérifier si la base de données est corrompue. Exécutez la commande suivante :
DBCC CHECKDB ('nom_de_la_base_de_données')
Cette commande signale les erreurs de cohérence de la base de données (le cas échéant) et recommande d’exécuter le processus de réparation pour remédier à la corruption. Mais avant de lancer le processus de réparation, vous devez placer la base de données en « mode mono-utilisateur ». Cela empêchera les autres utilisateurs d’apporter des modifications à la base de données pendant le processus de réparation.
- Étape 5 : Exécutez la commande suivante pour mettre la base de données en mode mono-utilisateur et annuler les transactions précédentes.
ALTER DATABASE database_name SET SINGLE_USER WITH ROLLBACK IMMEDIATE
- Étape 6 : Effectuer une sauvegarde complète des fichiers.
- Étape 7 : Une fois que la base de données est en mode SINGLE USER, lancez le processus de réparation pour corriger les erreurs de cohérence. L’option REPAIR_REBUILD de DBCC_CHECKDB peut aider à réparer les lignes manquantes dans les index non groupés. Exécutez la commande suivante :
DBCC CHECKDB ('nom_de_la_base_de_données', REPAIR_REBUILD)
Si la recommandation est d’utiliser REPAIR_ALLOW_DATA_LOSS comme niveau minimum de réparation, utilisez la commande suivante :
DBCC CHECKDB ('nom_de_la_base_de_données', REPAIR_ALLOW_DATA_LOSS)
- Étape 8 : Vous pouvez maintenant configurer la base de données en mode multi-utilisateurs. Exécutez la commande suivante :
ALTER DATABASE nom_de_la_base SET MULTI_USER
- Étape 9 : Actualiser le serveur de base de données SQL.
Vous devriez maintenant être en mesure de vous connecter à la base de données du serveur SQL et d’y accéder. 🙂
Solution alternative – Utiliser un outil de réparation SQL professionnel
Si votre base de données SQL Server est corrompue, les étapes ci-dessus peuvent ne pas réussir à récupérer la base de données. Dans ce cas, vous pouvez utiliser un outil de réparation SQL professionnel, comme Stellar Repair for MS SQL.
Ce logiciel facile à utiliser peut aider à restaurer la base de données du mode suspect au mode en ligne. Il utilise des algorithmes avancés pour réparer la base de données SQL Server corrompue et restaurer tous ses objets. Il peut réparer les fichiers MDF et NDF et récupérer les tables, les index, les déclencheurs, les procédures stockées, les règles, les valeurs par défaut, les schémas, etc. à partir des fichiers.
Il offre plusieurs options d’enregistrement, telles que MS SQL, HTML, CSV et XLS pour enregistrer la base de données réparée. Stellar Repair for MS SQL prend en charge MS SQL 2019, 2017, 2016, 2014, 2012, 2008 R2 et les versions inférieures.
Conclusion
Ci-dessus, nous avons discuté des moyens de récupérer une base de données SQL Server en mode suspect. Toutefois, la récupération de la base de données à partir d’une sauvegarde est la meilleure option. Si vous ne disposez pas d’une sauvegarde saine, vous pouvez utiliser la commande DBCC CHECKDB pour vérifier les incohérences, puis utiliser l’option REPAIR_ALLOW_DATA_LOSS pour réparer la base de données. Toutefois, cela peut entraîner une perte de données. La meilleure alternative est d’utiliser un logiciel de réparation SQL professionnel, tel que Stellar Repair for MS SQL pour réparer et restaurer la base de données sans perte de données.