Comment gérer l’erreur de base de données SQL 5172

Les deux principaux inconvénients du système de gestion de base de données est qu’il est complexe et long, ce qui rend la base de données sujette à la corruption. Microsoft SQL est sans aucun doute le choix le plus préféré parmi les administrateurs de systèmes de gestion de bases de données relationnelles, mais ce facteur n’aide pas à surmonter son inconvénient. Comme les autres SGBDR, la base de données SQL est également corrompue et l’une d’entre elles est la corruption d’en-tête de fichier de base de données SQL.

Stellar

Le serveur SQL refuse de démarrer. L’ERRORLOG affiche l’erreur suivante concernant la propriété Audit de page :

2017-10-30 15:45:36.36 spid9s Starting up database ?model?.
2017-10-30 15:45:36.37 spid9s Error: 5172, Severity: 16, State: 15.
2017-10-30 15:45:36.37 spid9s The header for file ?C:\Program Files\Microsoft SQL Server\MSSQL12.DAR_P11D\MSSQL\DATA\model.mdf? is not a valid database file header. The PageAudit property is incorrect.
2017-10-30 15:45:36.39 spid9s Error: 945, Severity: 14, State: 2.
2017-10-30 15:45:36.39 spid9s Database ?model? cannot be opened due to inaccessible files or insufficient memory or disk space. See the SQL Server error log for details.
2017-10-30 15:45:36.39 spid9s SQL Trace was stopped due to server shutdown. Trace ID = ?1?. This is an informational message only; no user action is required.

Il s’agit d’un cas d’erreur 5172 du serveur Microsoft SQL. Vous pouvez rencontrer d’autres erreurs similaires. Dans l’article suivant, vous obtiendrez un aperçu des causes et de la solution de la corruption d’en-tête de fichier SQL Database dans la base de données MS SQL, mais avant cela, comprenez les bases de la page d’en-tête de fichier de base de données, ses effets, les causes possibles et les solutions appropriées.

Qu’est-ce que la page d’en-tête du fichier de base de données

Dans le serveur SQL, les données sont stockées dans une unité appelée Page, numérotée séquentiellement en commençant par 0 pour la première page du fichier. La première page est également appelée page d’en-tête de fichier qui contient des informations sur les attributs du fichier. Chaque fichier est identifié par un numéro d’identification de fichier unique. Pour la base de données SQL, num page et num dossier ensembles définissent une page. De même, le fichier de données SQL est stocké avec l’extension .MDF et .NDF et l’espace disque se répartit logiquement en pages numérotées de 0 à n. Toutes les opérations liées à l’entrée-sortie du disque sont effectuées sur les pages. En résumé, SQL Server lit et écrit des pages de données entières. Trouvez ci-dessous la structure du fichier de données du serveur SQL :

Page No Page Identify
Page 0 En-tête
Page 1 Premier PFS
Page 2 Premier GAM
Page 3 Premier SGAM
Page 4 Inutilisé
Page 5 Inutilisé
Page 6 Premier DCM
Page 7 Premier BCM

Description de la page ? Page 0 (en-tête) : première page du fichier de données SQL et occupe environ 8FB d’espace de stockage. Stocke des métadonnées sur ce fichier de données SQL particulier. Tous les fichiers ont l’en-tête comme page 0, qui ne peut pas être récupéré par CHECKDB. Le fichier entier est restauré en cas de dommages ou de corruption dans l’en-tête de fichier. Vérifiez le contenu de l’en-tête avec la page DBCC. Une meilleure option est « DBCC FILEHEADER » également connu sous le nom de commande de but

DBCC FILEHEADER

Lorsqu’un administrateur exécute la commande DBCC FILEHEADER de la base de données SQL sur une base de données particulière, il recherche deux paramètres : 1) le nom / ID de la base de données et 2) l’ID du fichier. La commande de base de la syntaxe est la suivante :

DBCC FILEHEADER (?DBName?, ?FileId?);
GO

La commande DBCC FILEHEADER renvoie une sortie tabulaire avec le contenu du tableau indiquant des informations sur la base de données, y compris la sortie, la croissance, l’ID de liaison, le statut, la taille du secteur et plus encore.

Maintenant que vous comprenez les bases de la base de données SQL, discutons de l’erreur de corruption d’en-tête de fichier SQL DB.

Raisons probables et effets ? corruption d’en-tête de fichier SQL

Comme indiqué ci-dessus, la page En-tête de fichier SQL est un composant important et toute corruption sur cette page affecte directement la base de données dans la mesure où elle est rendue dysfonctionnelle. Le résultat est « Incohérence dans la base de données » ou « Inaccessibilité complète de la base de données » dans les cas extrêmes. Il est un fait que tous les administrateurs SQL gardent une vue d??il de faucon sur l?administration de leur base de données et restent alertes 24h / 24 et 7j / 7 ; malgré cela, des raisons inattendues peuvent entraîner une corruption de la page d’en-tête de fichier :

Les entreprises ont un plan de sauvegarde après sinistre en place, mais la plupart du temps, il est inaccessible ou l’administrateur n’est pas disponible pour exécuter le plan.

Solutions pour récupérer d’une catastrophe

La meilleure façon de récupérer est la restauration des données de sauvegarde et presque toutes les entreprises ont une sauvegarde de leurs données, cependant, dans la situation où la sauvegarde est également effectuée au même endroit et il y a une coupure de courant soudaine, et le résultat peut être une corruption de sauvegarde de fichiers SQL. Dans ce cas, vous devez suivre les étapes mentionnées ci-dessous :

  1. Arrêtez l’instance SQL Server
  2. Copiez les fichiers MDF et LDF vers un autre emplacement
  3. Supprimez les fichiers MDF et LDF d’origine
  4. Redémarrez l’instance SQL Server
  5. Créez une nouvelle base de données (DB) avec le même nom de DB et les mêmes noms de fichiers
  6. Arrêtez SQL Server
  7. Écrasez les MDF et LDF nouvellement créés

Les étapes mentionnées ci-dessus entraîneront la récupération de la base de données en ligne. Établissez un mode EMERGENCY ou SINGLE USER pour cette base de données et exécutez DBCC CHECKDB comme suit :

DBCC CHECKDB (databaseName, REPAIR_ALLOW_DATA_LOSS) WITH NO_INFOMSGS

Remarque : L’exécution de la commande DBCC CHECKDB peut avoir un effet opposé ? vous pourriez finir par perdre des données partielles avec des indicateurs tels que REPAIR_ALLOW_DATA_LOSS. Les données de l?organisation sont cruciales et devraient être disponibles telles quelles. Une perte de données partielle peut entraîner une perte d’entreprise.

Avec cette option, vous avez exclu une option de récupération de données en utilisant la méthode manuelle. La seule et en fait la meilleure façon est d’utiliser Stellar Repair for MS SQL. Cet  outil de récupération de base de données SQL répare les fichiers MDF corrompus et restaure les données complètes.

Conclusion

Bien que le RDBMS soit utilisé par la plupart des administrateurs de base de données SQL, il est sujet à la corruption et aux arrêts inattendus. Pour surmonter ce problème, créez la sauvegarde de la précieuse base de données à un emplacement différent pour une restauration facile. Si cette option n’est pas non plus disponible, utilisez le plan B et obtenez un logiciel tiers pour gérer la corruption de l’en-tête de fichier de base de données SQL et récupérer votre base de données

Related Post