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:
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\
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\
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.
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.
Otwórz folder Szablony SQL w folderze C:\Program Files\Microsoft SQL Server\150\LocalDB\Binn\Templates.
Skopiuj pliki model.mdf i modellog.ldf do folderu wystąpienia adSync2019 z kroku 2.
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.