OVH Cloud OVH Cloud

Problème de deadlock et base ouverte en Mono Utilisateur

4 réponses
Avatar
Yuan
Bonjour,
Pour une raison inconnue (probablement à cause d'un redémarrage sale du
serveur) une des base de l'instance SQL se trouve maintenant dans le
mode "Utilisateur unique" : on voit apparaitre une petite tête devant
l'icone de la base de donnée dans l'enterprise manager.
Dès que j'essayes de faire quoi que ce soit sur cette base, j'ai le
message d'erreur 22285 "'base' est déjà ouverte mais n'accepte qu'un
seul utilisateur à la fois."
Egalement, si je regarde l'activité des verrous, je constate que j'ai un
deadlock : spid 54 bloqué par spid 51 et spid 54 bloqué par spid 51 .
Ces 2 verrous se réfèrent à la base ouverte en mode "mono utilisateur".
J'ai essayé de tuer les processus liés aux verrous, mais rien ne se passe !
J'ai également essayé de redémarrer SQL Server, mais je retrouve la même
situation.

Si quelqu'un a une idée.

Merci pour votre aide.

4 réponses

Avatar
Fred BROUARD
as tu essayé une sauvegarde et restauration ?

A +

Yuan a écrit:
Bonjour,
Pour une raison inconnue (probablement à cause d'un redémarrage sale du
serveur) une des base de l'instance SQL se trouve maintenant dans le
mode "Utilisateur unique" : on voit apparaitre une petite tête devant
l'icone de la base de donnée dans l'enterprise manager.
Dès que j'essayes de faire quoi que ce soit sur cette base, j'ai le
message d'erreur 22285 "'base' est déjà ouverte mais n'accepte qu'un
seul utilisateur à la fois."
Egalement, si je regarde l'activité des verrous, je constate que j'ai un
deadlock : spid 54 bloqué par spid 51 et spid 54 bloqué par spid 51 .
Ces 2 verrous se réfèrent à la base ouverte en mode "mono utilisateur".
J'ai essayé de tuer les processus liés aux verrous, mais rien ne se passe !
J'ai également essayé de redémarrer SQL Server, mais je retrouve la même
situation.

Si quelqu'un a une idée.

Merci pour votre aide.




--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
********************* http://www.datasapiens.com ***********************
Avatar
Bouarroudj Mohamed
Est ce que tu as essayé ?
exec sp_dboption 'YourBD', 'single', 'false'

Ce bout de code permet de terminer les processus connectés a une BD
spécifique
use master
go
---------------------------------------------------------------------
-- Declarations
---------------------------------------------------------------------
declare
@Kill varchar(255),
@DbName sysname
---------------------------------------------------------------------
-- Initializations
---------------------------------------------------------------------
set @DbName = 'NorthWind' -- change the DB name
---------------------------------------------------------------------
-- Processing
---------------------------------------------------------------------
if not exists (select * from master..sysdatabases where name = @DbName)
begin
Raiserror('Database does not exists', 16, 1)
return
end

declare #Cur cursor for select 'kill '+convert(varchar(5),spid) +' --
'+p.loginame
from master..sysprocesses p
inner join master..sysdatabases d on p.dbid = d.dbid
where d.name = @DbName

open #Cur
fetch next
from #Cur into @Kill

while @@fetch_status = 0
begin
exec (@Kill)

fetch next from #Cur into @Kill
end

close #Cur
deallocate #cur

go




"Yuan" wrote in message
news:
Bonjour,
Pour une raison inconnue (probablement à cause d'un redémarrage sale du
serveur) une des base de l'instance SQL se trouve maintenant dans le mode
"Utilisateur unique" : on voit apparaitre une petite tête devant l'icone
de la base de donnée dans l'enterprise manager.
Dès que j'essayes de faire quoi que ce soit sur cette base, j'ai le
message d'erreur 22285 "'base' est déjà ouverte mais n'accepte qu'un seul
utilisateur à la fois."
Egalement, si je regarde l'activité des verrous, je constate que j'ai un
deadlock : spid 54 bloqué par spid 51 et spid 54 bloqué par spid 51 . Ces
2 verrous se réfèrent à la base ouverte en mode "mono utilisateur". J'ai
essayé de tuer les processus liés aux verrous, mais rien ne se passe !
J'ai également essayé de redémarrer SQL Server, mais je retrouve la même
situation.

Si quelqu'un a une idée.

Merci pour votre aide.



Avatar
Med Bouchenafa
ou encore ALTER DATABASE....SET MULTI_USER

--
Bien cordialement
Med Bouchenafa

"Bouarroudj Mohamed" wrote in message
news:
Est ce que tu as essayé ?
exec sp_dboption 'YourBD', 'single', 'false'

Ce bout de code permet de terminer les processus connectés a une BD
spécifique
use master
go
---------------------------------------------------------------------
-- Declarations
---------------------------------------------------------------------
declare
@Kill varchar(255),
@DbName sysname
---------------------------------------------------------------------
-- Initializations
---------------------------------------------------------------------
set @DbName = 'NorthWind' -- change the DB name
---------------------------------------------------------------------
-- Processing
---------------------------------------------------------------------
if not exists (select * from master..sysdatabases where name = @DbName)
begin
Raiserror('Database does not exists', 16, 1)
return
end

declare #Cur cursor for select 'kill '+convert(varchar(5),spid) +' --
'+p.loginame
from master..sysprocesses p
inner join master..sysdatabases d on p.dbid = d.dbid
where d.name = @DbName

open #Cur
fetch next
from #Cur into @Kill

while @@fetch_status = 0
begin
exec (@Kill)

fetch next from #Cur into @Kill
end

close #Cur
deallocate #cur

go




"Yuan" wrote in message
news:
Bonjour,
Pour une raison inconnue (probablement à cause d'un redémarrage sale du
serveur) une des base de l'instance SQL se trouve maintenant dans le mode
"Utilisateur unique" : on voit apparaitre une petite tête devant l'icone
de la base de donnée dans l'enterprise manager.
Dès que j'essayes de faire quoi que ce soit sur cette base, j'ai le
message d'erreur 22285 "'base' est déjà ouverte mais n'accepte qu'un seul
utilisateur à la fois."
Egalement, si je regarde l'activité des verrous, je constate que j'ai un
deadlock : spid 54 bloqué par spid 51 et spid 54 bloqué par spid 51 . Ces
2 verrous se réfèrent à la base ouverte en mode "mono utilisateur". J'ai
essayé de tuer les processus liés aux verrous, mais rien ne se passe !
J'ai également essayé de redémarrer SQL Server, mais je retrouve la même
situation.

Si quelqu'un a une idée.

Merci pour votre aide.







Avatar
bruno reiter [MVP]
pour lancer ces commandes, essayes de démarrer en mode mono utilisateur

br

"Med Bouchenafa" wrote in message
news:eh#
ou encore ALTER DATABASE....SET MULTI_USER

--
Bien cordialement
Med Bouchenafa

"Bouarroudj Mohamed" wrote in message
news:
> Est ce que tu as essayé ?
> exec sp_dboption 'YourBD', 'single', 'false'
>
> Ce bout de code permet de terminer les processus connectés a une BD
> spécifique
> use master
> go
> ---------------------------------------------------------------------
> -- Declarations
> ---------------------------------------------------------------------
> declare
> @Kill varchar(255),
> @DbName sysname
> ---------------------------------------------------------------------
> -- Initializations
> ---------------------------------------------------------------------
> set @DbName = 'NorthWind' -- change the DB name
> ---------------------------------------------------------------------
> -- Processing
> ---------------------------------------------------------------------
> if not exists (select * from master..sysdatabases where name = @DbName)
> begin
> Raiserror('Database does not exists', 16, 1)
> return
> end
>
> declare #Cur cursor for select 'kill '+convert(varchar(5),spid) +' --
> '+p.loginame
> from master..sysprocesses p
> inner join master..sysdatabases d on p.dbid = d.dbid
> where d.name = @DbName
>
> open #Cur
> fetch next
> from #Cur into @Kill
>
> while @@fetch_status = 0
> begin
> exec (@Kill)
>
> fetch next from #Cur into @Kill
> end
>
> close #Cur
> deallocate #cur
>
> go
>
>
>
>
> "Yuan" wrote in message
> news:
>> Bonjour,
>> Pour une raison inconnue (probablement à cause d'un redémarrage sale du
>> serveur) une des base de l'instance SQL se trouve maintenant dans le


mode
>> "Utilisateur unique" : on voit apparaitre une petite tête devant


l'icone
>> de la base de donnée dans l'enterprise manager.
>> Dès que j'essayes de faire quoi que ce soit sur cette base, j'ai le
>> message d'erreur 22285 "'base' est déjà ouverte mais n'accepte qu'un


seul
>> utilisateur à la fois."
>> Egalement, si je regarde l'activité des verrous, je constate que j'ai


un
>> deadlock : spid 54 bloqué par spid 51 et spid 54 bloqué par spid 51 .


Ces
>> 2 verrous se réfèrent à la base ouverte en mode "mono utilisateur".


J'ai
>> essayé de tuer les processus liés aux verrous, mais rien ne se passe !
>> J'ai également essayé de redémarrer SQL Server, mais je retrouve la


même
>> situation.
>>
>> Si quelqu'un a une idée.
>>
>> Merci pour votre aide.
>>
>
>