Condividi tramite


Risolvere il danneggiamento del database del modello in SQLLocalDB

Questo articolo descrive un problema noto nell'utilità SQLLocalDB che può impedire l'avvio del servizio ADSync a causa di un database danneggiatoModel. Questo problema riguarda principalmente Microsoft Entra Connect 2.x server eseguiti in un database locale di Microsoft SQL Server 2019.

Il problema è causato da un bug nella logica di backup di SQL Server che crea uno stato incoerente nella pagina iniziale del database di SQL Server Model . Dopo l'esecuzione di un backup, il Model database viene impostato sulla modalità di ripristino (dbi_status == 0x40010000) e il dbi_dbbackupLSN (numero di sequenza del log (LSN) per il backup del database) viene impostato FULL su un valore che punta a un file di log. Tuttavia, la modalità di ripristino effettiva gestita dal Master database è SIMPLE.

In SIMPLE modalità di ripristino, i log del database vengono troncati automaticamente. In FULL modalità di ripristino, i log vengono troncati solo dopo un backup. Quando SQLLocalDB viene riavviato dopo il troncamento del file di log, rileva un LSN di backup precedente al file di log meno recente. Di conseguenza, non avvierà il servizio.

Esaminare le linee guida nelle sezioni successive per informazioni su come eseguire le attività seguenti:

  • Identificare correttamente se il servizio Microsoft Entra Connect (ADSync) non viene avviato a causa del danneggiamento del Model database.

  • Attenuare il problema ripristinando il Model database da uno stato danneggiato.

  • Applicare una correzione permanente per assicurarsi che il Model danneggiamento del database non si verifichi di nuovo.

Sintomi

È possibile verificare che il problema sia basato sugli eventi seguenti nel server Microsoft Entra Connect:

  • Visualizzatore eventi: Application, EventID 528, Source: SQLLocalDB 15.0

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

    0x8023044a
    OriginalError=0x80004005 OLEDB Provider error(s):
    Description  = 'Login timeout expired'
    Failure Code = 0x80004005 
    
  • SQLLocalDB error.log file nel <percorso> del profilo del servizio 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.
    

Mitigazione

Importante

Applicare i passaggi di mitigazione descritti qui solo se si verificano tutte queste condizioni:

  • La versione di Microsoft Entra Connect è 2.0.x.x.

  • Microsoft Entra Connect viene installato con SQL LocalDB.

  • Sono presenti tutte le condizioni elencate in Sintomi .

Per ripristinare il Model database da uno stato danneggiato, seguire questa procedura:

  1. Passare a uno dei percorsi del profilo del servizio ADSync seguenti, a seconda dell'account del servizio in esecuzione, ad esempio un account di dominio, un account del servizio virtuale o un account del servizio gestito:

    • C:\Users\<account> del servizio\
    • C:\Users\ADSyncMSAxxxx$\
    • C:\Windows\ServiceProfiles\ADSync\
  2. Aprire il file error.log dalla cartella dell'istanza di ADSync2019 nel percorso di directory seguente:

    <percorso> del profilo del servizio\AppData\Local\Microsoft\Microsoft SQL Server Local DB\Instances\ADSync2019\

  3. Trovare la voce di errore seguente nel log per verificare che il Model database sia danneggiato:

    <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 l'errore "9003" esiste in questa voce, rinominare rispettivamente i file model.mdf e modellog.ldf in questa cartella in old_model.mdf e old_modellog.ldf.

  5. Aprire la cartella Modelli SQL in C:\Programmi\Microsoft SQL Server\150\LocalDB\Binn\Templates.

  6. Copiare i file model.mdf e modellog.ldf nella cartella dell'istanza di ADSync2019 del passaggio 2.

  7. Avviare il servizio ADSync.

Soluzione

Microsoft ha introdotto una correzione per questo problema in Microsoft Entra Connect versione 2.1.1.0. Se il servizio di sincronizzazione (ADSync) non può essere avviato, è necessario applicare i passaggi nella sezione Mitigazione prima di poter aggiornare Microsoft Entra Connect.

Per evitare problemi di danneggiamento nel database SQLLocalDB Model , installare la build più recente di Microsoft Entra Connect, disponibile in Microsoft Entra Connect: Cronologia delle versioni.

Contattaci per ricevere assistenza

In caso di domande o bisogno di assistenza, creare una richiesta di supporto tecnico oppure formula una domanda nel Supporto della community di Azure. È possibile anche inviare un feedback sul prodotto al feedback della community di Azure.