Resolver a corrupção do banco de dados de 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 Microsoft Entra Connect 2.x servidores que são executados em um LocalDB do Microsoft SQL Server 2019.
O problema é causado por um bug na lógica de backup SQL Server que cria um estado inconsistente na página inicial do banco de dados SQL ServerModel
. Depois que ocorre um backup, o Model
banco de dados é definido como FULL
modo de recuperação (dbi_status
== 0x40010000) e o dbi_dbbackupLSN
(o (número de sequência de logs) 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 é regido pelo Master
banco de dados é SIMPLE
.
No SIMPLE
modo de recuperação, os logs de banco de dados são truncados automaticamente. No FULL
modo de recuperação, os logs são truncados somente após um backup. Quando SQLLocalDB é reiniciado depois que o arquivo de log é truncado, ele detecta um LSN de backup que é anterior ao arquivo de log mais antigo. Portanto, ele não iniciará o serviço.
Examine as diretrizes nas próximas seções para saber como fazer as seguintes tarefas:
Identifique corretamente se o serviço Microsoft Entra Connect (ADSync) não é iniciado por causa da corrupção do banco de
Model
dados.Reduza 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 se baseia nos seguintes eventos no servidor Microsoft Entra Connect:
Visualizador de Eventos: Application, EventID 528, Fonte: 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
SQLLocalDB error.log arquivo 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.
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 do Serviço ADSync, dependendo da conta de serviço que está em execução (como uma conta de domínio, conta de serviço virtual ou conta de serviço gerenciada):
- C:\Usuários\<conta> de serviço\
- C:\Users\ADSyncMSAxxxxx$\
- C:\Windows\ServiceProfiles\ADSync\
Abra o arquivo error.log da pasta de instância do ADSync2019 no seguinte caminho de diretório:
<caminho> do perfil de serviço\AppData\Local\Microsoft\Microsoft SQL Server DB\Instances local\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 houver erro "9003" 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 de SQL em C:\Arquivos do Programa\Microsoft SQL Server\150\LocalDB\Binn\Templates.
Copie os arquivos model.mdf e modellog.ldf para a pasta 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 poder atualizar Microsoft Entra Conectar.
Para evitar os problemas de corrupção no banco de dados SQLLocalDBModel
, instale o build mais recente Microsoft Entra Connect, que está disponível no Microsoft Entra Connect: histórico de lançamento de versão.
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.
Comentários
https://aka.ms/ContentUserFeedback.
Brevemente: Ao longo de 2024, vamos descontinuar progressivamente o GitHub Issues como mecanismo de feedback para conteúdos e substituí-lo por um novo sistema de feedback. Para obter mais informações, veja:Submeter e ver comentários