Aracılığıyla paylaş


Linux'ta Always On kullanılabilirlik grubu yük devretmesi

Şunlar için geçerlidir:Linux üzerinde SQL Server

Kullanılabilirlik grubu (AG) bağlamında, kullanılabilirlik replikalarının birincil ve ikincil rolleri genellikle yük devretme olarak bilinen bir işlemde birbirinin yerine geçebilir. Üç yük devretme biçimi vardır: otomatik yük devretme (veri kaybı olmadan), planlı el ile yük devretme (veri kaybı olmadan) ve zorlamalı el ile yük devretme (olası veri kaybıyla), genellikle zorlamalı yük devretmeolarak adlandırılır. Otomatik ve planlı manuel yük devretme işlemleri tüm verilerinizi korur. AG, yedeklilik-çoğaltma düzeyinde devre dışı kalır ve geçiş yapar. Başka bir ifadeyle, AG mevcut ikincil çoğaltmalarından birine (geçerli yük devretme hedefi) otomatik olarak geçiş yapar.

Yük devretme hakkında arka plan bilgileri için bkz. Yük Devretme ve Yük Devretme Modları (Always On Kullanılabilirlik Grupları).

Manüel yük devretme

Dış küme yöneticisi tarafından yönetilen bir AG'ye yük devretmek için küme yönetim araçlarını kullanın. Örneğin, bir çözüm Linux kümesini yönetmek için Pacemaker kullanıyorsa Red Hat Enterprise Linux (RHEL) veya Ubuntu üzerinde el ile yük devretme gerçekleştirmek için pcs kullanın. SUSE Linux Enterprise Server'da (SLES), crmkullanın.

Önemli

Normal işlemler altında, SSMS veya PowerShell gibi Transact-SQL veya SQL Server yönetim araçlarıyla yük devretme yapmayın. CLUSTER_TYPE = EXTERNALolduğunda, FAILOVER_MODE için kabul edilebilir tek değer EXTERNALolur. Bu ayarlarla, tüm el ile veya otomatik yük devretme eylemleri dış küme yöneticisi tarafından yürütülür. Olası veri kaybıyla yük devretmeyi zorlama yönergeleri için bkz. Yük Devretmeyi Zorlama.

Manuel yük devretme adımları

Yedekleme devri için birincil replika olacak ikincil replikaların senkron olması gerekir. İkincil çoğaltma zaman uyumsuzsa, kullanılabilirlik modunu değiştirin.

El ile iki adımda yük devretme.

  1. İlk olarak, ag kaynak kaynakların sahibi olan küme düğümünden yeni bir düğüme taşıyarak el ile yük devretme.

    Küme AG kaynağını devredemiyor ve bir konum kısıtlaması ekliyor. Bu kısıtlama, kaynağı yeni düğümde çalışacak şekilde yapılandırıyor. Gelecekte yük devretmeyi başarıyla gerçekleştirmek için bu kısıtlamayı kaldırın.

  2. İkinci olarak, konum kısıtlamasını kaldırın.

Adım 1. Kullanılabilirlik grubu kaynağını taşıyarak manuel yük devretme

ag_cluster adlı bir AG kaynağını nodeName2adlı küme düğümüne el ile yük devretmek için dağıtımınız için uygun komutu çalıştırın:

  • RHEL/Ubuntu örneği

    sudo pcs resource move ag_cluster-master nodeName2 --master --lifetime=30S
    
  • SLES örneği

    crm resource migrate ag_cluster nodeName2 --lifetime=30S
    

--lifetime seçeneğini kullandığınızda, kaynağı taşımak için oluşturulan konum kısıtlaması geçicidir ve önceki örnekte 30 saniye boyunca geçerlidir.

Geçici kısıtlama otomatik olarak temizlenmemiştir ve kısıtlama listesinde görünebilir, ancak süresi dolmuş bir kısıtlama olarak görünebilir. Süresi dolan kısıtlamalar pacemaker kümesinin yük devretme davranışını etkilemez. Kaynağı taşırken --lifetime seçeneğini kullanmıyorsanız, otomatik olarak eklenen ve aşağıdaki bölümde belirtilen konum kısıtlamasını kaldırmanız gerekir.

Adım 2. Konum kısıtlamasını kaldırma

El ile yük devretme sırasında pcs komutu move veya crm komutu migrate kaynağın yeni hedef düğüme yerleştirilmesi için bir konum kısıtlaması ekler. Yeni kısıtlamayı görmek için, kaynağı el ile taşıdıktan sonra aşağıdaki komutu çalıştırın:

  • RHEL/Ubuntu örneği

    sudo pcs constraint list --full
    
  • SLES örneği

    crm config show
    

    Bu, elle gerçekleştirilen yük devretme nedeniyle oluşturulan kısıtlamanın bir örneğidir.

    Enabled on: Node1 (score:INFINITY) (role: Master) (id:cli-prefer-ag_cluster-master)

    Not

    Red Hat Enterprise Linux 8.x ve Ubuntu 18.04'teki pacemaker kümelerindeki AG kaynak adı, kaynaklarla ilgili adlandırma tanıtılabilir kopya kullanacak şekilde geliştikçe ag_cluster-clone benzeyebilir.

  • RHEL/Ubuntu örneği

    Aşağıdaki komutta, kaldırılması gereken kısıtlamanın kimliği cli-prefer-ag_cluster-master. sudo pcs constraint list --full bu kimliği iade eder.

    sudo pcs resource clear ag_cluster-master
    

    Veya

    sudo pcs constraint remove cli-prefer-ag_cluster-master
    

    Alternatif olarak, otomatik olarak oluşturulan kısıtlamaları tek bir satırda aşağıdaki gibi hem taşıma hem de temizleme gerçekleştirebilirsiniz. Aşağıdaki örnek, Red Hat Enterprise Linux 8.x'e göre kopya terminolojisini kullanır.

    sudo pcs resource move ag_cluster-clone --master nodeName2 && sleep 30 && sudo pcs resource clear ag_cluster-clone
    
  • SLES örneği

    Aşağıdaki komutta kısıtlamanın kimliği cli-prefer-ms-ag_cluster. crm config show bu kimliği iade eder.

    crm configure
    delete cli-prefer-ms-ag_cluster
    commit
    

Not

Otomatik yük devretme bir konum kısıtlaması eklemez, bu nedenle temizlik gerekmez.

Daha fazla bilgi için:

Yük devretmeye zorlama

Zorunlu yük devretme sadece olağanüstü durum kurtarma için tasarlanmıştır. Bu durumda, birincil veri merkezi devre dışı olduğundan küme yönetim araçlarıyla yük devredemezsiniz. Eşitlenmemiş bir ikincil çoğaltmaya yük devretmeye zorlarsanız, veri kaybı yaşanabilir. Yalnızca hizmeti hemen AG'ye geri yüklemeniz gerekiyorsa ve veri kaybetme riskini göze almak istiyorsanız yük devretmeye zorlayabilirsiniz.

Kümeyle etkileşime geçmek için küme yönetim araçlarını kullanamıyorsanız (örneğin, birincil veri merkezindeki bir olağanüstü durum olayından dolayı küme yanıt vermiyorsa), dış küme yöneticisini atlamak için yük devretmeyi zorlamanız gerekebilir. Bu yordam, veri kaybı risklerine neden olduğundan normal işlemler için önerilmez. Küme yönetim araçları yük devretme eylemini yürütemeyene kadar bunu kullanın. İşlevsel olarak bu yordam, Windows'da ag üzerinde zorla el ile yük devretme gerçekleştirmeye benzer.

Bu yük devretme zorlaması işlemi, yalnızca Linux üzerindeki SQL Server için geçerlidir.

  1. Kümenin artık AG kaynağını yönetmediğini doğrulayın.

    • Kaynağı hedef küme düğümünde yönetilmeyen moda ayarlayın. Bu komut, kaynak aracısına kaynak izleme ve yönetimi durdurması için sinyal gönderir. Örneğin:

      sudo pcs resource unmanage <resourceName>
      
    • Kaynak modunu yönetilmeyen moda ayarlama girişimi başarısız olursa kaynağı silin. Örneğin:

      sudo pcs resource delete <resourceName>
      

      Not

      Bir kaynağı sildiğinizde, ilgili tüm kısıtlamalar da silinir.

  2. İkincil çoğaltmayı barındıran SQL Server örneğinde oturum bağlam değişkenini external_clusterayarlayın.

    EXECUTE sp_set_session_context
        @key = N'external_cluster',
        @value = N'yes';
    
  3. Transact-SQL ile AG'nin yükünü devretme. Aşağıdaki örnekte <MyAg> değerini AG'nizin adıyla değiştirin. Hedef ikincil çoğaltmayı barındıran SQL Server örneğine bağlanın ve aşağıdaki komutu çalıştırın:

    ALTER AVAILABILITY GROUP <MyAg> FORCE_FAILOVER_ALLOW_DATA_LOSS;
    
  4. Zorlamalı yük devretme işleminden sonra küme kaynak izleme ve yönetimini yeniden başlatmadan veya AG kaynağını yeniden oluşturmadan önce AG'yi iyi durumda duruma getirin. Zorunlu Yük Devretmeden Sonra Temel Görevlergözden geçirin.

  5. Küme kaynak izleme ve yönetimini yeniden başlatın:

    Küme kaynak izleme ve yönetimini yeniden başlatmak için aşağıdaki komutu çalıştırın:

    sudo pcs resource manage <resourceName>
    sudo pcs resource cleanup <resourceName>
    

    Küme kaynağını sildiyseniz yeniden oluşturun. Küme kaynağını yeniden oluşturmak için Kullanılabilirlik grubu kaynağı oluşturmayönergeleri izleyin.

Önemli

Veri kaybı riskiyle karşı karşıya olduklarından olağanüstü durum kurtarma tatbikatları için önceki adımları kullanmayın. Bunun yerine zaman uyumsuz çoğaltmayı zaman uyumlu olarak değiştirin ve normal el ile yük devretmenin yönergelerinitakip edin.

Veritabanı düzeyinde izleme ve yük devretme tetikleyicisi

CLUSTER_TYPE=EXTERNALiçin, yük devretme tetikleyici söz dizimi WSFC ile karşılaştırıldığında farklıdır. AG bir WSFC'de SQL Server örneğinde olduğunda, veritabanı için ONLINE durumundan geçiş ag sistem durumunun bir hata bildirmesine neden olur. Yanıt olarak, küme yöneticisi bir yük devretme eylemi tetikler. Linux'ta SQL Server örneği kümeyle iletişim kuramaz. Veritabanı durumunu izleme, dışındayapılır. Kullanıcı veritabanı düzeyinde yük devretme izleme ve yük devretmeyi seçtiyse (AG'yi oluştururken DB_FAILOVER=ON seçeneğini ayarlayarak), küme her izleme eylemi çalıştırdığında veritabanı durumunun ONLINE olup olmadığını denetler. Küme, sys.databases'daki durumu sorgular. ONLINEdurumundan farklı herhangi bir durum için, otomatik yük devretme koşulları karşılanırsa, otomatik olarak bir yük devretme tetikler. Yük devretmenin gerçek zamanı izleme eyleminin sıklığına ve sys.databases.'de güncelleştirilen veritabanı durumuna bağlıdır

Otomatik yük devretme için en az bir senkron çoğaltma gerekir.

SQL belgelerine katkıda bulunma

SQL içeriğini kendiniz düzenleyebildiğinizi biliyor muydunuz? Bunu yaparsanız, belgelerimizin geliştirilmesine yardımcı olmakla kalmaz, aynı zamanda sayfaya katkıda bulunan olarak da kabul edilirsiniz.

Daha fazla bilgi için Bkz. Microsoft Learn belgelerini düzenleme.