none
SQL2017E und SQL2016 - keine Datenbank-Kompatibilität? RRS feed

  • Frage

  • Hallo zusammen,
    seit einigen Jahren betreibe ich zwei Computer mit je unterschiedlicher Version von SQL-Server. Ich habe dann immer auf dem zweiten eine Datenbank derart aktualisiert, indem ich auf dem ersten Computer .bak erstellt habe und dann auf dem zweiten das Wiederherstellen gemacht habe. Funktionierte immer bestens.

    Jetzt habe ich auf dem ersten Computer SQL2017E installiert während auf dem zweiten SQL2016 läuft.
    Allerdings funktioniert mein obiges Verfahren nicht mehr. Ich habe im SSMS 2017 die Kompatibilität der datenbank auf 2016 eingestellt - trotzdem Fehler:

    Fehler bei der Wiederherstellung von Datenbank "MyData". (Microsoft.SqlServer.Management.RelationalEngineTasks)

    ------------------------------
    ZUSÄTZLICHE INFORMATIONEN:

    System.Data.SqlClient.SqlError: The database was backed up on a server running version 14.00.1000. That version is incompatible with this server, which is running version 12.00.2269. Either restore the database on a server that supports the backup, or use a backup that is compatible with this server. (Microsoft.SqlServer.SmoExtended)

    Im Folgenden mal die Kennungen zu den SSMS:
    Microsoft SQL Server Management Studio            14.0.17199.0
    Microsoft Analysis Services-Clienttools            14.0.1008.227
    Microsoft Data Access Components (MDAC)            10.0.15063.0
    Microsoft MSXML                        3.0 4.0 5.0 6.0
    Microsoft Internet Explorer                9.11.15063.0
    Microsoft .NET Framework                4.0.30319.42000
    Betriebssystem                        6.3.15063


    Microsoft SQL Server Management Studio            13.0.16000.28
    Microsoft Analysis Services-Clienttools            13.0.1700.441
    Microsoft Data Access Components (MDAC)            10.0.15063.0
    Microsoft MSXML                        3.0 5.0 6.0
    Microsoft Internet Explorer                9.11.15063.0
    Microsoft .NET Framework                4.0.30319.42000
    Betriebssystem                        6.3.15063

    Was kann man tun? Woran liegt's?

    Grüße-


    Dietrich

    Freitag, 3. November 2017 08:35

Antworten

  • Hallo

    also die Version von SSMS spielt eigentlich keine Rolle. Mich wundert nur, warum Du nicht ein und die selbe verwendest.

    Und Nein: ein Restore auf einer ÄLTEREN Version von SQL Server ging noch nie. Kompatibilitätsmodus hat damit Nichts zu tun. Die Datenbankversion ist etwas internes.

    Da must Du in der Vergangenheit immer ein Restore "nach oben" gemacht haben. Das geht auch weiterhin.

    Also Backup auf SQL 2016, Restore auf SQL 2017, nicht andersrum.


    Andreas Wolter (Blog | Twitter)
    MCSM: Microsoft Certified Solutions Master Data Platform/SQL Server 2012
    MCM SQL Server 2008
    MVP Data Platform MCSE Data Platform
    MCSM Charter Member, MCITP Charter Member etc.
    www.SarpedonQualityLab.com
    (Founder)

    Freitag, 3. November 2017 09:22
  • Ich meine, dass SQL2017E(xpress) auf dem Tablet nicht zu installieren geht. Entschuldige die Kurzform... ;-)

    Mittlerweile habe ich das Aktualisieren der datenbnk mittels Ex-/Import realisiert.

    Danke für die Links, werde ich lesen.

    Grüße-


    Dietrich

    Freitag, 3. November 2017 11:29

Alle Antworten

  • Hallo

    also die Version von SSMS spielt eigentlich keine Rolle. Mich wundert nur, warum Du nicht ein und die selbe verwendest.

    Und Nein: ein Restore auf einer ÄLTEREN Version von SQL Server ging noch nie. Kompatibilitätsmodus hat damit Nichts zu tun. Die Datenbankversion ist etwas internes.

    Da must Du in der Vergangenheit immer ein Restore "nach oben" gemacht haben. Das geht auch weiterhin.

    Also Backup auf SQL 2016, Restore auf SQL 2017, nicht andersrum.


    Andreas Wolter (Blog | Twitter)
    MCSM: Microsoft Certified Solutions Master Data Platform/SQL Server 2012
    MCM SQL Server 2008
    MVP Data Platform MCSE Data Platform
    MCSM Charter Member, MCITP Charter Member etc.
    www.SarpedonQualityLab.com
    (Founder)

    Freitag, 3. November 2017 09:22
  • So wie es aussieht, gibt es im Management Studio noch die Funktionen Export und Import.
    Dies hat nichts mit Backup zu tun, sondern es werden alle nötigen DDL-Scripte sowie Scripte für das Exportieren und Importieren der Daten selber generiert.
    Dies ist zwar nicht so schnell wie ein Backup, aber umgeht die Kompatibilitätsprobleme (solange man keine neueren Features verwendet hat).

    Freitag, 3. November 2017 09:31
  • Danke, Andreas, für die schnelle Antwort!
    Die 2016er Version ist auf einem Tablet installiert, auf 2017 entwickle und ändere ich die Datenbank. Da geht NICHT 2017 E...

    Allerdings: Wenn man im SSMS die Kompatibilität einstellen kann, und zwar "nach unten", warum kann die DB nicht auf dem "unteren" System erkannt und verarbeitet?

    Grüße-


    Dietrich

    Freitag, 3. November 2017 09:43
  • Da hast du Recht und ich habe auch diese Methode schon praktiziert. Ich wollte eben in meinem Post diese Problematik mal ansprechen...
    Werde das Importiern jetzt mal anwenden.

    Grüße-


    Dietrich

    Freitag, 3. November 2017 09:45
  • Danke, Andreas, für die schnelle Antwort!
    Die 2016er Version ist auf einem Tablet installiert, auf 2017 entwickle und ändere ich die Datenbank. Da geht NICHT 2017 E...

    Allerdings: Wenn man im SSMS die Kompatibilität einstellen kann, und zwar "nach unten", warum kann die DB nicht auf dem "unteren" System erkannt und verarbeitet?

    Grüße-


    Dietrich

    Den Satz "Da geht NICHT 2017 E..." verstehe ich nicht. Kannst Du ihn vervollständigen? Schon oben hat mich das "E" auch gewundert. Wofür steht das? Express? Enterprise? Wäre letztlich aber auch egal für die Problematik.

    Der Kompatibilitätsmodus wirkt sich nunmal nur auf Datenbankinternes aus. Auf Code-Kompatibilität und je nach Version auch den QueryOptimizer.

    Mehr zu dem Thema hier in BOL: ALTER DATABASE-Kompatibilitätsgrad

    und hier auch speziell zu 2016/2017: Ändern des Datenbank-Kompatibilitätsmodus und Verwenden des Abfragespeichers

    Zitat:

    • Da das Upgraden einen unidirektionalen Vorgang darstellt (ein Downgrade des Dateiformats (Anmerkung: und das ist der Schlüssel zu Deiner Frage) ist nicht möglich), ist es sinnvoll, das Aktivieren neuer Funktionen als separaten Datenbankvorgang durchzuführen. Es ist möglich, eine Einstellung auf einen früheren DATABASE_COMPATIBILITY-Grad zurückzusetzen. Das neue Modell reduziert die Anzahl von Vorgängen, die während einer Ausfallzeit durchgeführt werden müssen.

    • Änderungen am Abfrageprozessor können komplexe Auswirkungen haben. Obwohl eine „positive“ Systemänderung, die für die meisten Kunden möglicherweise sehr gut ist, könnte an anderer Stelle für eine wichtige Abfrage eine unzulässige Regression verursachen. Durch die Trennung dieser Logik vom Upgradevorgang können Funktionen, wie z.B. der Abfragespeicher, Planauswahlregressionen auf Produktionsservern schnell abschwächen oder sogar komplett vermeiden.


    Andreas Wolter (Blog | Twitter)
    MCSM: Microsoft Certified Solutions Master Data Platform/SQL Server 2012
    MCM SQL Server 2008
    MVP Data Platform MCSE Data Platform
    MCSM Charter Member, MCITP Charter Member etc.
    www.SarpedonQualityLab.com
    (Founder)

    Freitag, 3. November 2017 09:56
  • Ich meine, dass SQL2017E(xpress) auf dem Tablet nicht zu installieren geht. Entschuldige die Kurzform... ;-)

    Mittlerweile habe ich das Aktualisieren der datenbnk mittels Ex-/Import realisiert.

    Danke für die Links, werde ich lesen.

    Grüße-


    Dietrich

    Freitag, 3. November 2017 11:29