J'ai besoin d'aide pour configurer une base de données qui a été restaurée en SINGLE_USER
mode MULTI_USER
. Chaque fois que je cours
ALTER DATABASE BARDABARD
SET MULTI_USER;
GO
J'obtiens cette erreur:
Les modifications de l'état ou des options de la base de données 'BARDABARD' ne peuvent pas être effectuées pour le moment.
La base de données est en mode mono-utilisateur et un utilisateur y est actuellement connecté.
Il doit être en SINGLE_USER
mode non- mode pour le définir sur un autre mode, mais je ne peux pas définir la base de données dans un autre mode tant qu'il est en SINGLE_USER
mode.
sql
sql-server
Rahna1970418
la source
la source
master
) est sélectionnée dans la liste déroulante de la barre d'outils Bases de données disponibles lorsque la fenêtre de requête est active. Si cela continue de vous donner des maux de tête, fermez toutes les autres fenêtres de requête et sélectionnez une base de données système innocente commemaster
outempdb
dans la liste déroulante de la fenêtre que vous avez laissée.Ce message d'erreur signifie généralement que d'autres processus sont connectés à la base de données. Essayez d'exécuter ceci pour voir lesquels sont connectés:
Cela vous ramènera le processus et vous devriez alors pouvoir exécuter:
Où [xxx] est le
spid
processus que vous essayez de tuer.Ensuite, vous pouvez exécuter votre déclaration ci-dessus.
Bonne chance.
la source
Vous pouvez ajouter la possibilité d'annuler immédiatement votre modification.
la source
ROLLBACK IMMEDIATE
exactement?ALTER DATABASE
transaction de l' instruction, par opposition àWITH ROLLBACK X SECONDS
ce qui attend que les transactions se terminent avant de les forcer à revenir en arrière ou à attendre indéfiniment jusqu'à ce qu'il n'y ait pas de transactions en attente (ce que je pense est la valeur par défaut, mais ne semble pas trouver dans la doc pour le moment). C'est l'équivalent de «arrêtez tout ce que vous faites maintenant et faites ceci».SQL Server 2012:
faites un clic droit sur
DB > Properties > Options > [Scroll down] State > RestrictAccess > select Multi_user
et cliquez sur OK.Voila!
la source
J'ai eu le même problème et il a été résolu par les étapes suivantes - référence: http://giladka8.blogspot.com.au/2011/11/database-is-in-single-user-mode-and.html
la source
CA marchait bien pour moi.
Étape 1. Faites un clic droit sur le moteur de base de données, cliquez sur le moniteur d'activité et voyez quel processus est connecté. Tuez cet utilisateur particulier et exécutez la requête immédiatement.
Étape 2.
et actualisez la base de données.
la source
En fait, j'ai eu un problème où ma base de données était à peu près verrouillée par les processus et une condition de concurrence avec eux, au moment où une commande exécutée était actualisée et qu'elle était à nouveau verrouillée ... j'ai dû exécuter les commandes suivantes dos à dos dans SSMS et m'a mis hors ligne et à partir de là, j'ai fait ma restauration et je suis revenu en ligne très bien, les deux requêtes où:
Première course:
Puis immédiatement après (dans la deuxième fenêtre de requête):
J'ai fait ce dont j'avais besoin, puis je l'ai remis en ligne. Merci à tous ceux qui ont écrit ces pièces pour que je combine et résolve mon problème.
la source
Il peut être préférable de se connecter directement au serveur au lieu d'utiliser SQL Management Studio
Assurez-vous que le compte avec lequel vous vous connectez est dbowner pour la base de données que vous souhaitez définir sur MULTI_USER. Connectez-vous en tant que sa (en utilisant l'authentification serveur SQL) si vous le pouvez
Si votre base de données est utilisée par IIS, arrêtez le site Web et le pool d'applications qui l'utilisent - cela peut être le processus qui est connecté et vous empêche de définir MULTI_USER
Référez-vous ici si vous rencontrez toujours des problèmes:
http://www.sqlservercentral.com/blogs/pearlknows/2014/04/07/help-im-stuck-in-single-user-mode-and-can-t-get-out/
COMME DERNIÈRE ALTERNATIVE - Si vous avez tout essayé ci-dessus et que vous êtes désespéré, vous pouvez essayer d'arrêter l'instance de serveur SQL et la redémarrer
la source
Je viens de corriger en utilisant les étapes suivantes, cela peut vous aider.
Étape 1
Étape 2
Étape 3
Étape 4
Étape: 5
Exécutez ensuite la requête suivante.
Prendre plaisir...!
la source
Le code ci-dessous a fonctionné pour moi lorsque je ne connaissais pas le SPID spécifique utilisé pour passer en
singleuser
mode.la source
puis pour le ramener vivant
la source
CA marchait bien pour moi
J'espère que ce travail pour tous Merci Ramesh Kumar
la source
Si ce qui précède ne fonctionne pas, recherchez le nom de connexion du spid et désactivez-le dans Sécurité - Connexions
la source
Vous ne pouvez pas faire cela parce que la base de données est en mode unique. Par-dessus tout, mais sachez que: lorsque vous avez ouvert le studio de gestion SQL, il ne connaît aucun utilisateur sur la base de données, mais lorsque vous cliquez sur la base de données, il vous considère comme un utilisateur unique et votre commande ne fonctionne pas. Faites simplement cela: fermez le studio de gestion et rouvrez-le. nouvelle fenêtre de requête sans sélectionner aucune base de données écrire le script de commande.
faire f5 wolla tout ok!
la source
J'ai résolu le problème facilement
Faites un clic droit sur le nom de la base de données pour le renommer
Après la modification, faites un clic droit sur le nom de la base de données -> propriétés -> options -> allez au bas du défilement RestrictAccess (SINGLE_USER à MULTI_USER)
À nouveau, vous pouvez renommer la base de données comme votre ancien nom.
la source
À plus de 3 reprises en travaillant avec SQL Server 2014, j'ai fait convertir une base de données en mode mono-utilisateur sans rien changer. Cela doit avoir eu lieu lors de la création de la base de données. Toutes les méthodes ci-dessus n'ont jamais fonctionné car j'ai toujours reçu une erreur indiquant que la base de données était en mode mono-utilisateur et ne pouvait pas être connectée.
La seule chose que j'ai eue au travail a été de redémarrer le service Windows de SQL Server. Cela m'a permis de me connecter à la base de données et d'apporter les modifications nécessaires ou de supprimer la base de données et de recommencer.
la source
allez simplement aux propriétés de la base de données et changez le mode SINGLE USER en MULTI USER
REMARQUE: si cela ne fonctionne pas pour vous, effectuez une sauvegarde de la base de données et restaurez-la à nouveau et recommencez la méthode ci-dessus
* Unique = SINGLE_USER
Multiple = MULTI_USER
Restreint = RESTRICTED_USER
la source
Après être passé en mode mono-utilisateur, un client ne peut établir qu'une seule connexion avec SQL Server, rappelez-vous que "Object Explorer" prend une connexion (distincte), donc si vous essayez d'exécuter une instruction multi-utilisateur dans une requête fenêtre, vous obtiendrez une erreur indiquant qu'en mode mono-utilisateur, vous ne pouvez pas établir une autre connexion.
Pour moi, ce n'était pas le problème, dans mon cas, il y avait peu de processus automatisés qui établissaient des connexions de manière persistante (toutes les quelques secondes), donc dès que j'ai mis la base de données en mode mono-utilisateur et que je me suis déconnecté, l'un des les processus ont établi / occupé la connexion (avant que je puisse démarrer mon opération de restauration). Dès que je tuerais ces connexions - elles se reconnectaient et lorsque j'exécutais la commande Restore, j'obtiendrais l'erreur que la connexion est déjà occupée.
Pour résoudre ce problème, j'ai dû rédiger les
kill
déclarations, le changement desUser-Mode
déclarations etRestore
opérations dans une seule fenêtre de requête et lorsque je les ai toutes exécutées en une seule fois, voila !!! ça a marché.J'espère que cela aide les autres.
la source
J'avais des problèmes avec une base de données locale.
J'ai pu résoudre ce problème en arrêtant le serveur SQL, puis en démarrant le serveur SQL, puis en utilisant l'interface utilisateur SSMS pour modifier les propriétés de la base de données en Multi_User.
La base de données est passée en mode «mono-utilisateur» lorsque j'essayais de restaurer une sauvegarde. Je n'avais pas créé de sauvegarde de la base de données cible avant de tenter de restaurer (SQL 2017). cela vous obtiendra à chaque fois.
Arrêtez SQL Server, démarrez SQL Server, puis exécutez les scripts ci-dessus ou utilisez l'interface utilisateur.
la source
J'ai cherché la solution sur Google pendant un moment et j'ai finalement trouvé la solution ci-dessous,
SSMS en général utilise plusieurs connexions à la base de données dans les coulisses.
Vous devrez supprimer ces connexions avant de changer le mode d'accès. (Je l'ai fait avec EXEC (@kill); dans le modèle de code ci-dessous.)
Ensuite,
Exécutez le SQL suivant pour définir la base de données en mode MULTI_USER.
Pour revenir au mode mono-utilisateur, vous pouvez utiliser:
Cela devrait fonctionner. Bon codage !!
Merci!!
la source