Udostępnij za pośrednictwem


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ć uruchomienie usługi ADSync z powodu uszkodzonej Model bazy danych. Ten problem dotyczy głównie programu Microsoft Entra Connect 2.x serwerów z programem Microsoft SQL Server 2019 LocalDB.

Problem jest spowodowany usterką logiki tworzenia kopii zapasowej programu SQL Server, która tworzy niespójny stan na stronie początkowej bazy danych programu SQL Server Model . Po utworzeniu Model kopii zapasowej baza danych jest ustawiona na FULL tryb odzyskiwania (dbi_status == 0x40010000), a dbi_dbbackupLSN (numer sekwencji dzienników (LSN) kopii zapasowej bazy danych jest ustawiony na wartość wskazującą plik dziennika. Jednak rzeczywisty tryb odzyskiwania zarządzany przez Master bazę danych 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ęciu pliku dziennika program wykrywa kopię zapasową LSN, która jest wcześniejsza 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 zidentyfikuj, czy usługa Microsoft Entra Connect (ADSync) nie jest uruchamiana z powodu uszkodzenia Model bazy danych.

  • Rozwiązanie problemu przez odzyskanie Model bazy danych ze stanu uszkodzonego.

  • Zastosuj trwałą poprawkę, aby upewnić się, że uszkodzenie tej Model bazy danych nie występuje 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, Źródło: 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 i 6226, Źródło: ADSync

    0x8023044a
    OriginalError=0x80004005 OLEDB Provider error(s):
    Description  = 'Login timeout expired'
    Failure Code = 0x80004005 
    
  • Plik error.log SQLLocalDB w <ścieżce> profilu usługi 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.
    

Czynności zapobiegawcze

Ważne

Zastosuj tylko kroki ograniczania ryzyka opisane tutaj, jeśli wystąpią wszystkie te warunki:

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

  • Program Microsoft Entra Connect jest instalowany z bazą danych SQL LocalDB.

  • Wszystkie warunki wymienione w sekcji 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:

    <ścieżka> profilu usługi\AppData\Local\Microsoft\Microsoft SQL Server Local DB\Instances\ADSync2019\

  3. Znajdź następujący wpis błędu w dzienniku, aby sprawdzić, czy Model 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 istnieje błąd "9003", zmień odpowiednio nazwę plików model.mdf i modellog.ldf w tym folderze 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 poprawkę 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 w bazie danych SQLLocalDB Model , zainstaluj najnowszą kompilację programu Microsoft Entra Connect, która jest dostępna w witrynie 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 na temat platformy Azure.