Microsoft hesabıyla oturum açın
Oturum açın veya hesap oluşturun.
Merhaba,
Farklı bir hesap seçin.
Birden çok hesabınız var
Oturum açmak istediğiniz hesabı seçin.

Belirtiler

Aşağıdaki senaryoyu inceleyin:

  • Microsoft SQL Server 2005, Microsoft SQL Server 2008 veya Microsoft SQL Server 2008 R2'nin bir örneğini yüklersiniz.

  • SQL Server örneği INST1 olarak adlandırılır ve Test_RO_FG_DB adlı bir veritabanını barındırır.

  • Veritabanı aşağıdaki dosya gruplarını içerir:

    • Yararı

    • RO_FG

    • RW_FG

  • RO_FG adlı dosya grubu READ_ONLY olarak işaretlenir.

  • Yeni bir Microsoft SQL Server 2012 örneği yüklersiniz. Bu SQL Server 2012 örneği INST2 olarak adlandırılır.

  • Test_RO_FG_DB veritabanını INST1 'den ayırdığınızda.

  • Test_RO_FG_DB veritabanını INST2 'e eklemeye çalışırsınız.

  • Aşağıdakine benzer bir hata iletisi alırsınız:

    İleti 3415, düzey 16, durum 2, Line 1' Test_RO_FG_DB ' veritabanı salt okunur olduğundan yükseltilemiyor, salt okunur dosyalar var veya kullanıcının bazı dosyaları değiştirme izinleri yoktur. Veritabanını veya dosyaları yazılabilir yapın ve kurtarmayı yeniden çalıştırın.

  • Test_RO_FG_DB veritabanını INST1 'e yeniden iliştirmeye çalışırsınız.

Bu senaryoda, veritabanını INST1 'e yeniden ekleyebilirsiniz. Ve SQL Server hata günlüğünde aşağıdaki hata iletisini alırsınız:

Not Bu sorun yalnızca READ_ONLY işaretlenen bir dosya grubunu içeren bir veritabanını eklemeyi denediğinizde oluşur. Tüm verilerin READ_ONLY işaretlenmiş olduğu bir READ_ONLY veritabanını taşımayı denediğinizde bu sorun oluşmaz.

Neden

Bu sorun, SQL Server 2012 veritabanını yükseltmeye başlamadan önce salt okunur dosya grubunu algılamadığı için oluşur. Yükseltme başlatıldıktan sonra, SQL Server 2012 girdileri işlem günlüğüne yazar. Önceki sürümler yeni işlem günlüğü girdilerini okuyamaz.

Durum

Microsoft bu sorunun "Uygulandığı öğe" bölümünde listelenen Microsoft ürünlerinde bulunduğunu onaylamıştır.

Çözüm

Toplu güncelleştirme bilgileri

SQL Server 2012

Bu sorunla ilgili düzeltme ilk olarak SQL Server 2012 için toplu güncelleştirme 2 ' de yayımlanmıştır. Bu toplu güncelleştirme paketi hakkında daha fazla bilgi için, Microsoft Bilgi Bankası 'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:

2703275 SQL Server 2012 için toplu güncelleştirme paketi 2Not Derlemeler birikimli olduğundan, her yeni düzeltme sürümü önceki SQL Server 2012 düzeltmesi sürümüyle birlikte gelen tüm düzeltmeleri ve tüm güvenlik düzeltmelerini içerir. Microsoft, bu düzeltmeyi içeren en son düzeltmeyi uygulamanızı öneririz. Daha fazla bilgi için Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasına tıklayın:

2692828 SQL Server 2012 sonrasında yayınlanan SQL Server 2012 derlemeleri SQL Server 2012 düzeltmesini SQL Server 2012 kurulumuna uygulamalısınız.

Geçici Çözüm

Bu soruna geçici bir çözüm için aşağıdaki yöntemlerden birini kullanın.Yöntem 1INST1 üzerinden veritabanının yedeğini geri yükleme.Not Önceki bir sürümden yedekleme geri yüklendiğinde, SQL Server 2012 ' de "Belirtiler" bölümünde açıklanan sorun oluşmaz.Yöntem 2SQL Server 2012 için SQL Server 'ın önceki sürümünü yerinde yükseltmeyi gerçekleştirin.Yöntem 3Salt okunur bir dosya grubu içeren veritabanını SQL Server 2012 örneğine taşıyın. Bunu yapmak için şu adımları uygulayın.Not SQL Server 2012 çalıştıran sunucuda 4 ile 11 arası adımları uygulayın. Örneğin, INST2 üzerinde 4 ile 11 arası adımları gerçekleştirin.

  1. INST1 üzerinde, veritabanını ayırın. Örneğin, Test_RO_FG_DB veritabanını ayırın.

  2. Veritabanı dosyalarını, INST2 örneğini barındıran sunucuya taşıyın.

  3. Veritabanını INST2 adresine eklemeyi deneyin. Aşağıdaki örnek kod bunun nasıl yapılacağını göstermektedir:

    CREATE DATABASE [Test_RO_FG_DB] ON PRIMARY ( NAME = N'Test_RO_FG', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL11.SQL2012\MSSQL\DATA\Test_RO_FG.mdf' ), FILEGROUP [RO_FG] ( NAME = N'Test_RO_FG_File1', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL11.SQL2012\MSSQL\DATA\Test_RO_FG_File1.ndf' ), FILEGROUP [RW_FG] ( NAME = N'Test_RW_FG_File1', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL11.SQL2012\MSSQL\DATA\Test_RW_FG_File1.ndf' )LOG ON ( NAME = N'Test_RO_FG_log', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL11.SQL2012\MSSQL\DATA\Test_RO_FG_log.ldf' )FOR ATTACH;GO

    Not "Belirtiler" bölümünde açıklanan 3425 hata iletisini alırsınız.

  4. Komut isteminde veritabanı dosyalarını yeniden adlandırın. Aşağıdaki örnek komut bunun nasıl yapılacağını gösterir:

    rename Test_RO_FG.mdf original_Test_RO_FG.mdfrename Test_RO_FG_File1.ndf original_Test_RO_FG_File1.ndfrename Test_RW_FG_File1.ndf original_Test_RW_FG_File1.ndfrename Test_RO_FG_log.ldf original_Test_RO_FG_log.ldf 
  5. SQL Server Management Studio 'da, eklemek istediğiniz veritabanıyla aynı ada ve fiziksel yapıya sahip bir veritabanı oluşturun. Aşağıdaki örnek kod bunun nasıl yapılacağını göstermektedir:

    CREATE DATABASE [Test_RO_FG_DB] ON PRIMARY ( NAME = N'Test_RO_FG_DB', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL11.SQL2012\MSSQL\DATA\Test_RO_FG_DB.mdf' , SIZE = 4072KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB ), FILEGROUP [RO_FG] ( NAME = N'Test_RO_FG_File1', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL11.SQL2012\MSSQL\DATA\Test_RO_FG_File1.ndf' , SIZE = 8192KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB ), FILEGROUP [RW_FG] ( NAME = N'Test_RW_FG_File1', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL11.SQL2012\MSSQL\DATA\Test_RW_FG_File1.ndf' , SIZE = 8192KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB )LOG ON ( NAME = N'Test_RO_FG_log', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL11.SQL2012\MSSQL\DATA\Test_RO_FG_log.ldf' , SIZE = 1024KB , MAXSIZE = 2048GB , FILEGROWTH = 10%)GO
  6. Veritabanını çevrimdışı olarak ayarlayın. Bunu yapmak için aşağıdaki komutu uygulayın:

    ALTER DATABASE [Test_RO_FG_DB] SET OFFLINEGO 
  7. Komut isteminde, yeni veritabanındaki dosyaları yeniden adlandırın. Aşağıdaki örnek komut bunun nasıl yapılacağını gösterir:

    rename Test_RO_FG.mdf new_Test_RO_FG.mdfrename Test_RO_FG_File1.ndf new_Test_RO_FG_File1.ndfrename Test_RW_FG_File1.ndf new_Test_RW_FG_File1.ndfrename Test_RO_FG_log.ldf new_Test_RO_FG_log.ldf 
  8. Komut isteminde, veritabanındaki dosyaları yeniden adlandırın. 4. adımda oluşturduğunuz veritabanıyla eşleşecek şekilde dosyaları yeniden adlandırın. Aşağıdaki örnek komut bunun nasıl yapılacağını gösterir:

    rename original_Test_RO_FG.mdf Test_RO_FG.mdf rename original_Test_RO_FG_File1.ndf Test_RO_FG_File1.ndf rename original_Test_RW_FG_File1.ndf Test_RW_FG_File1.ndf rename original_Test_RO_FG_log.ldf Test_RO_FG_log.ldf 
  9. Veritabanını ÇEVRIMIÇI olarak ayarlayın. Bunu yapmak için aşağıdaki komutu uygulayın:

    ALTER DATABASE [Test_RO_FG_DB] SET ONLINEGO 
  10. Veritabanının çevrimiçi olduğunu doğrulayın ve hizmet Aracısı işlevini yeniden kurmayı doğrulayın.

  11. Gerekmeyen veritabanı dosyalarını silin. Aşağıdaki örnek komut bunun nasıl yapılacağını gösterir:

    del /P new_Test_RO_FG.mdfdel /P new_Test_RO_FG_File1.ndfdel /P new_Test_RW_FG_File1.ndfdel /P new_Test_RO_FG_log.ldf 

Yöntem 4Önceki SQL Server örneğine salt okunur bir dosya grubu içeren veritabanını yeniden bağlama. Bunu yapmak için şu adımları uygulayın.Notlar

  • Veritabanı, başarısız yükseltmeden yeni işlem günlüğü girdilerini de içerir.

  • SQL Server 'ın önceki bir sürümünü çalıştıran sunucuda 3-10 arası adımları gerçekleştirin. Örneğin, INST1 üzerinde 3 ile 10 arası adımları gerçekleştirin.

  1. Veritabanı dosyalarını, INST1 barındıran SQL Server örneğine taşıyın.

  2. Veritabanını INST1 adresine eklemeyi deneyin. Aşağıdaki örnek kod bunun nasıl yapılacağını göstermektedir:

    CREATE DATABASE [Test_RO_FG_DB] ON PRIMARY ( NAME = N'Test_RO_FG_DB', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL10_50.SQL2008R2\MSSQL\DATA\Test_RO_FG_DB.mdf' ), FILEGROUP [RO_FG] ( NAME = N'Test_RO_FG_File1', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL10_50.SQL2008R2\MSSQL\DATA\Test_RO_FG_File1.ndf' ), FILEGROUP [RW_FG] ( NAME = N'Test_RW_FG_File1', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL10_50.SQL2008R2\MSSQL\DATA\Test_RW_FG_File1.ndf' )LOG ON ( NAME = N'Test_RO_FG_log', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL10_50.SQL2008R2\MSSQL\DATA\Test_RO_FG_log.ldf' )FOR ATTACHGO

    Not "Belirtiler" bölümünde açıklanan 3624 hata iletisini alırsınız. Ayrıca 1813 hata iletisi de alırsınız.

  3. Komut isteminde, INST1 üzerindeki veritabanı dosyalarını yeniden adlandırın. Aşağıdaki örnek komut bunun nasıl yapılacağını gösterir:

    rename Test_RO_FG.mdf original_Test_RO_FG.mdfrename Test_RO_FG_File1.ndf original_Test_RO_FG_File1.ndfrename Test_RW_FG_File1.ndf original_Test_RW_FG_File1.ndfrename Test_RO_FG_log.ldf original_Test_RO_FG_log.ldf 
  4. SQL Server Management Studio 'da, eklemek istediğiniz veritabanıyla aynı ada ve fiziksel yapıya sahip bir veritabanı oluşturun. Aşağıdaki örnek kod bunun nasıl yapılacağını göstermektedir:

    CREATE DATABASE [Test_RO_FG_DB] ON PRIMARY ( NAME = N'Test_RO_FG_DB', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL10_50.SQL2008R2\MSSQL\DATA\Test_RO_FG_DB.mdf' , SIZE = 4072KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB ), FILEGROUP [RO_FG] ( NAME = N'Test_RO_FG_File1', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL10_50.SQL2008R2\MSSQL\DATA\Test_RO_FG_File1.ndf' , SIZE = 8192KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB ), FILEGROUP [RW_FG] ( NAME = N'Test_RW_FG_File1', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL10_50.SQL2008R2\MSSQL\DATA\Test_RW_FG_File1.ndf' , SIZE = 8192KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB )LOG ON ( NAME = N'Test_RO_FG_log', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL10_50.SQL2008R2\MSSQL\DATA\Test_RO_FG_log.ldf' , SIZE = 1024KB , MAXSIZE = 2048GB , FILEGROWTH = 10%)GO
  5. Veritabanını çevrimdışı olarak ayarlayın. Bunu yapmak için aşağıdaki komutu uygulayın:

    ALTER DATABASE [Test_RO_FG_DB] SET OFFLINEGO 
  6. Komut isteminde, yeni veritabanındaki dosyaları yeniden adlandırın. Aşağıdaki örnek komut bunun nasıl yapılacağını gösterir:

    rename Test_RO_FG.mdf new_Test_RO_FG.mdfrename Test_RO_FG_File1.ndf new_Test_RO_FG_File1.ndfrename Test_RW_FG_File1.ndf new_Test_RW_FG_File1.ndfrename Test_RO_FG_log.ldf new_Test_RO_FG_log.ldf 
  7. Komut isteminde, veritabanındaki dosyaları yeniden adlandırın. 4. adımda oluşturduğunuz veritabanıyla eşleşecek şekilde dosyaları yeniden adlandırın. Aşağıdaki örnek komut bunun nasıl yapılacağını gösterir:

    rename original_Test_RO_FG.mdf Test_RO_FG.mdf rename original_Test_RO_FG_File1.ndf Test_RO_FG_File1.ndf rename original_Test_RW_FG_File1.ndf Test_RW_FG_File1.ndf rename original_Test_RO_FG_log.ldf Test_RO_FG_log.ldf 
  8. Veritabanını acıl durum moduna getirin ve onarım yapın. Bunu yapmak için aşağıdaki komutu uygulayın.Not Bu adım sırasında veritabanı işlem günlükleri yeniden oluşturulur. Bu, veri kaybına yol açabilir. Bu nedenle, bu adımı gerçekleştirmeden önce veritabanını yedeklemenizi öneririz.

    ALTER DATABASE Test_RO_FG_DB SET EMERGENCYGOALTER DATABASE Test_RO_FG_DB SET SINGLE_USERGODBCC CHECKDB (Test_RO_FG_DB, repair_allow_data_loss) WITH ALL_ERRORMSGSGOALTER DATABASE Test_RO_FG_DB SET MULTI_USERGO 
  9. Veritabanının çevrimiçi olduğunu doğrulayın ve hizmet Aracısı işlevini yeniden kurmayı doğrulayın.

  10. Gerekmeyen veritabanı dosyalarını silin. Aşağıdaki örnek komut bunun nasıl yapılacağını gösterir:

    del /P new_Test_RO_FG.mdfdel /P new_Test_RO_FG_File1.ndfdel /P new_Test_RW_FG_File1.ndfdel /P new_Test_RO_FG_log.ldf 

Ek Bilgi

Bir SQL Server örneğine veritabanı iliştirildiğinde ortaya çıkabilecek birkaç adım vardır. Bu adımlarda, veritabanını kurtarma ve SQL Server 'ın önceki sürümlerinden dosyaları yükseltme işlemleri yer alır. "Belirtiler" bölümünde açıklanan sorun için, SQL Server 2012, veritabanındaki salt okunur dosyalar algılanmadan önce yükseltme işlemini başlatır. Yükseltme adımları, veritabanının önyükleme sayfasında "temiz kapatma" bitini temizlemek için işlem başlatmayı içerir. SQL Server 'ın önceki sürümleri işlem başlangıç kaydını okuyamaz. Bu nedenle, veritabanı SQL Server 'ın önceki sürümlerinde kullanılamaz ve SQL Server 3624 hatasını oluşturur.Veritabanı salt okunur olarak işaretlendiğinde yerinde yükseltmelerSQL Server 2012 'e Test_RO_DB adlı salt okunur bir veritabanı içeren bir SQL Server örneğinin yerinde yükseltmesini gerçekleştirdiğinizde, SQL Server hata günlüğünde aşağıdakilere benzer hata iletileri alabilirsiniz:

Yükseltme işleminin sonunda, Test_RO_DB veritabanı RECOVERY_PENDING durumunda olur. Veritabanını READ_WRITE ayarlamak için alter database komutunu kullanmalısınız. Ardından veritabanını READ_ONLY ayarlamak için alter database komutunu kullanın. Bu, SQL Server altyapısının veritabanını doğru sürüme yükseltmesine olanak tanır.Okuma/yazma veritabanı salt okunur olarak işaretlenmiş dosya grupları içerdiğinde yerinde yükseltmelereSQL Server 2012 ' e yerinde yükseltmeyi gerçekleştirdiğinizde, SQL Server hata günlüğünde aşağıdakine benzer iletiler alabilirsiniz. Bu sorun, SQL Server 'ın önceki örneği bir okuma/yazma veritabanı barındırıp READ_ONLY işaretlenen dosya gruplarını içerdiğinde oluşur. Bununla birlikte, yükseltme işlemi beklendiği gibi tamamlanır ve veritabanı çevrimiçi başlar.Not Aşağıdaki hata iletisinde, veritabanı Test_RO_FG olarak adlandırılır:

Daha fazla yardıma mı ihtiyacınız var?

Daha fazla seçenek mi istiyorsunuz?

Abonelik avantajlarını keşfedin, eğitim kurslarına göz atın, cihazınızın güvenliğini nasıl sağlayacağınızı öğrenin ve daha fazlasını yapın.

Topluluklar, soru sormanıza ve soruları yanıtlamanıza, geri bildirimde bulunmanıza ve zengin bilgiye sahip uzmanlardan bilgi almanıza yardımcı olur.

Bu bilgi yararlı oldu mu?

Dil kalitesinden ne kadar memnunsunuz?
Deneyiminizi ne etkiledi?
Gönder’e bastığınızda, geri bildiriminiz Microsoft ürün ve hizmetlerini geliştirmek için kullanılır. BT yöneticiniz bu verileri toplayabilecek. Gizlilik Bildirimi.

Geri bildiriminiz için teşekkürler!

×