it-swarm.com.de

wiederherstellen des SQL-Servers aus einer .bak-Datei Es konnte kein exklusiver Zugriff erhalten werden

Ich versuche, meine SQL mit BAK-Datei wiederherzustellen

Ich bekomme Fehler 

Exklusiver Zugriff konnte nicht erhalten werden, da die Datenbank verwendet wird

Ich habe es versucht 

USE [master]
ALTER DATABASE myDB
SET SINGLE_USER WITH ROLLBACK IMMEDIATE;

und führen Sie die Abfrage aus

USE [master] RESTORE DATABASE  myDB
   FROM DISK = 'C:\MyDatabase.bak' WITH  FILE = 1,  NOUNLOAD,  STATS = 10

Ich habe auch vom Wiederherstellungsassistenten mit dem gleichen Ergebnis versucht.

Exklusiver Zugriff konnte nicht erhalten werden, da die Datenbank verwendet wird.

16
baaroz

Methode 1

    declare @sql as varchar(20), @spid as int

    select @spid = min(spid)  from master..sysprocesses  where dbid = db_id('<database_name>')  and spid != @@spid    

    while (@spid is not null)

    begin

    print 'Killing process ' + cast(@spid as varchar) + ' ...'

    set @sql = 'kill ' + cast(@spid as varchar)

exec (@sql)

select 

    @spid = min(spid)  

from 

    master..sysprocesses  

where 

    dbid = db_id('<database_name>') 

    and spid != @@spid
 end 

 print 'Process completed...'

Methode 2

  alter database database_name
  set offline with rollback immediate
  alter database database_name
  set online

gehen

19
MAS

Sie müssen keine Abfrage schreiben, um dieses Problem zu lösen ... Ich hatte das gleiche Problem mehrmals und löste es mit dieser Methode: , Wenn Sie die Datenbank wiederherstellen

  1. Wechseln Sie zur Registerkarte Option im Fenster Datenbank wiederherstellen
  2. Check (Vorhandene Datenbank überschreiben (WITH REPLACE))
  3. Prüfen (bestehende Verbindungen zur Zieldatenbank schließen)
  4. Klicken Sie dann auf OK

Wiederherstellungsdatenbank wird gestartet ...

8
Hamed R

Jeder, der die oben genannten Probleme hatte, und keiner der Ratschläge funktioniert. Schalten Sie das Taillog-Backup unter "Optionen" aus. 

Wenn Sie diese Option aktivieren (oder belassen), wird versucht, ein Protokoll der Quellendatenbank selbst zu erstellen (selbst wenn Ihre Quelle für die Wiederherstellung nur eine Datei ist). Wenn also die Quellendatenbank verwendet wird (was normalerweise der Fall ist, wenn Sie eine Produktions-DB kopieren), schlägt die Wiederherstellung fehl.

6
Craig

Ich hatte dieses Problem, als ich versuchte, eine Produktionssicherung auf einem Dev-Server wiederherzustellen, auf dem sich bereits die Datenbank befand. Ich wollte es als Kopie wiederherstellen, indem ich den Namen der Zieldatenbank änderte, aber das Problem lag tatsächlich bei den Dateien. Standardmäßig wurde versucht, die bereits vorhandenen Dateien zu überschreiben. Ich habe das Problem behoben, indem ich auf der Seite "Dateien" des Wiederherstellungsdialogs "Alle Dateien in Ordner verschieben" markierte und ein neues Verzeichnis auswählte, so dass keine Dateikollisionen auftreten konnten.

0
Evan M