{"id":1295,"date":"2011-12-12T08:19:15","date_gmt":"2011-12-12T07:19:15","guid":{"rendered":"http:\/\/my.stargazer.at\/?p=1295"},"modified":"2011-12-12T08:19:15","modified_gmt":"2011-12-12T07:19:15","slug":"whos-connected-to-my-mssql-server","status":"publish","type":"post","link":"https:\/\/my.stargazer.at\/de\/2011\/12\/12\/whos-connected-to-my-mssql-server\/","title":{"rendered":"Wer ist mit dem MSSQL Server verbunden?"},"content":{"rendered":"<p>Heute ging mir beim Restore eines MSSQL Servers ein Client auf die Nerven. Nachdem ich alle Benutzer gebeten habe, wegen eben der R\u00fccksicherung einer Datenbank entsprechende Anwendungen zu beenden, war noch immer jemand auf der Datenbank. Doch wer? Ein Blick in die System-Prozesse zeigt den entsprechenden User:<\/p>\n<blockquote><p><code>select spid, status, loginame, hostname, blocked, db_name(dbid), cmd from master..sysprocesses<\/code><\/p><\/blockquote>\n<p><!--more-->Da ich keine Lust hatte, mit dem entsprechenden User zu diskutieren, wieso er jetzt nicht die Sache beenden konnte, entschied ich mich f\u00fcr die radikale Methode und den entsprechenden Prozess abzuschie\u00dfen. Der Benutzer w\u00fcrde sich schon im Falle des Falles bei mir melden.<\/p>\n<p>Ein SQL Script sucht mir die Prozesse die auf die entsprechende Datenbank zugreifen und killt diese:<\/p>\n<blockquote>\n<pre>\r\n-- use the master database\r\nUSE master\r\ngo\r\nDECLARE @DatabaseName varchar(30), \r\n    @ServerProcessID varchar(10), \r\n    @StartTime datetime\r\n\r\n-- Set our database name to my_database (change this to your db)\r\nSELECT @StartTime = current_timestamp, \r\n    @DatabaseName = 'my_database'\r\n\r\n-- Timeout after 3 minutes\r\nwhile(exists(Select * FROM sysprocesses \r\n            WHERE dbid = db_id(@DatabaseName)) AND\r\n            datediff(mi, @StartTime, current_timestamp) < 3)\r\nbegin\r\n        DECLARE spids CURSOR FOR\r\n            SELECT convert(varchar, spid) FROM sysprocesses\r\n                WHERE dbid = db_id(@DatabaseName)\r\n        OPEN spids\r\n        while(1=1)\r\n        BEGIN\r\n            FETCH spids INTO @ServerProcessID\r\n            IF @@fetch_status < 0 BREAK\r\n            exec('kill ' + @ServerProcessID)\r\n        END\r\n        DEALLOCATE spids\r\nend\r\n<\/pre>\n<\/blockquote>\n<p>Danach klappte der Restore problemlos und prompt meldete sich auch der entsprechende Benutzer per Telefon zu Wort. Ich nahm den H\u00f6rer zur Hand und meldete mich zuckers\u00fc\u00df mit den Worten \"Simon, Operator hier?\"...<\/p>","protected":false},"excerpt":{"rendered":"<p>Heute ging mir beim Restore eines MSSQL Servers ein Client auf die Nerven. Nachdem ich alle Benutzer gebeten habe, wegen eben der R\u00fccksicherung einer Datenbank entsprechende Anwendungen zu beenden, war noch immer jemand auf der Datenbank. Doch wer? Ein Blick in die System-Prozesse zeigt den entsprechenden User: select spid, status, loginame, hostname, blocked, db_name(dbid), cmd from master..sysprocesses<\/p>\n","protected":false},"author":7,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[575,267,384,60],"class_list":["post-1295","post","type-post","status-publish","format-standard","hentry","category-it-related-stuff","tag-database","tag-microsoft","tag-sql","tag-tip"],"_links":{"self":[{"href":"https:\/\/my.stargazer.at\/de\/wp-json\/wp\/v2\/posts\/1295","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/my.stargazer.at\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/my.stargazer.at\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/my.stargazer.at\/de\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/my.stargazer.at\/de\/wp-json\/wp\/v2\/comments?post=1295"}],"version-history":[{"count":0,"href":"https:\/\/my.stargazer.at\/de\/wp-json\/wp\/v2\/posts\/1295\/revisions"}],"wp:attachment":[{"href":"https:\/\/my.stargazer.at\/de\/wp-json\/wp\/v2\/media?parent=1295"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/my.stargazer.at\/de\/wp-json\/wp\/v2\/categories?post=1295"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/my.stargazer.at\/de\/wp-json\/wp\/v2\/tags?post=1295"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}