MSSQLSERVER_3168

platí pro:SQL Server

Podrobnosti

Attribute Value
Název produktu SQL Server
ID události 3168
Zdroj události MSSQLSERVER
Součást SQLEngine
Symbolický název LDDB_SYSTEMWRONGVER
Text zprávy Zálohu systémové databáze na zařízení %ls nelze obnovit, protože byla vytvořena jinou verzí serveru (%ls) než tento server (%ls).

Vysvětlení

Nemůžete obnovit zálohu systémové databáze (master, model nebo msdb) na serverové verzi, která se liší od sestavy, na které byla záloha původně vytvořena.

Note

Instalace servisní aktualizace jako kumulativní aktualizace, servisní balíček nebo GDR změní číslo sestavení serveru. Sestavování serverů je vždy postupné.

Možné příčiny

Schéma databáze systémových databází může být změněno napříč serverovými buildy. Aby se zajistilo, že změna schématu nezpůsobí nesrovnalosti, příkaz porovnává číslo sestavení zálohovacího souboru serveru s číslem sestavení serveru, RESTORE na kterém se pokoušete zálohu obnovit. Pokud jsou sestavení odlišná, příkaz zobrazí chybovou hlášku "3168" a operace obnovení se abnormálně ukončí.

Některé scénáře, kdy by se tento problém mohl objevit, zahrnují následující:

  • Snažíte se obnovit systémovou databázi na serveru A ze zálohy, která byla provedena na serveru B. Servery A a B jsou v různých serverových verzích. Například Server A může být na původní verzi verze a Server B na buildu service pack 1 (SP1).

  • Snažíte se obnovit systémovou databázi ze zálohy, která byla provedena na stejném serveru. Server však běžel na jiné verzi, když zálohovací proces běžel. To znamená, že server byl aktualizován od vytvoření zálohy.

Akce uživatele

Pokud chcete tento problém vyřešit, postupujte následovně:

Note

Pro následující postupy je Server A zdrojový server založený na SQL Server, na kterém se záloha provádí, a Server B je cílový server založený na SQL Server, na který se snažíte zálohu obnovit:

  1. Určete verzi serveru B (verze B) pomocí následujícího dotazu:

    SELECT @@VERSION;
    
  2. Spusť dotaz, který se podobá následujícímu, abys určil verzi SQL Server, která běžela v době provedení zálohy zdrojového kódu (verze A):

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

  3. Zkontrolujte hodnoty SoftwareVersionMajor, SoftwareVersionMinor, a SoftwareVersionBuild sloupců, abyste určili sestavení zdrojového serveru, který byl použit při zálohování. Například předpokládejme, že hodnoty jsou následující:

    • Verze softwaruHlavní: 15
    • SoftwareVersionMinor: 0
    • SoftwareVersionBuild: 4236 V tomto případě je zdrojová verze SQL Server při zálohování 15.0.4236.
  4. Použijte buď kompletní tabulky verzic SQL Server, nebo tabulku Excel builds, abyste určili verzi SQL Server, které verze verze odpovídá. Například verze 15.0.4236 mapuje na SQL Server 2019 CU16+GDR (verze A).

  5. Použijte jednu z následujících možností:

    • Pokud je verze A větší než verze B, použijte informace z Nejnovější aktualizace a historie verzí SQL Server k upgradu serveru B na stejnou verzi jako verze A.

    • Pokud je verze A horší než verze B, dočasně odstraňte pozdější aktualizace pomocí následujících kroků:

      1. V Control Panel vyberte Programy>, programy a funkce a poté zvolte Zobrazit nainstalované aktualizace.

      2. Najděte položku, která odpovídá každému z pozdějších aktualizačních balíčků, které odpovídají verzi B.

      3. Stiskněte a podržte (nebo klikněte pravým tlačítkem) na položku, a pak vyberte Odinstalovat.

    • Poté, co ověříte, že verze B je stejná jako verze A, zkuste znovu obnovit hlavní databázi na serveru B.

  6. (Doporučeno) Aktualizujte Server B na nejnovější dostupnou verzi a pak proveďte novou zálohu systémových databází.