SQL Server AlwaysOn sorunlarını giderme

Bu makale, SQL Server'da Always On yapılandırmasıyla ilgili yaygın sorunu çözmenize yardımcı olur.

Not

Bu makalenin kılavuzlu bir kılavuzu için bkz . SQL Server Always On Sorunlarını Giderme.

Özgün ürün sürümü: SQL Server 2012 Enterprise, SQL Server 2014 Enterprise, SQL Server 2016 Enterprise
Özgün KB numarası: 10179

Önemli notlar

AlwaysOn Kullanılabilirlik gruplarını ayarlama ve yapılandırma konusunda işaretçilere ihtiyacım var

Always On yapılandırmasını ayarlamayla ilgili belgeler arıyorsanız lütfen aşağıdaki belgelere bakın:

Always On Kullanılabilirlik Gruplarını (SQL Server) Kullanmaya Başlama - Belge, Kullanılabilirlik grupları ve kurulum hakkında sahip olabileceğiniz birçok sorunun yanıtlarını sağlar. Bu makaledeki tüm adımların izlenmesi ve Her Zaman Açık Kullanılabilirlik Grupları (SQL Server) için Önkoşullar, Kısıtlamalar ve Öneriler'in gözden geçirilmesi, ortamınızda kullanılabilirlik gruplarını ayarlama ve sürdürme konusunda karşılaşabileceğiniz birçok sorunun önlenmesine yardımcı olur.

Ek kaynaklar

Bu bilgiler yararlı değilse bkz . Always On Kullanılabilirlik Grupları hakkında daha fazla bilgi.

Always On Kullanılabilirlik gruplarını yapılandırırken sorun yaşıyorum

Her Zaman Açık Kullanılabilirlik Grupları devre dışı bırakılır, hesaplar yanlış yapılandırılır, veritabanı yansıtma uç noktası yoktur, uç noktaya erişilemez (SQL Server Hatası 1418), ağ erişimi yoktur ve veritabanı birleştirme komutu başarısız olur (SQL Server Hatası 35250). Bu sorunları giderme konusunda yardım için aşağıdaki belgeyi gözden geçirin:

Always On Kullanılabilirlik Grupları Yapılandırmasının Sorunlarını Giderme (SQL Server)

Ek bağlantı: Düzeltme: Birden çok kullanılabilirlik grubu oluşturmaya çalıştığınızda hata 41009

Sorun devam ediyorsa bkz . AlwaysOn Kullanılabilirlik Grupları hakkında daha fazla bilgi.

Dinleyici yapılandırmasıyla ilgili sorunlar yaşıyorum (19471, 19476 ve diğer hatalar)

Müşterilerin karşılaştığı en yaygın yapılandırma sorunlarından biri kullanılabilirlik grubu dinleyicisi oluşturmadır. Hatalar aşağıdakine benzer:

  • Msg 19471, Düzey 16, Durum 0, Satır 2 WSFC kümesi DNS adı '' olan Ağ Adı kaynağını çevrimiçi duruma getiremedi. DNS adı alınmış veya mevcut ad hizmetleriyle çakışmış veya WSFC küme hizmeti çalışmıyor veya erişilemiyor olabilir. Ad çakışmalarını çözmek için farklı bir DNS adı kullanın veya daha fazla bilgi için WSFC küme günlüğünü denetleyin.

  • Msg 19476, Düzey 16, Durum 4, Satır 2 Dinleyici için ağ adı ve IP adresi oluşturma girişimi başarısız oldu. WSFC hizmeti çalışmıyor veya geçerli durumunda erişilemiyor olabilir veya ağ adı ve IP adresi için sağlanan değerler yanlış olabilir. WSFC kümesinin durumunu denetleyin ve ağ yöneticisiyle ağ adını ve IP adresini doğrulayın.

Çoğunlukla, önceki iletilerle sonuçlanırken dinleyici oluşturma hatasının nedeni, Active Directory'deki Küme Adı Nesnesi (CNO) için dinleyici bilgisayar nesnesini oluşturma ve okuma izinlerinin olmamasıdır. Bu sorunu gidermek için lütfen aşağıdaki makaleleri gözden geçirin:

Sorun devam ediyorsa bkz . AlwaysOn Kullanılabilirlik Grupları hakkında daha fazla bilgi.

Otomatik Yük Devretme beklendiği gibi çalışmıyor

Test sırasında veya üretim sırasında otomatik yük devretmenin beklendiği gibi çalışmadığını fark ederseniz bkz. SQL Server 2012 Always On ortamlarında otomatik yük devretme sorunlarını giderme.

Belirtilen dönemdeki En fazla hata sayısı yapılandırmasının hatalı olması birincil hatanın otomatik olarak ikincilye devredilmemesinin önde gelen nedenlerinden biridir. Bu ayarın varsayılan değeri N-1'dir; burada N, çoğaltma sayısıdır. Daha fazla bilgi için bkz . Yük devretme kümesi (grup) maksimum hata sınırı.

Sorun devam ediyorsa bkz . AlwaysOn Kullanılabilirlik Grupları hakkında daha fazla bilgi.

Always On Kullanılabilirlik gruplarına bağlanırken sorun yaşıyorum

SQL Server 2012'de AlwaysOn Kullanılabilirlik Grubu için kullanılabilirlik grubu dinleyicisini yapılandırdıktan sonra, dinleyiciye ping yapamayabilir veya bir uygulamadan bu gruba bağlanamayabilirsiniz. Aşağıdakine benzer bir hata alabilirsiniz:

Sqlcmd: Hata: Microsoft SQL Yerel İstemcisi: Oturum açma zaman aşımı süresi doldu.

Bu ve benzer hataları gidermek için aşağıdakileri gözden geçirin:

Daha fazla bilgi bağlantıları:

Sorun devam ediyorsa bkz . AlwaysOn Kullanılabilirlik Grupları hakkında daha fazla bilgi.

Azure VM'mde (IaaS) Always On Kullanılabilirlik gruplarını yapılandırırken sorun yaşıyorum

  1. Dinleyicinin yanlış yapılandırılması nedeniyle Always On ile ilgili birçok sorun oluşur. Dinleyiciyle bağlantı sorunlarınız varsa,

    1. ILB dinleyicisinin tüm sınırlamalarını okuduğunuzdan ve aşağıdaki makalede belgelenen tüm adımları izlediğinizden emin olun ve PowerShell betiğindeki bağımlılık yapılandırmasına, IP adresine ve diğer çeşitli parametrelere özellikle dikkat edin.

    2. Emin değilseniz, yukarıdaki belgeye göre dinleyiciyi silmek ve yeniden oluşturmak isteyebilirsiniz.

  2. Yakın zamanda VM'nizi farklı bir hizmete taşıdıysanız veya IP adresleri değiştiyse, IP adresi kaynağının değerini yeni adresi yansıtacak şekilde güncelleştirmeniz ve AG'nizin yük dengeli uç noktasını yeniden oluşturmanız gerekir. VEYA Set komutlarını kullanarak Get IP adresini aşağıdaki gibi güncelleştirebilirsiniz:

    Get-ClusterResource "IPResourceName" | Set-ClusterParameter -name Address -value "w.x.y.z"
    

Önerilen belgeler:

Sorun devam ediyorsa bkz . AlwaysOn Kullanılabilirlik Grupları hakkında daha fazla bilgi.

Birincilden ikincile veya tam tersi yük devretme uzun sürüyor

Bir kullanılabilirlik grubunda veri kaybı olmadan otomatik yük devretme veya planlı el ile yük devretme işleminden sonra, yük devretme süresinin kurtarma süresi hedefinizi (RTO) aştığını fark edebilirsiniz. Nedenleri ve olası çözümleri gidermek için bkz . Sorun Giderme: Kullanılabilirlik Grubu RTO'yu Aştı.

Sorun devam ediyorsa bkz . AlwaysOn Kullanılabilirlik Grupları hakkında daha fazla bilgi.

Birincil Çoğaltmadaki değişiklikler, İkincil Çoğaltma'ya yansıtılmaz veya çoğaltma yavaş yapılır

Birincil çoğaltmadaki değişikliklerin zamanında ikincil çoğaltmaya yayılmadığını fark edebilirsiniz. Bu sorunları gidermek ve çözmek için aşağıdakileri deneyin:

Sorun devam ediyorsa bkz . AlwaysOn Kullanılabilirlik Grupları hakkında daha fazla bilgi.

AG veritabanlarım için işlem günlüğünün boyutunu yönetme

Birincil veya ikincil sunucularda normal yedeklemeleri yapılandırarak işlem günlüğü boyutlarını azaltabilirsiniz.

Ek bilgi için aşağıdaki konuları gözden geçirin:

Bu bilgiler yararlı değilse bkz . Always On Kullanılabilirlik Grupları hakkında daha fazla bilgi.

Birincil veya İkincil Sunucular Çözümleme Durumu'nda etkilendi veya beklenmeyen yük devretmelerle karşılaşıyorsunuz

Sorun devam ediyorsa bkz . AlwaysOn Kullanılabilirlik Grupları hakkında daha fazla bilgi.

Kaynaklar çevrimiçi duruma getirilemedi

SQL ErrorLog'daki iletileri gözden geçirerek veritabanlarının kurtarılması uzun zaman alıp almadığı denetleyin.

Sorun devam ediyorsa bkz . AlwaysOn Kullanılabilirlik Grupları hakkında daha fazla bilgi.

Sık sorulan sorular

  1. Bir kullanılabilirlik grubu için iki Dinleyiciniz olabilir mi?

    Evet, aynı kullanılabilirlik grubu için birden çok dinleyici ayarlayabilirsiniz. Bkz . Aynı kullanılabilirlik grubu (Goden Yao) için birden çok dinleyici oluşturma.

  2. Trafikte ve İstemci bağlantısında her zaman için ayrı bir NIC kartı olması mümkün mü?

    Evet, Always On trafiği için ayrılmış NIC kartınız olabilir. Bkz . Ayrılmış Bir Ağda İletişim Kurmak için Kullanılabilirlik Grubunu Yapılandırma.

  3. Hangi sürümler Always On yük devretme kümesi örneklerini destekler?

    SQL Server Books Online'daki bu konu başlığında daha fazla bilgi vardır: SQL Server 2016 için Sürümler ve Desteklenen Özellikler.

  4. Kümenizin tüm düğümlerinde hata olması durumunda nasıl kurtarılır?

    Bkz . Zorlamalı Çekirdek (SQL Server) aracılığıyla WSFC Olağanüstü Durum Kurtarma.

  5. AG yapılandırmalarında dağıtılmış işlemler için destek hakkında nereden bilgi bulabilirim?

    Bkz. İşlemler - kullanılabilirlik grupları ve veritabanı yansıtma.

  6. Always On yapılandırmaları nasıl güncelleştirilecek?

    Bkz . Always On Kullanılabilirlik Grubu Çoğaltma Örneklerini Yükseltme.

  7. AG yapılandırmasına TDE (Saydam Veri Şifrelemesi) özellikli veritabanı nasıl eklenir?

    AG'ye TDE özellikli veritabanı eklemek için bkz . TDE veritabanı için Always On'ı yapılandırma.

  8. İkincil değerin birincil değerin gerisinde kaldığını denetlemek için uyarılar nasıl yapılandırılır?

    Aşağıdaki betiği kullanabilirsiniz:

    SELECT ag.name AS ag_name, ar.replica_server_name AS ag_replica_server,
    dr_state.database_id AS database_id,
    is_ag_replica_local = CASE
        WHEN ar_state.is_local = 1 THEN N'LOCAL'
        ELSE 'REMOTE'
        END,
    ag_replica_role = CASE
        WHEN ar_state.role_desc IS NULL THEN N'DISCONNECTED'
        ELSE ar_state.role_desc
        END,
    dr_state.last_hardened_lsn, dr_state.last_hardened_time,
    datediff(s,last_hardened_time, getdate()) AS 'seconds behind primary'
    FROM (( sys.availability_groups AS ag
    JOIN sys.availability_replicas AS ar
        ON ag.group_id = ar.group_id)
    JOIN sys.dm_hadr_availability_replica_states AS ar_state
        ON ar.replica_id = ar_state.replica_id)
    JOIN sys.dm_hadr_database_replica_states dr_state
        ON ag.group_id = dr_state.group_id AND dr_state.replica_id = ar_state.replica_id
    
  9. Veritabanının durumu eşitlenmemişse nasıl uyarılır?

    Aşağıdaki betiği kullanabilirsiniz:

    SELECT ag.name AS ag_name, ar.replica_server_name AS ag_replica_server,
    dr_state.database_id AS database_id,
    is_ag_replica_local = CASE
        WHEN ar_state.is_local = 1 THEN N'LOCAL'
        ELSE 'REMOTE'
        END,
    ag_replica_role = CASE
        WHEN ar_state.role_desc IS NULL THEN N'DISCONNECTED'
        ELSE ar_state.role_desc
        END,
    ar_state.connected_state_desc, ar.availability_mode_desc, dr_state.synchronization_state_desc
    FROM (( sys.availability_groups AS ag
    JOIN sys.availability_replicas AS ar
        ON ag.group_id = ar.group_id )
    JOIN sys.dm_hadr_availability_replica_states AS ar_state
        ON ar.replica_id = ar_state.replica_id)
    JOIN sys.dm_hadr_database_replica_states dr_state
        ON ag.group_id = dr_state.group_id AND dr_state.replica_id = ar_state.replica_id
    

    Always On gruplarını izlemek için ek yöntemler için aşağıdaki bağlantıları da gözden geçirebilirsiniz:

Always On Kullanılabilirlik Grupları hakkında daha fazla bilgi