Table des matières
    Réparation de la base de données SQL

    Comment corriger l’état en attente de récupération dans la base de données du serveur SQL ?


    Table des matières

      Résumé : Dans cette publication, nous allons indiquer comment corriger l’état en attente de récupération dans la base de données de SQL Server. On s’attend à ce qu’un SQL DBA connaisse les réponses à tous les problèmes de base de données. Cependant, les bases de données SQL peuvent être difficiles à gérer, surtout si elles sont confrontées à des problèmes techniques. L’un des problèmes SQL les plus délicats à résoudre est « l’état en attente de récupération dans la base de données SQL ». Étudions ce cas.

      États de la base de données SQL

      Une base de données SQL est considérée comme endommagée si un ou plusieurs de ses fichiers de base sont dans un état incohérent. Selon la gravité des dommages, la base de données est marquée de différents états. Vérifiez les quelques états ci-dessous :

      • En ligne – Si l’un des fichiers de données a été endommagé lors d’une requête ou d’une autre opération, la base de données restera en ligne et accessible.
      • Suspect – Si le journal des transactions est endommagé et qu’il empêche la récupération ou l’annulation d’une transaction de se terminer, ce qui peut entraîner son échec.
      • En attente de récupération – Si le serveur SQL sait que la récupération de la base de données doit être exécutée mais que quelque chose l’empêche de démarrer. C’est différent de l’état SUSPECT parce qu’on ne peut pas dire que la récupération va échouer – elle n’a tout simplement pas encore commencé.
      Stellar

      L’état d’une base de données SQL peut être vérifié en exécutant la requête suivante:

      SELECT name, state_desc from sys.databases
      GO

      La sortie sera :

      Stellar

      Principales raisons qui causent « l’état en attente de récupération dans le serveur SQL ».

      Le décodage d’où provient une erreur et ce qui la cause est aussi crucial que de trouver une solution sûre pour y remédier. Lorsque la récupération de la base de données est nécessaire mais ne peut pas être lancée, une base de données SQL est marquée à l’état En attente de récupération. Ce genre de situation se produit principalement lorsque :

      • La base de données n’est pas proprement fermée, c’est-à-dire qu’il y a au moins une transaction non validée active au moment où la base de données est fermée et que le fichier journal correspondant a été supprimé.
      • L’utilisateur a essayé de déplacer les fichiers journaux sur un nouveau lecteur pour résoudre les problèmes de performance du serveur, mais dans le processus, il a fini par corrompre les fichiers journaux.
      • La récupération de la base de données ne peut pas être lancée en raison d’un espace mémoire ou d’un stockage sur disque insuffisant.

      Méthode manuelle pour corriger l’état « en attente de récupération du serveur SQL »

      Il existe 2 méthodes manuelles pour démarrer l’état de récupération en attente dans la base de données du serveur SQL qui a été marquée dans l’état en attente de récupération :

      Solution 1 : Marquer la base de données en mode d’urgence et lancer une réparation forcée

      1. Exécutez l’ensemble de requêtes suivant
      ALTER DATABASE [DBName] SET EMERGENCY;
      GO
      ALTER DATABASE [DBName] set single_user
      GO
      DBCC CHECKDB ([DBName], REPAIR_ALLOW_DATA_LOSS) WITH ALL_ERRORMSGS;
      GO 
      ALTER DATABASE [DBName] set multi_user
      GO
      1. Le mode URGENCE marque la base de données comme LECTURE_SEULE, désactive la journalisation et n’accorde l’accès qu’aux administrateurs système.
      2. Cela devrait résoudre tout problème de corruption et mettre la base de données en ligne. La base de données quitte automatiquement le mode URGENCE.

      Solution 2 : Marquer la base de données en mode Urgence, détacher la base de données principale et la rattacher à nouveau

      1. Exécutez l’ensemble de requêtes suivant :
      ALTER DATABASE [DBName] SET EMERGENCY;
      ALTER DATABASE [DBName] set multi_user
      EXEC sp_detach_db ‘[DBName]’
      EXEC sp_attach_single_file_db @DBName = ‘[DBName]’, @physname = N'[mdf path]’
      1. Ces commandes permettront au serveur de se débarrasser du journal corrompu et d’en construire un nouveau automatiquement.

      Remarque : Avant d’entreprendre l’une de ces procédures de réparation, vous devez vous assurer d’avoir des sauvegardes appropriées de la base de données en question. C’est pour avoir une copie de sécurité au cas où quelque chose tournerait mal. N’oubliez pas non plus qu’il s’agit de procédures très techniques et que vous ne devriez pas les exécuter si vous n’êtes pas certain ou si vous n’avez pas l’expertise technique appropriée.

      Une meilleure approche

      Si vous n’êtes pas un pro des erreurs de base de données SQL, évitez d’aggraver le problème et optez pour une solution tierce sécurisée, fiable et automatisée. Utilisez le logiciel Stellar Repair for MS SQL pour réparer les fichiers de base de données SQL corrompus et remettre la base de données en ligne rapidement et sans obstacles.

      Pourquoi Stellar Repair for MS SQL ?

      1. Les Microsoft MVPs font confiance au logiciel
      2. Stellar Data Recovery est le partenaire Gold de Microsoft
      3. Le logiciel est 100% sécurisé par Norton
      4. Livraison instantanée par e-mail
      5. Garantie de remboursement à 100%.

      Caractéristiques

      1. Il prend en charge MS SQL 2017, 2016, 2014, 2012, 2008 et toutes les versions inférieures. Avec cela, le logiciel de récupération SQL est compatible avec Windows 10 / 8 /  8.1 / 7 / Vista / XP et Windows Server 2012 / 2008 / 2003.
      2. Le logiciel corrige les corruptions mineures et majeures dans la base de données SQL et vous aide à récupérer les objets inaccessibles à partir des fichiers de la base de données.
      3. Le logiciel analyse les fichiers de base de données corrompus et extrait toutes les informations vitales comme les tableaux, les déclencheurs, les index, les clés, les règles, les schémas et les valeurs par défaut.
      4. La récupération des enregistrements supprimés est possible.
      5. Possibilité d’enregistrer la base de données dans New database et Live database.
      Stellar

      Conclusion :

      Nous avons parcouru le manuel et les meilleures méthodes alternatives pour le scénario « État en attente de récupération dans le serveur SQL » et nous savons qu’il peut y avoir de nombreuses raisons pour qu’une base de données SQL soit hors ligne. Pour tout utilisateur SQL ou DBA, l’une des tâches importantes est de savoir comment éviter les erreurs SQL fréquentes et de remettre la base de données en ligne au plus tôt. Ainsi, des outils comme Stellar Repair for MS SQL sont indispensables pour tous les administrateurs de bases de données SQL pour restaurer et gérer leur base de données avec succès à partir d’une base de données SQL en attente de récupération.

      Was this article helpful?

      No NO

      A propos de l'auteur

      Priyanka Chauhan linkdin

      Priyanka is a technology expert working for key technology domains that revolve around Data Recovery and related software's. She got expertise on related subjects like SQL Database, Access Database, QuickBooks, and Microsoft Excel. Loves to write on different technology and data recovery subjects on regular basis. Technology freak who always found exploring neo-tech subjects, when not writing, research is something that keeps her going in life.

      Leave a comment

      Your email address will not be published. Required fields are marked *

      Image Captcha
      Refresh Image Captcha

      Enter Captcha Here :

      Article similaire

      POURQUOI STELLAR® EST LE LEADER MONDIAL

      Pourquoi choisir Stellar?

      • 0M+

        Clients

      • 0+

        Années d'excellence

      • 0+

        Ingénieurs R&D

      • 0+

        Pays

      • 0+

        Témoignages

      • 0+

        Récompenses reçues