Устранение повреждений базы данных модели в 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 базу данных из поврежденного состояния, выполните следующие действия.

  1. Перейдите в одно из следующих расположений профиля службы ADSync в зависимости от используемой учетной записи службы (например, учетная запись домена, учетная запись виртуальной службы или управляемая учетная запись службы):

    • C:\Users\<service account>\
    • C:\Users\ADSyncMSAxxxx$\
    • C:\Windows\ServiceProfiles\ADSync\
  2. Откройте файл error.log из папки экземпляра ADSync2019 по следующему пути к каталогу:

    <путь к профилю> службы\AppData\Local\Microsoft\Microsoft SQL Server Локальная база данных\Экземпляры\ADSync2019\

  3. Найдите в журнале следующую запись об ошибке, чтобы убедиться, что 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.   
    
  4. Если в этой записи есть ошибка "9003", переименуйте файлы model.mdf и modellog.ldf в этой папке в old_model.mdf и old_modellog.ldf соответственно.

  5. Откройте папку Шаблоны SQL по адресу C:\Program Files\Microsoft SQL Server\150\LocalDB\Binn\Templates.

  6. Скопируйте файлы model.mdf и modellog.ldf в папку экземпляра ADSync2019 из шага 2.

  7. Запустите службу ADSync.

Решение

Корпорация Майкрософт представила исправление этой проблемы в Microsoft Entra Connect версии 2.1.1.0. Если не удается запустить службу синхронизации (ADSync), необходимо выполнить действия, описанные в разделе Устранение рисков, прежде чем можно будет обновить Microsoft Entra Connect.

Чтобы избежать проблем с повреждением базы данных SQLLocalDBModel, установите последнюю сборку Microsoft Entra Connect, которая доступна на странице Microsoft Entra Connect: журнал выпусков версий.

Свяжитесь с нами для получения помощи

Если у вас есть вопросы или вам нужна помощь, создайте запрос в службу поддержки или обратитесь за поддержкой сообщества Azure. Вы также можете отправить отзыв о продукте в сообщество отзывов Azure.