Freigeben über


Beheben von Modelldatenbankbeschädigungen in SQLLocalDB

In diesem Artikel wird ein bekanntes Problem im SQLLocalDB-Hilfsprogramm beschrieben, das verhindern kann, dass der ADSync-Dienst aufgrund einer beschädigten Model Datenbank gestartet wird. Dieses Problem betrifft hauptsächlich Microsoft Entra Connect 2.x-Server , die auf einer Microsoft SQL Server 2019 LocalDB ausgeführt werden.

Das Problem wird durch einen Fehler in der SQL Server-Sicherungslogik verursacht, der einen inkonsistenten Zustand auf der SQL Server-Datenbankstartseite Model erstellt. Nachdem eine Sicherung erfolgt, wird die Model Datenbank auf den FULL Wiederherstellungsmodus (dbi_status == 0x40010000) festgelegt, und die dbi_dbbackupLSN (LSN-Protokollsequenznummer) für die Datenbanksicherung wird auf einen Wert festgelegt, der auf eine Protokolldatei verweist. Der tatsächliche Wiederherstellungsmodus, der von der Master Datenbank gesteuert wird, ist SIMPLEjedoch .

Im SIMPLE Wiederherstellungsmodus werden Datenbankprotokolle automatisch abgeschnitten. Im FULL Wiederherstellungsmodus werden Protokolle erst nach einer Sicherung abgeschnitten. Wenn SQLLocalDB neu gestartet wird, nachdem die Protokolldatei abgeschnitten wurde, erkennt sie einen Sicherungs-LSN, der vor der frühesten Protokolldatei liegt. Daher wird der Dienst nicht gestartet.

Lesen Sie die Anleitungen in den nächsten Abschnitten, um zu erfahren, wie Sie die folgenden Aufgaben ausführen:

  • Ermitteln Sie ordnungsgemäß, ob der Microsoft Entra Connect-Dienst (ADSync) aufgrund von Model Datenbankbeschädigungen nicht gestartet wird.

  • Beheben Sie das Problem, indem Sie die Model Datenbank aus einem beschädigten Zustand wiederherstellen.

  • Wenden Sie einen dauerhaften Fix an, um sicherzustellen, dass diese Model Datenbankbeschädigung nicht mehr auftritt.

Symptome

Sie können überprüfen, ob das Problem auf den folgenden Ereignissen auf dem Microsoft Entra Connect-Server basiert:

  • Ereignisanzeige: 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
    
  • Ereignisanzeige: Application, EventIDs 2005 und 6226, Source: ADSync

    0x8023044a
    OriginalError=0x80004005 OLEDB Provider error(s):
    Description  = 'Login timeout expired'
    Failure Code = 0x80004005 
    
  • SQLLocalDB error.log Datei im <ADSync-Dienstprofilpfad>\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.
    

Minderung

Wichtig

Wenden Sie nur die hier beschriebenen Entschärfungsschritte an, wenn alle diese Bedingungen auftreten:

  • Die Version von Microsoft Entra Connect ist 2.0.x.x.

  • Microsoft Entra Connect wird mit SQL LocalDB installiert.

  • Alle Bedingungen, die in "Symptome " aufgeführt sind, sind vorhanden.

Führen Sie die folgenden Schritte aus, um die Model Datenbank aus einem beschädigten Zustand wiederherzustellen:

  1. Wechseln Sie zu einem der folgenden ADSync-Dienstprofilspeicherorte, abhängig von dem Dienstkonto, das ausgeführt wird (z. B. ein Domänenkonto, ein virtuelles Dienstkonto oder ein verwaltetes Dienstkonto):

    • C:\Users\<service account>\
    • C:\Users\ADSyncMSAxxxx$\
    • C:\Windows\ServiceProfiles\ADSync\
  2. Öffnen Sie die error.log Datei aus dem ADSync2019-Instanzordner im folgenden Verzeichnispfad:

    <Dienstprofilpfad>\AppData\Local\Microsoft\Microsoft SQL Server Local DB\Instances\ADSync2019\

  3. Suchen Sie den folgenden Fehlereintrag im Protokoll, um zu überprüfen, ob die Model Datenbank beschädigt ist:

    <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. Wenn der Fehler "9003" in diesem Eintrag vorhanden ist, benennen Sie die Dateien model.mdf und modellog.ldf in diesem Ordner in old_model.mdf bzw . old_modellog.ldf um.

  5. Öffnen Sie den Ordner "SQL-Vorlagen " unter "C:\Programme\Microsoft SQL Server\150\LocalDB\Binn\Templates".

  6. Kopieren Sie die dateien model.mdf und modellog.ldf aus Schritt 2 in den ADSync2019-Instanzordner.

  7. Starten Sie den ADSync-Dienst.

Lösung

Microsoft hat einen Fix für dieses Problem in Microsoft Entra Connect, Version 2.1.1.0, eingeführt. Wenn der Synchronisierungsdienst (ADSync) nicht gestartet werden kann, müssen Sie die Schritte im Abschnitt "Entschärfung " anwenden, bevor Sie Microsoft Entra Connect aktualisieren können.

Um die Beschädigungsprobleme in der SQLLocalDB-Datenbank Model zu verhindern, installieren Sie den neuesten Microsoft Entra Connect-Build, der unter Microsoft Entra Connect: Versionsverlauf verfügbar ist.

Kontaktieren Sie uns für Hilfe

Wenn Sie Fragen haben oder Hilfe mit Ihren Azure-Gutschriften benötigen, dann erstellen Sie beim Azure-Support eine Support-Anforderung oder fragen Sie den Azure Community-Support. Sie können auch Produktfeedback an die Azure Feedback Community senden.