Azure Cosmos DB güvenilirliği

NoSQL için Azure Cosmos DB, esnek şemalara sahip belge veri modellerini destekleyen genel olarak dağıtılmış, çok modelli bir veritabanı hizmetidir. Azure Cosmos DB, performansı ve kullanılabilirliği dengelemenize olanak sağlayan birden çok tutarlılık düzeyi, kullanılabilirlik alanı hatalarına karşı koruma sağlayan alanlar arası yedekli dağıtımlar, hizmet tarafından yönetilen veya müşteri tarafından yönetilen yük devretme ile çok bölgeli çoğaltma ve veri koruması için sürekli ve düzenli yedekleme seçenekleri gibi kapsamlı güvenilirlik özellikleri sunar.

Azure'ı kullandığınızda güvenilirlik paylaşılan bir sorumluluktır. Microsoft, dayanıklılık ve kurtarmayı desteklemek için çeşitli özellikler sunar. Bu özelliklerin kullandığınız tüm hizmetler içinde nasıl çalıştığını anlamak ve iş hedeflerinize ve çalışma süresi hedeflerinize ulaşmak için ihtiyacınız olan özellikleri seçmek sizin sorumluluğunuzdadır.

Bu makalede geçici hatalar, kullanılabilirlik alanı kesintileri, bölge kesintileri ve hizmet bakımı gibi çeşitli olası kesintilere ve sorunlara karşı Azure Cosmos DB nasıl dayanıklı hale getirilmeye başlandığı açıklanır. Ayrıca, diğer sorun türlerinden kurtarmak için yedeklemelerin nasıl kullanılacağını açıklar ve Azure Cosmos DB hizmet düzeyi sözleşmesi (SLA) hakkındaki önemli bilgileri vurgular.

Üretim dağıtımı önerileri

Azure Well-Architected Framework güvenilirlik, güvenlik, maliyet, operasyonlar ve performansla ilgili öneriler sağlar. Bu alanların birbirini nasıl etkilediğini anlamak ve güvenilir bir Azure Cosmos DB çözümüne katkıda bulunmak için bkz. Azure Cosmos DB için Mimari en iyi uygulamalar.

Güvenilirlik mimarisine genel bakış

Bu bölümde, hizmetin nasıl çalıştığına ilişkin güvenilirlik açısından en uygun olan bazı önemli yönler açıklanmaktadır. bölümünde dağıttığınız ve kullandığınız bazı kaynak ve özellikleri içeren mantıksal mimari tanıtılır. Ayrıca, hizmetin kapaklar altında nasıl çalıştığına ilişkin ayrıntılar sağlayan fiziksel mimariyi de ele alır.

Mantıksal mimari

Dağıttığınız birincil kaynak bir Azure Cosmos DB hesap. Her hesabın birden çok veritabanı ve her veritabanının birden çok kapsayıcısı olabilir. Kapsayıcılar, mantıksal dağıtım ve ölçeklenebilirlik birimleri görevi görür. Azure Cosmos DB etkileşim kurmak için kullandığınız API'ye bağlı olarak koleksiyonlar, tablolar ve grafikler gibi kapsayıcılar oluşturabilirsiniz. Kaynak modeli hakkında daha fazla bilgi için Azure Cosmos DB'deki Veritabanları, kapsayıcılar ve öğeler bölümüne bakın. Her kapsayıcı, yüksek ölçek ve yüksek performansı destekleyen bölümleme kullanır.

Verilerinizi sorgulamak ve verilerinizle çalışmak için kullanabileceğiniz sistem kaynaklarının miktarını temsil eden aktarım hızını yapılandırırsınız. İşleme hızını el ile sağlayabilir, kapasiteyi iş yükünüzün gereksinimlerine göre dinamik olarak ayarlamak için otomatik ölçeklendirmeyi kullanabilir veya gerçek kullanımınız için ücretlendirilecek sunucusuz hesap türünü kullanabilirsiniz.

Tek bir hesap birden çok Azure bölgesine yayılabilir ve bu da bölge kesintilerine karşı dayanıklılığınızı artırır. Okuma için birden çok bölge yapılandırabilirsiniz ve İş Açısından Kritik katmanını kullanıyorsanız, yazmak için birden çok bölge kullanabilirsiniz. Azure Cosmos DB verilerinizi otomatik olarak coğrafi olarak çoğaltır. Coğrafi çoğaltma davranışı, veri tutarlılığı, kullanılabilirlik, gecikme süresi ve aktarım hızı arasında nasıl denge sağlamak istediğinizi gösteren tutarlılık düzeyi gibi kullandığınız yapılandırmadan etkilenir. Farklı tutarlılık düzeyleri farklı endişeler için iyileştirir, farklı garantileri destekler ve farklı bölgeler arası çoğaltma türleri sağlar.

Fiziksel mimari

Azure Cosmos DB, yedeklilik sağlamak amacıyla verilerinizin birden çok kopyasını depolar. Hizmet, her bölgedeki replikalar arasında oy çoğunluğunu koruyarak replikaların kesintilerini otomatik olarak azaltır. Bu yaklaşım yüksek kullanılabilirliği garanti eder ve uygulama değişikliklerine veya yapılandırmaya gerek kalmadan tek tek düğüm hataları sırasında veri kaybına karşı koruma sağlar.

dahili olarak, Azure Cosmos DB verilerinizi physical partitions, partition sets ve replica kümeleri gibi çeşitli yapılar aracılığıyla yönetir. Azure Cosmos DB'nin nasıl çalıştığı hakkında daha ayrıntılı bilgi için Azure Cosmos DB ile Global veri dağıtımının perde arkası bölümüne bakın.

Geçici hatalara dayanıklılık

Geçici hatalar, bileşenlerde kısa ve aralıklı hatalardır. Bunlar genellikle bulut gibi dağıtılmış bir ortamda gerçekleşir ve işlemlerin normal bir parçasıdır. Geçici hatalar kısa bir süre sonra kendilerini düzeltmektedir. Uygulamalarınızın genellikle etkilenen istekleri yeniden deneyerek geçici hataları işleyebileceği önemlidir.

Bulutta barındırılan tüm uygulamalar, bulutta barındırılan API'ler, veritabanları ve diğer bileşenlerle iletişim kurarken Azure geçici hata işleme yönergelerini izlemelidir. Daha fazla bilgi için bkz Geçici hataları ele alma önerileri.

Azure Cosmos DB SDK'larını kullanın. SDK'lar otomatik yeniden denemeler aracılığıyla geçici hata işleme ve hizmet tarafından gönderilen hız sınırı yanıtlarını dikkate alma gibi çeşitli dayanıklılık konuları için otomatik olarak destek uygular. Daha fazla bilgi için Azure Cosmos DB SDK’leri ile dayanıklı uygulamalar tasarlayın sayfasına bakınız.

Birden çok bölgeli bir hesapla çalışırken SDK, birden çok bölgeye paralel okuma istekleri gönderdiği ve en hızlı yanıtı kabul ettiği, riskten korunma olarak da adlandırılan eşik tabanlı bir kullanılabilirlik stratejisini de destekler. Bu yaklaşım, bir bölge geçici olarak normalden daha yüksek gecikme süresi yaşadığında uygulama performansını geliştirebilir.

Kullanılabilirlik alanı hatalarına dayanıklılık

Kullanılabilirlik alanları , bir Azure bölgesi içindeki veri merkezlerinin fiziksel olarak ayrı gruplarıdır. Bir bölge başarısız olduğunda hizmetler kalan bölgelerden birine devredilebilir.

Azure Cosmos DB , alanlar arası yedekliliği destekler. Alanlar arası yedekliliği etkinleştirdiğinizde Azure, verilerinizin çoğaltmalarını birden çok kullanılabilirlik alanına dağıtarak veri merkezi sorunlarına ve kesintilerine dayanıklılık sağlar. Microsoft kullanılacak kullanılabilirlik alanlarını seçer.

Azure Cosmos DB hesabının, üç ayrı kullanılabilirlik alanına dağıtılmış üç çoğaltmadan oluşan bir çoğaltma setine sahip olduğunu gösteren diyagram.

Azure Cosmos DB hesabı genel dağıtım, ölçek ve yük devretme için birden çok bölge (konum) kullanabilir. Bölge yedekliliğini hesabınızdaki her bölge için ayrı ayrı yapılandırabilirsiniz.

Azure Cosmos DB'da bölge yedekliliği kullanmanın performans veya gecikme süresi üzerinde fark edilebilir bir etkisi yoktur. Seçilen tutarlılık modunda herhangi bir ayarlama gerektirmez ve uygulama kodunda herhangi bir değişiklik gerektirmez.

Özellikle tek bölgeli hesaplar için desteklenen bölgelerde bölge yedekliliğini kullanın. Kullanılabilirlik alanları fiziksel olarak ayrı olduğundan ve farklı güç kaynakları, ağlar ve soğutma sağladığından, Azure Cosmos DB için kullanılabilirlik SLA'ları alanlar arası yedekli hesaplarda kullanılabilirlik alanlarını kullanmayan hesaplardan daha yüksektir.

Tavsiye

Alanlar arası yedekliliği etkinleştirmek, ek uygulama karmaşıklıkları sunmadan veya performansı etkilemeden Azure Cosmos DB veritabanınızın dayanıklılığını artırmanın harika bir yoludur. Hesap yapılandırmanıza bağlı olarak, ek maliyetler bile doğurmayabilir.

Alanlar arası yedekliliği etkinleştirmezseniz, hesap bu bölgede bölgesel değildir . Bölge-dışı hesaplar, çoğaltmaları tek bir kullanılabilirlik bölgesinde bulabilir ve o bölgede bir sorun meydana geldiğinde olası kesinti süresine yol açabilir.

Requirements

  • Region support: Kullanılabilirlik alanlarını destekleyen Azure bölgelerde alanlar arası yedekliliği etkinleştirebilirsiniz. Bölgenizin kullanılabilirlik alanlarını desteklenip desteklemediğini görmek için desteklenen bölgelerin listesine bakın.

    Bölge yedekliliği hesap genelindeki bir ayar değildir. Azure Cosmos DB hesapları birden çok bölgeye yayılabilir ve her bölge kullanılabilirlik alanlarını kullanmak üzere bağımsız olarak yapılandırılabilir. Kullanılabilirlik alanlarını desteklemeyen bölgeler, aynı hesaptaki diğer bölgelerde alanlar arası yedekliliği etkinleştirmenizi engellemez.

  • Sunucusuz hesaplar: Alanlar arası yedekli sunucusuz hesapları yalnızca oluşturduğunuzda yapılandırabilirsiniz. Kullanılabilirlik alanları olmayan mevcut sunucusuz hesapları kullanılabilirlik alanı yapılandırmasına dönüştüremezsiniz. Görev açısından kritik iş yükleri için sağlanan aktarım hızını kullanın.

Değerlendirmeler

  • Birden çok eşzamanlı bölge kesintisi: Alanlar arası yedekliliğe sahip tek bölgeli bir hesap, bir kesinti tek bir kullanılabilirlik bölgesini etkilediğinde okuma-yazma kullanılabilirliğini koruyabilir. Ancak, kesinti birden çok kullanılabilirlik bölgesini veya bölgenin tamamını etkilerse, hizmet geri yüklenene kadar tek bölgeli hesaplar okuma ve yazma erişimini kaybeder. Aynı anda başarısız olan birden çok bölgeye dayanıklı olmanız gerekiyorsa çok bölgeli bir hesap dağıtmayı göz önünde bulundurun.

  • Çoklu bölge hesapları: Birden çok bölgeli bir hesabınız varsa, isteğe bağlı olarak kullanılabilirlik alanlarını destekleyen hesap bölgelerinin herhangi birinde veya tümlerinde bölge yedekliliğini etkinleştirebilirsiniz. Hesabınız tek bir bölge kullanacak şekilde yapılandırıldığında veya birden çok okuma bölgesiyle tek bir yazma bölgesi kullanacak şekilde yapılandırıldığında bölge yedekliliğini etkinleştirmenizi kesinlikle öneririz.

Maliyet

Alanlar arası yedeklilik özelliğinin etkinleştirildiği bölgeler premium olarak ücretlendirilir. Ancak, çoklu bölge yazma işlemleriyle yapılandırılmış hesaplar ve otomatik ölçeklendirme aktarım hızı modunu kullanacak şekilde yapılandırılmış koleksiyonlar için kullanılabilirlik alanları için premium fiyatlandırmadan feragat edilir. Daha fazla bilgi için bkz. Azure Cosmos DB pricing.

Kullanılabilirlik alanı desteğini yapılandırma

Çoğu hesap için, bölge yedekliliğini yalnızca bir Azure Cosmos DB hesabına yeni bir bölge eklediğinizde etkinleştirirsiniz. Mevcut bir hesapta kullanılabilirlik alanı desteğini etkinleştirmek için bir bölge ekleyin ve bölge yedekliliğini etkinleştirin. Bir işlemi izleyerek, özgün bölgenizde bölge yedekliliğini yapılandırabilmeniz için geçici bir bölge ekleyebilirsiniz. Ayrıntılı adımlar için bkz. Azure Cosmos DB hesabında bölge yedekliliğini etkinleştir.

Sunucusuz hesaplar için, hesabı oluştururken bölge yedekliliğini etkinleştirmeniz gerekir.

Tüm bölgeler sağlıklı olduğunda davranış

Bu bölümde, bir Azure Cosmos DB hesabını alanlar arası yedeklilik için yapılandırdığınızda ve tüm bölgeler çalışır durumda olduğunda neler bekleyebileceğiniz açıklanmaktadır.

  • Cross-zone operation: Azure Cosmos DB istekleri kullanılabilirlik alanları arasında çoğaltmalara otomatik olarak yönlendirir, böylece tüm çoğaltmalar isteğe hizmet edebilir.

  • Bölgeler arası veri çoğaltma: İstemci herhangi bir veride değişiklik yaptığında, karar yeter sayısına ulaşmak için bu değişiklik farklı bölgelerdeki birden çok kopyaya uygulanır. Bu yaklaşıma zaman uyumlu çoğaltma denir. Zaman uyumlu çoğaltma, yüksek düzeyde veri tutarlılığı sağlar ve bu da bölge hatası sırasında veri kaybı olasılığını azaltır. Kullanılabilirlik alanları birbirine görece yakın bulunur, bu da gecikme süresi veya aktarım hızı üzerinde en az etki olduğu anlamına gelir.

Bölge hatası sırasındaki davranış

Bu bölümde, bir Azure Cosmos DB hesabını alanlar arası yedeklilik için yapılandırdığınızda ve bölgelerden birinde kesinti olduğunda neler bekleyebileceğiniz açıklanmaktadır.

  • Detection and response: Azure Cosmos DB platformu kullanılabilirlik alanındaki bir hatayı algılamaktan sorumludur. Bölge yük devretmesini başlatmak için herhangi bir işlem yapmanız gerekmez.
  • Bildirim: Bir bölge kapatıldığında Microsoft sizi otomatik olarak bilgilendirmez. Ancak, tek bir kaynağın durumunu izlemek için Azure Kaynak Durumu'nı kullanabilir ve sorunları size bildirmek için Kaynak Durumu uyarıları ayarlayabilirsiniz. Azure Hizmet Durumu'nı , bölge hataları dahil olmak üzere hizmetin genel durumunu anlamak için de kullanabilir ve sorunları size bildirmek için Hizmet Durumu uyarıları ayarlayabilirsiniz.
  • Active requests: Kullanılabilirlik alanı kullanılamaz duruma geldiğinde, Azure Cosmos DB etkilenen bölgedeki çoğaltmalara bağlı devam eden istekleri sonlandırır ve uygulamanın bu istekleri yeniden denemesi gerekir. Uygulamanızın geçici hata işleme yönergelerini izleyerek hazır olduğundan emin olun.

  • Beklenen veri kaybı: Bölge hatasından beklenen veri kaybı yoktur.

  • Beklenen kapalı kalma süresi: Bölge kesintileri sırasında, trafik yeniden dağıtılırken bağlantılarda genellikle birkaç saniye süren kısa kesintiler yaşanabilir. Geçici hata işleme yönergelerini izleyerek uygulamalarınızın hazır olduğundan emin olun.

  • Redistribution: Azure Cosmos DB gelen istekleri otomatik olarak diğer kullanılabilirlik alanlarındaki iyi durumdaki çoğaltmalara yönlendirir. Erişilebilirlik bölgesinde bir kesinti olduğunda, platform tahsis edilen aktarım hızını otomatik olarak diğer çoğaltmalara yeniden ayırır.

Bölge kurtarma

Kullanılabilirlik alanı kurtarıldığında, Azure Cosmos DB kullanılabilirlik alanındaki çoğaltmaları otomatik olarak geri yükler ve çoğaltmalar arasındaki trafiği normal şekilde yeniden yönlendirir.

Bölge hataları için test

Azure Cosmos DB için kullanılabilirlik alanı yük devretme ve kurtarma işlemleri tamamen Microsoft tarafından yönetilir. Kullanılabilirlik alanı hata işlemlerini başlatmanız veya doğrulamanız gerekmez.

Bölge genelindeki hatalara dayanıklılık

Bir Azure Cosmos DB hesabını tek bir bölgeye dağıttığınızda, tüm Azure Cosmos DB düğümlerini etkileyen bölge genelindeki bir kesinti genellikle veri kaybına neden olmaz, ancak uygulamanızın verilere erişmesini engeller. Azure Cosmos DB, hizmet etkilenen bölgede kurtarıldıktan sonra veri erişimini geri yükler. Veri kaybı yalnızca bölge kurtarılamaz bir olağanüstü durumla karşılaştığında oluşur.

Bölge kesintilerinin nadir durumlarına hazırlanmak için, aşağıdaki yaklaşımlardan birini kullanarak Azure Cosmos DB çeşitli dayanıklılık ve kullanılabilirlik düzeylerini destekleyecek şekilde yapılandırabilirsiniz:

Aşağıdaki tabloda hesap yapılandırmasına ve kesinti türüne göre kullanılabilir kurtarma seçenekleri özetlenmiştir. Bu makalenin sonraki bölümlerinde bu seçeneklerin ve ilişkili davranışın kapsamlı ayrıntıları sağlanır.

Configuration Kesinti türü Kullanılabilirlik etkisi Dayanıklılık etkisi Yapılması gerekenler
Tek bölgeli hesap Bölge kesintisi Hizmet geri yüklenene kadar okuma ve yazma erişimi kaybolur. Bölge kurtarılamaz bir olağanüstü durumla karşılaşmadığı sürece veri kaybı olmaz. Hizmet geri yüklemesini bekleyin veya hesabın yedekten başka bir bölgeye geri yüklenmesini isteyin.
Tek yazma bölgesi, çok bölgeli hesap Veri okuma bölgesi kesintisi SDK, tercih edilen bölgeler yapılandırmasına göre kullanılabilir bölgelere yeniden yönlendirilir.

Yalnızca iki bölgeyle güçlü tutarlılık veya eskime penceresini aşan sınırlanmış eskime durumu kullanan hesaplar için, etkilenen bölgeyi çevrimdışına almadığınız sürece yazma kullanılabilirliği de kaybolur.
Veri kaybı yok. Kalan bölgelerde yeterli aktarım hızı olduğundan emin olun. Güçlü veya sınırlanmış eskime tutarlılığı için etkilenen bölgeyi çevrimdışına almayı göz önünde bulundurun.
Tek yazma bölgesi, çok bölgeli hesap Yazma bölgesi kesintisi (PPAF etkinken) Otomatik bölüm düzeyinde yük devretme; elle müdahaleye gerek yoktur. Hesap güçlü tutarlılık kullanıyorsa veri kaybı olmaz. Hesap güçlü tutarlılık kullanmıyorsa, bölgenin kalıcı veri kaybı yaşaması gibi bir durum söz konusu olduğunda kopyalanmamış veriler kaybolabilir. Eylem gerekmez. PPAF yedeklemeyi otomatik olarak yönetir.
Tek yazma bölgesi, çok bölgeli hesap Yazma bölgesi kesintisi (PPAF olmadan) Bölge çevrimdışı işlemi veya hizmet tarafından yönetilen yük devretme tamamlanana kadar yazma kullanılabilirliği kaybolur. Okumalar, sağlıklı bölgelerden devam ediyor. Hesap güçlü tutarlılık kullanıyorsa veri kaybı olmaz. Hesap güçlü tutarlılık kullanmıyorsa, bölgenin kalıcı veri kaybı yaşaması gibi bir durum söz konusu olduğunda kopyalanmamış veriler kaybolabilir. Bölge çevrimdışı operasyonu gerçekleştirin. Hizmet tarafından yönetilen yük devretme etkinleştirilirse, Azure Cosmos DB otomatik olarak yük devretme başlatır, ancak bu bir saat veya daha fazla sürebilir. Kesinti sırasında yazma bölgesini değiştirmeyin.
Birden çok yazma bölgesi destekli hesap Herhangi bir bölge kesintisi SDK yapılandırması aracılığıyla iyi durumdaki bölgelere otomatik yönlendirme; el ile müdahaleye gerek yoktur. Başarısız bölgedeki son güncelleştirilen veriler kalan bölgelerde kullanılamayabilir. Bölgenin kalıcı veri kaybı yaşama olasılığı düşük olması durumunda, kurtarılmamış veriler kaybolabilir. Kalan bölgelerde yeterli aktarım hızı olduğundan emin olun. Kurtarma işleminden sonra, Azure Cosmos DB, yapılandırılmış çakışma çözümleme yöntemini kullanarak çoğaltılmamış veriyi otomatik olarak geri yükler.
Herhangi bir hesap yapılandırması Veri bozulması veya yanlışlıkla silme Kullanılabilirlik etkisi yok. Bozulma veya silme zamanına bağlı olarak veri kaybı ihtimali. Belli bir zamanda geri yükleme (kesintisiz yedekleme) veya düzenli yedeklemeden geri yükleme.

Note

Bu makalede, Azure Cosmos DB çoklu bölge özelliklerinin güvenilirlik özelliklerine odaklanmaktadır. Birden çok okuma ve yazma bölgesinin daha yüksek performans ve genel olarak dağıtılmış uygulamalar için ölçeklendirme gibi başka avantajları da vardır. Tüm çözüm mimarinizi değerlendirmeli ve bu özellikleri kullanmanın tüm avantajlarını göz önünde bulundurmalısınız.

SDK'lar ve dayanıklılık

Azure Cosmos DB SDK'ları, uygulamanızın dayanıklılık stratejisinin önemli bir parçasıdır. Birden çok bölge hesabınız olduğunda SDK yapılandırması, isteklerin bağlanılacak tercih edilen bölgeler ve dışlanması gereken bölgeler de dahil olmak üzere bölgeler arasında nasıl yönlendirildiğini etkiler. SDK'lar bölgelerin ve bölümlerin kullanılabilirliğini izler ve bölüm düzeyi devre kesici gibi iyi durumdaki bölgeleri ve bölümleri kullanmak için kendilerini dinamik olarak yeniden yapılandırabilir.

SDK'nın yüksek kullanılabilirliği nasıl desteklediği hakkında daha fazla bilgi için kullandığınız SDK için yüksek kullanılabilirlik belgelerine bakın:

Bölge kesintileri sırasında olası veri kaybı

Bir Azure Cosmos DB hesabını birden çok bölgeye dağıttığınızda, veri dayanıklılığı hesapta yapılandırdığınız tutarlılık düzeyine bağlıdır. Tüm tutarlılık düzeyleri için, en az iki bölgede dağıtılan bir Azure Cosmos DB hesabının kurtarma noktası hedefi (RPO) için aşağıdaki tablo ayrıntıları. RPO, bölge kesintisi sırasında olası veri kaybını temsil eder.

Tutarlılık düzeyi Bölge kesintisinde RPO
Oturum, tutarlı ön ek, son 15 dakikadan az
Sınırlanmış eskime durumu K ve T
Güçlü 0

K = Bir öğenin sürüm sayısı (yani güncelleştirmeler).

T = Son güncelleştirmeden bu yana geçen zaman aralığı.

Birden çok bölgeli hesaplar için en düşük K ve T değeri 100.000 yazma işlemi veya 300 saniyedir. Bu değer, sınırlanmış eskime durumunu kullanırken veriler için en düşük RPO'yu tanımlar.

Tutarlılık düzeyleri arasındaki farklar hakkında daha fazla bilgi için bkz . Azure Cosmos DB'de tutarlılık düzeyleri.

Tek bir yazma bölgesine sahip birden çok okuma bölgesi

Çözümünüz bölge kesintileri sırasında sürekli çalışma süresi gerektiriyorsa, Azure Cosmos DB verilerinizi birincil bölgeniz tarafından işlenen yazma işlemleriyle birden çok bölgede çoğaltacak şekilde yapılandırabilirsiniz. İsteğe bağlı olarak, uygulamalarınızı belirli okuma bölgelerine bağlanacak şekilde yapılandırabilir ve bu da performanslarını artırmaya yardımcı olabilir. Bir bölgede kesinti varsa, hesap iyi durumdaki bölgelerden çalışmaya devam edebilir.

 Azure Cosmos DB hesabı gösteren diyagram. A bölgesi yazma ve okuma bölgesi, B bölgesi ise okuma bölgesidir. A bölgesindeki bir uygulama, A bölgesindeki Azure Cosmos DB hesabında okuma ve yazma işlemleri gerçekleştirir. B bölgesindeki bir uygulama B bölgesindeki hesaba göre okuma gerçekleştirir, ancak A bölgesine yazar. Dahili olarak, Azure Cosmos DB değişiklikleri bölgeler arasında çoğaltır.

Bölgeler arasında yük devretme

Azure Cosmos DB SDK'sını okuma bölgelerinin öncelikli bir listesiyle yapılandırabilirsiniz. SDK, uygulamanızı listedeki kullanılabilir ilk bölgeye bağlar. Okuma bölgesi kesintisi sırasında SDK, arka uç yanıt kodları aracılığıyla bölge kesintisini algılar, kullanılamaz olarak işaretler ve gelecekteki işlemleri tercih listesindeki bir sonraki kullanılabilir bölgeye yönlendirir. Tercih edilen bölgeler listesinin doğru ayarlandığından ve iş ve gecikme süresi gereksinimlerinizle uyumlu olduğundan emin olun. Ayrıntılı yönergeler için bkz. Azure Cosmos DB SDK kullanılabilirliği sorunlarını giderme.

Yedekleme devri, hesabınızın bölgelerinden birini tamamen veya kısmen erişilemez hale getirme işlemidir. Kesinti yönetiminin etkisi, bölgenin yazma bölgesi mi yoksa okuma bölgesi mi olduğuna bağlıdır:

  • Yazma bölgesi kullanılamaz duruma gelirse, başka bir bölge yazma bölgesi olur.
  • Okuma bölgesi kullanılamaz duruma gelirse, bu bölge okuma isteklerine hizmet yapamaz ve diğer bölgeler okuma işlemleri için kullanılır.

Azure Cosmos DB birden çok yük devretme türü sağlar:

  • Per-partition otomatik yük aktarımı (PPAF): Dahili olarak, Azure Cosmos DB verilerinizi birden fazla fiziksel bölüme yayar. Bir bölümü destekleyen altyapıda sorun oluşursa, diğer bölümler etkilenmeyebilir. PPAF, tek yazma bölgesi hesaplarının tek tek bölümlerini ikincil bölgeye otomatik olarak geçiş yapmasına olanak tanırken, iyi durumdaki bölümlerin birincil bölgede kalmasını sağlar. PPAF, kısmi bölge hatası sırasında kapalı kalma süresini en aza indirmeye ve daha hızlı kurtarma sağlamaya yardımcı olabilir. Daha fazla bilgi için Azure Cosmos DB Per-Partition Otomatik Yük Devretme (PPAF)'yi nasıl tanıtacağınız ve benimseyeceğiniz üzerine kılavuza bakın.

  • Zorlamalı yük devretme: Hesabınızın bölgelerinden birini çevrimdışı duruma getirebilirsiniz. Bu, müşteri tarafından yönetilen yük devretme veya çevrimdışı bölge işlemi olarak da adlandırılır. Bu, kesinti sırasında kullanılabilirliği hızla geri yüklemek için önerilen yaklaşımdır. Kesintiyi algılamaktan ve yük devretmeyi tetiklemekten siz sorumlusunuz. Ayrıca, olağanüstü durum kurtarma tatbikatı sırasında olduğu gibi test için bölge kesintisi senaryolarının benzetimini yapmak için zorunlu yük devretmeyi de kullanabilirsiniz.

    Yazma bölgesini çevrimdışına alırsanız, bir sonraki en yüksek önceliğe sahip okuma bölgesi yeni yazma bölgesi olur. Okuma bölgesini çevrimdışına alırsanız, uygulamalarınız hesaptaki diğer okuma bölgelerine bağlanabilir.

    Yazma bölgenizin zorlamalı yük devretmesi, yapılandırılmamış yazma işlemleri için veri kaybı olasılığını taşır.

    Zorlamalı yük devretmeden sonra Microsoft'un bölgeyi yeniden çevrimiçi duruma getirmesi gerekiyor. İyi durumdaki bölgeler için bu işlem otomatiktir ancak birkaç güne kadar sürebilir. Bölge bir veya iki gün içinde yeniden çevrimiçi olmazsa yardım istemek için bir destek olayı açın.

  • Yazma bölgesini değiştirme: Bölgeler iyi durumdayken hesabınızın yazma bölgesini değiştirebilirsiniz. Bu değişiklik, hesabınız için yazma bölgesinin planlı yük devretme işlemidir.

    Veri çoğaltması yeni yazma bölgesi yükseltilmeden önce yakalandığından yazma bölgesinin değiştirilmesi veri kaybına neden olmaz. Kısa bir kesinti olabilir, ancak yeniden deneme mantığını ve diğer geçici hata işleme tekniklerini kullanan istemciler genellikle önemli bir etki yaşamaz.

    Bu işlem bölgelerin iyi durumda olmasını gerektirdiğinden, bölge kesintisi sırasında kullanılamaz.

  • Hizmet tarafından yönetilen yük devretme: Hesabınız hizmet tarafından yönetilen yük devretmeyi kullandığında, bölgeler arasında yük devretme zamanını belirlemek Microsoft'un sorumluluğundadır. Hizmet tarafından yönetilen yük devretmeyi etkinleştirmek için her bölge için öncelikleri belirtirsiniz. Ancak, bir kesinti bildirme ve hizmet yönetimli yük devretmeyi tetikleme işlemi önemli bir zaman alabilir - potansiyel olarak bir saat veya daha uzun sürebilir. Daha hızlı kurtarma için, hizmetin yönetimindeki yük devretmenin tetiklenmesini beklemek yerine, zorunlu bir yük devretme işlemi gerçekleştirin.

    Microsoft, hesabın yazma bölgesi için hizmet tarafından yönetilen yük devretmeyi tetiklerse, çoğaltılmamış yazma işlemleri kaybolabilir.

    Hizmet yönetimli bir yük devretme işlemi sonrasında, Microsoft'un bir bölgeyi yeniden çevrimiçi duruma getirmesi gerekir. Microsoft bölgeyi otomatik olarak çevrimiçine getirir, ancak bu işlem birkaç gün sürebilir.

Requirements

Region support: herhangi bir Azure bölgesini Azure Cosmos DB hesabınız için okuma bölgesi olarak yapılandırabilirsiniz.

Maliyet

bir Azure Cosmos DB hesabına ek okuma bölgesi eklemek, her bölge için mevcut maliyetlerinizi artırır. Daha fazla bilgi için bkz. Azure Cosmos DB pricing.

Birden çok okuma bölgesi yapılandırma

Kapasite planlaması ve yönetimi

Uygulamanız istekleri bölgelere yayarsa ve bir bölge çevrimdışı olursa, kalan bölgeler daha yüksek istek hacmiyle karşılaşır. Kapasiteyi talebe göre dinamik olarak ayarlamak için otomatik ölçeklendirme kapasitesini kullanın. Sağlanan aktarım hızını kullanıyorsanız, hizmet düşüşü olmayan bir bölgenin kaybını işlemek için yeterli kapasiteyi planlayın ve fazla sağlamayı göz önünde bulundurun. Daha fazla bilgi için bkz. Fazla sağlama ile kapasiteyi yönetme.

Tüm bölgeler iyi durumda olduğunda davranış

Bu bölümde, birden çok okuma bölgesi olan bir Azure Cosmos DB hesabı yapılandırdığınızda ve tüm bölgeler çalışır durumda olduğunda neler bekleyebileceğiniz açıklanmaktadır.

Okuma bölgesi hatası sırasındaki davranış

Bu bölümde, birden çok okuma bölgesi olan bir Azure Cosmos DB hesabı yapılandırdığınızda ve hesabın okuma bölgelerinden birinde kesinti olduğunda neler bekleyebileceğiniz açıklanmaktadır.

Important

İdeal olarak, sdk yapılandırmasında tercih edilen bölgeler listesi doğru yapılandırılarak okuma bölgesi kesintileri istemci düzeyinde işlenmelidir. Doğru yapılandırıldığında SDK, kesintiyi otomatik olarak algılar ve hizmet tarafı yük devretmesi gerektirmeden okuma işlemlerini bir sonraki kullanılabilir bölgeye yeniden yönlendirir.

  • Algılama ve yanıt: Kesintiyi algılama ve yanıtlama sorumluluğu, hesabınızın kullandığı yük devretme türüne bağlıdır.

    • PPAF: PPAF genellikle okuma bölgesi kesintileri için geçerli değildir. Ancak güçlü tutarlılık ve yalnızca iki bölgeye sahip hesaplar için okuma bölgesinin kaybedilmesi hesabı tek bir bölgeye indirger ve bu da dinamik "quorum"u koruyamaz. Bu senaryoda PPAF, etkilenen bölümleri iyi durumdaki bölgeye kaydırarak kullanılabilirliği korumak için etkinleştirebilir.

    • Zorlamalı yük devretme: Zorlamalı yük devretmeyi gerçekleştirmek sizin sorumluluğunuzdadır. Ayrıntılı adımlar için bkz. Azure Cosmos DB Hesabınız için zorla yük devretme işlemi gerçekleştirme.

      Eğer yük devretme işlemi yapmazsanız, hesabınızın davranışı tutarlılık düzeyine bağlıdır.

      • Güçlü tutarlılık: Güçlü tutarlılık, dinamik çekirdeği korumak için iki veya daha fazla bölge gerektirir. Kullanılabilir ikiden az bölge varsa ve yük devretme gerçekleştirmezseniz, hizmet geri gelene kadar hesap yazma kullanılabilirliğini kaybeder.

      • Sınırlanmış eskime tutarlılığı: Sınırlanmış eskime tutarlılığı, bölgeler arasında belirli bir eskime eşiğinin korunmasına bağlıdır. Bölge kesintisinin uzunluğu eşiği aşarsa, sistem yazma işlemleri arasında tutarlılığı koruyamaz. Yük devretme gerçekleştirmezseniz hesap, hizmetin geri yüklenmesine kadar yazma kullanılabilirliğini kaybeder.

    • Hizmet tarafından yönetilen yük devretme: Hizmet tarafından yönetilen yük devretme etkinleştirildiyse, Microsoft sonunda kesintiyi algılar ve hesabınızın yük devretmesini başlatır. Ancak, bu işlem büyük olasılıkla bir saat veya daha uzun sürebilir. Daha hızlı kurtarma için, hizmetin yönetimindeki yük devretmenin tetiklenmesini beklemek yerine, zorunlu bir yük devretme işlemi gerçekleştirin.

  • Etkin istekler: Tüm etkin istekler sonlandırılabilir ve yük devretme tamamlandıktan sonra istemci tarafından yeniden denenmesi gerekebilir. İstemcileriniz kısa bir süre sonra yeniden deneyerek geçici hataları uygun şekilde işlerse, genellikle önemli bir etki yaratmasının önüne geçerler.

  • Beklenen veri kaybı: Okuma bölgesindeki bir kesinti veri kaybına neden olmaz. Azure Cosmos DB okuma tutarlılığı garantilerini sürdürmeye devam eder.

  • Beklenen kapalı kalma süresi: Hesabınızın yaşadığı kapalı kalma süresi, hesabınızın kullandığı yük devretme türüne bağlıdır.

    • PPAF: PPAF etkinleştirildiğinde, sistem genellikle 3 dakika içinde el ile müdahale olmadan hatayı otomatik olarak algılar ve kurtarır.

    • Mecburi yük devretme: Kapalı kalma süresi aşağıdakilere bağlıdır:

      • Kesintiyi fark etmeniz ve yük devretme işlemini başlatmanız ne kadar sürer?

      • Genellikle birkaç saniye olan yük devretmenin ne kadar süreceği.

        Warning

        Kesinti senaryoları sırasında etkilenen bölgede herhangi bir yapılandırma (kontrol düzlemi) işlemi yapmayın çünkü bunlar hesap tutarsızlığı ve gecikmeli kurtarma ile sonuçlanır. Kaçınılması gereken denetim düzlemi işlemleri örneğinden bazıları şunlardır:

        • Yazma bölgesini değiştirin veya yük devretme önceliğini düzenleyin.
        • Hesabı çoklu yazma yapılandırmasına güncelleştirme
        • Tutarlılık düzeylerini veya diğer hesap ayarlarını güncelleştirme
        • Özel uç nokta yapılandırmalarını veya ağ ayarlarını güncelleştirme
        • Hesap aktarım hızını veya ölçeklendirme işlemlerini güncelleştirme
        • Hesap yapılandırmasını veya bölge ayarlarını değiştiren diğer işlemler
    • Hizmet tarafından yönetilen yük devretme: Microsoft, hizmet tarafından yönetilen yük devretmeyi başlatmaktan sorumludur ve hesabınızın karşılaştığı kesinti, Microsoft’un kesintiyi bildirip yük devretmeyi başlatma süresine bağlıdır. Bazı durumlarda bir saat veya daha fazla sürebilir. Hesabınızda yazma işlemlerinde kesinti yaşanıyorsa ve yazma kullanılabilirliğini hızla geri yüklemeniz gerekiyorsa zorlamalı yük devretme gerçekleştirin.

  • Yeniden Dağıtım: Zorunlu yük devretme veya hizmet tarafından yönetilen yük devretme durumunda, etkilenen bölgenin bağlantısı kesilir ve çevrimdışı olarak işaretlenir.

    Okuma bölgesi kesintilerini işlemek için uygulama kodunuzda değişiklik yapılması gerekmez. Azure Cosmos DB SDK okuma işlemlerini tercih edilen bölge listesinde bir sonraki kullanılabilir bölgeye yeniden yönlendirir. Tercih edilen bölge listesindeki bölgelerin hiçbiri kullanılamıyorsa, okuma işlemleri otomatik olarak hizmette yapılandırıldığı gibi hesabın geçerli yazma bölgesine geri döner.

    Note

    Azure Cosmos DB hesabıyla özel uç noktalar kullanıyorsanız, çevrimdışı bölge işleminden sonra özel DNS'nin doğru yönlendirildiğinden emin olun. Ayrıntılı yönergeler için bakınız Özel uç noktalar için yük devretme hususları.

Yazma bölgesi hatası sırasındaki davranış

Bu bölümde, bir Azure Cosmos DB hesabını birden çok okuma bölgesiyle yapılandırdığınızda ve hesabın yazma bölgesinde bir kesinti olduğunda neler bekleyebileceğiniz açıklanmaktadır.

  • Algılama ve yanıt: Kesintiyi algılama ve yanıtlama sorumluluğu, hesabınızın kullandığı yük devretme türüne bağlıdır.

    • PPAF: Microsoft kesintiyi otomatik olarak algılar ve uygunsa bazı bölümlerin yük devretmesini başlatır. Uygulamanızın herhangi bir işlem gerçekleştirmesi gerekmez.

    • Zorlamalı yük devretme: Zorlamalı yük devretmeyi gerçekleştirmek sizin sorumluluğunuzdadır. Ayrıntılı adımlar için bkz. Azure Cosmos DB Hesabınız için zorla yük devretme işlemi gerçekleştirme.

      Yük devretme gerçekleştirmezseniz hesap, hizmetin geri yüklenmesine kadar yazma kullanılabilirliğini kaybeder.

      Hesabınızın yazma bölgesinde bir kesinti varsa, değişiklik yazma bölgesi işlemi gerçekleştirmekten kaçının. Kaynak veya hedef bölgede bir kesinti olduğunda yazma bölgesi değişiklikleri başarılı olmaz. Bunun nedeni, bölge değişiklik yordamının bölgeler arasında bağlantı gerektiren bir tutarlılık denetimi içermesidir.

    • Service tarafından yönetilen yük devretme: Microsoft kesintiyi otomatik olarak algılar ve hesabınızın yük devretmesini başlatır. Uygulamanızın herhangi bir işlem gerçekleştirmesi gerekmez.

  • Etkin istekler: Tüm etkin istekler sonlandırılabilir ve yük devretme tamamlandıktan sonra istemci tarafından yeniden denenmesi gerekebilir. İstemcileriniz kısa bir süre sonra yeniden deneyerek geçici hataları uygun şekilde işlerse, genellikle önemli bir etki yaratmasının önüne geçerler.

  • Beklenen veri kaybı: Hesabınızı güçlü tutarlılık ile yapılandırdığınızda veri kaybı olmaz. Aksi takdirde, yük devretme tamamlandıktan sonra tüm kurtarılmamış yazma işlemleri kaybolabilir. Bölge kesintisi sırasında beklenen en yüksek veri kaybı hakkında bilgi için bkz. Bölge kesintileri sırasında olası veri kaybı.

  • Beklenen kapalı kalma süresi: Hesabınızın yaşadığı kapalı kalma süresi, hesabınızın kullandığı yük devretme türüne bağlıdır.

    • PPAF: PPAF etkinleştirildiğinde, genellikle yaklaşık 3 dakika olan kısa bir kesinti bekleyebilirsiniz.

    • Mecburi yük devretme: Kapalı kalma süresi aşağıdakilere bağlıdır:

      • Kesintiyi fark etmeniz ve yük devretme işlemini başlatmanız ne kadar sürer?
      • Genellikle birkaç saniye olan yük devretmenin ne kadar süreceği.

    Warning

    Kesinti senaryoları sırasında etkilenen bölgede herhangi bir denetim düzlemi işlemi yapmayın çünkü bu, hesap tutarsızlığına ve kurtarmada gecikmeye neden olur. Kaçınılması gereken denetim düzlemi işlemleri örneğinden bazıları şunlardır:

    • Yazma bölgesini değiştirin veya yük devretme önceliğini düzenleyin.
    • Hesabı çoklu yazma yapılandırmasına güncelleştirme
    • Tutarlılık düzeylerini veya diğer hesap ayarlarını güncelleştirme
    • Özel uç nokta yapılandırmalarını veya ağ ayarlarını güncelleştirme
    • Hesap aktarım hızını veya ölçeklendirme işlemlerini güncelleştirme
    • Hesap yapılandırmasını veya bölge ayarlarını değiştiren diğer işlemler
    • Hizmet tarafından yönetilen yük devretme: Microsoft, hizmet tarafından yönetilen yük devretmeyi başlatmaktan sorumludur ve hesabınızın karşılaştığı kesinti, Microsoft’un kesintiyi bildirip yük devretmeyi başlatma süresine bağlıdır. Bazı durumlarda bir saat veya daha fazla sürebilir. Yazma kullanılabilirliğini hızla geri yüklemek için zorlamalı yük devretme gerçekleştirin.
  • Yeniden Dağıtım: Yazma trafiği yeniden dağıtımı, hesabınızın kullandığı yük devretme türüne bağlıdır.

    • PPAF: Azure Cosmos DB iyi durumda olmayan bölüm sağlıklı bir bölgeye otomatik olarak yük devreder.

    • Zorlamalı yük devretme: Zorlamalı yük devretme gerçekleştirdiğinizde, hesabınızın yazma bölgesi belirttiğiniz bölgeye dönüşür.

    Note

    Azure Cosmos DB hesabıyla özel uç noktalar kullanıyorsanız, çevrimdışı bölge işleminden sonra özel DNS'nin doğru yönlendirildiğinden emin olun. Ayrıntılı yönergeler için bakınız Özel uç noktalar için yük devretme hususları.

    • Servis tarafından yönetilen yük devretme: Azure Cosmos DB, hesabın ikincil bölgelerinden birini otomatik olarak yeni birincil yazma bölgesi olarak yükseltir. Yük devretme, belirttiğiniz bölge önceliği sırasına göre başka bir bölgeye gerçekleşir.

Bölge geri kazanımı

Microsoft bir bölgeyi yeniden çevrimiçi hale getirmeli. Bir bölge, bir kesintiden sonra kurtarıldığında, Microsoft bölgeyi otomatik olarak çevrimiçi hale getirir. Ancak bu işlem birkaç gün sürebilir.

Important

Zorunlu yük devretme sonrasında Microsoft, sağlıklı bölgeler için bölgeyi otomatik olarak yeniden çevrimiçi duruma getirir. Bölge bir veya iki gün içinde yeniden çevrimiçi olmazsa yardım istemek için bir destek olayı açın.

Bölge çevrimiçi olduktan sonra gerçekleştirdiğiniz eylemler, kesintinin okuma bölgesinde mi yoksa yazma bölgesinde mi olduğuna bağlı olarak değişir.

  • Okuma bölgesi kesintileri sonrasında: Etkilenen bölge yeniden çevrimiçi olduğunda, geçerli yazma bölgesi ile eşitlenir ve tamamen senkronize olduktan sonra okuma isteklerine yanıt vermek üzere yeniden kullanılabilir. Sonraki okumalar kurtarılan bölgeye yönlendirilir ve bunun için uygulamanızın kodunda değişiklik yapılması gerekmez. Azure Cosmos DB, hem yük devretme işlemi sırasında hem de önceden başarısız olan bir bölgenin yeniden katılımı sırasında okuma tutarlılığı güvencelerini karşılamaya devam eder.

  • Yazma bölgesi kesintilerinden sonra: Etkilenen bölge yeniden çevrimiçi olduğunda, bölge Azure portalında "çevrimiçi" olarak gösterilir ve okuma bölgesi olarak kullanılabilir hale gelir. Bu noktada, yazma bölgesini kurtarılan bölgeye geri döndürmek güvenlidir.

    Important

    Kurtarılan bölge, kurtarıldıktan sonra otomatik olarak yazma bölgesi olarak yükseltilmeyecek . Kurtarılan bölgeyi yazma bölgesi olarak geri değiştirmek, güvenli hale geldiğinde sizin sorumluluğunuzdadır.

    Yazma bölgesini değiştirmeden önce veya değiştirdikten sonra veri veya kullanılabilirlik kaybı olmaz . Uygulamanız yüksek oranda kullanılabilir olmaya devam ediyor.

    Bölge çevrimdışı olmadan önce herhangi bir yazma işlemi çoğaltılmamışsa, çoğaltılmamış yazmaları çakışma akışından okuyabilirsiniz. Uygulamanız çakışma akışını okuyabilir, uygulamaya özgü mantığa göre çakışmaları çözebilir ve güncelleştirilmiş verileri uygun şekilde kapsayıcıya geri yazabilir.

Bölge hataları testi

Azure Cosmos DB hesabınız yüksek oranda kullanılabilir olsa bile uygulamanız bölge yük devretme işlemlerini doğru şekilde işleyemeyebilir. Uygulama test veya olağanüstü durum kurtarma (DR) tatbikatlarınızın bir parçası olarak uygulamanızın uçtan uca yüksek kullanılabilirliğini test etmek için, hesap için hizmet tarafından yönetilen yük devretmeyi geçici olarak devre dışı bırakın. PowerShell, Azure CLI veya Azure portalını kullanarak zorunlu yük devretmeyi başlatın ve uygulamanızı izleyin. Testi tamamladıktan sonra, birincil bölge otomatik olarak çevrimiçi hale geldiğinde oraya geri dönme işlemi yapabilir ve ardından hesap için hizmet tarafından yönetilen yük devretme özelliğini yeniden etkinleştirebilirsiniz. Bölge bir veya iki gün içinde yeniden çevrimiçi olmazsa yardım istemek için bir destek olayı açın.

Hesabınızda PPAF kullanılıyorsa bölüm yük devretme benzetimi yapabilirsiniz. Daha fazla bilgi için bkz . PPAF kurulumunu test edin (hata benzetimi).

Birden çok yazma bölgesi

Azure Cosmos DB'yi birden çok bölgede yazmaları kabul etmek üzere yapılandırabilirsiniz. Bu yapılandırma, bölge kesintilerine karşı çok yüksek dayanıklılık sağlayabilir. Coğrafi olarak dağıtılmış uygulamalarda yazma gecikmesini azaltmak için de kullanışlıdır.

 Azure Cosmos DB hesabı gösteren diyagram. Bölge A ve B bölgesi hem yazma hem de okuma bölgeleridir. A bölgesindeki bir uygulama, A bölgesindeki Azure Cosmos DB hesabında okuma ve yazma işlemleri gerçekleştirir. B bölgesindeki bir uygulama, B bölgesindeki Azure Cosmos DB hesabında okuma ve yazma işlemleri gerçekleştirir. Dahili olarak, Azure Cosmos DB değişiklikleri bölgeler arasında zaman uyumsuz olarak çoğaltır.

Bir Azure Cosmos DB hesabını birden çok yazma bölgesi için yapılandırdığınızda güçlü tutarlılık desteklenmez ve yazma çakışmaları ortaya çıkabilir. Hub bölgesi, yazma çakışmalarında bir arbiter işlevi görür. Bu çakışmaları çözme hakkında daha fazla bilgi için Birden çok yazma bölgesi kullanırken çakışma türleri ve çözüm ilkeleri bölümüne bakın.

Uygulamanızın tasarımını ve birden çok yazma bölgesiyle nasıl çalıştığını göz önünde bulundurmanız önemlidir. Çoklu bölge yazma işlemleri için en iyi yöntemleri gözden geçirin.

Requirements

Region support: herhangi bir Azure bölgesini Azure Cosmos DB hesabınız için okuma veya yazma bölgesi olarak yapılandırabilirsiniz.

Maliyet

bir Azure Cosmos DB hesabına ek yazma bölgesi eklemek, her bölge için mevcut maliyetlerinizi artırır. Daha fazla bilgi için bkz. Azure Cosmos DB pricing.

Birden çok yazma bölgesi yapılandırma

Hesabı oluştururken veya hesap oluşturulduktan sonra istediğiniz zaman hesabınızda birden çok yazma bölgesi yapılandırabilirsiniz. Daha fazla bilgi için bkz. Birden çok yazma bölgesi yapılandırma.

Birden çok yazma bölgesini etkili bir şekilde kullanmak için uygulamanızın da uygun şekilde yapılandırılması gerekir. Bkz. Azure Cosmos DB kullanan uygulamalarda çok bölgeli yazmaları yapılandırma.

Kapasite planlaması ve yönetimi

Uygulamanız istekleri bölgelere yayarsa ve bir bölge çevrimdışı olursa, kalan bölgeler daha yüksek istek hacmiyle karşılaşır. Kapasiteyi talebe göre dinamik olarak ayarlamak için otomatik ölçeklendirme kapasitesini kullanın. Sağlanan aktarım hızını kullanıyorsanız, hizmet düşüşü olmayan bir bölgenin kaybını işlemek için yeterli kapasiteyi planlayın ve fazla sağlamayı göz önünde bulundurun. Daha fazla bilgi için bkz. Fazla sağlama ile kapasiteyi yönetme.

Tüm bölgeler iyi durumda olduğunda davranış

Bu bölümde, birden çok yazma bölgesi olan bir Azure Cosmos DB hesabı yapılandırdığınızda ve tüm bölgeler çalışır durumda olduğunda neler bekleyebileceğiniz açıklanmaktadır.

Bölge hatası sırasındaki davranış

Bu bölümde, birden çok yazma bölgesi olan bir Azure Cosmos DB hesabı yapılandırdığınızda ve hesabın okuma veya yazma bölgelerinden birinde kesinti olduğunda neler bekleyebileceğiniz açıklanmaktadır.

  • Algılama ve yanıt: Uygulamanız bölge kaybını algılar. Azure Cosmos DB SDK'lar, okuma ve yazma işlemlerini iyi durumdaki bölgelere yönlendiren otomatik bölge seçimi özellikleri sağlar.
  • Etkin istekler: Tüm etkin istekler sonlandırılabilir ve yük devretme tamamlandıktan sonra istemci tarafından yeniden denenmesi gerekebilir. İstemcileriniz kısa bir süre sonra yeniden deneyerek geçici hataları uygun şekilde işlerse, genellikle önemli bir etki yaratmasının önüne geçerler.

  • Beklenen veri kaybı: Yakın zamanda güncelleştirilen veriler diğer bölgelerde kullanılamaz duruma gelebilir. Bölge kesintisi sırasında beklenen en yüksek veri kaybı hakkında bilgi için bkz. Bölge kesintileri sırasında olası veri kaybı. Etkilenen bölgenin kalıcı veri kaybı yaşama olasılığı düşükse, kurtarılmamış verileri kaybedebilirsiniz.

  • Beklenen kapalı kalma süresi: SDK'ların ApplicationRegions ve PreferredRegions ile doğru yapılandırılması koşuluyla, çoklu yazma yapılandırmalarında beklenen herhangi bir kapalı kalma süresi yoktur.

    Tavsiye

    En iyi sonuçları elde etmesi için, genel olarak dağıtılan uygulamaların önünde Azure Front Door veya Azure Traffic Manager gibi genel bir yük dengeleme hizmeti bulunmalıdır. Bu hizmetler bölgesel düşüşü algılayabilir ve trafiği sağlıklı bir bölgedeki uygulama örneklerine otomatik olarak yönlendirebilir.

  • Redistribution: Azure Cosmos DB SDK'ları bölgenin iyi durumda olmadığını otomatik olarak algılar ve okuma ve yazma işlemlerini tercih edilen bölge listesinde bir sonraki kullanılabilir bölgeye yönlendirir. Uygulama kodunuzda değişiklik gerekmez.

    Tavsiye

    Uygulamanızın önünde Azure Front Door veya Traffic Manager varsa, bu hizmetler bölgesel düşüşü de algılar ve trafiği sağlıklı bir bölgeye yönlendirir.

Bölge geri kazanımı

Etkilenen bölge yeniden çevrimiçi olduğunda, bölge Azure portalında "çevrimiçi" olarak gösterilir ve yeniden kullanılabilir duruma gelir.

Bölge başarısız olduğunda, çoğaltılmamış tüm yazma verileri çakışma akışı aracılığıyla erişilebilir hale getirilir. Uygulamalar çakışma akışını okuyabilir, uygulamaya özgü mantığa göre çakışmaları çözebilir ve güncelleştirilmiş verileri uygun şekilde Azure Cosmos DB kapsayıcısına geri yazabilir.

Bölge hataları testi

Çoklu bölge yazma yük devretme senaryolarını test etmek için, zorlamalı yük devretme kullanarak bir yazma bölgesini çevrimdışına alabilirsiniz. Bu işlem bir bölge kesintisi simülasyonu oluşturur ve uygulamanızın nasıl yanıt verdiğini gözlemleyebilirsiniz.

Yedekleme ve geri yükleme

Çoğu çözüm için yalnızca yedeklemelere güvenmemeniz gerekir. Bunun yerine, dayanıklılık gereksinimlerinizi desteklemek için bu kılavuzda açıklanan diğer özellikleri kullanın. Ancak yedeklemeler, diğer yaklaşımların koruma altına almayan bazı risklere karşı koruma sağlar. Daha fazla bilgi için bkz. Yedeklilik, çoğaltma ve yedekleme nedir?

Veri kaybı, yanlışlıkla silme işlemleri veya uygulamanızda veri bozulmasına neden olan diğer sorunlar nedeniyle oluşabilir. Tek bölgeli bir hesap kullandığınızda, Azure Cosmos DB bölgesindeki kurtarılamaz bir olağanüstü durum nedeniyle veri kaybı da oluşabilir. Azure Cosmos DB, veri kaybına karşı korumanıza yardımcı olmak için bir dizi yedekleme ve geri yükleme özelliği sağlar. Yedekleri ve saklamayı kurtarılabilirlik gereksinimlerinize ve maliyet gereksinimlerinize göre yapılandırabilirsiniz. Daha fazla bilgi için bkz . Azure Cosmos DB'de çevrimiçi yedekleme ve isteğe bağlı veri geri yükleme.

Hizmet bakımına dayanıklılık

Azure Cosmos DB tek tek işlem düğümlerinin tüm ayrıntılarını saydam bir şekilde yönetir ve düzeltme eki uygulama ve diğer planlı bakım türlerini otomatik olarak gerçekleştirir. Kullanılabilirlik ve gecikme süresi için Azure Cosmos DB SLA'lar, sistemin gerçekleştirdiği tüm otomatik bakım işlemleri aracılığıyla uygulanır.

Hizmet düzeyi sözleşmesi

Azure hizmetleri için hizmet düzeyi sözleşmesi (SLA), her hizmetin beklenen kullanılabilirliğini ve bu kullanılabilirlik beklentisini elde etmek için çözümünüzün karşılaması gereken koşulları açıklar. Daha fazla bilgi için bkz. çevrimiçi hizmetler için SLA’lar.

Azure Cosmos DB kullanılabilirlik, gecikme süresi, aktarım hızı ve tutarlılık gibi çeşitli yapılandırmalar ve hizmet özellikleri için SLA'lar sağlar.

Kullanılabilirlik SLA'ları, aşağıdaki ürün özelliklerinden herhangi birini kullanıp kullanmadığınıza bağlı olarak farklıdır:

  • Sağlanan aktarım hızı
  • Kullanılabilirlik alanı desteğine sahip tek bölgeli hesap (alanlar arası yedeklilik)
  • Birden çok okuma bölgesi kullanan hesaplar
  • Birden çok yazma bölgesi kullanan hesaplar (İş Açısından Kritik katman)