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

    Comment résoudre l’erreur de base de données Microsoft du serveur SQL 5171


    Table des matières

      La corruption des bases de données SQL survient généralement avec plusieurs problèmes. Ces problèmes affectent la disponibilité et la performance des bases de données à grande échelle. Le niveau de corruption dans la base de données décide des chances réelles de récupération et de la façon dont vous pouvez résoudre efficacement le problème en évitant tout risque de perte potentielle de données.

      Dans un cas particulier, il se peut que vous rencontriez un échec de connexion au serveur SQL ou que vous soyez dans l’impossibilité de restaurer les fichiers de la base de données MS SQL. Un autre problème pourrait être que vous ne pouvez pas créer de base de données ‘tempdb’ ou que chaque fois que vous essayez de joindre votre base de données, vous êtes incapable de le faire.

      Ces problèmes sont associés à l’erreur SQL 5171 qui indique :

      “database.mdf is not a primary database file. (Microsoft SQL Server, Error: 5171)”

      Stellar

      Cette erreur se produit principalement en raison d’entrées de registre invalides, de problèmes d’alimentation, d’infections de virus ou de pilotes endommagés. Les scénarios discutés ci-dessous sont très susceptibles de causer l’erreur SQL 5171.

      Si vous n’avez pas de sauvegarde, ou si la sauvegarde est corrompue, vous devrez peut-être suivre différentes étapes pour restaurer vos données.

      Nous allons expliquer 2 scénarios de corruption différents dans cet article.

      Cas I : La corruption des bases de données dans les bases de données en miroir

      Imaginez que vous ayez des bases de données en miroir.

      Supposons que le serveur MS SQL 2016 soit installé sur votre système. Lors de l’utilisation d’une base de données en miroir, vous essayez de configurer votre base de données en ligne en exécutant la commande suivante et recevez l’erreur 5171.

      ALTER DATABASE mydb SET online

      Dans ce cas, vous pouvez utiliser la procédure ci-dessous pour résoudre le problème:

      • Définir le principe de la base de données
      • Modifiez les informations du fichier à l’aide de la commande ‘ALTER DATABASE MODIFY FILE’.
      • Arrêter l’instance en cours d’exécution du serveur MS SQL
      Stellar
      • Copiez vos fichiers de base de données MDF et LDF dans un autre répertoire. Vous pouvez vérifier le chemin des fichiers MDF et LDF en cliquant avec le bouton droit de la souris sur la base de données et en sélectionnant les propriétés dans SSMS dans la page fichiers :
      Stellar
      • Redémarrez le serveur SQL, puis joignez les fichiers de la base de données.

      Malheureusement, vous perdrez sûrement la mise en miroir de la base de données après le processus. Vous devrez à nouveau configurer la mise en miroir de la base de données.

      Cas II

      Supposons maintenant que vous utilisez le serveur MS SQL 2014. Maintenant, vous détachez votre base de données et passez au serveur MS SQL 2016. Une fois l’installation terminée, vous essayez de joindre à nouveau la base de données en ajoutant les fichiers de données primaires et secondaires. Dans ce processus, vous pouvez rencontrer le message d’erreur ci-dessous :

      “M:\folder\file_1.mdf is not a primary database file. (Microsoft SQL Server, Error: 5171)”

      Pour résoudre le problème ci-dessus, vous pouvez utiliser ‘sp_attach_db’ pour joindre la base de données.

      sp_attach_db @dbname = N'mydb',
      @filename1 =
      N'C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Data\mydb_Data.mdf',
      @filename2 =
      N'C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Data\ mydb_log.ldf';

      Vous pouvez également utiliser l’interface utilisateur pour joindre une base de données :

      Stellar

      Cependant, cette méthode ne fonctionnera pas si vous n’utilisez pas ‘sp_detach_db’ pour détacher la même base de données.

      La phrase T-SQL suivante montre comment utiliser la procédure système sp_detach_db :

      EXEC sp_detach_db 'mydb', 'true';

      Cette procédure détache la base de données mydb.

      Une autre possibilité est d’utiliser la commande ‘CREATE DATABASE’ avec la clause ‘FOR ATTACH’.

      La phrase utilisée sera similaire à celle-ci :

      CREATE DATABASE N'mydb'
      ON (FILENAME = N'C:\MySQLServer\AdventureWorks_Data.mdf'),
      (FILENAME = N'C:\MySQLServer\AdventureWorks_Log.ldf')
      FOR ATTACH;

      Nous créons une base de données appelée mydb et spécifions le fichier de données et le fichier journal, y compris le chemin d’accès. Enfin, nous utilisons l’option FOR ATTACH.

      Si les problèmes persistent, vous pouvez utiliser Stellar Repair for MS SQL pour résoudre et réparer l’erreur SQL 5171.

      Solution Stellar

      Stellar Repair for MS SQL est un outil complet qui comprend une multitude de mécanismes de réparation puissants pour récupérer efficacement chaque objet perdu, supprimé ou inaccessible de la base de données SQL endommagée. Le logiciel permet d’effectuer une récupération précise des tableaux, vues, requêtes, procédures stockées, index, fonctions définies par l’utilisateur, clés uniques, clés étrangères, identités, les valeurs par défaut, contraintes par défaut et types de données définis par l’utilisateur. De plus, il prend en charge les dernières versions de SQL Server, y compris MS SQL Server 2017, 2016, 2014, 2012, 2008, 2005, 2000 et 7.0 et les formats mixtes.

      Stellar

      Il peut récupérer les erreurs de grande gravité et les problèmes mineurs à partir des fichiers MDF, ndf et LDF. Ce logiciel nécessite un installateur de moins de 5 MB

      Le logiciel exige que vous arrêtiez le serveur MS SQL et que vous déplaciez les fichiers MDF et LDF à un emplacement différent, puis vous pouvez redémarrer le serveur et réparer la copie de la base de données :

      Stellar

      Si vous ne connaissez pas le chemin de votre base de données, vous pouvez utiliser le bouton search du logiciel :

      Stellar

      Conclusion

      Dans cet article, nous avons appris que la base de données peut être corrompue dans un miroir de base de données et lorsque nous attachons une base de données dans un serveur SQL mis à jour. Nous avons appris comment réparer la base de données en utilisant le serveur SQL et Stellar Repair for MS SQL.

      Ce logiciel est facile à apprendre et permet de gagner beaucoup de temps.

      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