MSSQLSERVER_3168

Şunlar için geçerlidir: SQL Server

Details

Attribute Value
Ürün Adı SQL Server
Olay Kimliği 3168
Olay Kaynağı MSSQLSERVER
Bileşen SQLEngine
Sembolik Ad LDDB_SYSTEMWRONGVER
İleti Metni Sistem veritabanının cihaz %ls yedeği, bu sunucudan (%ls) farklı bir sunucu sürümü (%ls) tarafından oluşturulduğundan geri yüklenemiyor.

Explanation

Bir sistem veritabanının (master, model veya msdb) yedeklerini, yedeklerin orijinal oluşturulduğu derlemeden farklı bir sunucu sürümünde geri getiremezsiniz.

Note

Kümülatif güncelleme, servis paketi veya GDR gibi bir servis güncellemesi kurulumu sunucu yapı numarasını değiştirir. Sunucu yapıları her zaman kademeli olur.

Olası nedenler

Sistem veritabanları için veritabanı şeması sunucu derlemeleri arasında değiştirilebilir. Şema değişikliğinin tutarsızlıklara yol açmadığından emin olmak için, bu RESTORE ifade yedekleme dosyasının sunucu derleme numarasını, yedeklemeyi geri yüklemeye çalıştığınız sunucunun ders numarasıyla karşılaştırır. Eğer derlemeler farklıysa, ifade "3168" hata mesajı verir ve geri yükleme işlemi anormal şekilde sona erer.

Bu sorunun ortaya çıkabileceği bazı senaryolar şunlardır:

  • Server B'de alınan bir yedekten Server A'daki bir sistem veritabanını geri yüklemeye çalışıyorsunuz. A ve B sunucuları farklı sunucu yapılarında. Örneğin, Server A orijinal sürüm sürümünde, Server B ise service pack 1 (SP1) sürümünde olabilir.

  • Aynı sunucuda alınan bir yedekten sistem veritabanını geri yüklemeye çalışıyorsunuz. Ancak, yedekleme işlemi çalışırken sunucu farklı bir derleme kullanıyordu. Yani, yedek oluşturulduğundan beri sunucu güncellendi.

Kullanıcı eylemi

Sorunu çözmek için şu adımları izleyin:

Note

Aşağıdaki prosedürler için, Sunucu A, yedeklemenin alındığı kaynak SQL Server tabanlı sunucudur ve Sunucu B, yedeklemenizi geri yüklemeye çalıştığınız hedef SQL Server tabanlı sunucudur:

  1. Sunucu B'nin (Sürüm B) sürümünü aşağıdaki sorguyu kullanarak belirleyin:

    SELECT @@VERSION;
    
  2. Kaynak yedekleme alındığında çalışan SQL Server sürümünü belirlemek için aşağıdaki gibi bir sorgu çalıştırın (Sürüm A):

    RESTORE headeronly FROM disk = 'c:\sqlbackups\masterdb.bak'

  3. Yedekleme alındığında kullanılan kaynak sunucunun yapısını belirlemek için , SoftwareVersionMajor, , ve SoftwareVersionMinor sütunlarının değerlerini SoftwareVersionBuildgözden geçirin. Örneğin, değerlerin aşağıdaki gibi olduğunu varsayalım:

    • YazılımVersiyonMajor: 15
    • SoftwareVersionMinor: 0
    • SoftwareVersionBuild: 4236 Bu durumda, yedekleme alındığında kaynak SQL Server sürümü 15.0.4236'dır.
  4. Ya SQL Server tam sürüm listesi tablolarını ya da Excel sürüm tablosunu kullanarak derin hangi SQL Server versiyonuna karşılık geldiğini belirleyebilirsiniz. Örneğin, 15.0.4236 SQL Server 2019 CU16+GDR (Sürüm A) ile eşleniyor.

  5. Aşağıdaki seçeneklerden birini kullanın:

    • Eğer Sürüm A, Sürüm B'den büyükse, SQL Server'ın Son güncellemeleri ve sürüm geçmişi bölümündeki bilgileri kullanarak Server B'yi Sürüm A ile aynı yapıya yükseltin.

    • Eğer Sürüm A, Sürüm B'den daha küçükse, aşağıdaki adımları kullanarak geçici olarak sonraki güncellemeleri kaldırın:

      1. Denetim Masası'deProgramlar>, Programlar ve Özellikler seçeneğini seçin, ardından Kurulu güncellemeleri Gör seçeneğini seçin.

      2. Sürüm B'ye karşılık gelen sonraki güncelleme paketlerinin her birine karşılık gelen girişi bulun.

      3. Girdiye basılı tutun (veya sağ tıklayın) ve ardından Kaldır'ı seçin.

    • Sürüm B'nin Sürüm A ile aynı olduğunu doğruladıktan sonra, Sunucu B'deki ana veritabanının geri yükleme işlemini tekrar deneyin.

  6. (Tavsiye edilir) Server B'yi en son mevcut sürüme güncelledin ve ardından sistem veritabanlarınızın yeni bir yedeğini alın.