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:
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\
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\
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.
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.
Aprire la cartella Modelli SQL in C:\Programmi\Microsoft SQL Server\150\LocalDB\Binn\Templates.
Copiare i file model.mdf e modellog.ldf nella cartella dell'istanza di ADSync2019 del passaggio 2.
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.