Nachdem Sie im Management Studio auf "Datenbank offline schalten" geklickt haben, bleibt diese Nachricht hängen und wird nicht geschlossen, wenn Sie auf "Schließen" klicken.
Was ist ein guter Weg, um mit solchen festgefahrenen Jobs im Managementstudio umzugehen? Können Sie sie über den Aktivitätsmonitor töten? Sollte ich suchen, durch welchen Prozess dieser Job nicht mehr ausgeführt werden kann, und ihn beenden?
sql-server
ssms
EIN V
quelle
quelle
ALTER DATABASE foo SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
zuerst ausgegeben wird. Andernfalls sitzt er nur und wartet, und für eine ausgelastete Datenbank könnte dies für immer sein.Antworten:
Ich würde sagen, verwenden Sie niemals das Ding "Offline nehmen" in der GUI, es sei denn, Sie wissen, dass die Datenbank nicht verwendet wird. Durch irgendetwas. Das ist schwer zu wissen, ohne etwas Beinarbeit zu leisten. Warum also nicht dieses Skript irgendwo speichern und immer verwenden?
Und dann natürlich das Gegenteil:
Der Grund, warum Sie es
SINGLE_USER
zuerst festlegen müssen, besteht darin, vorhandene Benutzer auszuschalten (es gibt eine Option, dies im Dialogfeld "Trennen" zu tun, nicht jedoch im Dialogfeld "Offline nehmen"), da SQL Server exklusiven Zugriff auf die Datenbank benötigt es offline. Jetzt möchten Sie vielleicht trotzdem zusätzliche Arbeit leisten, um zu sehen, wer die Datenbank derzeit verwendet, als ob Sie dies mitten in einem großen Sicherungsvorgang oder einem ETL-Job tun oder was Sie haben, das könnte problematisch sein.BEARBEITEN : Ich habe einen Vorschlag zu Connect eingereicht (siehe Connect # 2687832 ) und ihn auch an Trello gesendet (abgelegt unter "Objekt-Explorer").
quelle
Wenn Sie sich bereits in einer hängenden Situation befinden, vergessen Sie nicht, dass Sie mit nach offenen Verbindungen auf dem Server suchen können
in einer anderen Datenbank, z. B. master.
Scannen Sie die Ergebnisse nach Daten, bei denen es sich um die Datenbank handelt, die Sie offline schalten möchten.
Beachten Sie den Spaltenwert spid (Prozess-ID) dieser Zeilen.
Lauf nacheinander
Dabei ist "##" die Spid.
Stellen Sie sicher, dass diese Prozesse nicht wichtig sind, damit sie ausgeführt werden. Sie werden beendet, ohne den letzten Befehl zu beenden und ohne Vorwarnung.
quelle