Partilhar via


Resolver a corrupção do banco de dados do modelo no SQLLocalDB

Este artigo descreve um problema conhecido no utilitário SQLLocalDB que pode impedir que o serviço ADSync seja iniciado devido a um banco de dados corrompido Model . Esse problema afeta principalmente o Microsoft Entra Connect 2.x servidores executados em um LocalDB do Microsoft SQL Server 2019.

O problema é causado por um bug na lógica de backup do SQL Server que cria um estado inconsistente na página inicial do banco de dados do SQL Server Model . Depois que um backup ocorre, o banco de dados é definido para FULL o Model modo de recuperação (dbi_status == 0x40010000) e o dbi_dbbackupLSN (o LSN (número de seqüência de log) para o backup do banco de dados) é definido como um valor que aponta para um arquivo de log. No entanto, o modo de recuperação real que é controlado pelo Master banco de dados é SIMPLE.

No SIMPLE modo de recuperação, os logs do banco de dados são truncados automaticamente. No FULL modo de recuperação, os logs são truncados somente após um backup. Quando o SQLLocalDB é reiniciado depois que o arquivo de log é truncado, ele detecta um LSN de backup anterior ao arquivo de log mais antigo. Portanto, ele não iniciará o serviço.

Revise as diretrizes nas próximas seções para saber como executar as seguintes tarefas:

  • Identifique corretamente se o serviço Microsoft Entra Connect (ADSync) não é iniciado devido à corrupção do banco de Model dados.

  • Atenue o problema recuperando o Model banco de dados de um estado corrompido.

  • Aplique uma correção permanente para garantir que essa Model corrupção de banco de dados não ocorra novamente.

Sintomas

Você pode verificar se o problema é baseado nos seguintes eventos no servidor Microsoft Entra Connect:

  • Visualizador de Eventos: Aplicativo, EventID 528, Origem: SQLLocalDB 15.0

    WaitForMultipleObjects
    575
    {Application Error}
    The application was unable to start correctly (0x%lx). Click OK to close the application.
    3714
    
  • Visualizador de Eventos: Aplicativo, EventIDs 2005 e 6226, Fonte: ADSync

    0x8023044a
    OriginalError=0x80004005 OLEDB Provider error(s):
    Description  = 'Login timeout expired'
    Failure Code = 0x80004005 
    
  • Arquivo de error.log SQLLocalDB no< caminho> do perfil de serviço do ADSync\AppData\Local\Microsoft\Microsoft SQL Server Local DB\Instances\ADSync2019

    <yyyy-MM-dd HH:mm:ss.##> spid14s     The resource database build version is 15.00.4138. This is an informational message only. No user action is required.
    <yyyy-MM-dd HH:mm:ss.##> spid8s      Starting up database 'msdb'.
    <yyyy-MM-dd HH:mm:ss.##> spid14s     Starting up database 'model'.
    <yyyy-MM-dd HH:mm:ss.##> spid14s     Error: 9003, Severity: 20, State: 1.
    <yyyy-MM-dd HH:mm:ss.##> spid14s     The log scan number (41:488:1) passed to log scan in database 'model' is not valid. This error may indicate data corruption or that the log file (.ldf) does not match the data file (.mdf). If this error occurred during replication, re-create the publication. Otherwise, restore from backup if the problem results in a failure during startup.
    <yyyy-MM-dd HH:mm:ss.##> spid14s     SQL Trace was stopped due to server shutdown. Trace ID = '1'. This is an informational message only; no user action is required.
    

Atenuação

Importante

Aplique somente as etapas de mitigação descritas aqui se todas essas condições ocorrerem:

  • A versão do Microsoft Entra Connect é 2.0.x.x.

  • O Microsoft Entra Connect é instalado com o SQL LocalDB.

  • Todas as condições listadas em Sintomas estão presentes.

Para recuperar o Model banco de dados de um estado corrompido, siga estas etapas:

  1. Vá para um dos seguintes locais de perfil de serviço ADSync, dependendo da conta de serviço em execução (como uma conta de domínio, uma conta de serviço virtual ou uma conta de serviço gerenciado):

    • C:\Usuários\<conta> de serviço\
    • C:\Usuários\ADSyncMSAxxxx$\
    • C:\Windows\ServiceProfiles\ADSync\
  2. Abra o arquivo error.log da pasta de instância ADSync2019 no seguinte caminho de diretório:

    <caminho> do perfil de serviço\AppData\Local\Microsoft\Microsoft SQL Server Local DB\Instances\ADSync2019\

  3. Localize a seguinte entrada de erro no log para verificar se o Model banco de dados está corrompido:

    <yyyy-MM-dd HH:mm:ss.##> spid14s     Error: 9003, Severity: 20, State: 1.
    <yyyy-MM-dd HH:mm:ss.##> spid14s     The log scan number (41:488:1) passed to log scan in database 'model' is not valid. This error may indicate data corruption or that the log file (.ldf) does not match the data file (.mdf). If this error occurred during replication, re-create the publication. Otherwise, restore from backup if the problem results in a failure during startup.   
    
  4. Se o erro "9003" existir nesta entrada, renomeie os arquivos model.mdf e modellog.ldf nesta pasta para old_model.mdf e old_modellog.ldf, respectivamente.

  5. Abra a pasta Modelos SQL em C:\Arquivos de Programas\Microsoft SQL Server\150\LocalDB\Binn\Templates.

  6. Copie os arquivos model.mdf e modellog.ldf para a pasta de instância ADSync2019 da etapa 2.

  7. Inicie o serviço ADSync.

Solução

A Microsoft introduziu uma correção para esse problema no Microsoft Entra Connect versão 2.1.1.0. Se o serviço de sincronização (ADSync) não puder ser iniciado, você precisará aplicar as etapas na seção Mitigação antes de atualizar o Microsoft Entra Connect.

Para evitar problemas de corrupção no banco de dados SQLLocalDB Model , instale o build mais recente do Microsoft Entra Connect, que está disponível em Microsoft Entra Connect: Histórico de versões do Microsoft Entra.

Entre em contato conosco para obter ajuda

Se você tiver dúvidas ou precisar de ajuda, crie uma solicitação de suporte ou peça ajuda à comunidade de suporte do Azure. Você também pode enviar comentários sobre o produto para a comunidade de comentários do Azure.