Aracılığıyla paylaş


Öğretici: Linux sanal makinelerinde kullanılabilirlik grubu dinleyicisi yapılandırma

Şunlar için geçerlidir:Azure VM'de SQL Server

Bu öğreticide Azure'daki Linux sanal makinelerinde (VM'ler), Red Hat Enterprise Linux (RHEL), SUSE Linux Enterprise Server (SLES) ve Ubuntu için SQL Server'larınız için kullanılabilirlik grubu (AG) dinleyicisi oluşturma adımları ele alınacaktır.

Nasıl yapılacağını öğrenin:

  • Azure portalında yük dengeleyici oluşturma
  • Yük dengeleyici için arka uç havuzunu yapılandırma
  • Yük dengeleyici için yoklama oluşturma
  • Yük dengeleme kurallarını ayarlama
  • Kümede yük dengeleyici kaynağını oluşturma
  • AG dinleyicisi oluşturma
  • Dinleyiciye bağlanmayı test etme
  • Yük devretmeyi test etme

Dekont

Tarafsız iletişim

Bu makalede, Microsoft'un bu bağlamda kullanıldığında rahatsız edici olarak değerlendiren bağımlı terimine yönelik başvurular yer alır. Terim şu anda yazılımda göründüğünden bu makalede görünür. Terim yazılımdan kaldırıldığında, bunu makaleden kaldıracağız.

Önkoşul

Öğretici: Azure'daki RHEL sanal makinelerinde SQL Server için kullanılabilirlik gruplarını yapılandırma öğreticisini tamamlayın.

Azure portalında yük dengeleyici oluşturma

Aşağıdaki yönergeler, Yük dengeleyici ve kullanılabilirlik grubu dinleyicisini yapılandırma (Azure VM'lerinde SQL Server) makalesinin Azure portalındaki yük dengeleyiciyi oluşturma ve yapılandırma bölümündeki 1 ile 4 arasında adımlarda size yol gösterir.

Yük dengeleyiciyi oluşturma

  1. Azure portalında SQL Server sanal makinelerini içeren kaynak grubunu açın.

  2. Kaynak grubunda Ekle'yi seçin.

  3. Yük dengeleyiciyi arayın ve arama sonuçlarında Microsoft tarafından yayımlanan Yük Dengeleyici'yi seçin.

  4. Load Balancer bölmesinde Oluştur'u seçin.

  5. Yük dengeleyici oluştur iletişim kutusunda yük dengeleyiciyi aşağıdaki gibi yapılandırın:

    Ayar Değer
    Adı Yük dengeleyiciyi temsil eden bir metin adı. Örneğin, sqlLB.
    Türü İç
    Sanal ağ Oluşturulan varsayılan sanal ağ olarak adlandırılmalıdır VM1VNET.
    Alt ağ SQL Server örneklerinin içinde olduğu alt ağı seçin. Varsayılan değer olmalıdır VM1Subnet.
    IP adresi ataması Static
    Özel IP adresi Kümede virtualip oluşturulan IP adresini kullanın.
    Abonelik Kaynak grubunuz için kullanılan aboneliği kullanın.
    Kaynak grubu SQL Server örneklerinin içinde olduğu kaynak grubunu seçin.
    Konum SQL Server örneklerinin bulunduğu Azure konumunu seçin.

Arka uç havuzunu yapılandırma

Azure arka uç adres havuzu arka uç havuzunu çağırır. Bu durumda arka uç havuzu, AG'nizdeki üç SQL Server örneğinin adresleridir.

  1. Kaynak grubunuzda, oluşturduğunuz yük dengeleyiciyi seçin.

  2. Ayarlar arka uç havuzları'ı seçin.

  3. Arka uç havuzlarında, arka uç adres havuzu oluşturmak için Ekle'yi seçin.

  4. Arka uç havuzu ekle bölümünde, Ad'ın altında arka uç havuzu için bir ad yazın.

  5. İlişkili'nin altında Sanal makine'yi seçin.

  6. Ortamdaki her sanal makineyi seçin ve uygun IP adresini her seçimle ilişkilendirin.

    Screenshot showing how to add a backend pool.

  7. Ekle'yi seçin.

Yoklama oluşturma

Araştırma, Azure'ın şu anda AG dinleyicisinin hangi SQL Server örneklerinin sahibi olduğunu nasıl doğruladığı tanımlar. Azure, araştırmayı oluştururken tanımladığınız bir bağlantı noktasındaki IP adresine göre hizmeti yoklar.

  1. Yük dengeleyici Ayarlar bölmesinde Sistem durumu yoklamaları'nı seçin.

  2. Sistem durumu yoklamaları bölmesinde Ekle'yi seçin.

  3. Araştırma ekle bölmesinde araştırmayı yapılandırın. Araştırmayı yapılandırmak için aşağıdaki değerleri kullanın:

    Ayar Değer
    Adı Araştırmayı temsil eden bir metin adı. Örneğin, SQLAlwaysOnEndPointProbe.
    Protokol TCP
    Bağlantı noktası Kullanılabilir herhangi bir bağlantı noktasını kullanabilirsiniz. Örneğin, 59999.
    Aralık 5
    Sağlıksız durum eşiği 2
  4. Tamam seçeneğini işaretleyin.

  5. Tüm sanal makinelerinizde oturum açın ve aşağıdaki komutları kullanarak yoklama bağlantı noktasını açın:

    sudo firewall-cmd --zone=public --add-port=59999/tcp --permanent
    sudo firewall-cmd --reload
    

Azure araştırmayı oluşturur ve ardından ag için dinleyiciye sahip olan SQL Server örneğini test etmek için kullanır.

Yük dengeleme kurallarını ayarlama

Yük dengeleme kuralları, yük dengeleyicinin trafiği SQL Server örneklerine nasıl yönlendireceklerini yapılandırıyor. Bu yük dengeleyici için, aynı anda AG dinleyici kaynağının üç SQL Server örneğinden yalnızca biri sahip olduğundan doğrudan sunucu döndürmeyi etkinleştirirsiniz.

  1. Yük dengeleyici Ayarlar bölmesinde Yük dengeleme kuralları'nı seçin.

  2. Yük dengeleme kuralları bölmesinde Ekle'yi seçin.

  3. Yük dengeleme kuralları ekle bölmesinde yük dengeleme kuralını yapılandırın. Aşağıdaki ayarları kullanın:

    Ayar Değer
    Adı Yük dengeleme kurallarını temsil eden bir metin adı. Örneğin, SQLAlwaysOnEndPointListener.
    Protokol TCP
    Bağlantı noktası 1433
    Arka uç bağlantı noktası 1433. Bu kural Kayan IP (doğrudan sunucu dönüşü) kullandığından bu değer yoksayılır.
    Sonda Bu yük dengeleyici için oluşturduğunuz yoklamanın adını kullanın.
    Oturum kalıcılığı Hiçbiri
    Boşta kalma zaman aşımı (dakika) 4
    Kayan IP (doğrudan sunucu dönüşü) Etkin

    Screenshot showing how to add a load balancing rule.

  4. Tamam seçeneğini işaretleyin.

  5. Azure yük dengeleme kuralını yapılandırıyor. Artık yük dengeleyici, trafiği AG dinleyicisini barındıran SQL Server örneğine yönlendirecek şekilde yapılandırıldı.

Bu noktada, kaynak grubunun tüm SQL Server makinelerine bağlanan bir yük dengeleyicisi vardır. Yük dengeleyici ayrıca SQL Server Always On AG dinleyicisi için bir IP adresi de içerir, böylece tüm makineler AG'ler için isteklere yanıt verebilir.

Kullanılabilirlik grubu dinleyici kaynağını oluşturma

Pacemaker'da yük dengeleyici kaynağı oluşturmadan önce önce dinleyici kaynağını oluşturun:

sudo crm configure primitive virtualip \
ocf:heartbeat:IPaddr2 \
params ip=x.y.z.a

Önceki örnekte yük x.y.z.a dengeleyici ön uç IP adresine başvurur.

Kümede yük dengeleyici kaynağını oluşturma

Yapılandırdığınız dağıtımla ilgili yönergeleri izleyin.

  1. Birincil sanal makinede oturum açın. Azure yük dengeleyici yoklama bağlantı noktasını etkinleştirmek için kaynağı oluşturmamız gerekir (örneğimizde 59999 kullanılır). Şu komutu çalıştırın:

    sudo pcs resource create azure_load_balancer azure-lb port=59999
    
  2. ve azure_load_balancer kaynağını içeren virtualip bir grup oluşturun:

    sudo pcs resource group add virtualip_group azure_load_balancer virtualip
    

Kısıtlama ekleme

  1. Azure yük dengeleyici IP adresinin ve AG kaynağının aynı düğümde çalıştığından emin olmak için bir birlikte bulundurma kısıtlaması yapılandırılmalıdır. Şu komutu çalıştırın:

    sudo pcs constraint colocation add azure_load_balancer ag_cluster-master INFINITY with-rsc-role=Master
    
  2. AG kaynağının Azure yük dengeleyici IP adresinden önce çalışır durumda olduğundan emin olmak için bir sıralama kısıtlaması oluşturun. Birlikte bulundurma kısıtlaması bir sıralama kısıtlaması anlamına gelir, ancak bu bunu zorlar.

    sudo pcs constraint order promote ag_cluster-master then start azure_load_balancer
    
  3. Kısıtlamaları doğrulamak için aşağıdaki komutu çalıştırın:

    sudo pcs constraint list --full
    

    Aşağıdaki çıkışı görmeniz gerekir:

    Location Constraints:
    Ordering Constraints:
      promote ag_cluster-master then start virtualip (kind:Mandatory) (id:order-ag_cluster-master-virtualip-mandatory)
      promote ag_cluster-master then start azure_load_balancer (kind:Mandatory) (id:order-ag_cluster-master-azure_load_balancer-mandatory)
    Colocation Constraints:
      virtualip with ag_cluster-master (score:INFINITY) (with-rsc-role:Master) (id:colocation-virtualip-ag_cluster-master-INFINITY)
      azure_load_balancer with ag_cluster-master (score:INFINITY) (with-rsc-role:Master) (id:colocation-azure_load_balancer-ag_cluster-master-INFINITY)
    Ticket Constraints:
    

Kullanılabilirlik grubu dinleyicisini oluşturma

  1. Birincil düğümde sqlcmd veya SSMS'de aşağıdaki komutu çalıştırın. Aşağıda kullanılan IP adresini IP adresiyle virtualip değiştirin.

    • SQL Server 2022 ve sonraki sürümleri:

      ALTER AVAILABILITY GROUP [ag1]
      ADD LISTENER 'ag1-listener' (
          WITH IP((
              '10.0.0.7',
              '0.0.0.0'
          )),
          PORT = 1433
      );
      GO
      
    • SQL Server 2017 ve SQL Server 2019:

      ALTER AVAILABILITY GROUP [ag1]
      ADD LISTENER 'ag1-listener' (
          WITH IP((
              '10.0.0.7',
              '255.255.255.255'
          )),
          PORT = 1433
      );
      GO
      
  2. Her VM düğümünde oturum açın. Konaklar dosyasını açmak ve her makinede için ana bilgisayar adı çözümlemesini ag1-listener ayarlamak için aşağıdaki komutu kullanın.

    sudo vi /etc/hosts
    

    Vi düzenleyicisinde, metin eklemek için yazın i ve boş bir satıra IP'sini ag1-listener ekleyin. Ardından IP'nin yanına bir boşluk ekleyin ag1-listener .

    <IP of ag1-listener> ag1-listener
    

    Vi düzenleyicisinden çıkmak için önce Esc tuşuna basın ve ardından dosyayı yazmak ve çıkmak için komutunu :wq girin. Bunu her düğümde yapın.

Dinleyiciyi ve yük devretmeyi test edin

Bu bölüm, SQL Server AG dinleyicisinde oturum açmayı ve yük devretme testi gerçekleştirmeyi kapsar.

Kullanılabilirlik grubu dinleyicisini kullanarak SQL Server'da oturum açmayı test etme

  1. SQL Server'ın birincil düğümünde AG dinleyici adını kullanarak oturum açmak için sqlcmd kullanın:

    • Daha önce oluşturulmuş bir oturum açma bilgilerini kullanın ve değerini doğru parolayla değiştirin <YourPassword> . Aşağıdaki örnek, SQL Server ile oluşturulan oturum açma bilgilerini kullanır sa .
    sqlcmd -S ag1-listener -U sa -P <YourPassword>
    
  2. Bağlandığınız sunucunun adını denetleyin. sqlcmd'de aşağıdaki komutu çalıştırın:

    SELECT @@SERVERNAME;
    

    Çıkışınız geçerli birincil düğümü göstermelidir. Bu, yük devretmeyi hiç test etmediyseniz olmalıdır VM1 .

    komutunu yazarak SQL Server oturumundan exit çıkın.

Yük devretme testi

  1. Birincil çoğaltmaya veya başka bir çoğaltmaya el ile yük devretmek için <VM2> aşağıdaki komutu çalıştırın. değerini sunucu adınızın değeriyle değiştirin <VM2> .

    sudo pcs resource move ag_cluster-master <VM2> --master
    
  2. Kısıtlamalarınızı denetlerseniz, el ile yük devretme nedeniyle başka bir kısıtlama eklendiğini görürsünüz:

    sudo pcs constraint list --full
    

    Kimliği cli-prefer-ag_cluster-master olan bir kısıtlamanın eklendiğini görürsünüz.

  3. Aşağıdaki komutu kullanarak id cli-prefer-ag_cluster-master ile kısıtlamayı kaldırın:

    sudo pcs constraint remove cli-prefer-ag_cluster-master
    
  4. komutunu sudo pcs resourcekullanarak küme kaynaklarınızı denetleyin ve birincil örneğin artık <VM2>olduğunu görmeniz gerekir.

    Dekont

    Bu makalede, Microsoft'un artık kullanmadığı köle terimi geçmektedir. Terim yazılımdan kaldırıldığında, bu makaleden kaldıracağız.

    [<username>@<VM1> ~]$ sudo pcs resource
    Master/Slave Set: ag_cluster-master [ag_cluster]
        Masters: [ <VM2> ]
        Slaves: [ <VM1> <VM3> ]
    Resource Group: virtualip_group
        azure_load_balancer        (ocf::heartbeat:azure-lb):      Started <VM2>
        virtualip  (ocf::heartbeat:IPaddr2):       Started <VM2>
    
  5. Dinleyici adını kullanarak birincil çoğaltmanızda oturum açmak için sqlcmd kullanın:

    • Daha önce oluşturulmuş bir oturum açma bilgilerini kullanın ve değerini doğru parolayla değiştirin <YourPassword> . Aşağıdaki örnek, SQL Server ile oluşturulan oturum açma bilgilerini kullanır sa .
    sqlcmd -S ag1-listener -U sa -P <YourPassword>
    
  6. Bağlı olduğunuz sunucuyu denetleyin. sqlcmd'de aşağıdaki komutu çalıştırın:

    SELECT @@SERVERNAME;
    

    Artık yük devreddiğiniz VM'ye bağlı olduğunuzu görmeniz gerekir.

Sonraki adım

SQL Server örnekleriniz için bir kullanılabilirlik grubu dinleyicisi kullanmak için bir yük dengeleyici oluşturmanız ve yapılandırmanız gerekir.