AlwaysOn Kullanılabilirlik grupları, SQL Server 2014 CU5, SQL Server 2012 SP2 CU4 veya SQL Server 2012 SP2 CU3 uyguladıktan sonra eşitleme değil olarak bildirilebilir.

Belirtiler


Aşağıdaki senaryoyu düşünün:

  • Çalışırken yükseltme işleminin bir parçası olarak kullanılabilirlik grubu ikincil kopyasını barındıran sunucudaki Microsoft SQL Server 2014 veya Microsoft SQL Server 2012 Service Pack 2 (SP2) çalıştırıyorsanız.

  • SQL Server yüklemesi için aşağıdaki güncelleştirmelerden birini uyguladığınız:

    • SQL Server 2014 toplu güncelleştirme 5

    • SQL Server 2012 Service Pack 2 toplu güncelleştirme 4

    • SQL Server 2012 Service Pack 2 toplu güncelleştirme 3

    Önemli Bu makalede açıklanan düzeltme, bu toplu güncelleştirmesinin yerini alır. Bu güncelleştirmeler, zaten bu yapmadıysanız yüklemeyin.

  • Toplu Güncelleştirme yüklemesini tamamlamak için bu ikincil çoğaltma yeniden başlatın.

  • Birincil rolü için güncelleştirilmiş ikincil kopya geçiyor kullanılabilirlik grubu devri.

Bu senaryoda, bir veya daha fazla SQL Server çalıştıran ve, şimdi, kullanılabilirlik grubu birincil kopyasını barındıran sunucuda aşağıdaki belirtilerden biriyle karşılaşabilirsiniz:

  • İkincil kopyaları bildirilen "Değil eşitleme olarak."

  • Sys.dm_exec_requests sorguladığınızda, kullanıcı oturumları, komut "DB_STARTUP" bildirilen bir oturumu arasındaki aralıklı kilit engelleme dikkat edin Ayrıca, engelleme Denetim noktası ve DB_STARTUP komutları fark edebilirsiniz.

  • SQL Server hata günlüğüne kullanılabilirlik veritabanlarınızı birini kurtarıldı oturumla ilişkili kilitlenmeleri raporlanır. Bu günlükler, aşağıdakine benzer:

    <date/time> spid<xx> Recovery is writing a checkpoint in database <dbname/dbid>. This isan informational message only. No user action is required.
    <date/time> spid<xx> Recovery completed for database <dbname/dbid> in <x> second(s) (analysis
    <x> ms, redo <x> ms, undo <x> ms.) This is an informational message only. No user action is required.

    <date/time> spid<xx> Error: 1205, Severity: 13, State: 28.
    <date/time> spid<xx> Transaction (Process ID <xx>) was deadlocked on lock resources with another
    process and has been chosen as the deadlock victim. Rerun the transaction.

  • Kullanılabilirlik veritabanınızı Microsoft SQL Server Service Broker etkin olduğunda iletilerin kullanılabilirlik veritabanınızdaki başarıyla işlenemeyebilir. Profiler izleme aracını başlatın ve sonra "Broker: ileti sınıflandırmak" olay yakalama, aşağıdaki olay yakalanır.

    9791, broker gönderenin veritabanında devre dışı bırakılır

Not: Bu sistematik bir sorun değildir. Bu toplu güncelleştirme olmadan bu sorunun yaşandığı bir AlwaysOn yapılandırmasına uygulamak mümkün olabilir. Bu toplu güncelleştirmeler zaten uygulamış olan ve bu sorunu fark ettiniz değil, sisteminiz etkilenmez ve bu bilgileri sizin için geçerli değil.

Neden

Sistem iş parçacığı ve kullanıcı bağlantıları arasında bazen bir yarış durumu oluşur çünkü bu sorun oluşur. Bu toplu güncelleştirme düzeltme eki uygulama mantığını güncelleştirme işlemini tamamlamak için gerekli olan kilitleri almasını engeller.

Çözüm

Bu sorunu gidermek için aşağıdaki kritik isteğe bağlı (COD) düzeltmeyi uygulayın:

3034679 düzeltme: AlwaysOn Kullanılabilirlik grupları bildirilen olarak değil eşitleme
Önemli Aşağıdaki toplu güncelleştirmelere yerine bu COD düzeltmeyi uygulamalısınız:

  • SQL Server 2014 toplu güncelleştirme 5

  • SQL Server 2012 Service Pack 2 toplu güncelleştirme 4

  • SQL Server 2012 Service Pack 2 toplu güncelleştirme 3



Not: Bu toplu güncelleştirme uyguladıysanız, bu sorunu gidermek için aşağıdaki geçici kullanmalısınız.

Geçici çözüm

Bu sorun, kullanıcı oturumunun yükseltme oturumu karşı birincil rolü veritabanları geçiş sırasında kullanılabilirlik veritabanları arasındaki Çekişme nedeniyle çünkü bu durumdan kurtulmak veritabanlarını etkinleştirmek için bu Çekişme ortadan kaldırmanız gerekir.

Bu soruna geçici bir çözüm bulmak için şu adımları izleyin:

  1. Verilen sırada aşağıdaki yöntemleri deneyin.

    Yöntem 1: veritabanı erişimi ortadan kaldırır.Veritabanları "Belirtiler" bölümünde açıklanan belirtilerle karşılaşıyorsanız, kilit engelleme durumu ortadan kaldırmak için gerektiği gibi biri veya ikisi de aşağıdaki adımları kullanın:

    • Sys.dm_exec_requests kullanılabilirlik veritabanlarındaki oturumlar engelleme hangi kilit oluşur bulmak için sorgu. Bu oturumlar sona erdirmek için KILL deyimini kullanın.

    • Kullanılabilirlik veritabanlarına erişim uygulamayı durdurmak veya devre dışı.

    Yöntem 1 sorunu gidermezse yöntem 2'ye geçin.


    Yöntem 2: SQL Server ana bilgisayar sunucusunu yeniden başlatın.Uygulama erişim ve kullanıcı erişimini hala devre dışı bırakıldığında, etkilenen kullanılabilirlik veritabanlarını barındıran SQL Server örneği yeniden başlatın. Bunu yapmak için şu adımları izleyin:

    1. Otomatik Yük devretme kullanılabilirlik grubunun devre dışı bırakın.

    2. Etkilenen birincil kopyayı barındıran SQL Server örneği yeniden başlatın.

    3. Otomatik Yük devretme kullanılabilirlik grubunun etkinleştirin.

  2. Etkilenen veritabanlarını tümüyle kurtardıktan sonra uygulama ve kullanıcı bağlantının yeniden.

Durum

Microsoft bu sorunun "Aşağıdakilere Uygulanır" bölümünde listelenen Microsoft ürünlerinde bulunduğunu onaylamıştır.

Başvurular

Bu sorundan etkilenen toplu güncelleştirmeler hakkında daha fazla bilgi için aşağıdaki Microsoft Bilgi Bankası makalelerine bakın:

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

Yeteneklerinizi geliştirin
Eğitimleri keşfedin
Yeni özellikleri ilk olarak siz edinin
Microsoft Insider 'a katılın

Bu bilgi yardımcı oldu mu?

Geri bildiriminiz için teşekkür ederiz!

×