Lösa skadade modelldatabaser i SQLLocalDB

Den här artikeln beskriver ett känt problem i SQLLocalDB-verktyget som kan förhindra att ADSync-tjänsten startar på grund av en skadad Model databas. Det här problemet påverkar främst Microsoft Entra Connect 2.x servrar som körs på en Microsoft SQL Server 2019 LocalDB.

Problemet orsakas av en bugg i SQL Server säkerhetskopieringslogik som skapar ett inkonsekvent tillstånd på startsidan för SQL Server Model databas. När en säkerhetskopia inträffar Model är databasen inställd på FULL återställningsläge (dbi_status == 0x40010000) och dbi_dbbackupLSN (loggsekvensnumret (LSN) för databassäkerhetskopian) är inställt på ett värde som pekar på en loggfil. Det faktiska återställningsläget som styrs av Master databasen är SIMPLEdock .

I SIMPLE återställningsläge trunkeras databasloggarna automatiskt. I FULL återställningsläge trunkeras loggarna först efter en säkerhetskopia. När SQLLocalDB startas om efter att loggfilen trunkerats identifieras en säkerhetskopierings-LSN som är tidigare än den tidigaste loggfilen. Därför startar den inte tjänsten.

Läs vägledningen i nästa avsnitt för att lära dig hur du utför följande uppgifter:

  • Identifiera korrekt om Microsoft Entra Connect-tjänsten (ADSync) inte startar på grund av Model skadade databaser.

  • Åtgärda problemet genom att Model återställa databasen från ett skadat tillstånd.

  • Använd en permanent korrigering för att se till att den här Model databasen inte skadas igen.

Symptom

Du kan kontrollera att problemet baseras på följande händelser på Microsoft Entra Connect-servern:

  • Loggboken: Application, EventID 528, Källa: SQLLocalDB 15.0

    WaitForMultipleObjects
    575
    {Application Error}
    The application was unable to start correctly (0x%lx). Click OK to close the application.
    3714
    
  • Loggboken: Application, EventIDs 2005 och 6226, Källa: ADSync

    0x8023044a
    OriginalError=0x80004005 OLEDB Provider error(s):
    Description  = 'Login timeout expired'
    Failure Code = 0x80004005 
    
  • SQLLocalDB-error.log fil i <ADSync-tjänstprofilsökvägen>\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.
    

Riskreducering

Viktigt

Tillämpa endast de åtgärdssteg som beskrivs här om alla dessa villkor inträffar:

  • Versionen av Microsoft Entra Connect är 2.0.x.x.

  • Microsoft Entra Connect installeras med SQL LocalDB.

  • Alla villkor som anges i Symptom finns.

Följ dessa steg för att återställa Model databasen från ett skadat tillstånd:

  1. Gå till någon av följande ADSync-tjänstprofilplatser, beroende på vilket tjänstkonto som körs (till exempel ett domänkonto, ett virtuellt tjänstkonto eller ett hanterat tjänstkonto):

    • C:\Users\<service account>\
    • C:\Users\ADSyncMSAxxxx$\
    • C:\Windows\ServiceProfiles\ADSync\
  2. Öppna error.log-filen från instansmappen ADSync2019 i följande katalogsökväg:

    <service profile path>\AppData\Local\Microsoft\Microsoft SQL Server Local DB\Instances\ADSync2019\

  3. Hitta följande felpost i loggen för att kontrollera att Model databasen är skadad:

    <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. Om felet "9003" finns i den här posten byter du namn på filerna model.mdf och modellog.ldf i den här mappen till old_model.mdf respektive old_modellog.ldf.

  5. Öppna mappen SQL-mallarC:\Program Files\Microsoft SQL Server\150\LocalDB\Binn\Templates.

  6. Kopiera filerna model.mdf och modellog.ldf till instansmappen ADSync2019 från steg 2.

  7. Starta ADSync-tjänsten.

Lösning

Microsoft har infört en korrigering för det här problemet i Microsoft Entra Connect version 2.1.1.0. Om synkroniseringstjänsten (ADSync) inte kan startas måste du följa stegen i avsnittet Åtgärd innan du kan uppgradera Microsoft Entra Connect.

Om du vill förhindra skadade problem i SQLLocalDB-databasen Model installerar du den senaste versionen av Microsoft Entra Connect, som finns på Microsoft Entra Connect: Versionshistorik.

Kontakta oss för att få hjälp

Om du har frågor eller behöver hjälp skapar du en supportförfrågan eller frågar Azure community support. Du kan också skicka produktfeedback till Azure-feedbackcommunityn.