2014-06-05 11 views
6

Kilka baz danych spowodowało błąd dziś rano podczas pracy w trybie pojedynczego użytkownika. Z powodu następującego błędu nie jestem w stanie nic zrobić :(Zakleszczenie SQL .. w trybie pojedynczego użytkownika teraz

Msg 1205, Level 13, State 68, Line 1 
Transaction (Process ID 62) was deadlocked on lock resources with another process and has been chosen as the deadlock victim. Rerun the transaction. 

otrzymuję ten błąd podczas próby następujące (przy użyciu bazy danych master jako Sys Admin):

ALTER DATABASE dbname 
SET MULTI_USER; 
GO 

Dla to próbowałem Ponowne uruchomienie programu SQL Server, próbowałem zabijania żadnych procesów i ja nawet nie próbował resetowania jednolitego użytkownikowi sobie:

ALTER DATABASE dbname 
SET SINGLE_USER WITH ROLLBACK IMMEDIATE; 
GO 

zadanie który został uruchomiony został zaprojektowany, aby skopiować databas e i natychmiast włącz tryb pojedynczego użytkownika, aby przyspieszyć działanie.

W każdym razie mogę usunąć zamki?

Odpowiedz

4

Ok, odpowiem sam.

musiałem użyć następujących:

sp_who 

którym wyświetlane dane bieżącego połączonych użytkowników i sesje, I wtedy przypomniał sobie o Activity Monitor, który pokazuje ten sam rodzaj rzeczy ... W każdym razie, który doprowadził mnie od mojego biurka do jakiegoś robala, który utrzymywał połączenia z bazą danych wbrew moim życzeniom ...

W każdym razie, gdy już zamknąłem komputer (przez odłączenie go ... Zasłużyłem na to) Mogłem następnie uruchomić SQL, aby to zmienić w trybie MULTI_USER (przy użyciu administratora systemu):

USE Master 
GO 

ALTER DATABASE dbname 
SET MULTI_USER; 
GO 

FYI dla tych, którzy dbają, może to zostać wykorzystane natychmiast ustawić DB SINGLE_USER:

ALTER DATABASE dbname 
SET SINGLE_USER WITH ROLLBACK IMMEDIATE; 
GO 

dalszych szczegółów, jeśli znasz identyfikator procesu można użyć kill pid:

kill 62 

Miejmy na uwadze SSMS tworzy proces również dla użytkownika, który w moim przypadku został odrzucony z powodu innego.

EDIT: Zgodnie z zaleceniami Bobby'ego możemy użyć:

sp_Who2 

To może pokazać nam proces, który jest zablokowany przez inny proces.

+1

Jeśli używasz sp_Who2 można dowiedzieć się, który to proces jest zablokowany za pomocą którego w innym procesie w „BlkBY " Kategoria. Tylko FYI. – Bobby

+0

Pozdrawiam Bobby, dodam to dla informacji. Doceniam to. –

+0

Nadal nie można tego wykonać.Nawet po uruchomieniu WSZYSTKIEGO wciąż mówi, że nie może tego zrobić, ponieważ baza danych działa w trybie pojedynczego użytkownika. Używam programu SQL Server 2005.: -/ –