Alıştırma - Genel amaçlı yüksek kullanılabilirlik

Tamamlandı

Önceki ünitede, Azure SQL’in yüksek kullanılabilirlik mimarisi hakkında bilgi edindiniz. Bu alıştırmada, Azure SQL Veritabanı Genel Amaçlı katmanının şirket içi yük devretme kümesi örneğine benzer şekilde nasıl davrandığını öğreneceksiniz. Bu işlevselliğin şirket içine kurulması zaman alıcı ve zorlu olabilir, ancak bu işlevsellik, Azure SQL ile kullanıma hazır şekilde sunulur.

Bu alıştırmada, iş yükü oluşturmak için önceki modülde kullanmış olabileceğiniz ostress aracını kullanacaksınız. Daha sonra, Azure Cloud Shell’deki Azure PowerShell modülünü kullanarak bir yük devretme işlemi başlatacaksınız. Son olarak, yük devretmenin ostress iş yükü üzerindeki etkisine göz atacaksınız.

Azure SQL Genel Amaçlı hizmet katmanında temel yüksek kullanılabilirlik

Bu alıştırmada aşağıdaki adımları tamamlayacaksınız:

  1. Ostress iş yükünü çalıştırma.
  2. Ortamın düzgün şekilde yapılandırıldığını onaylama.
  3. Azure SQL Veritabanı’nın yük devretmesini başlatmak için PowerShell’i kullanma.
  4. Ostress içindeki sonuçları görüntüleme.
  5. Yük devretmenin oluştuğu portalda işaretler arama.

Ostress iş yükünü çalıştırma

İlk adım uzun süre çalışan bir iş yükü oluşturmaktır. Bu iş yükü, yük devretmenin verileri okuma/yazma işlevini nasıl etkilediğini ve Azure SQL Veritabanı için Genel Amaçlı hizmet katmanında bir yük devretmenin ne kadar sürdüğünü görebilmenizi sağlar. Ostress kullanacaksınız.

  1. Yerel bilgisayarınızda bir Komut İstemi penceresi açın. Kullanılabilirlik modülünü içeren, depodaki daha önce kopyaladığınız veya indirdiğiniz dizine gitmek için cd kullanın. Örneğin, şu komutu kullanabilirsiniz:

    cd C:\Users\username\mslearn-azure-sql-fundamentals\05-Availability
    

    Ostress yürütülebilir dosyası bu klasörde bulunur. (Küçüktür.) Ostress iş yükü 50.000 kez basit bir sorguya bağlanır ve çalıştırır.

  2. İş yükünü çalıştırmak için aşağıdaki ostress betiğini kullanın. serverName yerine Azure SQL Veritabanı mantıksal sunucusunun adını yazın. password yerine parolanızı yazın.

    .\ostress.exe -S"serverName.database.windows.net" -Q"SELECT COUNT(*) FROM SalesLT.Customer" -U"cloudadmin" -d"AdventureWorks" -P"password" -n1 -r50000
    

    İş yükünüz düzgün çalışıyorsa 847 sorgusunun sonucunun Komut İstemi penceresinde art arda görüntülendiğini görmelisiniz.

    İşlem tamamlanmadan önce ostress iş yükünün çalışmasını durdurmak isterseniz terminalden Ctrl+C tuş bileşimini seçebilirsiniz.

    İş yükünü tekrar çalıştırmak istediğinizde komutu tekrar çalıştırabilirsiniz.

Yük devretmeyi başlatmak ve sonuçları gözlemlemek için Azure Cloud Shell’de PowerShell’i kullanma

  1. Bu sayfanın sağ tarafındaki Azure Cloud Shell terminalinde, ortamınızı yapılandırmak için bu PowerShell betiğini çalıştırın:

    $resourceGroup = "<rgn>[sandbox resource group name]</rgn>"
    $database = "AdventureWorks"
    $server = Get-AzureRmSqlServer -ResourceGroupName $resourceGroup
    $server = $server.ServerName
    
    # Specify your default resource group and Azure SQL Database logical server
    az configure --defaults group=$resourceGroup sql-server=$server
    
    # Confirm the defaults are set
    az configure --list-defaults
    
  2. Pencerelerinizi bu tarayıcıyı ve Komut İstemini tek bir görünümde görebilecek şekilde yapılandırın.

  3. Bu kodu Azure Cloud Shell terminalinde çalıştırın:

    # Create a failover
    Invoke-AzSqlDatabaseFailover -ResourceGroupName $resourceGroup `
        -ServerName $server `
        -DatabaseName $database
    
  4. Komut İstemi penceresinden ostress’teki sonuçları gözlemleyin. Bu komut çalışırken, Komut İstemi penceresinde görüntülenen tüm değişiklikleri gözlemlemeniz gerekir. Yük devretme gerçekleştiğinde bir süre veritabanına erişemeyeceğinizi fark edeceksiniz. Yük devretme işlemi yaklaşık 30 saniye sürer, ardından iş yükünün yeniden başarıyla çalıştığını görebilirsiniz. Uygulamanızdaki yeniden deneme mantığının önemlidir; çünkü Azure yükünüzü devrederse (birkaç nedenle olabilir), uygulamanın yük devretmenin gerçekleşmesi için gereken süreden daha uzun süre kapalı kalmasını veya başarısız olmasını istemezsiniz.

  5. Komut üzerine yük devretme oluşturma işlevi belirli senaryolarda faydalı olabilir. Hizmet kısıtlamalarının bu işlemi çok sık yapmanızı önleyeceğini göz önünde bulundurun. Başka bir yük devretme denemesi yapmak için aşağıdaki komutu çalıştırın:

    # Create a failover again
    Invoke-AzSqlDatabaseFailover -ResourceGroupName $resourceGroup `
        -ServerName $server `
        -DatabaseName $database
    

    Şuna benzer bir hata görürsünüz:

    Invoke-AzSqlDatabaseFailover: Long running operation failed with status 'Failed'. Additional Info:'There was a recent failover on the database or pool if database belongs in an elastic pool.  At least 15 minutes must pass between database failovers.'
    
  6. Şimdi pencereyi ve sonra Ctrl+C tuş bileşimini seçerek Komut İstemi penceresinde iş yükünü durdurabilirsiniz. Sonraki alıştırmada aynı iş yükünü kullanacağınız için pencereyi açık bırakabilirsiniz.

    Yük devretmenin gerçekleşip gerçekleşmediğini denetlemenin bir yolu olup olmadığını merak ediyor olabilirsiniz. Şu anda net bir “Yük devretme gerçekleşti” iletisi yoktur, ancak Kaynak Durumu iyi bir gösterge olabilir.

  7. Azure portalda Azure SQL veritabanınıza gidin. Sol bölmedeki Yardım'ın altında Kaynak Durumu'ı seçin. Yük devretmenin ardından 5 ila 15 dakika içinde, aşağıdaki ekran görüntüsünde gösterilene benzer bir sistem durumu olayıyla karşılaşabilirsiniz. Bu olay pek çok şeyin göstergesi olabilir. Olasılıklardan biri, bir şey olması ve Azure’ın yük devretmesidir.

    Azure portalda bir sistem durumu olayını gösteren ekran görüntüsü.