[Corrigé] Erreur SQL Server 3156 La base de données ne peut pas être restaurée
Résumé: Lorsque vous exécutez la commande DBCC CHECKDB pour réparer une base de données corrompue, vous pouvez obtenir le message d'erreur 8930. Dans cet article, vous apprendrez comment résoudre le message d'erreur 8930 dans SQL Server. Vous apprendrez également à connaître un logiciel avancé d'extraction de sauvegarde SQL qui peut vous aider à restaurer les fichiers de sauvegarde facilement.
Introduction
Le message d’erreur 3156 de SQL Server est lié à la restauration d’une base de données. Nous montrerons différentes alternatives pour résoudre le message d’erreur.
Le message d’erreur est le suivant :
Erreur SQL 3156 : Erreur SQL 3156 : Le fichier ‘nom de fichier’ ne peut pas être restauré dans ‘C:\NProgram Files\NMicrosoft SQL Server\NMSSQL.3\NMSSQL\NFTData\NNom’. Utilisez WITH MOVE pour identifier un emplacement valide pour le fichier. |
Vous pouvez également suivre les étapes mentionnées ci-dessous.
Exigences
Cet article est adapté à toutes les versions de SQL Server.
- Programme d’installation de SQL Server
- Installateur SSMS
Pour commencer
La première chose à faire est de vérifier si l’utilisateur qui restaure le fichier dispose des droits d’accès au fichier spécifié.
Pour le tester, allez dans l’explorateur Windows et copiez-collez le chemin d’accès mentionné dans le message d’erreur :
Si vous n’avez pas les permissions, rétablissez un autre chemin avec les permissions sur le dossier ou accordez les permissions à l’utilisateur dans le dossier.
Pour modifier le chemin de restauration, dans la fenêtre Restaurer la base de données, cliquez sur l’onglet Fichiers :
Si vous cochez la case Relocaliser tous les fichiers dans le dossier, vous pouvez modifier l’emplacement de restauration à un endroit valide.
Si vous n’aimez pas l’interface utilisateur, vous pouvez utiliser les commandes T-SQL :
USE [master]
RESTORE DATABASE [databasename] FROM DISK = N'C:\NProgram Files\NMicrosoft SQL Server\NMSSQL14.MSSQLSERVER\NMSSQL\NBackup\Naw.bak' WITH FILE = 1,
MOVE N'filename' TO C:\NProgram Files\NMicrosoft SQL Server\NMSSQL.3\NMSSQL\NFTData\Name'.mdf',
MOVE N'Logfile_log' TO N'C:\sql\logfile_log.ldf', NOUNLOAD, STATS = 5
Le code utilise la clause MOVE pour déplacer les fichiers vers un autre emplacement.
Si votre sauvegarde est endommagée, vous pouvez utiliser Stellar Toolkit for MS SQLSolution. Ce logiciel comprend trois modules :
- Le logiciel MS SQL Database répare les fichiers de données SQL Server (MDF et NDF)
- Le logiciel MS SQL Password Recovery récupère les mots de passe perdus de SQL Server (User et SA).
- Le logiciel MS SQL Backup Recovery récupère les données des fichiers .BAK endommagés ou corrompus. Dans cet article, nous utiliserons ce logiciel.
Ouvrez l’option Extraire de MS SQL Backup et sélectionnez le fichier bak. Les fichiers de sauvegarde ont généralement l’extension bak et sont habituellement stockés dans le dossier program files\SQL Server\MSSQLXX.MSSQLSERVER\MSSQL\Backup, cependant, vous pouvez personnaliser et enregistrer les sauvegardes dans un endroit différent si vous le souhaitez.
Il existe également une option permettant de rechercher la sauvegarde si vous ne savez pas où elle se trouve. L’option Rechercher dans spécifie l’endroit où commencer la recherche et l’option Rechercher dans le dossier lance la recherche :
Une fois le fichier de sauvegarde sélectionné, appuyez sur le bouton Numériser :
Le bouton “Scan” lancera la réparation de la sauvegarde et le logiciel vous offrira une fenêtre pour sélectionner le jeu de sauvegarde. Vous pouvez vérifier le nom du jeu de sauvegarde, la date :
Une fois le jeu de sauvegarde sélectionné, cliquez sur le bouton Suivant et sélectionnez la version du serveur SQL :
Vous pouvez travailler avec n’importe quelle version de SQL Server et il existe également des options pour travailler avec des fichiers créés sur une version et convertis vers une nouvelle version. Appuyez sur OK.
Le logiciel affiche tous les objets SQL Server disponibles dans la sauvegarde, y compris les tables, les vues, les synonymes, les procédures stockées, les déclencheurs, les séquences, les règles, les valeurs par défaut, les assemblages, etc :
Il est possible de prévisualiser les données à l’intérieur des tableaux :
Vous pouvez également vérifier le code T-SQL des vues :
Une fois les objets sélectionnés, appuyez sur le bouton Enregistrer pour sauvegarder les informations.
Il y a 4 options :
L’une consiste à enregistrer les informations dans le serveur SQL (MSSQL), l’autre à les enregistrer dans un format de valeurs séparées par des virgules (CSV), dans le langage de balisage hypertexte (HTML) ou dans Excel (XLS). Dans cet exemple, nous enregistrerons les informations dans MSSQL.
Vous pouvez enregistrer la sauvegarde dans une nouvelle base de données ou dans une base de données existante (base de données active). Vous pouvez également spécifier le nom de l’instance et le type d’authentification. Vous pouvez utiliser l’emplacement par défaut ou un emplacement personnalisé :
Une fois la sauvegarde terminée, vous pourrez voir la base de données restaurée dans SQL Server :
Conclusion
Dans cet article, nous présentons différentes façons de résoudre le message d’erreur 3156 du serveur SQL. Nous montrons comment déplacer l’emplacement de la base de données restaurée et aussi une façon de réparer la sauvegarde si elle est endommagée.
Enfin, nous montrons comment utiliser Stellar Toolkit for MS SQL pour récupérer une sauvegarde endommagée et restaurer les informations. Il est possible de restaurer en MSSQL, HTML, Excel ou CSV.