Поделиться через


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

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

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

    <путь> профиля службы\AppData\Local\Microsoft\Microsoft SQL Server Local DB\Instances\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.

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

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

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