Azure SQL Veritabanı DTU tabanlı modelden sanal çekirdek tabanlı modele geçirme
Şunlar için geçerlidir: Azure SQL Veritabanı
Bu makalede, Azure SQL Veritabanı veritabanınızı DTU tabanlı satın alma modelinden sanal çekirdek tabanlı satın alma modeline geçirme açıklanmaktadır.
Veritabanını geçirme
Veritabanını DTU tabanlı satın alma modelinden sanal çekirdek tabanlı satın alma modeline geçirmek, Temel , Standart ve Premium hizmet katmanlarında hizmet hedefleri arasında benzer süre ve geçiş işleminin sonunda minimum kapalı kalma süresiyle ölçeklendirmeye benzer. Sanal çekirdek tabanlı satın alma modeline geçirilen bir veritabanı, Hiper Ölçek hizmet katmanına geçirilen veritabanları dışında, aynı adımlar kullanılarak herhangi bir zamanda DTU tabanlı satın alma modeline geri geçirilebilir.
Azure portalı, PowerShell, Azure CLI ve Transact-SQL kullanarak veritabanınızı farklı bir satın alma modeline geçirebilirsiniz.
Azure portalını kullanarak veritabanınızı farklı bir satın alma modeline geçirmek için şu adımları izleyin:
Sanal çekirdek hizmet katmanını ve hizmet hedefini seçin
Çoğu DTU sanal çekirdek geçiş senaryosu için, Temel ve Standart hizmet katmanlarındaki veritabanları ve elastik havuzlar Genel Amaçlı hizmet katmanıyla eşler. Premium hizmet katmanındaki veritabanları ve elastik havuzlar, İş Açısından Kritik hizmet katmanıyla eşler. Uygulama senaryosuna ve gereksinimlerine bağlı olarak Hiper Ölçek hizmet katmanı genellikle tüm DTU hizmet katmanlarında veritabanları ve elastik havuzlar için geçiş hedefi olarak kullanılabilir.
Sanal çekirdek modelinde geçirilen veritabanı için hizmet hedefini veya işlem boyutunu seçmek için temel ama yaklaşık bir temel kural kullanabilirsiniz: Temel veya Standart katmanlardaki her 100 DTU en az 1 sanal çekirdek gerektirir ve Premium katmanındaki her 125 DTU en az 1 sanal çekirdek gerektirir.
İpucu
Bu kural yaklaşıktır çünkü DTU veritabanı veya elastik havuz için kullanılan belirli donanım türünü dikkate almaz.
DTU modelinde sistem veritabanınız veya elastik havuzunuz için kullanılabilir donanım yapılandırmasını seçebilir. Ayrıca, DTU modelinde daha yüksek veya daha düşük DTU veya eDTU değerleri seçerek sanal çekirdek sayısı (mantıksal CPU) üzerinde yalnızca dolaylı denetime sahip olursunuz.
Sanal çekirdek modelinde müşterilerin hem donanım yapılandırması hem de sanal çekirdek sayısı (mantıksal CPU) için açık bir seçim yapmaları gerekir. DTU modeli bu seçenekleri sunmasa da, donanım türü ve her veritabanı ve elastik havuz için kullanılan mantıksal CPU sayısı dinamik yönetim görünümleri aracılığıyla kullanıma sunulur. Bu, eşleşen sanal çekirdek hizmeti hedefini daha hassas bir şekilde belirlemeyi mümkün kılar.
Aşağıdaki yaklaşım, sanal çekirdek modeline geçiş sonrasında benzer bir performans düzeyi elde etmek üzere benzer kaynak ayırmaya sahip bir sanal çekirdek hizmet hedefini belirlemek için bu bilgileri kullanır.
Sanal çekirdek eşlemesi için DTU
Aşağıdaki Transact-SQL sorgusu geçirilecek DTU veritabanı bağlamında yürütürken sanal çekirdek modelindeki her donanım yapılandırmasında eşleşen (kesirli) sayıda sanal çekirdek döndürür. Bu sayıyı sanal çekirdek modelindeki her donanım yapılandırmasında veritabanları ve elastik havuzlar için kullanılabilen en yakın sanal çekirdek sayısına yuvarlayabilirsiniz. Müşteriler, DTU veritabanı veya elastik havuzu için en yakın eşleşen sanal çekirdek hizmet hedefini seçebilir.
Bu yaklaşımı kullanan örnek geçiş senaryoları Örnekler bölümünde açıklanmıştır.
Bu sorguyu, veritabanı yerine geçirilecek veritabanı bağlamında yürütür master
. Elastik havuzu geçirirken, sorguyu havuzdaki herhangi bir veritabanı bağlamında yürütebilirsiniz.
;WITH dtu_vcore_map
AS (
SELECT rg.slo_name,
CAST(DATABASEPROPERTYEX(DB_NAME(), 'Edition') AS NVARCHAR(40)) COLLATE DATABASE_DEFAULT AS dtu_service_tier,
CASE
WHEN slo.slo_name LIKE '%SQLG4%' THEN 'Gen4' --Gen4 is retired.
WHEN slo.slo_name LIKE '%SQLGZ%' THEN 'Gen4' --Gen4 is retired.
WHEN slo.slo_name LIKE '%SQLG5%' THEN 'standard_series'
WHEN slo.slo_name LIKE '%SQLG6%' THEN 'standard_series'
WHEN slo.slo_name LIKE '%SQLG7%' THEN 'standard_series'
WHEN slo.slo_name LIKE '%GPGEN8%' THEN 'standard_series'
END COLLATE DATABASE_DEFAULT AS dtu_hardware_gen,
s.scheduler_count * CAST(rg.instance_cap_cpu / 100. AS DECIMAL(3, 2)) AS dtu_logical_cpus,
CAST((jo.process_memory_limit_mb / s.scheduler_count) / 1024. AS DECIMAL(4, 2)) AS dtu_memory_per_core_gb
FROM sys.dm_user_db_resource_governance AS rg
CROSS JOIN (
SELECT COUNT(1) AS scheduler_count
FROM sys.dm_os_schedulers
WHERE status COLLATE DATABASE_DEFAULT = 'VISIBLE ONLINE'
) AS s
CROSS JOIN sys.dm_os_job_object AS jo
CROSS APPLY (SELECT UPPER(rg.slo_name) COLLATE DATABASE_DEFAULT AS slo_name) slo
WHERE rg.dtu_limit > 0
AND DB_NAME() COLLATE DATABASE_DEFAULT <> 'master'
AND rg.database_id = DB_ID()
)
SELECT dtu_logical_cpus,
dtu_memory_per_core_gb,
dtu_service_tier,
CASE
WHEN dtu_service_tier = 'Basic' THEN 'General Purpose'
WHEN dtu_service_tier = 'Standard' THEN 'General Purpose or Hyperscale'
WHEN dtu_service_tier = 'Premium' THEN 'Business Critical or Hyperscale'
END AS vcore_service_tier,
CASE
WHEN dtu_hardware_gen = 'Gen4' THEN dtu_logical_cpus * 1.7
WHEN dtu_hardware_gen = 'standard_series' THEN dtu_logical_cpus
END AS standard_series_vcores,
5.05 AS standard_series_memory_per_core_gb,
CASE
WHEN dtu_hardware_gen = 'Gen4' THEN dtu_logical_cpus
WHEN dtu_hardware_gen = 'standard_series' THEN dtu_logical_cpus * 0.8
END AS Fsv2_vcores,
1.89 AS Fsv2_memory_per_core_gb,
CASE
WHEN dtu_hardware_gen = 'Gen4' THEN dtu_logical_cpus * 1.4
WHEN dtu_hardware_gen = 'standard_series' THEN dtu_logical_cpus * 0.9
END AS M_vcores,
29.4 AS M_memory_per_core_gb
FROM dtu_vcore_map;
Ek faktörler
Sanal çekirdek sayısı (mantıksal CPU' lar) ve donanım türüne ek olarak, sanal çekirdek hizmet hedefinin seçimini etkileyen başka birçok faktör de olabilir:
Eşleme Transact-SQL sorgusu, CPU kapasitesi açısından DTU ve sanal çekirdek hizmet hedefleriyle eşleşir, bu nedenle sonuçlar CPU'ya bağlı iş yükleri için daha doğru olur.
Aynı donanım türü ve aynı sayıda sanal çekirdek için, sanal çekirdek veritabanları için IOPS ve işlem günlüğü aktarım hızı kaynak sınırları genellikle DTU veritabanlarına göre daha yüksektir. GÇ'ye bağlı iş yüklerinde aynı performans düzeyine ulaşmak için sanal çekirdek modelindeki sanal çekirdek sayısını azaltmak mümkün olabilir. DTU ve sanal çekirdek veritabanları için gerçek kaynak sınırları sys.dm_user_db_resource_governance görünümünde gösterilir. Geçirilecek DTU veritabanı veya havuzu ile yaklaşık eşleşen hizmet hedefine sahip bir sanal çekirdek veritabanı veya havuzu arasındaki bu değerleri karşılaştırmak sanal çekirdek hizmet hedefini daha hassas bir şekilde seçmenize yardımcı olabilir.
Eşleme sorgusu ayrıca geçirilecek DTU veritabanı veya elastik havuz için çekirdek başına bellek miktarını ve sanal çekirdek modelindeki her donanım yapılandırması için de döndürür. Sanal çekirdek geçişten sonra benzer veya daha yüksek toplam bellek sağlamak, yeterli performans elde etmek için büyük bir bellek veri önbelleği gerektiren iş yükleri veya sorgu işleme için büyük bellek izinleri gerektiren iş yükleri için önemlidir. Bu tür iş yüklerinde, gerçek performansa bağlı olarak, yeterli toplam bellek elde etmek için sanal çekirdek sayısını artırmak gerekebilir.
Sanal çekirdek hizmet hedefi seçilirken DTU veritabanının geçmiş kaynak kullanımı dikkate alınmalıdır. Sürekli olarak az kullanılan CPU kaynaklarına sahip DTU veritabanları, eşleme sorgusu tarafından döndürülen sayıdan daha az sanal çekirdek gerektirebilir. Buna karşılık, sürekli yüksek CPU kullanımının yetersiz iş yükü performansına neden olduğu DTU veritabanları sorgu tarafından döndürülenden daha fazla sanal çekirdek gerektirebilir.
Aralıklı veya öngörülemeyen kullanım desenlerine sahip veritabanlarını geçiriyorsanız, Azure SQL Veritabanı işlem katmanı için Sunucusuz işlem katmanı kullanımını göz önünde bulundurun. Sunucusuz durumdaki en fazla eş zamanlı çalışan sayısı, sağlanan işlemde yapılandırılan en fazla sanal çekirdek sayısı için sınırın %75'idir. Ayrıca sunucusuz olarak kullanılabilen maksimum bellek, yapılandırılan sanal çekirdek sayısının en fazla 3 GB katıdır ve sağlanan işlem için çekirdek başına bellekten daha azdır. Örneğin, 40 maksimum sanal çekirdek sunucusuz olarak yapılandırıldığında 5. Nesil maksimum bellek 120 GB'tır ve sağlanan 40 sanal çekirdek işlem için 204 GB'tır.
Sanal çekirdek modelinde desteklenen maksimum veritabanı boyutu donanıma bağlı olarak farklılık gösterebilir. Büyük veritabanları için tek veritabanları ve elastik havuzlar için sanal çekirdek modelinde desteklenen en büyük boyutları denetleyin.
Elastik havuzlar için, DTU satın alma modelini ve sanal çekirdek modellerini kullanan elastik havuzlar için kaynak sınırları, havuz başına desteklenen veritabanı sayısı üst sınırında farklılık gösterir. Bu, elastik havuzları birçok veritabanıyla geçirirken dikkate alınmalıdır.
Bazı donanım yapılandırmaları her bölgede kullanılamayabilir. SQL Veritabanı için donanım yapılandırması altında kullanılabilirliği denetleyin.
Bu bölümde sağlanan DTU-sanal çekirdek boyutlandırma yönergeleri, hedef veritabanı hizmeti hedefinin ilk tahmininde yardımcı olur.
Hedef veritabanının en iyi yapılandırması iş yüküne bağlıdır. Bu nedenle, geçiş sonrasında en uygun fiyat/performans oranını elde etmek için sanal çekirdek, donanım yapılandırması ve hizmet ve işlem katmanı sayısını ayarlamak için sanal çekirdek modelinin esnekliğini kullanmanız gerekebilir. Ayrıca, maksimum paralellik derecesi gibi veritabanı yapılandırma parametrelerini ayarlamanız ve/veya veritabanı altyapısında son geliştirmeleri etkinleştirmek için veritabanı uyumluluk düzeyini değiştirmeniz gerekebilir.
DTU'da sanal çekirdek geçişi örnekleri
Not
Aşağıdaki örneklerde yer alan değerler yalnızca çizim amaçlıdır. Açıklanan senaryolarda döndürülen gerçek değerler farklı olabilir.
Standart S9 veritabanını geçirme
Eşleme sorgusu aşağıdaki sonucu döndürür (bazı sütunlar kısa için gösterilmez):
dtu_logical_cpus | dtu_memory_per_core_gb | standard_series_vcores | standard_series_memory_per_core_gb |
---|---|---|---|
24,00 | 5,40 | 24.000 | 5,05 |
DTU standart veritabanında sanal çekirdek başına 5,4 GB belleğe sahip 24 mantıksal CPU (sanal çekirdek) olduğunu görüyoruz. Bunun doğrudan eşleşmesi, GP_Gen5_24 sanal çekirdek hizmeti hedefi olan standart seri (5. Nesil) donanımdaki Genel Amaçlı 2 sanal çekirdek veritabanıdır.
Standart S0 veritabanını geçirme
Eşleme sorgusu aşağıdaki sonucu döndürür (bazı sütunlar kısa için gösterilmez):
dtu_logical_cpus | dtu_memory_per_core_gb | standard_series_vcores | standard_series_memory_per_core_gb |
---|---|---|---|
0.25 | 1.3 | 0.500 | 5,05 |
DTU veritabanının sanal çekirdek başına 1,3 GB bellek ile 0,25 mantıksal CPU'ya (sanal çekirdek) eşdeğer olduğunu görüyoruz. Standart seri (5. Nesil) donanım yapılandırmasındaki en küçük sanal çekirdek hizmet hedefleri olan GP_Gen5_2, Standart S0 veritabanından daha fazla işlem kaynağı sağladığından doğrudan eşleşme mümkün değildir. GP_Gen5_2 seçeneği tercih edilir. Ayrıca, iş yükü Sunucusuz işlem katmanı için uygunsa GP_S_Gen5_1 daha yakın bir eşleşme olacaktır.
Premium P15 veritabanını geçirme
Eşleme sorgusu aşağıdaki sonucu döndürür (bazı sütunlar kısa için gösterilmez):
dtu_logical_cpus | dtu_memory_per_core_gb | standard_series_vcores | standard_series_memory_per_core_gb |
---|---|---|---|
42.00 | 4.86 | 42.000 | 5,05 |
DTU veritabanında sanal çekirdek başına 4,86 GB belleğe sahip 42 mantıksal CPU (sanal çekirdek) olduğunu görüyoruz. 42 çekirdekli sanal çekirdek hizmet hedefi olmasa da, BC_Gen5_40 hizmet hedefi CPU ve bellek kapasitesi açısından neredeyse eşdeğerdir ve iyi bir eşleşmedir.
Temel 200 eDTU elastik havuzunu geçirme
Eşleme sorgusu aşağıdaki sonucu döndürür (bazı sütunlar kısa için gösterilmez):
dtu_logical_cpus | dtu_memory_per_core_gb | standard_series_vcores | standard_series_memory_per_core_gb |
---|---|---|---|
4,00 | 5,40 | 4.000 | 5,05 |
DTU elastik havuzunun sanal çekirdek başına 5,4 GB belleğe sahip 4 mantıksal CPU'ya (sanal çekirdek) sahip olduğunu görüyoruz. Standart seri donanım 4 sanal çekirdek için çağrıda bulunur, ancak bu hizmet hedefi havuz başına en fazla 200 veritabanını desteklerken, Temel 200 eDTU elastik havuzu en fazla 500 veritabanını destekler. Geçirilecek elastik havuzda 200'den fazla veritabanı varsa, eşleşen sanal çekirdek hizmeti hedefinin en fazla 500 veritabanını destekleyen GP_Gen5_6 olması gerekir.
Coğrafi olarak çoğaltılan veritabanlarını geçirme
DTU tabanlı modelden sanal çekirdek tabanlı satın alma modeline geçiş yapmak, Standart ve Premium hizmet katmanlarındaki veritabanları arasındaki coğrafi çoğaltma ilişkilerini yükseltmeye veya düşürmeye benzer. Geçiş sırasında, Genel Amaçlı ve İş Açısından Kritik Hizmet katmanları için coğrafi çoğaltmayı durdurmanız gerekmez, ancak şu sıralama kurallarına uymanız gerekir:
- Yükseltme sırasında önce ikincil veritabanını yükseltmeniz ve ardından birincil veritabanını yükseltmeniz gerekir.
- Sürüm düşürme sırasında sırayı tersine çevirin: Önce birincil veritabanını düşürmeniz ve ardından ikincil veritabanını düşürmeniz gerekir.
Hiper Ölçek hizmet katmanına geçiş yapmak için coğrafi çoğaltmanın geçici olarak kaldırılması gerekir. Daha fazla bilgi için bkz . Mevcut veritabanını Hiper Ölçek'e geçirme.
İki elastik havuz arasında coğrafi çoğaltma kullandığınızda, bir havuzu birincil, diğerini ikincil havuz olarak atamanızı öneririz. Bu durumda, elastik havuzları geçirirken aynı sıralama kılavuzunu kullanmanız gerekir. Ancak, hem birincil hem de ikincil veritabanları içeren elastik havuzlarınız varsa, havuzu birincil olarak daha yüksek kullanımla değerlendirin ve buna göre sıralama kurallarına uyun.
Aşağıdaki tabloda belirli geçiş senaryoları için rehberlik sağlanmaktadır:
Geçerli hizmet katmanı | Hedef hizmet katmanı | Geçiş türü | Kullanıcı eylemleri |
---|---|---|---|
Standart | Genel Amaçlı | Yanal | Herhangi bir sırada geçiş yapabilir, ancak daha önce açıklandığı gibi uygun sanal çekirdek boyutlandırmasını güvence altına almanız gerekir |
Premium | İş Açısından Kritik | Yanal | Herhangi bir sırada geçiş yapabilir, ancak daha önce açıklandığı gibi uygun sanal çekirdek boyutlandırmasını güvence altına almanız gerekir |
Standart | İş Açısından Kritik | Yükseltme | Önce ikincil geçişin olması gerekir |
İş Açısından Kritik | Standart | Eski sürüme düşür | Önce birincil geçişin olması gerekir |
Premium | Genel Amaçlı | Eski sürüme düşür | Önce birincil geçişin olması gerekir |
Genel Amaçlı | Premium | Yükseltme | Önce ikincil geçişin olması gerekir |
İş Açısından Kritik | Genel Amaçlı | Eski sürüme düşür | Önce birincil geçişin olması gerekir |
Genel Amaçlı | İş Açısından Kritik | Yükseltme | Önce ikincil geçişin olması gerekir |
Standart | Hiper Ölçek | Yanal | Hiper Ölçek'e geçişten önce kapatılacak coğrafi çoğaltma |
Premium | Hiper Ölçek | Yanal | Hiper Ölçek'e geçişten önce kapatılacak coğrafi çoğaltma |
Yük devretme gruplarını geçirme
Birden çok veritabanı olan yük devretme gruplarının geçişi, birincil ve ikincil veritabanlarının tek tek geçirilmesini gerektirir. Bu işlem sırasında dikkat edilmesi gerekenler ve sıralama kuralları aynı şekilde uygulanır. Veritabanları sanal çekirdek tabanlı satın alma modeline dönüştürüldükten sonra, yük devretme grubu aynı ilke ayarlarıyla etkin kalır.
Coğrafi çoğaltma ikincil veritabanı oluşturma
Coğrafi çoğaltma ikincil veritabanı (coğrafi ikincil) oluşturmak için birincil veritabanı için kullandığınız hizmet katmanını kullanabilirsiniz. Yüksek günlük oluşturma hızına sahip veritabanları için, birincil ile aynı işlem boyutuna sahip coğrafi ikincil oluşturmanızı öneririz.
Tek bir birincil veritabanı için elastik havuzda coğrafi olarak ikincil bir veritabanı oluşturursanız, havuz ayarının maxVCore
birincil veritabanının işlem boyutuyla eşleştiğinden emin olun. Başka bir elastik havuzdaki birincil için coğrafi ikincil oluşturursanız havuzların aynı maxVCore
ayarlara sahip olması önerilir.
DTU'dan sanal çekirdek'e geçiş yapmak için veritabanı kopyasını kullanma
Veritabanı kopyası, kopyalama işlemi başlatıldıktan sonra belirli bir noktada verilerin işlem açısından tutarlı bir anlık görüntüsünü oluşturur. Bu noktadan sonra kaynak ve hedef arasındaki verileri eşitlemez.
Hedef işlem boyutu kaynak veritabanının en büyük veritabanı boyutunu desteklediği sürece, kısıtlama veya özel sıralama olmadan PowerShell, Azure CLI veya Transact-SQL kullanarak DTU tabanlı işlem boyutuna sahip herhangi bir veritabanını sanal çekirdek tabanlı işlem boyutuna sahip bir veritabanına kopyalayabilirsiniz. Veritabanını farklı bir hizmet katmanına kopyalamak Azure portalında desteklenmez.