Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Azure'da çok kiracılı çözümler yaygın olarak Azure SQL Veritabanı kullanır. Bu makalede, çok kiracılı çözümler için bölümleme ve kiracılık stratejileri ile SQL Veritabanı özellikleri açıklanmaktadır.
Veri hizmetleri genelinde geçerli olan genel hususları ve yaklaşımları açıklayan çoklu kiracılı çözümlerde depolama ve verilere yönelik mimari yaklaşımlar başlıklı makaleyle birlikte bu makaleyi okuyun.
Bölümleme ve kiracılık stratejileri
İş yükünün ölçek, yalıtım, kurtarma, özelleştirme ve maliyet gereksinimlerini karşılayan kiracılık modelini seçin. Bu gereksinimleri karşılayan en basit modeli tercih edin. Parçalama, uygulama ve işlem karmaşıklığı ekler, bu nedenle yalnızca daha büyük bir hizmet katmanının aşabileceği sınırları aşmak için parçalamayı uygulamaya almayın.
Ortak Azure SQL Veritabanı kiracı modellerinin mimari ödünleşimlerini karşılaştırmak için bkz. Uygun kiracı modelini seçme.
Bir veya birden çok veritabanının kullanılıp kullanılmayacağına karar verin
Tek bir SQL veritabanı sınırlı depolama kapasitesine sahiptir. Aktarım hızı ve eşzamanlılığı hizmet katmanı, işlem yapılandırması, bağlantı sınırları ve iş yükü özellikleriyle kısıtlanır. Bir paylaşılan veritabanı, her kiracı için bir veritabanı veya parçalı topoloji seçmeden önce depolama, aktarım hızı, eşzamanlılık, gecikme süresi, yalıtım, kurtarma ve bölgesel yapılandırma için toplam ve kiracı başına gereksinimleri tahmin edin.
Veritabanı sınırı ayrıca yedekleme, geri yükleme, coğrafi çoğaltma ve yük devretme işlemlerinin ayrıntı düzeyini de belirler. Daha fazla bilgi için bkz. Azure SQL Veritabanı için mimarinin en iyi yöntemleri.
Paylaşılan çok kiracılı veritabanı yüksek kiracı yoğunluğu ve düşük kiracı başına maliyet sağlayabilir, ancak kiracılar daha güçlü yalıtım veya bağımsız yapılandırma ve yaşam döngüsü işlemleri gerektiriyorsa tek bir veritabanı teknik sınırlarına ulaşmadan önce birden çok veritabanı uygun olabilir.
Kiracılık modellerini birleştirebilirsiniz. Örneğin, çoğu kiracı/tenant’ı paylaşılan veritabanlarına yerleştirebilir ve yüksek talep gören veya düzenlemeye tabi kiracı/tenant’lara ayrılmış veritabanları verebilirsiniz. Her kiracıyı uygun veritabanına yönlendirmek için bir kiracı kataloğu kullanın.
Veritabanı boyutu, yedekleme ve geri yükleme süresi, okuma ölçeğini genişletme veya hızlı işlem ölçeklendirmesi tasarımı yönlendirirken Hyperscale hizmet katmanını değerlendirin. Hyperscale, bir veritabanı için 128 TB'a kadar ve Hyperscale elastik havuzu için 100 TB'a kadar depolamayı otomatik olarak büyütmeyi destekler. Mevcut mimaride parçalama yalnızca veritabanı depolama sınırlarına geçici bir çözüm olarak kullanılıyorsa, parçaları Hyperscale veritabanında birleştirmeyi göz önünde bulundurun. Birleştirmeden önce yazma iş hacmini, maliyeti, kurtarma hedeflerini, yalıtımı ve operasyonel gereksinimleri doğrulayın.
Paylaşılan çok müşterili veritabanı
Paylaşılan veritabanında, kiracıya ait verileri içeren her tabloda bir kiracı tanımlayıcısı depolayın. Kimliği doğrulanmış kullanıcı ve tenant kimliğini her istek için veritabanına iletin. Önceki bir istekten gelen bağlama güvenmek yerine havuza alınan bir bağlantıyı yeniden kullandığınızda bu bağlamı oluşturun ve doğrulayın. Kiracılar arası veri erişimine karşı veritabanı tarafından zorlanan bir koruma olarak satır düzeyi güvenlik kullanın.
Tüm tenantlar veritabanının işlem kaynaklarını, depolama, yedekleme, geri yükleme ve bölgesel yapılandırmasını paylaşır. Bu model, bir kiracının iş yükünün diğer kiracıları etkilediği Gürültülü Komşu anti-pattern'ine duyarlıdır. Bir kiracıyı/tenant'ı geri yüklemek veya taşımak için uygulama denetimli veri ayıklama ve doğrulama gerekir. Kiracı yoğunluğu ve maliyet verimliliği kiracıya özgü yapılandırmadan veya güçlü performans yalıtımından daha önemli olduğunda bu modeli kullanın.
Kiracı başına veritabanı
Kiracılar daha güçlü veri ve performans yalıtımı, bağımsız yedekleme ve geri yükleme, şema özelleştirme, bölgesel yerleştirme veya daha net maliyet ilişkilendirmesi gerektirdiğinde her kiracı için ayrı bir veritabanı kullanın. Uygulama, her kiracı tanımlayıcısından veritabanına güvenilir bir eşlemeyi sürdürmeli ve bağlantıları buna göre yönlendirmelidir.
Sağlanan işlem gücünü paylaşmak için uyumlu performans ve kurtarma gereksinimlerine sahip veritabanlarını elastik havuzlara yerleştirin. Tek tek kiracı veritabanları Hyperscale depolama, yedekleme, geri yükleme veya okuma ölçeği özellikleri gerektirdiğinde Hyperscale veya Hyperscale elastik havuzlarını kullanın.
Bölümlenmiş çok kiracılı veritabanları
İş yükünün ölçek, kurtarma, kiracı yoğunluğu veya maliyet gereksinimlerini tek bir paylaşılan veritabanı veya kiracı başına veritabanı topolojisinden daha iyi karşılıyorsa, kiracıları birden çok paylaşılan veritabanına dağıtırken parçalı çok kiracılı veritabanlarını kullanın. Bir shard, bir veya daha fazla kiracı kuruluşu depolayan bir Azure SQL veritabanıdır. Uygulamanın tenant’ın verilerini depoladığı veritabanını belirleyebilmesi için tenant tanımlayıcısı gibi kararlı bir shard key kullanın.
Her kiracının veri kümesini bir yerleştirme birimi olarak değerlendirin. Kiracı kapsamlı sorguların ve işlemlerin tek bir veritabanında kalması için mümkün olduğunda bir kiracının tüm verilerini tek bir shard’da tutun. Her kiracı tanımlayıcısını verilerini içeren veritabanıyla eşleyen bir eşlemeyi koruyun.
Kiracıdan veritabanına eşleme genellikle shard map olarak adlandırılır. Shard eşlemesi, her shard anahtarını veya anahtar aralığını ilişkili verileri depolayan veritabanıyla eşleyen bir katalogdur. shard map'i, iş yükünün kullanılabilirlik ve tutarlılık gereksinimlerini karşılayan dayanıklı uygulama meta verileri olarak uygulayın. Uygulama örnekleri yönlendirme gecikme süresini azaltmak için parça eşlemesi girdilerini önbelleğe alabilir, ancak eşlemeler değiştiğinde önbelleğe alınan girişleri yenilemeleri veya geçersiz kılmaları gerekir.
yetkili shard map'ini yüksek oranda kullanılabilir hale getirin ve kiracı geçişi işlemleriyle atomik olarak güncelleştirin. Uygulama ayrıca bağlantı yönlendirme, parça sağlama, kiracı taşıma, yeniden dengeleme ve hata işlemeyi üstlenmelidir. Tam geçiş ve geri alma sırasında uygulamanın geçerliliğini yitirmiş eşlemeleri nasıl işlediğini planlayın. Genel tasarım kılavuzu için bkz. Sharding düzeni.
Veritabanları arası işlemleri planlayın
Her veritabanını bağımsız bir işlem ve bütünlük sınırı olarak tasarla:
- Veri yerelliğini ve bütünlüğünü koruyun: Uygulamanın birleştirdiği veya işlemsel olarak güncellediği verileri aynı veritabanında tutun. Veritabanları arasında başvuru bütünlüğü, tetikleyici veya saklı yordam bağımlılıkları oluşturmayın. Veritabanlarını kapsayan iş işlemleri için nihai tutarlılığı veya başka bir uygulama düzeyi koordinasyon deseni kullanın.
- Şemaları tutarlı bir şekilde yönetme: Uygulamanın isteği herhangi bir parçaya yönlendirdikten sonra aynı veri erişim mantığını kullanabilmesi için her parçada aynı tabloları, sütunları, dizinleri, görünümleri ve saklı yordamları kullanın. Veritabanı filosu genelinde şema dağıtımlarını otomatikleştirin ve her veritabanının şema sürümünü izleyin. Şema varyasyonunu bilerek destekliyorsanız, uygulama ve dağıtım işlemini sürüme duyarlı hale getirin.
- Referans verilerini bilinçli bir şekilde yönetin: Bunu yapmak eşzamanlı veritabanları arası işlemlerden kaçınmayı sağlıyorsa, statik veya yavaş değişen referans verilerini çoğaltın. Uygulamanın güncelleştirmelerin nasıl yayıldığını ve eski kopyaları nasıl işlediğini tanımlayın.
- Parçaları dengeleyin ve yerleştirin: Parçaları yalnızca tenant sayısına göre değil, veri hacmine ve istek yüküne göre dengeleyin. Kiracıları shard’lar arasında taşımak için otomatik ve kurtarılabilir bir işlem planlayın. Veritabanlarını kiracı gecikme süresi, veri yerleşimi ve olağanüstü durum kurtarma gereksinimlerine göre yerleştirin.
Zamanlanmış şema değişiklikleri, bakım, telemetri koleksiyonu ve veritabanı grupları genelindeki diğer işlemler için Elastic jobs kullanın. Kiracı veritabanları genelinde raporlama ve analiz için, Microsoft Fabric'te Azure SQL Veritabanı için yansıtma aracılığıyla merkezi bir analitik depo veya Azure Data Factory gibi bir ayıklama, dönüştürme ve yükleme (ETL) işlem hattı kullanın. Bir uygulama eşzamanlı fan-out sorguları gerektiriyorsa zaman aşımı, yeniden deneme, kısmi hata ve sonuç birleştirme davranışını tanımlayan bir sorgu ve toplama katmanı oluşturun.
Çok kiracılılığı destekleyen SQL Veritabanı özellikleri
SQL Veritabanı, çoklu kiracılığı destekleyen birçok özellik içerir.
Elastik havuzlar
Elastik havuzlar, yapılandırılmış hesaplama kaynakları kümesini aynı mantıksal sunucudaki birden çok veritabanı arasında paylaşır. Kiracı veritabanlarının ortalama kullanımı düşük olduğunda ve seyrek, çakışmayan kullanım zirvelerine sahip olduğunda havuzlar maliyetleri azaltabilir. Kalıcı orta-yüksek kullanıma sahip veritabanları, ayrılmış işlem kaynakları için daha uygun olabilir. Tek tek havuza alınan veritabanları için kaynak tüketimini kısıtlamak için en düşük ve en yüksek kaynak sınırlarını ayarlayabilirsiniz, ancak tüm veritabanları havuzun toplam kapasitesini paylaşmaya devam eder. Hem toplam havuz kullanımını hem de tek tek veritabanı kullanımını izleyin.
Daha fazla bilgi için aşağıdaki kaynaklara bakın:
- SQL Veritabanı elastik havuzları
- Yoğun elastik havuzlardaki kaynak yönetimi
- SQL Veritabanı elastik havuzlarını kullanan uygulamalar için olağanüstü durum kurtarma (DR) stratejileri
Hyperscale
Azure SQL Veritabanı Hyperscale, bunları bağımsız olarak ölçeklendirebilmeniz için işlem kaynaklarını depolamadan ayırır. Paylaşılan çok kiracılı bir veritabanı veya tek bir kiracı veritabanı daha yüksek depolama sınırları, hızlı yedekleme ve geri yükleme veya okuma ölçek genişletmesi gerektirdiğinde Hyperscale'i kullanın.
Daha fazla bilgi için aşağıdaki kaynaklara bakın:
- Hiper ölçekli hizmet katmanı
- Hiper Ölçek elastik havuzlara genel bakış
- Komut satırı araçlarını kullanarak Hiper Ölçek elastik havuzlarıyla çalışma
Elastik işler
Zamanlanmış Transact-SQL (T-SQL) betiklerini ve bakım görevlerini bir veya birden çok veritabanında çalıştırmak için Elastik işleri kullanın. Hedef gruplar tek tek veritabanlarını, mantıksal sunucuları, elastik havuzları ve abonelikler genelindeki veritabanlarını içerebilir. Yaygın multi-tenant kullanım alanları arasında şema değişikliklerini dağıtma, kimlik bilgilerini yönetme, telemetri toplama ve toplu veri işleme görevlerini veritabanı filosunda çalıştırma sayılabilir.
Elastik işler eşzamanlı bir uygulama sorgu katmanı sağlamaz. Bir uygulama isteğinin birden çok veritabanını sorgulaması ve sonuçları hemen toplaması gerekiyorsa, bu davranışı bir uygulama veya analiz katmanında uygulayın.
Daha fazla bilgi için bkz . Azure SQL Veritabanı'nda elastik işler.
Satır düzeyi güvenlik
Satır düzeyi güvenlik, paylaşılan tablolarda kiracı düzeyinde yalıtımı sağlamaya yardımcı olur. Daha fazla bilgi için bkz. Azure SQL üzerinde
Anahtar yönetimi
Azure SQL Veritabanı bekleyen durumdaki verileri şifrelemek için şeffaf veri şifrelemesi (TDE) kullanır. Kiracıların kendi şifreleme anahtarlarını sağlaması gerekiyorsa, ayrı veritabanları kullanın ve müşteri tarafından yönetilen TDE anahtarlarını veritabanı düzeyinde yapılandırın. Veritabanı altyapısının ve operatörlerinin belirli hassas sütunlardaki düz metin değerlerine erişimi olmaması gerektiğinde Always Encrypted kullanın. Always Encrypted şifrelenmiş sütunlarda bazı işlemleri kısıtladığı için uygulama ve sorgu uyumluluğunu doğrulayın.
Katkıda Bulunanlar
Microsoft bu makaleyi korur. Bu makaleyi aşağıdaki katkıda bulunanlar yazdı.
Asıl yazarlar:
- Paul Burpo | Baş Müşteri Mühendisi, Azure için FastTrack
- John Downs | Baş Yazılım Mühendisi, Azure Desenleri ve Uygulamaları
Diğer katkıda bulunanlar:
- Silvano Coriani | Sorumlu Program Yöneticisi, Azure SQL
- Dimitri Furman | Sorumlu Program Yöneticisi, Azure SQL
- Sanjay Mishra | Sorumlu Grup Programı Yöneticisi, Azure SQL
- Arsen Vladimirskiy | Baş Müşteri Mühendisi, Azure için FastTrack
Nonpublic LinkedIn profillerini görmek için LinkedIn'de oturum açın.
Sonraki Adımlar
- Büyük bir SaaS sağlayıcısı için Azure SQL üzerinde bir milyon veritabanı çalıştırın: Dynamics 365 ve Microsoft Power Platform
- SQL Veritabanı'nda SaaS uygulamaları için tasarım desenleri
- SQL Veritabanı için mimari en iyi uygulamalar