Rozwiązywanie problemów z uszkodzeniem bazy danych modelu w bazie danych SQLLocalDB

W tym artykule opisano znany problem w narzędziu SQLLocalDB , który może uniemożliwić uruchamianie usługi ADSync z powodu uszkodzonej Model bazy danych. Ten problem dotyczy głównie Microsoft Entra Connect 2.x serwerów, które działają w bazie danych Lokalna microsoft SQL Server 2019.

Problem jest spowodowany usterką logiki kopii zapasowej SQL Server, która tworzy niespójny stan na stronie początkowej bazy danych SQL ServerModel. Po utworzeniu kopii zapasowej Model baza danych jest ustawiona na FULL tryb odzyskiwania (dbi_status == 0x40010000), a dbi_dbbackupLSN wartość (numer sekwencji dziennika (LSN) kopii zapasowej bazy danych) jest ustawiona na wartość wskazującą plik dziennika. Jednak rzeczywisty tryb odzyskiwania, który jest zarządzany przez bazę danych, Master to SIMPLE.

W SIMPLE trybie odzyskiwania dzienniki bazy danych są obcinane automatycznie. W FULL trybie odzyskiwania dzienniki są obcinane tylko po utworzeniu kopii zapasowej. Po ponownym uruchomieniu bazy danych SQLLocalDB po obcięcie pliku dziennika wykryje on kopię zapasową LSN wcześniejszą niż najwcześniejszy plik dziennika. W związku z tym usługa nie zostanie uruchomiona.

Zapoznaj się ze wskazówkami w następnych sekcjach, aby dowiedzieć się, jak wykonywać następujące zadania:

  • Poprawnie określ, czy usługa Microsoft Entra Connect (ADSync) nie jest uruchamiana z Model powodu uszkodzenia bazy danych.

  • Aby rozwiązać ten problem, odzyskaj Model bazę danych ze stanu uszkodzonego.

  • Zastosuj trwałą poprawkę, aby upewnić się, że to Model uszkodzenie bazy danych nie nastąpi ponownie.

Symptomy

Możesz sprawdzić, czy problem jest oparty na następujących zdarzeniach na serwerze Microsoft Entra Connect:

  • Podgląd zdarzeń: 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
    
  • Podgląd zdarzeń: Application, EventIDs 2005 and 6226, Source: ADSync

    0x8023044a
    OriginalError=0x80004005 OLEDB Provider error(s):
    Description  = 'Login timeout expired'
    Failure Code = 0x80004005 
    
  • Plik error.log bazy danych SQLLocalDB w <ścieżce> profilu usługi ADSync\AppData\Local\Microsoft\Microsoft SQL Server Lokalna baza danych\Wystąpienia\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.
    

Ograniczenie ryzyka

Ważna

Zastosuj kroki ograniczania ryzyka opisane tutaj tylko wtedy, gdy wystąpią wszystkie te warunki:

  • Wersja programu Microsoft Entra Connect to 2.0.x.x.

  • Microsoft Entra Connect jest instalowany z usługą SQL LocalDB.

  • Wszystkie warunki wymienione w obszarze Objawy są obecne.

Aby odzyskać Model bazę danych ze stanu uszkodzonego, wykonaj następujące kroki:

  1. Przejdź do jednej z następujących lokalizacji profilu usługi ADSync, w zależności od uruchomionego konta usługi (takiego jak konto domeny, konto usługi wirtualnej lub zarządzane konto usługi):

    • C:\Users\<service account>\
    • C:\Users\ADSyncMSAxxxx$\
    • C:\Windows\ServiceProfiles\ADSync\
  2. Otwórz plik error.log z folderu wystąpienia ADSync2019 w następującej ścieżce katalogu:

    <service profile path>\AppData\Local\Microsoft\Microsoft SQL Server Local DB\Instances\ADSync2019\

  3. Znajdź następujący wpis błędu w dzienniku, aby sprawdzić, Model czy baza danych jest uszkodzona:

    <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. Jeśli w tym wpisie występuje błąd "9003", zmień nazwę plików model.mdf i modellog.ldf w tym folderze odpowiednio na old_model.mdf i old_modellog.ldf.

  5. Otwórz folder SZABLONY SQL w folderze C:\Program Files\Microsoft SQL Server\150\LocalDB\Binn\Templates.

  6. Skopiuj pliki model.mdf i modellog.ldf do folderu wystąpienia ADSync2019 z kroku 2.

  7. Uruchom usługę ADSync.

Rozwiązanie

Firma Microsoft wprowadziła rozwiązanie tego problemu w programie Microsoft Entra Connect w wersji 2.1.1.0. Jeśli nie można uruchomić usługi synchronizacji (ADSync), przed uaktualnieniem programu Microsoft Entra Connect należy zastosować kroki opisane w sekcji Środki zaradcze.

Aby zapobiec problemom z uszkodzeniem bazy danych SQLLocalDBModel, zainstaluj najnowszą kompilację programu Microsoft Entra Connect, która jest dostępna w Microsoft Entra Connect: historia wersji.

Skontaktuj się z nami, aby uzyskać pomoc

Jeśli masz pytania lub potrzebujesz pomocy, utwórz wniosek o pomoc techniczną lub zadaj pytanie w społeczności wsparcia dla platformy Azure. Możesz również przesłać opinię o produkcie do społeczności opinii platformy Azure.