Устранение повреждений базы данных модели в SQLLocalDB
В этой статье описывается известная проблема в служебной программе SQLLocalDB , которая может помешать запуску службы ADSync из-за поврежденной Model
базы данных. Эта проблема в основном затрагивает Microsoft Entra Connect 2.x серверов, работающих в Локальной базе данных Microsoft SQL Server 2019.
Проблема вызвана ошибкой в логике резервного копирования SQL Server, которая создает несогласованное состояние на начальной странице базы данных SQL ServerModel
. После резервного копирования Model
база данных устанавливается в FULL
режим восстановления (dbi_status
== 0x40010000), а dbi_dbbackupLSN
для (номер последовательности журнала (LSN) для резервной копии базы данных) устанавливается значение, указывающее на файл журнала. Однако фактический режим восстановления, управляемый базой Master
данных, — .SIMPLE
В SIMPLE
режиме восстановления журналы базы данных усекаются автоматически. В FULL
режиме восстановления журналы усекаются только после резервного копирования. При перезапуске SQLLocalDB после усечения файла журнала обнаруживается резервный номер LSN, который находится раньше самого раннего файла журнала. Поэтому служба не запускается.
Ознакомьтесь с рекомендациями в следующих разделах, чтобы узнать, как выполнять следующие задачи:
Правильно определите, не запускается ли служба Microsoft Entra Connect (ADSync) из-за
Model
повреждения базы данных.Устранение проблемы путем восстановления
Model
базы данных из поврежденного состояния.Примените постоянное исправление, чтобы убедиться, что это
Model
повреждение базы данных не повторится.
Симптомы
Вы можете убедиться, что проблема основана на следующих событиях на сервере Microsoft Entra Connect:
Просмотр событий: Application, 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
Просмотр событий: Application, 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\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 Локальная база данных\Экземпляры\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.
Чтобы избежать проблем с повреждением базы данных SQLLocalDBModel
, установите последнюю сборку Microsoft Entra Connect, которая доступна на странице Microsoft Entra Connect: журнал выпусков версий.
Свяжитесь с нами для получения помощи
Если у вас есть вопросы или вам нужна помощь, создайте запрос в службу поддержки или обратитесь за поддержкой сообщества Azure. Вы также можете отправить отзыв о продукте в сообщество отзывов Azure.
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по