Устранение повреждения базы данных модели в SQLLocalDB
В этой статье описывается известная проблема в служебной программе SQLLocalDB, которая может предотвратить запуск службы ADSync из-за поврежденной Model
базы данных. Эта проблема в основном влияет на Microsoft Entra Connect 2.x server, работающих в Microsoft SQL Server 2019 LocalDB.
Проблема вызвана ошибкой в логике резервного копирования SQL Server, которая создает несогласованное состояние на начальной странице базы данных SQL Server Model
. После резервного копирования Model
база данных устанавливается в FULL
режим восстановления (dbi_status
== 0x40010000), а dbi_dbbackupLSN
для резервной копии базы данных задано значение (номер последовательности журнала (LSN) для резервной копии базы данных. Однако фактический режим восстановления, управляемый Master
базой данных, является SIMPLE
.
В SIMPLE
режиме восстановления журналы базы данных усечены автоматически. В FULL
режиме восстановления журналы усечены только после резервного копирования. При перезапуске SQLLocalDB после усечения файла журнала он обнаруживает резервную копию LSN, которая раньше, чем самый ранний файл журнала. Поэтому она не запустит службу.
Ознакомьтесь с инструкциями в следующих разделах, чтобы узнать, как выполнять следующие задачи:
Правильно определить, не запускается ли служба Microsoft Entra Connect (ADSync) из-за
Model
повреждения базы данных.Устранение проблемы путем восстановления
Model
базы данных из поврежденного состояния.Примените постоянное исправление, чтобы убедиться, что эта
Model
повреждение базы данных не возникает снова.
Симптомы
Вы можете убедиться, что проблема основана на следующих событиях на сервере Microsoft Entra Connect:
Просмотр событий: Приложение, EventID 528, Источник: SQLLocalDB 15.0
WaitForMultipleObjects 575 {Application Error} The application was unable to start correctly (0x%lx). Click OK to close the application. 3714
Просмотр событий: Приложение, EventIDs 2005 и 6226, источник: ADSync
0x8023044a OriginalError=0x80004005 OLEDB Provider error(s): Description = 'Login timeout expired' Failure Code = 0x80004005
SQLLocalDB error.log файл в <пути> профиля службы ADSync\AppData\Local\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.
Исправление
Внимание
При возникновении всех этих условий применяются только шаги по устранению рисков, описанные здесь:
Версия Microsoft Entra Connect — 2.0.x.x.
Microsoft Entra Connect устанавливается с помощью SQL LocalDB.
Все условия, перечисленные в симптомах , присутствуют.
Чтобы восстановить Model
базу данных из поврежденного состояния, выполните следующие действия.
Перейдите к одному из следующих расположений профиля службы ADSync в зависимости от используемой учетной записи службы (например, учетной записи домена, учетной записи виртуальной службы или управляемой учетной записи службы):
- C:\Users\<service account>\
- C:\Users\ADSyncMSAxxxx$\
- C:\Windows\ServiceProfiles\ADSync\
Откройте файл error.log из папки экземпляра ADSync2019 в следующем пути к каталогу:
<путь> профиля службы\AppData\Local\Microsoft\Microsoft SQL Server Local DB\Instances\ADSync2019\
Найдите в журнале следующую запись об ошибке, чтобы убедиться, что
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.
Если ошибка "9003" существует в этой записи, переименуйте файлы model.mdf и modellog.ldf в этой папке на old_model.mdf и old_modellog.ldf соответственно.
Откройте папку шаблонов SQL в C:\Program Files\Microsoft SQL Server\150\LocalDB\Binn\Templates.
Скопируйте файлы model.mdf и modellog.ldf в папку экземпляра ADSync2019 с шага 2.
Запустите службу ADSync.
Решение
Корпорация Майкрософт представила исправление этой проблемы в Microsoft Entra Connect версии 2.1.1.0. Если не удается запустить службу синхронизации (ADSync), необходимо применить шаги в разделе "Устранение рисков ", прежде чем обновить Microsoft Entra Connect.
Чтобы предотвратить проблемы с повреждением в базе данных SQLLocalDB Model
, установите последнюю сборку Microsoft Entra Connect, которая доступна в журнале выпусков Microsoft Entra Connect.
Свяжитесь с нами для получения помощи
Если у вас есть вопросы или вам нужна помощь, создайте запрос в службу поддержки или обратитесь за поддержкой сообщества Azure. Вы также можете отправить отзыв о продукте в сообщество отзывов Azure.