Alıştırma - Genel amaçlı yüksek kullanılabilirlik
Ö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:
- Ostress iş yükünü çalıştırma.
- Ortamın düzgün şekilde yapılandırıldığını onaylama.
- Azure SQL Veritabanı’nın yük devretmesini başlatmak için PowerShell’i kullanma.
- Ostress içindeki sonuçları görüntüleme.
- 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.
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.
İş 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
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
Pencerelerinizi bu tarayıcıyı ve Komut İstemini tek bir görünümde görebilecek şekilde yapılandırın.
Bu kodu Azure Cloud Shell terminalinde çalıştırın:
# Create a failover Invoke-AzSqlDatabaseFailover -ResourceGroupName $resourceGroup ` -ServerName $server ` -DatabaseName $database
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.
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.'
Ş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.
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.