Lorsque j'essaie de déplacer la base de données MSDB à partir de son emplacement par défaut (C:\Program Files\Microsoft SQL Server\MSSQL10.SQXXPRESS\MSSQL\DATA) à un autre lecteur (E :). Après avoir déplacé la base de données, j'obtiens une erreur comme indiqué ci-dessous. (L'erreur que je reçois lors de l'expansion du nœud de base de données dans SSMS et que je ne suis plus capable d'accéder à une base de données.)
Échec de la récupération de données pour cette demande. (Microsoft.sqlserver.management.sdk.sfc)
Pour obtenir de l'aide, cliquez sur: http://go.microsoft.com/fwlink?prodname=microsoft+SQL+Server&linkid=20476
------------------------------ INFORMATIONS COMPLÉMENTAIRES:
Une exception s'est produite lors de l'exécution d'une instruction TRAND-SQL ou d'un lot. (Microsoft.SQLSERVER.ConnectionInfo)
La base de données 'msdb' ne peut pas être ouverte en raison de fichiers inaccessibles ou de mémoire insuffisante ou d'espace disque. Voir l'erreur SQL ServerLog pour plus de détails. (Server Microsoft SQL, erreur: 945)
Pour obtenir de l'aide, cliquez sur: - http://go.microsoft.com/fwlink?prodname=microsoft+SQL+Server&prodver=10.00.2531&evtsrc=msqlserver&evtid=945&linkid=20476
La procédure que j'ai suivie pour changer la base de données MSDB est la suivante:
ALTER DATABASE msdb MODIFY FILE ( NAME = MSDBData , FILENAME = 'E:\MSDBData.mdf' )
ALTER DATABASE msdb MODIFY FILE ( NAME = MSDBLog , FILENAME = 'E:\MSDBLog.ldf' )
SELECT name, physical_name AS CurrentLocation, state_desc FROM sys.master_files WHERE database_id = DB_ID(N'msdb');
Et la sortie indiquait l'emplacement actuel de MSDBDATA et MSDBLog comme e: \
Cette erreur s'est produite pendant que je l'ai fait pour tester le serveur. Je veux le faire pour un serveur de production. Alors s'il vous plaît aidez-moi sur cette erreur. Comment déplacer exactement la base de données MSDB?
Dans les commentaires, vous indiquez que votre service SQL fonctionne comme Network Service
Compte.
http://msdn.microsoft.com/en-us/library/windows/desktop/ms684272 (v = vs.85) .aspx
Le compte Networkservice est un compte local prédéfini utilisé par le gestionnaire de services de service. Ce compte n'est pas reconnu par le sous-système de sécurité, vous ne pouvez donc pas spécifier son nom dans un appel à la fonction LookUpAccountName. Il a des privilèges minimaux sur l'ordinateur local et agit comme ordinateur sur le réseau.
Il s'agit du compte par défaut des installations sous Vista et Windows Server 2008. Lors de l'installation, ce compte a été accordé Full Control
Autorisations du système de fichiers dans le répertoire de données SQL Server comme indiqué dans les autorisations du système de fichiers accordées à SQL Server PER-Service SIDS ou à des groupes Windows locaux de la section de l'article suivant.
http://msdn.microsoft.com/en-us/library/ms143504.aspx#ReViewing_acls
Comme vous avez déménagé une partie de votre fichier de base de données, le compte de service SQL Server a besoin d'autorisations sur les nouveaux emplacements. Dans les commentaires @Marian fournissait des instructions pour accorder Network Service
Les autorisations requises.
Faites un clic droit sur le lecteur -> Propriétés -> Sécurité -> Modifier -> Ajouter l'utilisateur du service réseau -> Donnez-lui un contrôle total. Par défaut, il n'a pas. Ou mieux, créez simplement un dossier spécifique et donnez-lui des autorisations de contrôle intégral là-bas. Et déplacez les fichiers de données dans ce dossier.
Le conseil pour créer un nouveau dossier et déplacer les fichiers est aussi excellent.
Tout service supplémentaire qui fonctionne comme Network Service
Compte sera aslo avoir des autorisations à ce dossier. Idéalement, les services SQL devraient chacun avoir leur propre compte séparé.
http://support.microsoft.com/kb/216072
Lors du choix des comptes de service, tenez compte du principe du moindre privilège. Le compte de service devrait avoir exactement les privilèges qu'il doit faire son travail et plus de privilèges. Vous devez également envisager l'isolement du compte; Les comptes de service doivent non seulement être différents les uns des autres, ils ne doivent pas être utilisés par aucun autre service sur le même serveur. N'accordez pas d'autorisations supplémentaires au compte de service SQL Server ou aux groupes de services. Les autorisations seront accordées par l'adhésion au groupe ou accordées directement à un SID de service, où un service SID est pris en charge. Pour plus de détails, reportez-vous aux livres en ligne Topic Configuration des comptes de service Windows