Welches SQL Server-Produkt repräsentiert Version 622?

7

Ich habe die Daten und Protokolldateien, die ich von einem Client erhalten habe, manuell an eine SQL Server 2005 Express SP3-Datenbank angehängt. Während des Upgrades auf SP4 wird folgende Fehlermeldung angezeigt:

Die Datenbank 'MyDatabase' kann nicht geöffnet werden, da es sich um Version 622 handelt. Dieser Server unterstützt Version 612 und früher. Ein Downgrade-Pfad wird nicht unterstützt.

Weiß jemand, was Datenbankversion 622 ist und wie ich sie installieren kann? Diese Datenbank stammt von einem kanadischen Kunden, daher stammt sie möglicherweise von einer internationalen Version von SQL Server. Ich wünschte wirklich, es gäbe eine Referenz für die Datenbankversionen, also wüsste ich, was 622 ist. Viel Googeln führte zu viel Frustration und keinen Antworten.

Weitere Informationen hinzufügen. Die ursprüngliche Datenbank war beschädigt. Ich konnte es nur mit einem Backup wiederherstellen. Die Datendateien waren etwas neuer (2 Tage), also haben wir gesehen, ob wir diese auch verwenden können.

Ein erfolgreiches Upgrade von SQL Server 2005 Express auf SQL Server 2008 Express, während die beschädigte Datenbank angehängt wurde. SELECT @@VERSIONmeldet Microsoft SQL Server 2008 (RTM) - 10.0.1600.22 (Intel X86). Ich lief sp_resetstatus, SET EMERGENCYund DBCC CHECKDBerhielt die folgende:

Meldung 946, Ebene 14,
Status 1, Zeile 1 Datenbank 'MyDatabase' Version 622 kann nicht geöffnet werden. Aktualisieren Sie die Datenbank auf die neueste Version.

Ken Richards
quelle
siehe Wie die Datenbankversion einer MDF - Datei , um festzustellen adn Ihre SQL Server - Version erfahren. Oder Sie können eine durchführen restore headeronlyund herausfinden, ob Sie ein Backup haben.
Kin Shah
Scheint eine Zwischenversionsnummer zu sein: social.msdn.microsoft.com/Forums/en-US/…
a_horse_with_no_name
Was wird SELECT @@version;auf Ihrem Server angezeigt (und wenn möglich auf dem Client)?
Ypercubeᵀᴹ
4
@AaronBertrand: 612 ist SQL 2005 mit aktivierter Vardecimal-Unterstützung. Alle 2005 nach SP2 werden "am höchsten unterstützt" als 612 melden, nicht 611 wie 2005 RTM.
Remus Rusanu
@Remus ah ja, ich habe vergessen, dass diese Einstellung die Datenbankversion geändert hat, danke.
Aaron Bertrand

Antworten:

8

622 ist eine interne Zwischenversion, die nie veröffentlicht wurde. Wie kommt es, dass Sie eine 622-Version DB haben? Die Erklärung ist eigentlich einfach: ein abgebrochenes Upgrade. Schauen Sie sich die Sequenz an, die Aaron gepostet hat:

Converting database 'x' from version 611 to the current version 655. 
Database 'x' running the upgrade step from version 611 to version 621. 
Database 'x' running the upgrade step from version 621 to version 622. 
Database 'x' running the upgrade step from version 622 to version 625.

Wenn der letzte Schritt oben abstürzt, ist Ihre Datenbank jetzt eine Version 622 (jeder Schritt wird festgeschrieben). Diese Version kann nur an einen SQL Server 2008 (oder neuer) angehängt werden, um das Upgrade fortzusetzen und abzuschließen. Mir scheint, Sie hatten eine SQL Server 2005-Datenbank (Version 611), die Sie an einen SQL Server 2008 oder höher angeschlossen haben. Das Upgrade wurde gestartet, aber das Upgrade ist in Schritt 622-> 625 fehlgeschlagen, und jetzt versuchen Sie, es wieder anzuhängen zur SQL 2005-Instanz. Es kann nicht wieder angebracht werden. Ihre einzige Chance besteht darin, vorwärts zu kommen. Wenn das Upgrade weiterhin fehlschlägt, müssen Sie erneut von einer ursprünglichen SQL 2005-Datenbank aus starten (eine Kopie der Dateien, eine Sicherung ...).

Warum sollte ein Datenbank-Upgrade fehlschlagen? Aus demselben Grund kann jeder Vorgang fehlschlagen: STRG-C, Stromausfall, beschädigte Originaldatenbank, Hardwareprobleme, Fehler im Produkt. Da ich weiß, was der Upgrade-Schritt 622-625 bewirkt, befinden sich meine Gelder in einer beschädigten Quelldatenbank. Die Wiederherstellung nach einem fehlgeschlagenen Upgrade ist etwas schwieriger. Wie immer zahlt es sich aus, eine gute, getestete Sicherungs- und Wiederherstellungsstrategie zu haben.

Remus Rusanu
quelle
1
Wie viele Gelder genau? :-)
Aaron Bertrand
1
@ AaronBertrand: es ist absichtlich falsch geschrieben :) Ich habe einen seltsamen Sinn für Humor, viele halten es nicht einmal für Humor ...
Remus Rusanu
4

622 ist sehr wahrscheinlich eine sehr frühe Beta oder unveröffentlichte Zwischenversion von SQL Server 2008. Deshalb glaube ich, dass dies wahr ist. Ich habe den höchstmöglichen Build von SQL Server 2005 SP4:

Microsoft SQL Server 2005 - 9.00.5324.00 (X64) 
  Aug 24 2012 18:28:47 
  Copyright (c) 1988-2005 Microsoft Corporation
  Developer Edition (64-bit) on Windows NT 6.1 (Build 7601: Service Pack 1)

Das ist 2005 + SP4 + CU3 + QFE aus dem Security Bulletin MS12-070 .

Wenn ich die Datenbank von 2005 SP4 sichern und beim allerersten RTM-Build von 2008 wiederherstellen möchte:

Microsoft SQL Server 2008 (RTM) - 10.0.1600.22 (X64) 
  Jul  9 2008 14:17:44 
  Copyright (c) 1988-2008 Microsoft Corporation
  Developer Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1)

Während der Wiederherstellung werden folgende Datenbankversionsmeldungen angezeigt:

Konvertieren der Datenbank 'x' von Version 611 in die aktuelle Version 655.
Datenbank 'x', in der der Upgrade-Schritt von Version 611 auf Version 621 ausgeführt wird.
Datenbank 'x', in der der Upgrade-Schritt von Version 621 auf Version 622 ausgeführt wird.
Datenbank 'x', in der die ausgeführt wird Upgrade-Schritt von Version 622 auf Version 625.
Datenbank 'x', die den Upgrade-Schritt von Version 625 auf Version 626 ausführt.
... 25 Schritte entfernt ...
Datenbank 'x', die den Upgrade-Schritt von Version 651 auf Version 652 ausführt.
Datenbank ' x 'Ausführen des Upgrade-Schritts von Version 652 auf Version 653.
Datenbank' x 'Ausführen des Upgrade-Schritts von Version 653 auf Version 654.
Datenbank' x 'Ausführen des Upgrade-Schritts von Version 654 auf Version 655.

Sie werden feststellen, dass 622 der zweite von vielen, vielen Schritten auf dem Weg zwischen einem Build von 2005 und dem allerersten offiziellen öffentlichen Build von 2008 ist. Da es am Ende eines Veröffentlichungszyklus keine CTPs oder Interim-Builds gibt , führt dies Ich glaube, dass dies ein sehr früher Build zu Beginn des Release-Zyklus 2008 war.

Viel mysteriöser ist, wie Sie eine Instanz von SQL Server 2008 haben, die glaubt, es sei Version 612 (die, wie Remus zu Recht daran erinnert hat, 2005 mit aktivierter vardecimal-Option ist), während @@VERSION- zumindest laut Frage - 10.0 zurückgegeben wird .1600.22 (das ist 2008 RTM). Ich vermute, Sie versuchen die Wiederherstellung und laufen SELECT @@VERSION;auf zwei verschiedenen Servern.

Ich würde vorschlagen, dass Sie Service Pack 3 und Cumulative Update 14 anwenden und dann erneut versuchen, Ihre Datenbank auf dem 2008-Server wiederherzustellen. Dies sollte Ihre Datenbankversion auf 655 bringen (oder 662/663, wenn Sie die 15K-Partitionsunterstützung aktivieren), und zu diesem Zeitpunkt sollten Sie in der Lage sein, Ihre Datenbank mit der 622-Version problemlos wiederherzustellen (solange sie nicht beschädigt wurde) während eines verpfuschten Upgrades, wie Remus vorgeschlagen hat).

Woher bekommen Sie Ihre Builds von SQL Server? Und warum läuft x86? Es ist 2014. Ist das zugrunde liegende Betriebssystem wirklich 32-Bit?

Aaron Bertrand
quelle
2

Einfach ausgedrückt, Ihre Datenbank stammt aus einer neueren Version von SQL Server, an die Sie sie anhängen möchten, und SQL Server unterstützt dies nicht. Sie können Datenbanken nur an dieselben oder neuere Versionen von SQL Server anhängen, als Sie sie erhalten haben.

Wenn Sie nur auf die Datenbank zugreifen müssen und diese nicht größer als 10 GB ist, können Sie SQL Server Express herunterladen und die Datenbank an diese anhängen. Beachten Sie, dass dadurch die Datenbank auf diese Version aktualisiert wird. Ich würde daher empfehlen, eine Sicherungskopie dieser Dateien zu erstellen. Wenn Ihre Datenbank größer als 10 GB ist, benötigen Sie SQL Server Standard, Enterprise oder Developer, um sie anzuhängen.

Mike Fal
quelle
Welche Version könnte dieser Server sein, da die 2008-Versionen eine interne Versionsnummer von 661 haben? Eine Werbeversion (CTP?) Vor der RTM-Version 2008?
Ypercubeᵀᴹ
Wenn ich eine Vermutung wagen müsste, 2005 SP4. Aber das ist wirklich nur eine Vermutung
Mike Fal
2008 ist 655; 2008 R2 ist 661 (es sei denn, Sie aktivieren die 15K-Partitionsunterstützung, und dann kann es 662 oder 663 sein, abhängig von der ursprünglichen Quelle der Datenbank).
Aaron Bertrand
@ AaronBertrand Ups, danke für die Korrektur.
Ypercubeᵀᴹ