none
Datenbank offline nehmen: Vorgang abbrechen RRS feed

  • Frage

  • Hallo Leute,

    wir haben einen Windows Server 2008 R2 auf dem 2 SQL  Server-Instanzen installiert sind.

    1. Produktion
    2. Test und Entwicklung

    Da ich Programmierer bin und meine Software nur mit einer Datenbank aus der ersten Instanz testen kann, möchte ich eine Datenbank von der ersten Instanz zur zweiten herüberkopieren. Gerade ist die Datenbank jedoch in Verwendung und wird es vermutlich auch noch einige Stunden so sein. Wenn ich sie offline nehmen will, dann muss man ja bekanntlich immer erst warten bis die Verbindungen getrennt sind. Dann kann man die Daten im Dateisystem kopieren und dann die DB in der neuen Instanz einfügen. Das war zumindest mein Plan.

    Jetzt habe ich aus Dummheit (früh und so) auf den Knopf "Offline nehmen" im Management Studio geklickt. Nun erscheint der Dialog "Datenbank offline schalten" und geht erst wieder weg wenn alle Verbindungen getrennt sind. Da es sich hier um den Produktionsserver handelt ist das echt eine doofe Sache, denn wenn die offline ist, können meine Kunden (ca 20 Mann) nicht mehr arbeiten und ich muss die dann sofort wieder online stellen. Aber dazu muss ich ja wissen, wann die dann tatsächlich endlich mal offline ist.

    Ich kann doch nicht die ganze Zeit vor dem Bildschirm sitzen bleiben und warten...

    Ihr versteht das Dilemma, oder? Hilfe! In ner Stunde habe ich ein Arzttermin. Was mache ich denn jetzt?

    Kann man den Vorgang nicht einfach abbrechen?

    Mittwoch, 5. März 2014 08:36

Antworten

  • Hallo Franz,

    anstelle des offline nehmens der Datenbank und anschließendem Anhängen kannst Du auch einfach eine Sicherung der Datenbank erstellen und die dann mit einem neuen Namen wiederherstellen. Das geht dann auch ohne, dass alle Verbindungen beendet werden müssen.

    Das aktuelle Problem kannst Du entweder lösen, indem Du (Kind ist eh schon in den Brunnen gefallen) den SQL Server Dienst kurz stoppst oder bspw. sowas anwendest:

      http://wiki.lessthandot.com/index.php/Kill_All_Active_Connections_To_A_Database

    Wobei ich mir nicht sicher bin, ob das im aktuellen Stadium wirklich klappt.

    Alternativ kann man die Datenbank auch über das SSMS trennen, in diesem Dialog gibt es auch eine Checkbox, mit der man angeben kann, dass alle Verbindungen automatisch getrennt werden sollen. Anschließend die Datenbank wieder anfügen.

    Ich würde aber dennoch eher den Weg über das Backup gehen. Ist einfacher und stört den Betrieb nicht.


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community

    Mittwoch, 5. März 2014 08:49
    Moderator
  • Hallo

    also wie Stefan schon schrieb, ist das Offline nehmen einer produktiven Datenbank wirklich wenig sinnvoll für Deployments. Da sollte man man den Prozess überdenken.

    Um das akute Problem zu lösen, kannst Du den Prozess/die SPID, die das Offline-Nehmen versucht, im Activity Monitor suchen und killen. Das müsste recht gut auffindbar sein, da sicher nicht viele mit dem Management Studio als Application arbeiten.


    Andreas Wolter (Blog | Twitter)
    MCM - Microsoft Certified Master SQL Server 2008
    MCSM - Microsoft Certified Solutions Master Data Platform, SQL Server 2012
    www.andreas-wolter.com | www.SarpedonQualityLab.com

    Mittwoch, 5. März 2014 09:03

Alle Antworten

  • Hallo Franz,

    anstelle des offline nehmens der Datenbank und anschließendem Anhängen kannst Du auch einfach eine Sicherung der Datenbank erstellen und die dann mit einem neuen Namen wiederherstellen. Das geht dann auch ohne, dass alle Verbindungen beendet werden müssen.

    Das aktuelle Problem kannst Du entweder lösen, indem Du (Kind ist eh schon in den Brunnen gefallen) den SQL Server Dienst kurz stoppst oder bspw. sowas anwendest:

      http://wiki.lessthandot.com/index.php/Kill_All_Active_Connections_To_A_Database

    Wobei ich mir nicht sicher bin, ob das im aktuellen Stadium wirklich klappt.

    Alternativ kann man die Datenbank auch über das SSMS trennen, in diesem Dialog gibt es auch eine Checkbox, mit der man angeben kann, dass alle Verbindungen automatisch getrennt werden sollen. Anschließend die Datenbank wieder anfügen.

    Ich würde aber dennoch eher den Weg über das Backup gehen. Ist einfacher und stört den Betrieb nicht.


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community

    Mittwoch, 5. März 2014 08:49
    Moderator
  • Hallo

    also wie Stefan schon schrieb, ist das Offline nehmen einer produktiven Datenbank wirklich wenig sinnvoll für Deployments. Da sollte man man den Prozess überdenken.

    Um das akute Problem zu lösen, kannst Du den Prozess/die SPID, die das Offline-Nehmen versucht, im Activity Monitor suchen und killen. Das müsste recht gut auffindbar sein, da sicher nicht viele mit dem Management Studio als Application arbeiten.


    Andreas Wolter (Blog | Twitter)
    MCM - Microsoft Certified Master SQL Server 2008
    MCSM - Microsoft Certified Solutions Master Data Platform, SQL Server 2012
    www.andreas-wolter.com | www.SarpedonQualityLab.com

    Mittwoch, 5. März 2014 09:03
  • Hi!

    @Stefan: Die Idee mit dem Backup ist großartig! Das werde ich das nächste mal so machen! Hervorragend!

    @Andreas: Okay Activity Monitor. Gut zu wissen.

    Das Ende vom Lied: Ich habe wegen dem Problem die Remotesitzung mit jemandem geteilt, und dann ist die komplette Kiste einfach abgestürzt und neugestartet. Naja. Datenbanken sind noch alle online. Und alles läuft wieder.

    Werde heute Abend wenn niemand mehr drauf ist, die Geschichte mit dem Backup ausprobieren.

    Vielen Dank!

    Mittwoch, 5. März 2014 11:13