Partager via


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éeModel. Ce problème affecte principalement Microsoft Entra Connect 2.serveurs x 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 Server Model . Une fois la sauvegarde effectuée, la Model base de données est définie sur FULL le mode de récupération (dbi_status == 0x40010000), et le dbi_dbbackupLSN (numéro de séquence de 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 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é une fois le fichier journal tronqué, 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.

  • Réduisez 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 pas à nouveau.

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 error.log SQLLocalDB dans le <chemin> du profil de service 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.
    

Limitation des risques

Important

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 Les 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 géré) :

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

    <chemin> du profil de service\AppData\Local\Microsoft\Microsoft SQL Server Local DB\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 dans ce dossier en old_model.mdf et old_modellog.ldf, respectivement.

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

  6. Copiez les fichiers model.mdf et modellog.ldf dans le dossier d’instance ADSync2019 à 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’altération dans la base de données SQLLocalDB Model , installez la dernière version de Microsoft Entra Connect, disponible dans l’historique des versions de Microsoft Entra Connect.

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.