MSSQLSERVER_3168
Gilt für: SQL Server
Details
attribute | Wert |
---|---|
Produktname | SQL Server |
Ereignis-ID | 3168 |
Ereignisquelle | MSSQLSERVER |
Komponente | SQLEngine |
Symbolischer Name | LDDB_SYSTEMWRONGVER |
Meldungstext | Die Sicherung der Systemdatenbank auf dem Medium %ls kann nicht wiederhergestellt werden, da sie im Vergleich zu dieser Version des Servers (%ls) mit einer anderen Version (%ls) erstellt wurde. |
Erklärung
Sie können keine Sicherung einer Systemdatenbank (Master, Modell oder msdb) auf einem Serverbuild wiederherstellen, der sich vom Build unterscheidet, auf dem die Sicherung ursprünglich erstellt wurde.
Hinweis
Beim Installieren eines Wartungsupdates wie kumulativem Update oder Service Pack oder einer DDR wird die Serverbuildnummer geändert. Serverbuilds sind immer inkrementell.
Mögliche Ursachen
Das Datenbankschema für Systemdatenbanken kann über Serverbuilds hinweg geändert werden. Um sicherzustellen, dass eine Schemaänderung keine Inkonsistenzen verursacht, vergleicht die RESTORE-Anweisung die Serverbuildnummer der Sicherungsdatei mit der Buildnummer des Servers, auf dem Sie die Sicherung wiederherstellen möchten. Wenn die Builds unterschiedlich sind, gibt die Anweisung eine Fehlermeldung "3168" aus, und der Wiederherstellungsvorgang wird ungewöhnlich beendet.
Einige Szenarien, in denen dieses Problem auftreten kann, sind die folgenden:
Sie versuchen, eine Systemdatenbank auf Server A aus einer Sicherung wiederherzustellen, die auf Server B übernommen wird. Server A und B befinden sich auf verschiedenen Serverbuilds. Server A könnte sich beispielsweise auf der ursprünglichen Buildversion befinden und Server B auf einem Build mit Service Pack 1 (SP1).
Sie versuchen, eine Systemdatenbank aus einer Sicherung wiederherzustellen, die auf demselben Server ausgeführt wird. Der Server hat jedoch einen anderen Build ausgeführt, als der Sicherungsvorgang ausgeführt wurde. Das heißt, der Server wurde seit der Erstellung der Sicherung aktualisiert.
Aktion des Benutzers
Gehen Sie folgendermaßen vor, um das Problem zu beheben:
Hinweis
Für die folgenden Verfahren ist Server A der SQL Server-Quellserver, auf dem die Sicherung ausgeführt wird, und Server B ist der SQL Server-Zielserver, auf dem Sie versuchen, die Sicherung wiederherzustellen:
Ermitteln Sie die Version von Server B (Version B), indem Sie die folgende Abfrage verwenden:
SELECT @@VERSION;
Führen Sie eine Abfrage aus, die wie folgt aussieht, um die Version von SQL Server zu ermitteln, die beim Erstellen der Quellsicherung ausgeführt wurde (Version A):
RESTORE headeronly FROM disk = 'c:\sqlbackups\masterdb.bak'
Überprüfen Sie die Werte von
SoftwareVersionMajor
,SoftwareVersionMinor
undSoftwareVersionBuild
Spalten, um den Build des Quellservers zu bestimmen, der beim Erstellen der Sicherung verwendet wurde. Gehen Sie beispielsweise davon aus, dass die Werte wie folgt sind:- SoftwareVersionMajor: 15
- SoftwareVersionMinor: 0
- SoftwareVersionBuild: 4236 In diesem Fall ist die SQL Server-Quellversion, als die Sicherung ausgeführt wurde, 15.0.4236.
Verwenden Sie entweder die Tabellen für die vollständige Versionsliste von SQL Server oder die Excel-Builds-Tabelle , um die Version von SQL Server zu ermitteln, der der Build entspricht. Beispiel: 15.0.4236 ist SQL Server 2019 CU16+DDR (Version A) zugeordnet.
Nutzen Sie eine der folgenden Optionen:
Wenn Version A größer als Version B ist, verwenden Sie die Informationen, die sich in den neuesten Updates und versionsverlauf für SQL Server befinden, um Server B auf denselben Build wie Version A zu aktualisieren.
Wenn Version A kleiner als Version B ist, entfernen Sie vorübergehend spätere Updates mithilfe der folgenden Schritte:
Wählen Sie in Systemsteuerung "Programme > und Features" und dann "Installierte Updates anzeigen" aus.
Suchen Sie den Eintrag, der jedem der späteren Updatepakete entspricht, die Version B entsprechen.
Halten Sie den Eintrag gedrückt (oder klicken Sie mit der rechten Maustaste darauf), und wählen Sie dann "Deinstallieren" aus.
Nachdem Sie überprüft haben, ob Version B mit Version A identisch ist, wiederholen Sie den Wiederherstellungsvorgang der Masterdatenbank auf Server B.
(Empfohlen) Aktualisieren Sie Server B auf die neueste verfügbare Version, und erstellen Sie dann eine neue Sicherung Ihrer Systemdatenbanken.
Siehe auch
Einschränkungen beim Wiederherstellen von Systemdatenbanken (SQL Server)
Wiederherstellen der Masterdatenbank (Transact-SQL)
Die einfachste Möglichkeit zum Neuerstellen der Masterdatenbank