Aracılığıyla paylaş


SQLLocalDB'de Model veritabanı bozulmalarını çözme

Bu makalede, SQLLocalDB yardımcı programındaki ADSync hizmetinin bozuk bir veritabanı nedeniyle başlatılmasını engelleyebilen bilinen bir sorun açıklanmaktadırModel. Bu sorun esas olarak Microsoft Entra Connect 2'yi etkiler.Microsoft SQL Server 2019 LocalDB üzerinde çalışan x sunucuları.

Bu sorun, SQL Server veritabanı başlangıç sayfasında tutarsız bir durum oluşturan SQL Server Model yedekleme mantığındaki bir hatadan kaynaklanır. Yedekleme gerçekleştikten sonra veritabanı Model FULL kurtarma moduna (dbi_status == 0x40010000) ve dbi_dbbackupLSN (veritabanı yedeklemesi için günlük dizisi numarası (LSN) günlük dosyasına işaret eden bir değere ayarlanır. Ancak, veritabanı tarafından Master yönetilen gerçek kurtarma modu şeklindedir SIMPLE.

SIMPLE Kurtarma modunda veritabanı günlükleri otomatik olarak kesilir. FULL Kurtarma modunda günlükler yalnızca yedekleme sonrasında kesilir. Günlük dosyası kesildikten sonra SQLLocalDB yeniden başlatıldığında, en eski günlük dosyasından önceki bir yedekleme LSN'sini algılar. Bu nedenle hizmeti başlatmaz.

Aşağıdaki görevlerin nasıl yapılacağını öğrenmek için sonraki bölümlerdeki kılavuzu gözden geçirin:

  • Microsoft Entra Connect hizmetinin (ADSync) veritabanı bozulması nedeniyle Model başlatılmadığını doğru şekilde belirleyin.

  • Veritabanını bozuk durumdan Model kurtararak sorunu azaltın.

  • Bu Model veritabanı bozulmasının yeniden oluşmadığından emin olmak için kalıcı bir düzeltme uygulayın.

Belirtiler

Sorunun Microsoft Entra Connect sunucusunda aşağıdaki olaylara dayandığını doğrulayabilirsiniz:

  • Olay Görüntüleyicisi: Application, EventID 528, Source: SQLLocalDB 15.0

    WaitForMultipleObjects
    575
    {Application Error}
    The application was unable to start correctly (0x%lx). Click OK to close the application.
    3714
    
  • Olay Görüntüleyicisi: Application, EventIDs 2005 ve 6226, Source: ADSync

    0x8023044a
    OriginalError=0x80004005 OLEDB Provider error(s):
    Description  = 'Login timeout expired'
    Failure Code = 0x80004005 
    
  • ADSync hizmet profili yolu>\AppData\Local\Microsoft\Microsoft SQL Server Local DB\Instances\ADSync2019 içindeki <SQLLocalDB error.log dosyası

    <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.
    

Risk azaltma

Önemli

Yalnızca bu koşulların tümü gerçekleşirse burada açıklanan risk azaltma adımlarını uygulayın:

  • Microsoft Entra Connect sürümü 2.0'dır.x.x.

  • Microsoft Entra Connect, SQL LocalDB ile yüklenir.

  • Belirtiler bölümünde listelenen koşulların tümü mevcuttur.

Veritabanını bozuk durumdan Model kurtarmak için şu adımları izleyin:

  1. Çalışan hizmet hesabına (etki alanı hesabı, sanal hizmet hesabı veya yönetilen hizmet hesabı gibi) bağlı olarak aşağıdaki ADSync Hizmeti profil konumlarından birine gidin:

    • C:\Users\<service account>\
    • C:\Users\ADSyncMSAxxxx$\
    • C:\Windows\ServiceProfiles\ADSync\
  2. AdSync2019 örnek klasöründeki error.log dosyasını aşağıdaki dizin yolunda açın:

    <hizmet profili yolu>\AppData\Local\Microsoft\Microsoft SQL Server Local DB\Instances\ADSync2019\

  3. Veritabanının bozuk olduğunu doğrulamak için günlükte aşağıdaki hata girdisini Model bulun:

    <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. Bu girdide "9003" hatası varsa, bu klasördeki model.mdf ve modellog.ldf dosyalarını sırasıyla old_model.mdf ve old_modellog.ldf olarak yeniden adlandırın.

  5. C:\Program Files\Microsoft SQL Server\150\LocalDB\Binn\Templates konumunda SQL Şablonları klasörünü açın.

  6. model.mdf ve modellog.ldf dosyalarını 2. adımdaki ADSync2019 örnek klasörüne kopyalayın.

  7. ADSync hizmetini başlatın.

Çözüm

Microsoft, Microsoft Entra Connect sürüm 2.1.1.0'da bu sorun için bir düzeltme kullanıma sunulmuştur. Eşitleme hizmeti (ADSync) başlatılamıyorsa Microsoft Entra Connect'i yükseltmeden önce Risk Azaltma bölümündeki adımları uygulamanız gerekir.

SQLLocalDB Model veritabanındaki bozulma sorunlarını önlemek için Microsoft Entra Connect: Sürüm sürüm geçmişi'nde bulunan en son Microsoft Entra Connect derlemesini yükleyin.

Yardım için bize ulaşın

Sorularınız veya yardıma ihtiyacınız varsa bir destek isteği oluşturun veya Azure topluluk desteği isteyin. Ürün geri bildirimini Azure geri bildirim topluluğuna da gönderebilirsiniz.