none
Datenbanken auf anderen Server kopieren RRS feed

  • 질문

  • Hallo zusammen,

    da ihr mir schon sehr geholfen habt und ich durch mitlesen anderer Beiträge schon viel habe lernen können, möchte ich Euch mal vorher über ein "Projekt" fragen was ich machen muss.

    Wir haben ein Server mit installiertem SQL Server 2008 R1 und müssen uns gedanken machen, wie wir knapp 1000 Datenbanken behandeln beim Update auf SQL Server 2008 R2. Das Problem, unser Anbieter der bei uns eingesetzten Applikation kann uns nicht sagen mit welchem Faktor wir die Zeit des Update sowie der Datenbank-Konvertierung berechnen können, zudem fühlen ich mich daher etwas unsicher und möchte das ganze in einer Test-Umgebung durchführen.

    Nun stellen sich mir folgende Fragen:
    -Wie kann ich die aktuellen Datenbanken ohne grosse Beeinträchtigung vom produktiven Server auf einen Test-Server kopieren (per Script?)
    -kann man eine mit ...R1 erstellte Datenbank direkt auf einen bereits mit ...R2 installierten Server kopieren und wird die DB dann auch konvertiert (wovon ich ausgehe)
    -hat man eine Rollback-Funktion wenn wir den produktiven Server von R1 auf R2 updaten, etwas schief geht und wir wieder auf R1 zurück müssen (eher unwahrscheinlich)

    Ich möchte mich mehr mit SQL Server beschäftigen, gibt es ein gutes Buch dazu was auch Maintenace-Vorgaben mit Bord-Mittel enthält?

    Viele Grüsse,
    Maximilian

    2012년 4월 6일 금요일 오후 6:31

답변

  • Hallo Maximilian,

    für eine Migration von der derzeitigen Produktion in die Testumgebung würde ich PowerShell verwenden, da Powershell eine hohe Vielseitigkeit aufweist.

    Zu deinen Fraghen:

    1. Benutze für einen Datenbankabzug die Copy-Only Funktion. http://msdn.microsoft.com/en-us/library/ms191495.aspx Dies stellt sich, das deine Backupkette nicht unterbrochen wird. Und die Beeinträchtigung ist am geringsten.

    2. SQL Server 2008 Datenbanken kannst direkt auf einem SQL Server 2008 R2 wiederherstellen. Das Compatibility Level ist das gleiche. http://msdn.microsoft.com/en-us/library/bb510680.aspx Der SQl Server 2008 R2 unterstützt sogar noch die Wiederherstellung von Sicherungen des SQL Server 2000. Ich würde jedoch nach der Einspielung der Sichung ein DBCC CHECKDB durchführen.

    3. Dies ist meines Wissens nach nicht möglich.

    Gruß Christian

    • 답변으로 표시됨 MaxiTesch 2012년 4월 13일 금요일 오후 3:23
    2012년 4월 6일 금요일 오후 7:04

모든 응답

  • Hallo Maximilian,

    für eine Migration von der derzeitigen Produktion in die Testumgebung würde ich PowerShell verwenden, da Powershell eine hohe Vielseitigkeit aufweist.

    Zu deinen Fraghen:

    1. Benutze für einen Datenbankabzug die Copy-Only Funktion. http://msdn.microsoft.com/en-us/library/ms191495.aspx Dies stellt sich, das deine Backupkette nicht unterbrochen wird. Und die Beeinträchtigung ist am geringsten.

    2. SQL Server 2008 Datenbanken kannst direkt auf einem SQL Server 2008 R2 wiederherstellen. Das Compatibility Level ist das gleiche. http://msdn.microsoft.com/en-us/library/bb510680.aspx Der SQl Server 2008 R2 unterstützt sogar noch die Wiederherstellung von Sicherungen des SQL Server 2000. Ich würde jedoch nach der Einspielung der Sichung ein DBCC CHECKDB durchführen.

    3. Dies ist meines Wissens nach nicht möglich.

    Gruß Christian

    • 답변으로 표시됨 MaxiTesch 2012년 4월 13일 금요일 오후 3:23
    2012년 4월 6일 금요일 오후 7:04
  • Hallo Maximilian,

    Christian hat ja schon gute Hinweise geschrieben, daher beschränke ich mich auf Frage 3 (Rollback der SQL Server Installation).

    Ich für meinen Teil würde hier ggfs. mit einer VM arbeiten. D.h. ihr erzeugt vom aktuellen System eine VM, diese sichert ihr. Danach führt ihr dann die Updates durch. Je nach eingesetzter VM Software könnt ihr dann im Fehlerfall auf die Original VM zurückgehen (also faktisch ein Rollback durchführen) oder ihr arbeitet mit einer Kopie der VM.

    Wenn alles passt, könnt ihr entweder gleich mit der VM weiterarbeiten (würde ich, je nach genauen Anforderungen an Hard- und Software ggfs. auch empfehlen) oder ihr spielt die VM wieder auf den Server zurück.

    Alternativ (solltet ihr eh immer machen): Vor Beginn der Arbeiten ein komplettes Systembackup (Image) erstellen, welches ihr im Fehlerfall zurückspielen könnt.


    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

    2012년 4월 6일 금요일 오후 8:10
    중재자
  • Hallo Christian,

    ich werde mir PowerShell mal genauer anschauen, wichtig ist das ich in einem Durchgang die Datenbanken mit Status ONLINE auf den anderen Server kopieren kann um dann das Verhalten zu testen was uns an einem Wochenende erwarten wird :-)

    Habe mal nach Scripten gesucht, muss mich da aber mehr einlesen um ein Script zu bauen was kopiert und den Source-Server nicht beeinträchtigt. Evtl muss ich eine Funktion einbauen das erst um 0:00 Uhr gestartet wird und wenn die DB´s nicht bis 06:00 kopiert werden konnten, das Script erst mal pausiert oder abbricht. Möchte keine Auswirkung auf dem produktiven Server provozieren.

    Wenn man kopieren kann, müsste das ja auch per detach und attach (alter/neuer Server) klappen?

    Ach ja, welche Auswirkung gibt es eigentlich wenn ich die Datenbank auf R2 migriert habe und der Client (mit der Applikation) hat noch R1 Express installiert? Die Applikation ermöglicht dem User auch ein Backup der Datenbank, dabei wird auf dem Server ein Backup der DB gemacht, es werden nocn Dateien erstellt die ein Restore mit allen Daten zur Versionskontrolle möglicht macht und dann als ZIP-Datei auf den Client kopiert. Wenn nun der Client eine DB bei sich mit R1 restoren möchte, wird es vermutlich wegen der konvertierten DB nicht mehr möglich sein?

    Das muss ich dann auch noch testen...

    Viele Grüsse,
    Maximilian

    2012년 4월 7일 토요일 오전 9:42
  • Hallo Stefan,

    ein Backup des Server versteht sich von selbst, auch wenn meine Kollegen das als nicht so wichtig ansieht, ich aber schon...

    Unsere Server sind bereits in einer viruellen Umgebung, damit sollte das sichern und zurück setzen möglich sein, da spielt dann nur der Zeitfaktor eine Rolle weshalb ich auch das Scenario mit kopieren auf einen SQL 2008 R2 Server testen möchte.

    Im Momment denke ich über mögliche Scenarien nach und möchte alle erst mal mit Echt-Daten prüfen.

    Viele Grüsse,
    Maximilian

    2012년 4월 7일 토요일 오전 9:45