Aracılığıyla paylaş


Kullanıcı tarafından başlatılan el ile yük devretme ile örneği yeniden başlatma - Azure SQL Yönetilen Örneği

Şunlar için geçerlidir: Azure SQL Yönetilen Örneği

Bu makalede PowerShell, Azure CLI veya REST API kullanarak ikincil işlem düğümüne el ile kullanıcı tarafından başlatılan bir yük devretme gerçekleştirerek Azure SQL Yönetilen Örneği nasıl yeniden başlatıldığı açıklanmaktadır.

Genel Amaçlı (GP) ve İş Açısından Kritik (BC) hizmet katmanlarında bir birincil düğümün yükünü devretmek ve İBH hizmet katmanında ikincil salt okunur çoğaltma düğümünü el ile devretmek mümkündür.

Not

Bu makaledeki yük devretme, SQL Server veritabanı altyapısı işleminin ikincil düğümde başlatılmasını ifade eder ve yük devretme gruplarının bölgeler arası yük devretmesi ile ilgili değildir.

El ile yük devretme ne zaman kullanılır?

SQL Yönetilen Örneği platformunun temel bir parçası olan kullanılabilirlik, SQL Server veritabanı altyapısı işlemini barındırmak için yerel bekleme işlem düğümleri sağlayarak veritabanı uygulamalarınız için saydam bir şekilde çalışır. Yük devretme, SQL Server veritabanı altyapısı işlemi birincil işlem düğümünde çevrimdışına alındığında ve ikincil işlem düğümünde çevrimiçi duruma getirildiğinde gerçekleşir. Genellikle SQL yönetilen örneği işlem düğümleri arasındaki yük devretme işlemleri otomatik olarak gerçekleştirilir ve bir hata algılandığında, bir düğümün düzeyi düşürüldüyse veya normal aylık yazılım güncelleştirmeleri sırasında platform tarafından yönetilir.

Yük devretme işleminin tamamı, SQL Server veritabanı altyapısı işleminin ikincil düğümde çevrimiçi duruma getirilmesi, veritabanı durumunun doğrulanması ve son olarak istemci bağlantılarının yeni birincil düğüme yeniden yönlendirilmesinden oluşur. İstemci bağlantıları, yük devretme işleminin son adımı sırasında genellikle bir dakikadan kısa bir süre boyunca başarısız olur.

Aşağıdaki nedenlerle farklı bir düğümde altyapı işlemini yeniden başlatmak için el ile yük devretme yürütebilirsiniz:

  • Başarısız oturum açma işlemleri veya performans sorunları nedeniyle yavaşlık.
  • Üretime dağıtmadan önce uygulamayı yük devretme dayanıklılığı için test etme.
  • Otomatik yük devretmelerde hata dayanıklılığı için uçtan uca sistemleri test etme.
  • Yük devretmenin mevcut veritabanı oturumlarını nasıl etkilediğini test etme.
  • Sorgu performansı düşüşü (örneğin yeniden başlatılması, performans sorununun azaltılmasına yardımcı olabilir).

Üretime dağıtmadan önce uygulamalarınızın yük devretmeye dayanıklı olduğundan emin olmak, üretimde uygulama hatası riskini azaltmaya yardımcı olur ve müşterileriniz için uygulama kullanılabilirliğine katkıda bulunur. Aşağıdaki videoyla uygulamalarınızı bulut hazırlığı için test etme hakkında daha fazla bilgi edinin:

Aşağıdaki tabloda, hizmet katmanına ve kullanılabilirlik modeline göre yük devretme işlemi sırasında SQL Yönetilen Örneği beklenen davranışı açıklanmaktadır:

Hizmet katmanı Kullanılabilirlik modeli Beklenen yük devretme davranışı Olası yük devretme davranışı (özel durumlar)
Genel Amaçlı Yerel yedeklilik
(Tek kullanılabilirlik alanı)
SQL işlemi aynı VM'de yeniden başlatılır. SQL işlemi farklı bir VM'de yeniden başlatılır.
Genel Amaçlı Alanlar arası yedeklilik (önizleme)
(Birden çok kullanılabilirlik alanı)
SQL işlemi aynı VM'de yeniden başlatılır. SQL işlemi farklı bir VM'de yeniden başlatılır.
İş Açısından Kritik Yerel yedeklilik
(Tek kullanılabilirlik alanı)
Rastgele ikincil çoğaltma birincile yükseltilir. Yok
İş Açısından Kritik Alanlar arası yedeklilik
(Birden çok kullanılabilirlik alanı)
Rastgele ikincil çoğaltma, aynı veya farklı kullanılabilirlik alanında birincil çoğaltmaya yükseltilir. Yok

İzinler

Yük devretme başlatan kullanıcıların aşağıdaki Azure rollerinden birine sahip olması gerekir:

  • Abonelik Sahibi rolü veya
  • Katkıda Bulunan rolünü SQL Yönetilen Örneği veya
  • Aşağıdaki izne sahip özel rol:
    • Microsoft.Sql/managedInstances/failover/action

El ile yük devretme ile örneği yeniden başlatma

PowerShell, Azure CLI veya REST API kullanarak bir örneği el ile yük devretme ile yeniden başlatabilirsiniz.

Az.Sql'in en düşük sürümünün v2.9.0 olması gerekir. Her zaman en son PowerShell sürümünün kullanılabildiği Azure portalından Azure Cloud Shell'i kullanmayı göz önünde bulundurun.

Önkoşul olarak, gerekli Azure modüllerini yüklemek için aşağıdaki PowerShell betiğini kullanın. Ayrıca, yük devretmek istediğiniz SQL Yönetilen Örneği bulunduğu aboneliği seçin.

$subscription = 'enter your subscription ID here'
Install-Module -Name Az
Import-Module Az.Accounts
Import-Module Az.Sql

Connect-AzAccount
Select-AzSubscription -SubscriptionId $subscription

Hem BC hem de GP hizmet katmanı için geçerli olan birincil düğümün yük devretmesini başlatmak için aşağıdaki örnekle Birlikte Invoke-AzSqlInstanceFailover PowerShell komutunu kullanın.

$ResourceGroup = 'enter resource group of your MI'
$ManagedInstanceName = 'enter MI name'
Invoke-AzSqlInstanceFailover -ResourceGroupName $ResourceGroup -Name $ManagedInstanceName

Yalnızca BC hizmet katmanı için geçerli olan ikincil düğümü okumak için aşağıdaki PowerShell komutunu kullanın.

$ResourceGroup = 'enter resource group of your MI'
$ManagedInstanceName = 'enter MI name'
Invoke-AzSqlInstanceFailover -ResourceGroupName $ResourceGroup -Name $ManagedInstanceName -ReadableSecondary

Yük devretmeyi izleme

Kullanıcı tarafından başlatılan yük devretme işleminin ilerleme durumunun izlenmesi, İş Açısından Kritik ve Genel Amaçlı hizmet katmanlarındaki örnekler için farklılık gösterir.

Kullanıcı tarafından başlatılan yük devretme işleminin ilerleme durumunu izlemek için şunu kullanın:

  • Genel Amaçlı hizmet katmanı için sistem çalışma süresini denetlemeyi sys.dm_os_sys_info.
  • sys.dm_hadr_fabric_replica_statesİş Açısından Kritik hizmet katmanı için kullanılabilir çoğaltmaları denetlemek için.

Yük devretme işleminin son adımı, istemci bağlantılarının yeni birincil düğüme yeniden yönlendirilmesidir. Genellikle bir dakikanın altında süren yük devretme sırasında istemcinizden kısa bağlantı kaybı, hizmet katmanından bağımsız olarak yük devretmenin başarılı olduğunu gösterir.

Genel Amaçlı hizmet katmanı

Aşağıdaki T-SQL örneği, Genel Amaçlı hizmet katmanı için düğümdeki SQL işleminin çalışma süresini gösterir:

SELECT sqlserver_start_time, sqlserver_start_time_ms_ticks FROM sys.dm_os_sys_info

SQL işlemi başlangıç saati, düğümde SQL Server veritabanı altyapısı işleminin başlatıldığı zamandır. Yük devretme tamamlandıktan sonra zaman yeniden başlatılır. Yük devretme işleminin ilerleme durumunu izlemek için Genel Amaçlı hizmet katmanında bir örneğin yük devretmesini başlatmadan önce ve sonra bu sorguyu çalıştırın.

İş Açısından Kritik hizmet katmanı

Aşağıdaki T-SQL örneği, hangi düğümün şu anda İş Açısından Kritik hizmet katmanı için birincil çoğaltma olduğunu gösterir:

SELECT DISTINCT replication_endpoint_url, fabric_replica_role_desc FROM sys.dm_hadr_fabric_replica_states

Yük devretme tamamlandıktan sonra birincil çoğaltmayı barındıran düğüm değişir. Yük devretme işleminin ilerleme durumunu izlemek için İş Açısından Kritik hizmet katmanındaki bir örneğin yük devretmesini başlatmadan önce ve sonra bu sorguyu çalıştırın.

Not

Örnek altyapısı, yük devretmeyi başlatmadan önce ikincil düğümdeki işlemlerin birincil düğümdeki işlemlere yakalanmasını sağladığından, yüksek yoğunluklu iş yükleri sırasında tam yük devretme işleminin tamamlanması birkaç dakika sürebilir.

Sınırlamalar

Kullanıcı tarafından başlatılan el ile yük devretme işlemleriyle ilgili aşağıdaki işlevsel sınırlamaları göz önünde bulundurun:

  • Her 15 dakikada bir aynı SQL Yönetilen Örneği yalnızca bir (1) yük devretme başlatılabilir.
  • Yük devretmelere izin verilmez:
    • Yeni veritabanı için ilk tam yedekleme otomatik yedekleme sistemleri tarafından tamamlanana kadar.
    • veritabanı geri yükleme işlemi devam ediyorsa.
  • İş Açısından Kritik hizmet katmanındaki örnekler için:
    • Yük devretme isteğinin kabul edilmesi için çoğaltma çekirdeklerinin mevcut olması gerekir.
    • Yük devretmenin hangi okunabilir ikincil çoğaltmada başlatılacağını belirtmek mümkün değildir.