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:
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\
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\
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.
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.
Abra a pasta Modelos SQL em C:\Arquivos de Programas\Microsoft SQL Server\150\LocalDB\Binn\Templates.
Copie os arquivos model.mdf e modellog.ldf para a pasta de instância ADSync2019 da etapa 2.
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.