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 von dem Build unterscheidet, auf dem die Sicherung ursprünglich erstellt wurde.

Hinweis

Durch die Installation eines Wartungsupdates wie kumulatives Update oder Service Pack oder gdr 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 die Fehlermeldung "3168" aus, und der Wiederherstellungsvorgang wird anormal 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 erstellt wird. Server A und B befinden sich auf unterschiedlichen 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 erstellt wird. Der Server hat jedoch einen anderen Build ausgeführt, als der Sicherungsvorgang ausgeführt wurde. Das heißt, der Server wurde aktualisiert, seit die Sicherung erstellt wurde.

Benutzeraktion

Gehen Sie folgendermaßen vor, um das Problem zu beheben:

Hinweis

Für die folgenden Verfahren ist Server A der Quellserver SQL Server, auf dem die Sicherung erstellt wird, und Server B ist der Zielserver SQL Server, auf dem Sie die Sicherung wiederherstellen möchten:

  1. Ermitteln Sie die Version von Server B (Version B), indem Sie die folgende Abfrage verwenden:

    SELECT @@VERSION

  2. Führen Sie eine Abfrage aus, die der folgenden ähnelt, um die Version von SQL Server zu ermitteln, die ausgeführt wurde, als die Quellsicherung erstellt wurde (Version A):

    RESTORE headeronly FROM disk = 'c:\sqlbackups\masterdb.bak'

  3. Überprüfen Sie die Werte der SoftwareVersionMajorSpalten , SoftwareVersionMinorund SoftwareVersionBuild , um den Build des Quellservers zu ermitteln, der beim Erstellen der Sicherung verwendet wurde. Angenommen, die Werte sind wie folgt:

    • SoftwareVersionMajor: 15
    • SoftwareVersionMinor: 0
    • SoftwareVersionBuild: 4236 In diesem Fall lautet die Quelle SQL Server Version, bei der die Sicherung erstellt wurde, 15.0.4236.
  4. Verwenden Sie entweder die SQL Server vollständigen Versionslistentabellen oder die Excel-Buildtabelle, um die Version von SQL Server zu bestimmen, der der Build entspricht. Beispielsweise wird 15.0.4236 SQL Server 2019 CU16+GDR (Version A) zugeordnet.

  5. Nutzen Sie eine der folgenden Optionen:

    • Wenn Version A größer als Version B ist, verwenden Sie die Informationen unter Neueste Updates und Versionsverlauf für SQL Server, 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, indem Sie die folgenden Schritte ausführen:

      1. Wählen Sie SystemsteuerungProgramme > und Features und dann Installierte Updates anzeigen aus.

      2. Suchen Sie den Eintrag, der jedem späteren Updatepaket entspricht, das Version B entspricht.

      3. 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 master Datenbank auf Server B.

  6. (Empfohlen) Aktualisieren Sie Server B auf die neueste verfügbare Version, und erstellen Sie dann eine neue Sicherung Ihrer Systemdatenbanken.

Weitere Informationen

Einschränkungen beim Wiederherstellen von Systemdatenbanken (SQL Server)

Wiederherstellen der master-Datenbank (Transact-SQL)

Die einfachste Möglichkeit zum Neuerstellen der master-Datenbank