none
Datenbank von SQL 2008 R2 nach SQL 2008 kopieren?! RRS feed

  • Frage

  • Hallo zusammen,

    ich versuche gerade, eine Datenbank aus einem SQL Server 2008 R2 auf einen "alten" SQL Server 2008 zu kopieren. Leider scheitere ich an der Tatsache, dass eine in R2 gebackupte DB nicht einfach in die ältere SQL 2008 Version restored werden kann.

    Gibt es eine Möglichkeit, ein Bakcup derart zu erstellen, dass ich es auch auf dem älteren System restoren kann?

    Leider haben die beiden Server keine direkte Verbindung untereinander, daher fällt für mich ein Import/Export über das Netzwerk leider aus.

     

    Vielen Dank für Eure Hilfe!

    Thorsten

     

    P.S.: Beide Server sind 64bit Enterprise-Editionen, falls das relevant sein sollte.

    Mittwoch, 28. September 2011 08:28

Alle Antworten

  •  

    Hi Thorsten,

    soweit ich das weiß, ist es nicht möglich, eine SQL 2K8 R2 DB auf einen SQL2K8 wieder herzustellen. Intern ist die Versionsnummer der DB ja schon höher. Der SQL Server 2K8 kann also nichts damit anfangen. Es gibt auch keinen Weg, das Backup zu "manipulieren".  Wäre denn ggf ein Kopieren der Datenbank etwas? Also mit dem Copy Database Wizard die Daten übertragen? Natürlich nicht die detach/attach Methode.

    Ich meine mich auch zu erinnern, dass man mit dem SSMS 2K8R2 eine DB inklusive Inhalt skripten lassen kann. Falls die DB nicht zu groß ist, könnte man so die Daten auf den 2008er Server bringen. 

    Oder halt nen Datentransfertask via SSIS oder bcp. Alles mit ein wenig Arbeit verbunden.

     

    Gruß

    Dirk

    P.S.: Ich hab nicht genau gelesen. Die beiden Server haben keine verbindung untereinander. Dann fällt CDW weg und SSIS auf direktem Wege auch. Also Daten raw in Flat files pumpen und dann auf der anderen Seite wieder einlesen.
    • Bearbeitet Dirk Hondong Mittwoch, 28. September 2011 08:38
    Mittwoch, 28. September 2011 08:36
  • Hi Dirk,

     

    danke für die schnelle Antwort!

    In der Tat, ein Kopieren ist leider wegen fehlendem Netzwerk nicht möglich. Die Datenbanken sind auch meiner Ansicht nach zu groß (20-50GB), um sie per Skript kopieren/neu erstellen zu lassen zu lassen.

    Gibt es nicht eine Möglichkeit über den Kompatibilitätsmodus etwas zu erreichen? Hatte das mal versucht und bin nicht wirklich weit gekommen -- aber kann auch daran liegen, dass ich einen Fehler irgendwo gemacht haben könnte.

     

    Viele Grüße

    Thorsten

    Mittwoch, 28. September 2011 10:02
  • Hallo Thorsten,

    nein, da hast Du keine Chance außer den schon beschriebenen Möglichkeiten. Auch mit dem Kompatibilitätsmodus lässt sich da nichts machen.


    Gruß Falk
    Falk Krahl
    Mittwoch, 28. September 2011 10:40
  • Hi Falk,

     

    das ist natürlich bitter für mich, aber zumindest weiß ich jetzt, was ich machen kann/muss.

     

    Vielen Dank an Euch!

    Thorsten

    Mittwoch, 28. September 2011 11:27
  • Keine Ursache.

    Übrigens:

    Der Komp-Modus bringt an der Stelle leider auch nichts, da man hier eigentlich nur dem SQL Server sagt: "Tu´mal so, als ob das eine SQL 2005 oder SQL 2000 DB wäre". Intern hat aber, sobald eine DB auf einen 2K8 R2 eingehangen wurde, dennoch eine aktuelle Versionsnummer, wodurch die DB dann inkompatibel zu früheren Server-Versionen wird.

    Der Komp Modus ist halt nur dafür da, alte SQL Syntax und Funktionen zu unterstützen (und die neuen Funktionen in dem Fall nicht, Bsp cross apply etc).

    Gruß

    Dirk

    Mittwoch, 28. September 2011 11:46
  • Kleine Anmerkung dazu:
    Der Kompatibilitätsmodus hilft nur alte Syntax und Funktionalität zu
    unterstützen. Neu eingeführte Funktionen sind trotzdem möglich.
     
    Beispiel (auf einem SQL Server 2005):
    <sql>
    USE [master]
    GO
    create database test
    go
    EXEC dbo.sp_dbcmptlevel @dbname=N'test', @new_cmptlevel=70
    GO
    Use test
    go
     
    with cte
    as
    (Select 1 as Zahl)
    Select *
    from cte;
     
    go
    select compatibility_level
    from sys.databases
    where name = 'test';
    </sql>
     
    CTEs waren bei 7.0 definitiv noch nicht vorhanden!
     
    Einen schönen Tag noch,
    Christoph
    --
    Microsoft SQL Server MVP
    www.insidesql.org/blogs/cmu
     
     
    Mittwoch, 28. September 2011 13:29
    Beantworter
  • Hallo Thorsten,

     

    falls du für die Erstellung der Scriptdateien (Schema + Daten) das Visual Studio verwendest, solltest du beim Einrichten der Datenbankverbindung über die Schaltfläche "Erweitert" das "Pooling" auf False setzen. Andernfalls läuft mansehr schnell in einen Timeout der das Erstellen der Scripte verhindert.

     

    Mit freundlichen Grüßen,

    Colin Groebel

    zwei R software & consulting GmbH

     

     

    Mittwoch, 5. Oktober 2011 08:55
  • Hallo Thorsten,

     

    Haben die Antworten deine Situation abgeklärt?

     

    Viele Grüße,

    Alex

    Freitag, 7. Oktober 2011 14:25
  • Hallo Thorsten,

    eine weitere möglichkeit wäre, auf dem Server auf dem der 2008R2 läuft zusätzlich eine 2008er Instanz zu installieren.

    Dann über den Import-/Export-Assistenten die Datenbank vom 2008R2er in den 2008er zu migrieren. Da dieser Prozess dann komplett lokal läuft, wird kein Netzwerk benötigt.

    Danach einfach ein Backup aus der 2008er DB ziehen, über (z.B.) eine externe HDD auf den anderen Server transferieren und dort importieren.

     

    Gruß

    Philipp

    Donnerstag, 17. November 2011 12:53