L'erreur 3183 du serveur SQL est liée à une corruption de la base de données, en particulier une page corrompue. Dans cet article, vous apprendrez pourquoi cette erreur se produit et comment la corriger. Nous mentionnerons également un outil de réparation de base de données SQL qui vous permet de réparer et de remettre facilement les fichiers de sauvegarde de base de données SQL Server corrompus afin de corriger l'erreur.
L'erreur 3183 peut se produire lorsque vous remettez la base de données du serveur SQL à partir d'une sauvegarde. Elle se produit généralement si la validation d'une page échoue pendant la restauration de la sauvegarde de la base de données avec l'option CHECKSUM. Le processus de remise en état est alors annulé. Vous pouvez recevoir un message d'erreur similaire à celui-ci :
Msg 3183, Level 16, State n°1, Line 1
RESTORE a
détecté
une erreur à la page (10:10) dans la base de données "stellardb" lors de la lecture du jeu de sauvegarde.copy code
Dans le message ci-dessus, 3183 est l'identifiant de l'erreur. Le niveau 16 signifie qu'il s'agit d'une erreur fatale et l'état 1 signifie que l'erreur s'est produite lors de la lecture de la page. La ligne n°1 est la ligne dans laquelle l'erreur s'est produite.
Pourquoi l'erreur 3183 se produit-elle dans SQL Server ?
La cause la plus probable de cette erreur est qu'une page de la base de données SQL Server est corrompue. Les causes peuvent être diverses : erreurs matérielles, problèmes logiciels, problèmes avec le système d'exploitation, etc. Par exemple, si les secteurs du disque sont endommagés, les pages le seront également. Une panne de courant peut également endommager le matériel et corrompre les pages de la base de données du serveur SQL. Si votre système d'exploitation tombe en panne, les pages de la base de données peuvent également être endommagées. Les virus et les logiciels malveillants peuvent également affecter la sauvegarde de la base de données.
Solutions pour corriger l'erreur 3183 dans SQL Server
Vous pouvez suivre les solutions ci-dessous pour corriger l'erreur SQL Server 3183 et remettre la base de données en état.
Toutefois, vous devez d'abord vérifier si la sauvegarde de votre base de données est endommagée. Pour ce faire, vous pouvez utiliser la commande RESTORE en T-SQL avec l'option VERIFYONLY (voir l'exemple suivant).
RESTORE VERIFYONLY FROM DISK = 'C:\NPath\NVotreSauvegarde.bak';Copier le code
Vous pouvez utiliser cette commande pour vérifier l'intégrité du fichier de sauvegarde.
Solution n°1 : Utilisez l'option CONTINUE_AFTER_ERROR
Vous pouvez essayer de remettre en état la base de données avec l'option CONTINUE_AFTER_ERROR. Cette option remet la base de données en état, mais certaines données peuvent être perdues. Cette option tente d'ignorer les erreurs et de continuer à remettre la base de données en état.
L'exemple suivant montre comment remettre en état la base de données à l'aide de l'option CONTINUE_AFTER_ERROR.
RESTORE DATABASE [stellar]FROM DISK = N'e:\NBackupstellar.bak'
WITH FILE = 2,
NOUNLOAD,
STATS = 5, CONTINUE_AFTER_ERROR;Copy code
Après la remise en état, vous pouvez vérifier l'état de la base de données en exécutant la commande DBCC CHECKDB (voir l'exemple suivant).
DBCC CHECKDB('stellar') WITH NO_INFOMSGS;Copier le code
Solution 2 : Utilisez un logiciel spécialisé pour réparer les sauvegardes de bases de données SQL
Si la commande RESTORE DATABASE avec l'option CONTINUE_AFTER_ERROR échoue ou pour éviter la perte de données, vous pouvez utiliser un logiciel tiers de réparation de bases de données SQL pour réparer le fichier de sauvegarde corrompu. Stellar Repair for MS SQL - Technician est l'un de ces logiciels tiers qui peut réparer et remettre en état les fichiers de sauvegarde des bases de données corrompues de n'importe quelle version de SQL Server. Il vous suffit de sélectionner le fichier de sauvegarde et le logiciel le réparera. Voyons comment fonctionne ce logiciel.
Installez d'abord le logiciel Stellar Repair for MS SQL - Technician.
Ensuite, démarrez le logiciel et sélectionnez l'option Extraire de MS SQL Backup.
Si vous savez où se trouve votre fichier de sauvegarde, cliquez sur le bouton Parcourir et sélectionnez le fichier .bak. Si vous ne savez pas où il se trouve, vous pouvez utiliser le bouton Rechercher pour localiser le fichier de sauvegarde.
Une fois que vous avez sélectionné le fichier de sauvegarde, appuyez sur le bouton Numériser.
Deux options d'analyse s'offrent à vous :
- L'analyse standard est l'option par défaut et l'option recommandée.
- L'analyse avancée, plus lente, est utilisée si l'analyse standard échoue.
Sélectionnez la sauvegarde et appuyez sur Suivant.
Vous pouvez voir tous les objets de votre base de données dans la fenêtre d'aperçu.
Appuyez sur l'icône Enregistrer.
Vous pouvez enregistrer les données dans une nouvelle base de données, dans une base de données active ou dans d'autres formats tels que Excel, CSV ou HTML.
Comment éviter l'erreur 3183 ?
Voici quelques bonnes pratiques pour vous aider à éviter l'erreur 3183 dans SQL Server.
- Veillez à installer un logiciel anti-virus et anti-malware.
- Utilisez toujours un onduleur pour éviter les pannes de courant.
- Testez régulièrement vos sauvegardes.
- Stockez vos sauvegardes dans le Cloud ou au moins dans un autre bureau physique.
- Surveillez l'état de votre matériel.
- Surveillez l'état de votre base de données.
Conclusion
L'erreur SQL Server 3183 se produit généralement en raison de pages corrompues. Vous pouvez suivre les solutions ci-dessus pour résoudre cette erreur SQL Server qui se produit lorsque vous remettez une sauvegarde de base de données. Vous pouvez essayer de remettre la sauvegarde corrompue en utilisant l'option CONTINUE_AFTER_ERROR. Si l'option CONTINUE_AFTER_ERROR échoue, vous pouvez utiliser Stellar Repair for MS SQL. Ce logiciel répare la sauvegarde endommagée et remet toutes les données en état.