La base de données MSDB ne peut pas être ouverte
J'ai eu ce problème en instance locale de SQL Server 2008 R2 sur ma machine. Il existe plusieurs bases de données sur cette instance. Mais je ne suis pas en mesure de voir l'un d'eux à partir de l'explorateur d'objets.
Je suis en mesure d'interroger mes bases de données à partir de la nouvelle fenêtre de requête. Mais pas en mesure de voir l'un d'eux.
Chaque fois que j'essaie d'explorer les bases de données, j'obtiens cette erreur :
Base de données "base de données msdb' ne peut pas être ouvert. Elle a été marquée comme SUSPECT par la récupération. Voir le SQL Server errorlog pour plus d'informations. (Microsoft SQL Server, message d'Erreur: 926).
J'ai essayé
- De l'actualisation de la connexion
- De rebrancher la connexion
- De redémarrer le service Sql Server (MSSQLSERVER).
- Redémarrage du Serveur SQL server Management Studio
- Redémarrage de ma machine
J'ai aussi essayé des combinaisons ci-dessus, mais rien ne fonctionne.
Mon système d'exploitation est Windows 7 Ultimate (64 bits).
SQL Server Management Studio Version est 10.50.2500.0.
source d'informationauteur Devraj Gadhavi
Vous devez vous connecter pour publier un commentaire.
J'ai trouvé ma réponse dans cette lien.
EDIT : y Compris à la fois les solutions de lien en raison de la possible Linkrot à l'avenir.
De connexion avec
sa
compte, pour les deux solutions.Solution 1
Ouvrir une nouvelle fenêtre de requête
EXEC sp_resetstatus 'DB_Name';
(Explication :sp_resetstatus
désactive le suspect drapeau sur une base de données. Cette procédure met à jour la mode et le statut des colonnes de la base de données nommée danssys.databases
. Notez également que seules les connexions ayant des privilèges sysadmin peuvent l'effectuer.)ALTER DATABASE DB_Name SET EMERGENCY;
(Explication : une Fois la base de données est en mode d'URGENCE, il devient un READ_ONLY copie et seuls les membres du rôle serveur fixe sysadmin rôles avoir des privilèges d'accès).DBCC checkdb('DB_Name');
(Explication : Vérifier l'intégrité parmi tous les objets.)ALTER DATABASE DB_Name SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
(Explication : Définir la base de données en mode mono-utilisateur.)DBCC CheckDB ('DB_Name', REPAIR_ALLOW_DATA_LOSS);
(Explication : Réparer les erreurs)ALTER DATABASE DB_Name SET MULTI_USER;
(Explication : Définir la base de données du mode multi-utilisateur, de sorte qu'il peut maintenant être consulté par d'autres.)Solution 2
Dans l'Explorateur d'Objets --> L'ouverture d'un élément de connexion --> clic droit --> Arrêter
Ouvrir le Panneau de configuration - > Outils d'Administration --> Services de
Sélectionnez
Sql Server (MSSQLSERVER)
point de services --> clic droit --> ArrêterOuvrir
C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA
Déplacer
MSDBData.mdf
&MSDBlog.ldf
à tout autre endroitPuis Copier ces Fichiers à Nouveau à partir de la nouvelle place et le mettre dans des lieux anciens
C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA
De raccordement ouvert dans l'Explorateur d'objets --> clic droit --> Démarrer
Puis Actualisez La Base De Données.
Ensuite, vous pouvez Détacher la base de données MSDB Fichier
La 2ème solution a fonctionné pour moi.
Remarque : j'ai eu pour obtenir "la base de données msdb" base de données mdf et ldf fichiers à partir d'une autre machine de travail pour le faire fonctionner.
Instantanément ce que fait ma question était de remplacer les MSDBData.mdf & MSDBlog.fichiers ldf
dans C:\Program Files\Microsoft SQL Server\MSSQL10_50.SQLEXPRESS\MSSQL\DATA. J'ai eu ces 2 fichiers copiés à partir d'une autre machine de travail, Arrêté le service SQL cours d'exécution dans ma machine, enlevé le dessus 2 fichiers à partir de leur emplacement et de l'ajout de la nouvelle 2 copiés. Une fois que j'ai redémarré le service , les problèmes ont été résolus.