MSSQLSERVER_3168

Aplica-se a: SQL Server

Details

Attribute Value
Nome do Produto SQL Server
ID do Evento 3168
Origem do evento MSSQLSERVER
Componente SQLEngine
Nome simbólico LDDB_SYSTEMWRONGVER
Texto da mensagem O backup do banco de dados do sistema no dispositivo %ls não pode ser restaurado porque foi criado por uma versão diferente do servidor (%ls) do que este servidor (%ls).

Explanation

Não se pode restaurar uma cópia de segurança de uma base de dados do sistema (mestre, modelo ou msdb) numa build de servidor que seja diferente da build onde o backup foi originalmente criado.

Note

Instalar uma atualização de manutenção, como uma atualização cumulativa, um service pack ou um GDR, altera o número de construção do servidor. As construções de servidores são sempre incrementais.

Causas possíveis

O esquema da base de dados para bases de dados do sistema pode ser alterado entre as builds de servidores. Para garantir que uma alteração de esquema não causa inconsistências, a RESTORE instrução compara o número de compilação do servidor do ficheiro de backup com o número de compilação do servidor onde está a tentar restaurar o backup. Se as versões forem diferentes, a instrução emite uma mensagem de erro "3168 " e a operação de restauro termina de forma anormal.

Alguns cenários em que este problema pode ocorrer incluem os seguintes:

  • Tentas restaurar uma base de dados do sistema no Servidor A a partir de uma cópia de segurança feita no Servidor B. Os Servidores A e B estão em builds de servidores diferentes. Por exemplo, o Servidor A pode estar na versão original de lançamento e o Servidor B pode estar numa versão do service pack 1 (SP1).

  • Tentas restaurar uma base de dados do sistema a partir de uma cópia de segurança feita no mesmo servidor. No entanto, o servidor estava a correr uma versão diferente quando o processo de backup foi executado. Ou seja, o servidor foi atualizado desde que o backup foi criado.

Ação do usuário

Para resolver o problema, siga estes passos:

Note

Para os procedimentos seguintes, o Servidor A é o servidor baseado em SQL Server de origem onde o backup é feito, e o Servidor B é o servidor de destino baseado em SQL Server onde está a tentar restaurar o seu backup:

  1. Determine a versão do Servidor B (Versão B), usando a seguinte consulta:

    SELECT @@VERSION;
    
  2. Execute uma consulta semelhante à seguinte para determinar a versão do SQL Server que estava a correr quando o backup de origem foi feito (Versão A):

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

  3. Revise os valores de SoftwareVersionMajor, SoftwareVersionMinor, e SoftwareVersionBuild colunas para determinar a construção do servidor de origem que foi usado quando o backup foi feito. Por exemplo, assuma que os valores são os seguintes:

    • SoftwareVersionMajor: 15
    • SoftwareVersionMinor: 0
    • SoftwareVersionBuild: 4236 Neste caso, a versão de origem do SQL Server quando o backup foi feito é a 15.0.4236.
  4. Use as tabelas de listas de versões completas do SQL Server ou a folha de cálculo de compilações do Excel para determinar a versão do SQL Server a que a compilação corresponde. Por exemplo, a versão 15.0.4236 corresponde ao SQL Server 2019 CU16+GDR (Versão A).

  5. Use uma das seguintes opções:

    • Se a Versão A for superior à Versão B, use a informação que está nas últimas atualizações e histórico de versões do SQL Server para atualizar o Servidor B para a mesma versão da Versão A.

    • Se a Versão A for inferior à Versão B, remova temporariamente as atualizações posteriores utilizando os seguintes passos:

      1. No Painel de Controlo, selecione Programas>, Programas e Funcionalidades, e depois selecione Ver atualizações instaladas.

      2. Localize a entrada que corresponde a cada um dos pacotes de atualização posteriores que correspondem à Versão B.

      3. Pressiona e mantém pressionado (ou clica com o botão direito) na entrada, e depois seleciona Desinstalar.

    • Depois de verificar se a Versão B é igual à Versão A, tente novamente a operação de restauro da base de dados mestre no Servidor B.

  6. (Recomendado) Atualize o Servidor B para a versão mais recente disponível e depois faça uma nova cópia de segurança das bases de dados do seu sistema.

Consulte também

Limitações na Restauração de Bases de Dados do Sistema (SQL Server)

Restaurar o banco de dados mestre (Transact-SQL)

A Forma Mais Fácil de Reconstruir a Base de Dados Principal