Salt okuma sorgusu iş yüklerini boşaltmak için salt okuma çoğaltmaları kullanın
Uygulama hedefi:
Azure SQL Veritabanı
Azure SQL yönetilen örneği
yüksek kullanılabilirlik mimarisininbir parçası olarak, Premium ve İş Açısından Kritik hizmet katmanındaki her tek veritabanı, esnek havuz veritabanı ve yönetilen örnek, birincil bir okuma-yazma çoğaltması ve birkaç ikincil salt okuma çoğaltmalarıyla otomatik olarak sağlanır. İkincil çoğaltmalar, birincil çoğaltmayla aynı işlem boyutuyla sağlanır. Okuma ölçeği genişletme özelliği, salt yazılır çoğaltmalardan birinin işlem kapasitesini kullanarak, bunları okuma/yazma çoğaltmasında çalıştırmak yerine salt okunurdur. Bu şekilde, bazı salt okunurdur bazı iş yükleri, okuma-yazma iş yüklerinden yalıtılabilir ve performanslarını etkilemeyecektir. Özelliği, analiz gibi mantıksal olarak ayrılmış salt okunurdur iş yüklerini içeren uygulamalara yöneliktir. Premium ve İş Açısından Kritik hizmet katmanlarında uygulamalar, ek bir ücret ödemeden bu ek kapasiteyi kullanarak performans avantajları elde edebilir.
En az bir ikincil çoğaltma eklendiğinde, genişleme özelliği de hiper ölçek hizmet katmanında kullanılabilir. Hiper ölçek ikincil adlandırılmış çoğaltmalar bağımsız ölçeklendirme, erişim yalıtımı, iş yükü yalıtımı, çok büyük okuma ölçeği genişletme ve diğer avantajlar sağlar. Birden çok ikincil ha çoğaltması, BIR ikincil ha çoğaltmasında bulunandan daha fazla kaynak gerektiren Yük Dengeleme salt okuma iş yükleri için kullanılabilir.
Temel, standart ve Genel Amaçlı hizmet katmanlarının yüksek kullanılabilirlik mimarisi herhangi bir çoğaltma içermez. Bu hizmet katmanlarında okuma ölçeği genişletme özelliği kullanılamaz. Ancak, coğrafi çoğaltmalar bu hizmet katmanlarında benzer işlevler sağlayabilir.
aşağıdaki diyagramda Premium ve İş Açısından Kritik veritabanları ve yönetilen örnekler için özellik gösterilmektedir.

yeni Premium, İş Açısından Kritik ve hiper ölçekli veritabanlarında, okuma ölçeği genişletme özelliği varsayılan olarak etkindir.
Not
Yönetilen örneğin İş Açısından Kritik hizmet katmanında ve en az bir ikincil çoğaltmayla hiper ölçekli veritabanları için okuma ölçeği genişletme her zaman etkindir.
SQL bağlantı dizeniz ile yapılandırıldıysa ApplicationIntent=ReadOnly , uygulama o veritabanının veya yönetilen örneğin salt okunurdur bir çoğaltmasına yönlendirilir. Özelliğini kullanma hakkında daha fazla bilgi için ApplicationIntent bkz. uygulama hedefini belirtme.
uygulamanın, SQL bağlantı dizesindeki ayarından bağımsız olarak birincil çoğaltmaya bağlanmasını sağlamak istiyorsanız ApplicationIntent , veritabanını oluştururken veya yapılandırmasını değiştirmeksizin, okuma ölçeğini açıkça devre dışı bırakmanız gerekir. örneğin, veritabanınızı standart veya Genel Amaçlı katmanından Premium veya İş Açısından Kritik sürümüne yükseltiyorsanız ve tüm bağlantılarınızın birincil çoğaltmaya gitmeye devam etmesini istiyorsanız, okuma ölçeğini devre dışı bırakın. Devre dışı bırakma hakkında daha fazla bilgi için bkz. okuma ölçeğini etkinleştirme ve devre dışı bırakma.
Not
sorgu deposu ve SQL Profiler özellikleri salt okuma çoğaltmalarda desteklenmez.
Veri tutarlılığı
Birincil çoğaltmada yapılan veri değişiklikleri zaman uyumsuz olarak salt okunurdur. Salt okunur bir çoğaltmaya bağlı olan bir oturum içinde, okuma her zaman işlemsel olarak tutarlıdır. Ancak, veri yayma gecikmesi değişken olduğundan, farklı çoğaltmalar, birincil ve birbirlerine göre biraz farklı noktalarda veri döndürebilir. Salt okuma çoğaltması kullanılamaz hale gelirse ve oturum yeniden bağlanırsa, özgün çoğaltmadan farklı bir zaman noktasındaki bir çoğaltmaya bağlanabilir. Benzer şekilde, bir uygulama bir okuma-yazma oturumu kullanarak verileri değiştirirse ve salt okunur bir oturum kullanarak bunu hemen okuduğunda, en son değişikliklerin salt okunur çoğaltmada hemen görünür olması mümkündür.
Birincil çoğaltma ve salt okuma çoğaltmaları arasındaki tipik veri yayma gecikmesi, on yedi milisaniyeye tek basamaklı saniyeye kadar farklılık gösterir. Ancak, veri yayma gecikmesi üzerinde sabit bir üst sınır yoktur. Çoğaltma üzerinde yüksek kaynak kullanımı gibi koşullar, gecikme süresini önemli ölçüde artırabilir. Oturumlar arasında garantili veri tutarlılığı gerektiren veya kaydedilmiş verilerin hemen okunabilir olmasını gerektiren uygulamalar, birincil çoğaltmayı kullanmalıdır.
Not
Veri yayma gecikmesini izlemek için bkz. salt okuma çoğaltmasını izleme ve sorun giderme.
salt bir çoğaltma Bağlan
Bir veritabanı için okuma ölçeğini etkinleştirdiğinizde, ApplicationIntent istemci tarafından belirtilen bağlantı dizesindeki seçenek bağlantının yazma çoğaltmasına mı yoksa salt bir salt bir kopyaya mı yönlendirildiğini belirler. Özellikle, ApplicationIntent değer ReadWrite (varsayılan değer) ise, bağlantı okuma-yazma çoğaltmasına yönlendirilir. Bu, ApplicationIntent bağlantı dizesinde bulunmayan davranış ile aynıdır. ApplicationIntentDeğer ise ReadOnly , bağlantı salt okunurdur ve bir kopyaya yönlendirilir.
Örneğin, aşağıdaki bağlantı dizesi istemciyi salt bir salt bir kopyaya bağlar (açılı ayraçlar içindeki öğeleri, ortamınız için doğru değerlerle değiştirerek ve açılı ayraçları bırakarak):
Server=tcp:<server>.database.windows.net;Database=<mydatabase>;ApplicationIntent=ReadOnly;User ID=<myLogin>;Password=<myPassword>;Trusted_Connection=False; Encrypt=True;
Aşağıdaki bağlantı dizelerinden biri, istemciyi bir okuma-yazma çoğaltmasına bağlar (açılı ayraçlar içindeki öğeleri, ortamınız için doğru değerlerle değiştirerek ve açılı ayraçları bırakarak):
Server=tcp:<server>.database.windows.net;Database=<mydatabase>;ApplicationIntent=ReadWrite;User ID=<myLogin>;Password=<myPassword>;Trusted_Connection=False; Encrypt=True;
Server=tcp:<server>.database.windows.net;Database=<mydatabase>;User ID=<myLogin>;Password=<myPassword>;Trusted_Connection=False; Encrypt=True;
Bir bağlantının salt bir çoğaltma çoğaltması olduğunu doğrulama
Veritabanı bağlamında aşağıdaki sorguyu çalıştırarak salt bir salt okuma çoğaltmasına bağlanıp bağlanmadığını doğrulayabilirsiniz. Salt bir kopyaya bağlandığınızda READ_ONLY döndürülür.
SELECT DATABASEPROPERTYEX(DB_NAME(), 'Updateability');
Not
Premium ve İş Açısından Kritik hizmet katmanlarında, belirli bir zamanda salt okuma çoğaltmalarından yalnızca birine erişilebilir. Hiper ölçek birden çok salt okuma çoğaltmasını destekler.
Salt okuma çoğaltmaları izleme ve sorunlarını giderme
Bir salt okuma çoğaltmasına bağlanıldığında, dinamik yönetim görünümleri (DMVs) çoğaltmanın durumunu yansıtır ve izleme ve sorun giderme amacıyla sorgulanabilir. Veritabanı altyapısı, çok çeşitli izleme verilerini açığa çıkarmak için birden çok görünüm sağlar.
Aşağıdaki görünümler genellikle çoğaltma izleme ve sorun giderme için kullanılır:
| Name | Amaç |
|---|---|
| sys.dm_db_resource_stats | Son saat için CPU, veri GÇ ve hizmet hedefi sınırlarına göre günlük yazma kullanımı dahil olmak üzere kaynak kullanım ölçümleri sağlar. |
| sys.dm_os_wait_stats | Veritabanı altyapısı örneği için toplam bekleme istatistikleri sağlar. |
| sys.dm_database_replica_states | Çoğaltma sistem durumu ve eşitleme istatistikleri sağlar. Sıra boyutunu Yinele ve yineleme hızı, salt okuma çoğaltmasında veri yayma gecikmesi göstergeleri olarak işlev gösterir. |
| sys.dm_os_performance_counters | Veritabanı altyapısı performans sayaçlarını sağlar. |
| sys.dm_exec_query_stats | Yürütmeler sayısı, kullanılan CPU süresi vb. gibi sorgu başına yürütme istatistikleri sağlar. |
| sys.dm_exec_query_plan () | Önbelleğe alınmış sorgu planları sağlar. |
| sys.dm_exec_sql_text () | Önbelleğe alınmış bir sorgu planı için sorgu metni sağlar. |
| sys.dm_exec_query_profiles | Sorgular yürütülürken gerçek zamanlı sorgu ilerleme durumu sağlar. |
| sys.dm_exec_query_plan_stats () | Bir sorgu için çalışma zamanı İstatistikleri dahil olmak üzere, bilinen son gerçek yürütme planını sağlar. |
| sys.dm_io_virtual_file_stats () | Tüm veritabanı dosyaları için depolama ıOPS, aktarım hızı ve gecikme süresi istatistikleri sağlar. |
Not
sys.resource_stats sys.elastic_pool_resource_stats Mantıksal ana veritabanındaki ve DMVs, birincil çoğaltmanın kaynak kullanım verilerini döndürür.
Genişletilmiş olaylarla salt okuma çoğaltmalarını izleme
Bir salt okuma çoğaltmasına bağlanıldığında genişletilmiş bir olay oturumu oluşturulamaz. ancak, Azure SQL Veritabanı ' de, birincil çoğaltmada oluşturulup değiştirilen veritabanı kapsamındaki genişletilmiş olay oturumlarının tanımları, coğrafi çoğaltmalar ve salt okuma çoğaltmalarında olay yakalama dahil olmak üzere salt okuma çoğaltmalarına çoğaltılır.
Birincil çoğaltmadan bir oturum tanımına dayalı bir salt okuma çoğaltmasındaki genişletilmiş bir olay oturumu, birincil çoğaltmadan bağımsız olarak başlatılabilir ve durdurulabilir. Birincil çoğaltmaya genişletilmiş bir olay oturumu bırakıldığında, bu, tüm salt okunurdur çoğaltmalarda da bırakılır.
Salt okuma çoğaltmalarda işlem yalıtım düzeyi
Salt okuma çoğaltmaları üzerinde çalışan sorgular her zaman anlık görüntü işlem yalıtım düzeyine eşlenir. Anlık görüntü yalıtımı, okuyucuların yazarları engellediği senaryolara engel olmak için satır sürümü oluşturmayı kullanır.
Nadir durumlarda, bir anlık görüntü yalıtım işlemi başka bir eşzamanlı işlemde değiştirilmiş nesne meta verilerine erişirse, "%. * ls" veritabanında anlık görüntü yalıtımı işlemi başarısız 3961olabilir, çünkü deyimin eriştiği nesne, bu işlemin başlamasından bu yana başka bir eşzamanlı IŞLEMDE bir DDL ifadesiyle değiştirilmiştir. Meta verilerde sürüm bilgisi olmadığından işleme izin verilmedi. Anlık görüntü yalıtımıyla karıştırıldığında, meta verilere yönelik eşzamanlı güncelleştirme tutarsızlığa neden olabilir. "
Salt okuma çoğaltmalarda uzun süre çalışan sorgular
Salt okuma çoğaltmalarda çalıştırılan sorguların sorguda başvurulan nesneler için meta verilere erişmesi gerekir (tablolar, dizinler, istatistikler, vb.) Nadir durumlarda, bir sorgu, salt okuma çoğaltmasındaki aynı nesne üzerinde bir kilit tuttuğunda, birincil çoğaltmada nesne meta verileri değiştirilirse, sorgu birincil çoğaltmadan salt okuma çoğaltmasına değişiklikler uygulayan işlemi engelleyebilir . Bu tür bir sorgu uzun bir süre çalıştırmak olsaydı, salt okuma çoğaltmasının birincil çoğaltmayla önemli ölçüde eşitlenmemesine neden olur. yük devretme hedefleri (Premium ve İş Açısından Kritik hizmet katmanlarındaki ikincil çoğaltmalar, hiper ölçek HA çoğaltmaları ve tüm coğrafi çoğaltmalar) olan çoğaltmalar için, bu, yük devretme gerçekleşiyorsa, beklenen kapalı kalma süresinden daha uzun bir süre içinde veritabanı kurtarmayı erteleyebilir.
Bir salt okuma çoğaltmasındaki uzun süre çalışan bir sorgu doğrudan veya dolaylı olarak bu tür engellenmeye neden oluyorsa, aşırı veri gecikmesini ve olası veritabanı kullanılabilirliği etkisini önlemek için otomatik olarak sonlandırılabilir. Oturum, "yüksek öncelikli bir DDL işlemi nedeniyle oturumunuz kesildi" veya hata 3947 "1219 hatası alacak," ikincil işlem yeniden yakalayamadığı için işlem iptal edildi. İşlemi yeniden deneyin. "
Not
Sorguları salt bir çoğaltmada çalıştırırken 3961, 1219 veya 3947 hatası alırsanız, sorguyu yeniden deneyin. Alternatif olarak, uzun süre çalışan sorgular ikincil çoğaltmalarda yürütülirken, birincil çoğaltmadaki nesne meta verilerini (şema değişiklikleri, Dizin bakımı, istatistik güncelleştirmeleri vb.) değiştiren işlemlerden kaçının.
İpucu
Premium ve İş Açısından Kritik hizmet katmanlarında, salt okunurdur redo_queue_size redo_rate sys.dm_database_replica_states dmv içindeki ve sütunları, salt okuma çoğaltmasında veri yayma gecikmesi göstergeleri olarak hizmet veren veri eşitleme işlemini izlemek için kullanılabilir.
Okuma ölçeğini etkinleştirme ve devre dışı bırakma
Premium, İş Açısından Kritik ve hiper ölçek hizmeti katmanlarında varsayılan olarak okuma ölçeği genişletme etkindir. Okuma ölçeği genişletme, temel, standart veya Genel Amaçlı Hizmet katmanlarında etkinleştirilemez. Okuma ölçeği genişletme, sıfır ikincil çoğaltmalarla yapılandırılmış hiper ölçek veritabanlarında otomatik olarak devre dışı bırakılır.
aşağıdaki yöntemleri kullanarak, Premium veya İş Açısından Kritik hizmet katmanlarında tek veritabanlarında ve esnek havuz veritabanlarında okuma ölçeğini devre dışı bırakıp yeniden etkinleştirebilirsiniz.
Not
Tek veritabanları ve elastik havuz veritabanları için, okuma ölçeğini devre dışı bırakma özelliği geriye dönük uyumluluk için sağlanır. İş Açısından Kritik yönetilen örneklerde okuma ölçeği genişletme devre dışı bırakılamaz.
Azure portal
Veritabanı yapılandırma dikey penceresinde okuma ölçeği genişletme ayarını yönetebilirsiniz.
PowerShell
Önemli
PowerShell Azure Resource Manager modülü hala desteklenmektedir, ancak gelecekteki tüm geliştirmeler az. SQL modülüne yöneliktir. Azure Resource Manager modülü, en az Aralık 2020 ' e kadar hata düzeltmeleri almaya devam edecektir. Az Module ve Azure Resource Manager modüllerinde komutların bağımsız değişkenleri önemli ölçüde aynıdır. uyumluluklarını hakkında daha fazla bilgi için bkz. new Azure PowerShell konusuna giriş Az module.
Azure PowerShell 'de okuma ölçeğini yönetme, aralık 2016 Azure PowerShell yayını veya daha yenisini gerektirir. En yeni PowerShell sürümü için bkz. Azure PowerShell.
Set-azsqldatabase cmdlet 'ini çağırarak ve parametresi için istenen değeri (veya) geçirerek Azure PowerShell okuma ölçeğini devre dışı bırakabilir veya yeniden etkinleştirebilirsiniz Enabled Disabled -ReadScale .
Var olan bir veritabanında okuma ölçeğini devre dışı bırakmak için (açılı ayraçlar içindeki öğeleri, ortamınız için doğru değerlerle değiştirerek ve açılı ayraçları bırakarak):
Set-AzSqlDatabase -ResourceGroupName <resourceGroupName> -ServerName <serverName> -DatabaseName <databaseName> -ReadScale Disabled
Yeni bir veritabanında okuma ölçeğini devre dışı bırakmak için (açılı ayraçlar içindeki öğeleri, ortamınız için doğru değerlerle değiştirerek ve açılı ayraçları bırakarak):
New-AzSqlDatabase -ResourceGroupName <resourceGroupName> -ServerName <serverName> -DatabaseName <databaseName> -ReadScale Disabled -Edition Premium
Var olan bir veritabanında okuma ölçeğini yeniden etkinleştirmek için (açılı ayraçlar içindeki öğeleri, ortamınız için doğru değerlerle değiştirerek ve açılı ayraçları bırakarak):
Set-AzSqlDatabase -ResourceGroupName <resourceGroupName> -ServerName <serverName> -DatabaseName <databaseName> -ReadScale Enabled
REST API
Okuma ölçeği genişletme devre dışı bırakılmış bir veritabanı oluşturmak veya var olan bir veritabanının ayarını değiştirmek için, readScale Enabled Disabled Aşağıdaki örnek istekte olduğu gibi özelliği veya olarak ayarlanan özelliği ile aşağıdaki yöntemi kullanın.
Method: PUT
URL: https://management.azure.com/subscriptions/{SubscriptionId}/resourceGroups/{GroupName}/providers/Microsoft.Sql/servers/{ServerName}/databases/{DatabaseName}?api-version= 2014-04-01-preview
Body: {
"properties": {
"readScale":"Disabled"
}
}
Daha fazla bilgi için bkz. veritabanları-oluştur veya Güncelleştir.
tempdbVeritabanını salt bir çoğaltma çoğaltması üzerinde kullanma
tempdbBirincil çoğaltmadaki veritabanı salt okunurdur çoğaltmalara çoğaltılmaz. Her çoğaltma tempdb , çoğaltma oluşturulduğunda oluşturulan kendi veritabanına sahiptir. Bu tempdb , güncelleştirilebilir olduğunu ve sorgu yürütme sırasında değiştirilmesini sağlar. Salt okuma iş yükünüz nesneleri kullanmaya bağımlıysa tempdb , salt okunurdur bir çoğaltmaya bağlıyken, bu nesneleri aynı iş yükünün parçası olarak oluşturmanız gerekir.
Coğrafi olarak çoğaltılan veritabanları ile okuma ölçeğini kullanma
Coğrafi olarak çoğaltılan ikincil veritabanları, birincil veritabanlarıyla aynı yüksek kullanılabilirlik mimarisine sahiptir. Coğrafi olarak çoğaltılan ikincil veritabanına okuma ölçeği kullanımı etkinken bağlanıyorsanız, oturumunuz, ApplicationIntent=ReadOnly birincil yazılabilir veritabanına yönlendirildikleri gibi yüksek kullanılabilirlik Çoğaltmalarından birine yönlendirilir. Olmadan oturumlar, ApplicationIntent=ReadOnly coğrafi olarak çoğaltılan ikincil kopyanın birincil çoğaltmasına yönlendirilir ve bu da salt okunurdur.
Bu şekilde, coğrafi çoğaltma oluşturmak, bir okuma-yazma birincil veritabanı için birden çok ek salt okuma çoğaltması sağlayabilir. Her ek coğrafi çoğaltma, başka bir salt okuma çoğaltması kümesi sağlar. Coğrafi çoğaltmalar, birincil veritabanının bölgesi de dahil olmak üzere herhangi bir Azure bölgesinde oluşturulabilir.
Not
Birden fazla HA çoğaltması olan bir hiper ölçekli coğrafi çoğaltma dışında, coğrafi olarak çoğaltılan bir ikincil veritabanının çoğaltmaları arasında otomatik olarak hepsini bir kez deneme veya diğer yük dengeli yönlendirme yoktur. Bu durumda, salt okuma amacına sahip oturumlar, coğrafi çoğaltmanın tüm HA çoğaltmaları üzerine dağıtılır.
Salt okuma çoğaltmalarda özellik desteği
Salt okuma çoğaltmalarının bazı özelliklerinin bir listesi aşağıda verilmiştir:
- Salt okuma Çoğaltmalarından denetim otomatik olarak etkinleştirilir. depolama klasörlerinin, adlandırma kurallarının ve günlük biçiminin hiyerarşisi hakkında daha fazla bilgi için bkz. SQL Veritabanı denetim günlüğü biçimi.
- Sorgu performansı içgörüleri , sorgu deposundakiverileri kullanır, bu, şu anda salt okuma çoğaltmasındaki etkinliği izlemez. Sorgu Performansı İçgörüleri, salt okuma çoğaltması üzerinde yürütülen sorguları göstermez.
- Otomatik ayarlama, otomatik ayarlama kağıdınagöre açıklandığı şekilde sorgu deposuna dayanır. Otomatik ayarlama yalnızca birincil çoğaltmada çalışan iş yükleri için çalışır.
Sonraki adımlar
- hiper ölçek sunumu SQL Veritabanı hakkında bilgi için bkz. hyperscale hizmet katmanı.