Résoudre l’altération de la base de données model dans SQLLocalDB

Cet article décrit un problème connu dans l’utilitaire SQLLocalDB qui peut empêcher le service ADSync de démarrer en raison d’une base de données endommagée Model . Ce problème affecte principalement Microsoft Entra Connect 2.x serveurs qui s’exécutent sur une base de données locale Microsoft SQL Server 2019.

Le problème est dû à un bogue dans la logique de sauvegarde SQL Server qui crée un état incohérent dans la page de démarrage de la base de données SQL ServerModel. Après une sauvegarde, la base de données est définie sur FULL le Model mode de récupération (dbi_status == 0x40010000) et le dbi_dbbackupLSN (numéro séquentiel du journal (LSN) de la sauvegarde de base de données) est défini sur une valeur qui pointe vers un fichier journal. Toutefois, le mode de récupération réel qui est régi par la Master base de données est SIMPLE.

En SIMPLE mode de récupération, les journaux de base de données sont tronqués automatiquement. En FULL mode de récupération, les journaux sont tronqués uniquement après une sauvegarde. Lorsque SQLLocalDB est redémarré après la troncation du fichier journal, il détecte un LSN de sauvegarde antérieur au fichier journal le plus ancien. Par conséquent, il ne démarre pas le service.

Passez en revue les conseils des sections suivantes pour savoir comment effectuer les tâches suivantes :

  • Identifiez correctement si le service Microsoft Entra Connect (ADSync) ne démarre pas en raison d’une altération de la base de Model données.

  • Limitez le problème en récupérant la Model base de données à partir d’un état endommagé.

  • Appliquez un correctif permanent pour vous assurer que cette Model corruption de base de données ne se produit plus.

Symptômes

Vous pouvez vérifier que le problème est basé sur les événements suivants dans le serveur Microsoft Entra Connect :

  • observateur d'événements : 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
    
  • observateur d'événements : Application, EventIDs 2005 et 6226, Source : ADSync

    0x8023044a
    OriginalError=0x80004005 OLEDB Provider error(s):
    Description  = 'Login timeout expired'
    Failure Code = 0x80004005 
    
  • Fichier de error.log SQLLocalDB dans <le chemin> du profil de service ADSync\AppData\Local\Microsoft\Microsoft SQL Server Base de données locale\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.
    

Limitation des risques

Importante

Appliquez uniquement les étapes d’atténuation décrites ici si toutes ces conditions se produisent :

  • La version de Microsoft Entra Connect est 2.0.x.x.

  • Microsoft Entra Connect est installé avec SQL LocalDB.

  • Toutes les conditions répertoriées dans Symptômes sont présentes.

Pour récupérer la Model base de données à partir d’un état endommagé, procédez comme suit :

  1. Accédez à l’un des emplacements de profil de service ADSync suivants, en fonction du compte de service en cours d’exécution (par exemple, un compte de domaine, un compte de service virtuel ou un compte de service managé) :

    • C :\Users\<service account>\
    • C :\Users\ADSyncMSAxxxx$\
    • C :\Windows\ServiceProfiles\ADSync\
  2. Ouvrez le fichier error.log à partir du dossier instance ADSync2019 dans le chemin d’accès au répertoire suivant :

    <chemin> du profil de service\AppData\Local\Microsoft\Microsoft SQL Server Base de données locale\Instances\ADSync2019\

  3. Recherchez l’entrée d’erreur suivante dans le journal pour vérifier que la Model base de données est endommagée :

    <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. Si l’erreur « 9003 » existe dans cette entrée, renommez les fichiers model.mdf et modellog.ldf de ce dossier en old_model.mdf et old_modellog.ldf, respectivement.

  5. Ouvrez le dossier Modèles SQL à l’adresse C :\Program Files\Microsoft SQL Server\150\LocalDB\Binn\Templates.

  6. Copiez les fichiers model.mdf et modellog.ldf dans le dossier instance ADSync2019 de l’étape 2.

  7. Démarrez le service ADSync.

Solution

Microsoft a introduit un correctif pour ce problème dans Microsoft Entra Connect version 2.1.1.0. Si le service de synchronisation (ADSync) ne peut pas être démarré, vous devez appliquer les étapes de la section Atténuation avant de pouvoir mettre à niveau Microsoft Entra Connect.

Pour éviter les problèmes d’endommagement dans la base de données SQLLocalDBModel, installez la dernière build Microsoft Entra Connect, disponible dans Microsoft Entra Connect : Historique des versions.

Contactez-nous pour obtenir de l’aide

Pour toute demande ou assistance, créez une demande de support ou posez une question au support de la communauté Azure. Vous pouvez également soumettre des commentaires sur les produits à la communauté de commentaires Azure.