Azure Cosmos DB ile yüksek kullanılabilirlikHigh availability with Azure Cosmos DB

Azure Cosmos DB, verilerinizi Cosmos hesabınızla ilişkili tüm Azure bölgelerinde saydam olarak çoğaltır.Azure Cosmos DB transparently replicates your data across all the Azure regions associated with your Cosmos account. Cosmos DB, aşağıdaki görüntüde gösterildiği gibi verileriniz için birden çok yedeklik katmanı kullanır:Cosmos DB employs multiple layers of redundancy for your data as shown in the following image:

Fiziksel bölümlendirme

  • Cosmos kapsayıcılarındaki veriler yatay olarak bölümlenmiştir.The data within Cosmos containers is horizontally partitioned.

  • Her bölge içinde, her bölüm çoğaltılan ve çoğalan çoğalma işlemi tarafından kaydedilmiş tüm yazmaları olan bir çoğaltma kümesi tarafından korunur.Within each region, every partition is protected by a replica-set with all writes replicated and durably committed by a majority of replicas. Çoğaltmalar, çok sayıda 10-20 hata etki alanı üzerinden dağıtılır.Replicas are distributed across as many as 10-20 fault domains.

  • Tüm bölgelerde her bölüm çoğaltılır.Each partition across all the regions is replicated. Her bölge, Cosmos kapsayıcısının tüm veri bölümlerini içerir ve yazma işlemlerini kabul edebilir ve okumaları sunabilir.Each region contains all the data partitions of a Cosmos container and can accept writes and serve reads.

Cosmos hesabınız N Azure bölgelerinde dağıtılırsa, tüm verilerinizin en az n x 4 kopyası olacaktır.If your Cosmos account is distributed across N Azure regions, there will be at least N x 4 copies of all your data. Cosmos hesabınızla ilişkili bölgelerde düşük gecikmeli veri erişimi sağlamaya ve yazma/okuma aktarım hızını Ölçeklendirmeye ek olarak, daha fazla bölgeye sahip olma (daha yüksek N) kullanılabilirliği artırır.In addition to providing low latency data access and scaling write/read throughput across the regions associated with your Cosmos account, having more regions (higher N) further improves availability.

Kullanılabilirlik için SLA 'LarSLAs for availability

Küresel olarak dağıtılmış bir veritabanı olarak, Cosmos DB aktarım hızını çevreleyen kapsamlı SLA 'Lar, en fazla 99 ' luk bir gecikme süresi, tutarlılık ve yüksek kullanılabilirlik sağlar.As a globally distributed database, Cosmos DB provides comprehensive SLAs that encompass throughput, latency at the 99th percentile, consistency, and high availability. Aşağıdaki tabloda, tek ve çok bölgeli hesaplar için Cosmos DB tarafından sunulan yüksek kullanılabilirlik garantisi gösterilmektedir.The table below shows the guarantees for high availability provided by Cosmos DB for single and multi-region accounts. Yüksek kullanılabilirlik için, Cosmos hesaplarınızı her zaman birden fazla yazma bölgesi olacak şekilde yapılandırın.For high availability, always configure your Cosmos accounts to have multiple write regions.

İşlem türüOperation type Tek bölgeSingle region Çok bölgeli (tek bölge yazmaları)Multi-region (single region writes) Çok bölgeli (çok bölgeli yazma)Multi-region (multi-region writes)
YazarWrites 99,9999.99 99,9999.99 99,99999.999
OkurReads 99,9999.99 99,99999.999 99,99999.999

Not

Uygulamada, sınırlı Eskime durumu, oturum, tutarlı ön ek ve nihai tutarlılık modelleriyle ilgili gerçek yazma kullanılabilirliği, yayımlanan SLA 'Lara göre önemli ölçüde daha yüksektir.In practice, the actual write availability for bounded staleness, session, consistent prefix and eventual consistency models is significantly higher than the published SLAs. Tüm tutarlılık seviyelerinin gerçek okuma kullanılabilirliği, yayımlanan SLA 'ların önemli ölçüde daha yüksektir.The actual read availability for all consistency levels is significantly higher than the published SLAs.

Bölgesel kesintiler durumunda Cosmos DB ile yüksek kullanılabilirlikHigh availability with Cosmos DB in the event of regional outages

Bölgesel kesintiler oldukça yaygındır ve Azure Cosmos DB veritabanınızın her zaman yüksek kullanılabilirliğe sahip olduğundan emin olur.Regional outages aren't uncommon, and Azure Cosmos DB makes sure your database is always highly available. Aşağıdaki ayrıntılar, Cosmos hesap yapılandırmanıza bağlı olarak kesinti sırasında Cosmos DB davranışını yakalar:The following details capture Cosmos DB behavior during an outage, depending on your Cosmos account configuration:

  • Cosmos DB, istemciye bir yazma işlemi alınmadan önce, veriler yazma işlemlerini kabul eden bölge içindeki çoğaltmaların bir çekirdeği tarafından işlenir.With Cosmos DB, before a write operation is acknowledged to the client, the data is durably committed by a quorum of replicas within the region that accepts the write operations.

  • Birden fazla yazma bölgesiyle yapılandırılan çok bölgeli hesaplar, yazma ve okuma işlemleri için yüksek oranda kullanılabilir olacaktır.Multi-region accounts configured with multiple-write regions will be highly available for both writes and reads. Bölgesel yük devretme işlemleri anında yapılır ve uygulamadan herhangi bir değişiklik gerektirmez.Regional failovers are instantaneous and don't require any changes from the application.

  • Tek bir yazma bölgesi olan çok bölgeli hesaplar (yazma bölgesi kesintisi):Multi-region accounts with a single-write region (write region outage):

    • Yazma bölgesi kesintisi sırasında, bu hesaplar okuma için yüksek oranda kullanılabilir olarak kalır.During a write region outage, these accounts will remain highly available for reads. Yazma isteklerinin başarılı olması için Azure Cosmos hesabınızda otomatik yük devretmeyi etkinleştir seçeneğini etkinleştirmeniz gerekir.For the write requests to succeed, you must turn on the enable automatic failover option on your Azure Cosmos account. Bu seçeneğin etkinleştirilmesi, etkilenen bölgenin, belirlediğiniz bölge önceliği sırasına göre başka bir bölgeye yük devretmesini sağlar.Enabling this option will failover the impacted region to another region in the order of region priority you’ve specified.
    • Daha önce etkilenen bölge yeniden çevrimiçi olduğunda, bölge başarısız olduğunda çoğaltılmamış olan tüm yazma verileri, Çakışma akışıaracılığıyla kullanılabilir hale getirilir.When the previously impacted region is back online, any write data that was unreplicated when the region failed, is made available through the conflicts feed. Uygulamalar, çakışmalar akışını okuyabilir, uygulamaya özgü mantığa göre çakışmaları çözümleyebilir ve güncelleştirilmiş verileri uygun şekilde Azure Cosmos kapsayıcısına geri yazabilir.Applications can read the conflicts feed, resolve the conflicts based on the application-specific logic, and write the updated data back to the Azure Cosmos container as appropriate.
    • Daha önce etkilenen yazma bölgesi kurtarıldıktan sonra otomatik olarak bir okuma bölgesi olarak kullanılabilir hale gelir.Once the previously impacted write region recovers, it becomes automatically available as a read region. Kurtarılan bölgeye yazma bölgesi olarak dönebilirsiniz.You can switch back to the recovered region as the write region. Azure CLI veya Azure Portalkullanarak bölgeleri geçirebilirsiniz.You can switch the regions by using Azure CLI or Azure portal. Bir veri veya kullanılabilirlik kaybı , yazma bölgesini değiştirmeden veya sonra, uygulamanız yüksek oranda kullanılabilir olmaya devam eder.There is no data or availability loss before, during or after you switch the write region and your application continues to be highly available.
  • Tek bir yazma bölgesi olan çok bölgeli hesaplar (okuma bölgesi kesintisi):Multi-region accounts with a single-write region (read region outage):

    • Okuma bölgesi kesintisi sırasında, bu hesaplar okuma ve yazma işlemleri için yüksek oranda kullanılabilir olarak kalır.During a read region outage, these accounts will remain highly available for reads and writes.
    • Etkilenen bölgenin otomatik olarak yazma bölgesi bağlantısı kesilir ve çevrimdışı olarak işaretlenir.The impacted region is automatically disconnected from the write region and will be marked offline. Azure Cosmos DB SDK 'ları , okuma çağrılarını tercih edilen bölge listesindeki bir sonraki kullanılabilir bölgeye yönlendirir.The Azure Cosmos DB SDKs will redirect read calls to the next available region in the preferred region list.
    • Tercih edilen bölge listesindeki bölgelerin hiçbiri kullanılabilir değilse, çağrılar otomatik olarak geçerli yazma bölgesine geri döner.If none of the regions in the preferred region list is available, calls automatically fall back to the current write region.
    • Okuma bölgesi kesintisi 'nı işlemek için uygulama kodunuzda değişiklik yapılması gerekmez.No changes are required in your application code to handle read region outage. Sonuç olarak, etkilenen bölge yeniden çevrimiçi olduğunda, daha önce etkilenen okuma bölgesi otomatik olarak geçerli yazma bölgesiyle eşitlenir ve okuma isteklerine sunulacak şekilde yeniden kullanılabilir.Eventually, when the impacted region is back online, the previously impacted read region will automatically sync with the current write region and will be available again to serve read requests.
    • Sonraki okumalar, uygulama kodunuzda herhangi bir değişiklik gerektirmeden kurtarılan bölgeye yönlendirilir.Subsequent reads are redirected to the recovered region without requiring any changes to your application code. Daha önce başarısız olan bir bölgenin yük devretmesi ve yeniden katılması sırasında, uyumluluk garantisi Cosmos DB tarafından kabul edilir.During both failover and rejoining of a previously failed region, read consistency guarantees continue to be honored by Cosmos DB.
  • Tek bölgeli hesaplar, bölgesel kesintiden sonraki kullanılabilirliği kaybedebilir.Single-region accounts may lose availability following a regional outage. Her zaman yüksek kullanılabilirlik sağlamak için Cosmos hesabınızla en az iki bölge (tercihen, en az iki yazma bölgesi) ayarlamanız önerilir.It's always recommended to set up at least two regions (preferably, at least two write regions) with your Cosmos account to ensure high availability at all times.

  • Azure bölgesinin kalıcı olarak kurtarılabilir olduğu nadir ve talihsiz olayında bile, çok bölgeli Cosmos hesabınız varsayılan tutarlılık düzeyiyle yapılandırılmışsa veri kaybı olmaz.Even in a rare and unfortunate event when the Azure region is permanently irrecoverable, there is no data loss if your multi-region Cosmos account is configured with the default consistency level of Strong. Kalıcı olarak kurtarılabilir bir yazma bölgesi durumunda, sınırlı stalet tutarlılığı ile yapılandırılan çok bölgeli Cosmos hesapları için, olası veri kaybı penceresi, stalet penceresiyle (K veya T) kısıtlıdır; oturum, tutarlı ön ek ve nihai tutarlılık seviyeleri için, olası veri kaybı penceresi en fazla beş saniyeye kısıtlıdır.In the event of a permanently irrecoverable write region, for the multi-region Cosmos accounts configured with bounded-staleness consistency, the potential data loss window is restricted to the staleness window (K or T); for session, consistent-prefix and eventual consistency levels, the potential data loss window is restricted to a maximum of five seconds.

Kullanılabilirlik alanı desteğiAvailability Zone support

Azure Cosmos DB, bölgesel kesintiler sırasında yüksek kullanılabilirlik ve dayanıklılık sağlayan, küresel olarak dağıtılmış, çok yöneticili bir veritabanı hizmetidir.Azure Cosmos DB is a globally distributed, multi-master database service that provides high availability and resiliency during regional outages. Çapraz bölge dayanıklılığına ek olarak, Azure Cosmos veritabanınız ile ilişkilendirilecek bölge seçerken bölge yedekliliği de etkinleştirebilirsiniz.In addition to cross region resiliency, you can now enable zone redundancy when selecting a region to associate with your Azure Cosmos database.

Kullanılabilirlik alanı desteğiyle Azure Cosmos DB, çoğaltmaların belirli bir bölgedeki birden çok bölgeye yerleştirildiğinden emin olur ve bu da, en fazla başarısızlık sırasında yüksek kullanılabilirlik ve esneklik sağlar.With Availability Zone support, Azure Cosmos DB will ensure replicas are placed across multiple zones within a given region to provide high availability and resiliency during zonal failures. Bu yapılandırmadaki gecikme ve diğer SLA 'Lara yönelik bir değişiklik yoktur.There are no changes to latency and other SLAs in this configuration. Tek bir bölge hatası durumunda, bölge artıklığı RPO = 0 ve RTO = 0 ile kullanılabilirlik için tam veri dayanıklılığı sağlar.In the event of a single zone failure, zone redundancy provides full data durability with RPO=0 and availability with RTO=0.

Bölge artıklığı, çok yöneticili çoğaltma özelliği için ek bir özelliktir .Zone redundancy is a supplemental capability to the multi-master replication feature. Bölgesel dayanıklılık elde etmek için tek başına bölge artıklığı güvenlenemez.Zone redundancy alone cannot be relied upon to achieve regional resiliency. Örneğin, bölgeler genelinde bölgesel kesintiler veya düşük gecikme erişimi durumunda, bölge yedekliliğe ek olarak birden fazla yazma bölgesi olması önerilir.For example, in the event of regional outages or low latency access across the regions, it’s advised to have multiple write regions in addition to zone redundancy.

Azure Cosmos hesabınız için çok bölgeli yazma yapılandırırken, ek ücret ödemeden bölge yedekliliği seçebilirsiniz.When configuring multi-region writes for your Azure Cosmos account, you can opt into zone redundancy at no extra cost. Aksi takdirde, lütfen bölge artıklığı desteğinin fiyatlandırmasıyla ilgili olarak aşağıdaki nota bakın.Otherwise, please see the note below regarding the pricing for zone redundancy support. Bölgeyi kaldırarak ve bölge yedekliği etkinken yeniden ekleyerek, Azure Cosmos hesabınızın mevcut bir bölgesinde bölge yedekliliği etkinleştirebilirsiniz.You can enable zone redundancy on an existing region of your Azure Cosmos account by removing the region and adding it back with the zone redundancy enabled.

Bu özellik aşağıdaki Azure bölgelerinde kullanılabilir:This feature is available in following Azure regions:

  • Birleşik Krallık GüneyUK South
  • Güneydoğu AsyaSoutheast Asia
  • East USEast US
  • Doğu ABD 2East US 2
  • Orta ABDCentral US
  • Batı AvrupaWest Europe
  • Batı ABD 2West US 2

Not

Tek bir bölge için Kullanılabilirlik Alanları etkinleştirme Azure Cosmos hesabı, hesabınıza ek bir bölge eklemeye eşdeğer olan ücretlere neden olur.Enabling Availability Zones for a single region Azure Cosmos account will result in charges that are equivalent to adding an additional region to your account. Fiyatlandırma hakkında ayrıntılı bilgi için, Azure Cosmos DB makalelerinde fiyatlandırma sayfasına ve çok bölgeli maliyete bakın.For details on pricing, see the pricing page and the multi-region cost in Azure Cosmos DB articles.

Aşağıdaki tabloda çeşitli hesap yapılandırmalarının yüksek kullanılabilirlik özelliği özetlenmektedir:The following table summarizes the high availability capability of various account configurations:

KPIKPI Kullanılabilirlik Alanları olmayan tek bölge (AZ değil)Single region without Availability Zones (Non-AZ) Kullanılabilirlik Alanları tek bölge (AZ)Single region with Availability Zones (AZ) Kullanılabilirlik Alanları (AZ, 2 bölge) ile çok bölgeli yazma: en önerilen ayarMulti-region writes with Availability Zones (AZ, 2 regions) – Most recommended setting
Kullanılabilirlik SLA 'Sı yazWrite availability SLA %99,9999.99% %99,9999.99% 99.999%99.999%
Kullanılabilirlik SLA 'sını okuRead availability SLA %99,9999.99% %99,9999.99% 99.999%99.999%
FiyatPrice Tek bölge faturalandırma oranıSingle region billing rate Tek bölge kullanılabilirlik alanı faturalandırma oranıSingle region Availability Zone billing rate Çok bölgeli fatura ücretiMulti-region billing rate
Bölge arızaları – veri kaybıZone failures – data loss Veri kaybıData loss Veri kaybı yokNo data loss Veri kaybı yokNo data loss
Bölge arızaları – kullanılabilirlikZone failures – availability Kullanılabilirlik kaybıAvailability loss Kullanılabilirlik kaybı yokNo availability loss Kullanılabilirlik kaybı yokNo availability loss
Okuma gecikmesiRead latency Çapraz bölgeCross region Çapraz bölgeCross region DüşükLow
Yazma gecikme süresiWrite latency Çapraz bölgeCross region Çapraz bölgeCross region DüşükLow
Bölgesel kesinti – veri kaybıRegional outage – data loss Veri kaybıData loss Veri kaybıData loss Veri kaybıData loss

Birden çok ana ve birden fazla bölge ile sınırlı stalet tutarlılığı kullanılırken, veri kaybı, hesabınızda yapılandırılan sınırlı stalet ile sınırlıdır.When using bounded staleness consistency with multi master and more than one region, data loss is limited to the bounded staleness configured on your account.

Birden çok bölgeyle güçlü tutarlılık yapılandırılarak, bölgesel kesinti sırasında veri kaybı önlenebilir.Data loss during regional outage can be avoided by configuring strong consistency with multiple regions. Bu seçenek, kullanılabilirliği ve performansı etkileyen tüm dengelerle birlikte gelir.This option comes with tradeoffs that impact availability and performance.
Bölgesel kesinti – kullanılabilirlikRegional outage –availability Kullanılabilirlik kaybıAvailability loss Kullanılabilirlik kaybıAvailability loss Kullanılabilirlik kaybı yokNo availability loss
Aktarım hızıThroughput X RU/sn sağlanan aktarım hızıX RU/s provisioned throughput X RU/sn sağlanan aktarım hızıX RU/s provisioned throughput 2X/sn sağlanan aktarım hızı2X RU/s provisioned throughput

İki bölge olduğundan, bu yapılandırma modu Kullanılabilirlik Alanları tek bir bölgeyle karşılaştırıldığında üretilen iş miktarı sayısını iki kez gerektirir.This configuration mode requires twice the amount of throughput when compared to a single region with Availability Zones because there are two regions.

Not

Çok bölgeli bir Azure Cosmos hesabı için kullanılabilirlik alanı desteğini etkinleştirmek üzere, hesabın çoklu yöneticili yazmaları etkinleştirilmiş olması gerekir.To enable Availability Zone support for a multi region Azure Cosmos account, the account must have multi-master writes enabled.

Yeni veya mevcut Azure Cosmos hesaplarına bölge eklerken bölge yedekliliği etkinleştirebilirsiniz.You can enable zone redundancy when adding a region to new or existing Azure Cosmos accounts. Şu anda yalnızca Azure portal, PowerShell ve Azure Resource Manager şablonlarını kullanarak bölge yedekliliği etkinleştirebilirsiniz.Currently, you can only enable zone redundancy by using Azure portal, PowerShell and Azure Resource Manager templates. Azure Cosmos hesabınızda bölge yedekliliği etkinleştirmek için isZoneRedundant true bayrağını belirli bir konum için ayarlamanız gerekir.To enable zone redundancy on your Azure Cosmos account, you should set the isZoneRedundant flag to true for a specific location. Bu bayrağı konumlar özelliği içinde ayarlayabilirsiniz.You can set this flag within the locations property. Örneğin, aşağıdaki PowerShell kod parçacığı "Güneydoğu Asya" bölgesi için bölge yedekliliği sunar:For example, the following powershell snippet enables zone redundancy for the "Southeast Asia" region:

$locations = @( 
    @{ "locationName"="Southeast Asia"; "failoverPriority"=0; "isZoneRedundant"= "true" }, 
    @{ "locationName"="East US"; "failoverPriority"=1 } 
) 

Azure Cosmos hesabı oluştururken Azure portal kullanarak Kullanılabilirlik Alanları etkinleştirebilirsiniz.You can enable Availability Zones by using Azure portal when creating an Azure Cosmos account. Bir hesap oluşturduğunuzda, coğrafi yedeklilik, çok bölgeli yazmalarıetkinleştirdiğinizden emin olun ve kullanılabilirlik alanları desteklendiği bir bölge seçin:When you create an account, make sure to enable the Geo-redundancy, Multi-region Writes, and choose a region where Availability Zones are supported:

Azure portal kullanarak Kullanılabilirlik Alanları etkinleştirme

Yüksek oranda kullanılabilir uygulamalar oluşturmaBuilding highly available applications

  • Yüksek yazma ve okuma kullanılabilirliği sağlamak için Cosmos hesabınızı, birden çok yazma bölgesi ile en az iki bölgeye yaymak üzere yapılandırın.To ensure high write and read availability, configure your Cosmos account to span at least two regions with multiple-write regions. Bu yapılandırma, SLA 'Lar tarafından desteklenen hem okuma hem de yazma işlemleri için en yüksek kullanılabilirlik, en düşük gecikme süresi ve en iyi ölçeklenebilirlik sağlar.This configuration will provide the highest availability, lowest latency, and best scalability for both reads and writes backed by SLAs. Daha fazla bilgi edinmek için bkz. Cosmos hesabınızı birden çok yazma bölgesi ile yapılandırma.To learn more, see how to configure your Cosmos account with multiple write-regions.

  • Tek bir yazma bölgesiyle yapılandırılan çok bölgeli Cosmos hesapları için, Azure CLI veya Azure Portal kullanarak otomatik yük devretmeyi etkinleştirin.For multi-region Cosmos accounts that are configured with a single-write region, enable automatic-failover by using Azure CLI or Azure portal. Otomatik yük devretmeyi etkinleştirdikten sonra, bölgesel bir olağanüstü durum olduğunda Cosmos DB hesabınıza otomatik olarak yük devreder.After you enable automatic failover, whenever there is a regional disaster, Cosmos DB will automatically failover your account.

  • Cosmos hesabınız yüksek oranda kullanılabilir olsa bile, uygulamanız yüksek oranda kullanılabilir kalacak şekilde doğru şekilde tasarlanmayabilir.Even if your Cosmos account is highly available, your application may not be correctly designed to remain highly available. Uygulamanızın uçtan uca yüksek kullanılabilirliğini test etmek için, uygulama testinizin veya olağanüstü durum kurtarma (DR) detaylarının bir parçası olarak Azure CLI veya Azure Portal kullanarak el ile yük devretmeyiçağırın.To test the end-to-end high availability of your application, periodically invoke the manual failover by using Azure CLI or Azure portal, as a part of your application testing or disaster-recovery (DR) drills.

  • Küresel olarak dağıtılmış bir veritabanı ortamında, bölge genelinde bir kesinti olması durumunda tutarlılık düzeyi ve veri dayanıklılığı arasında doğrudan bir ilişki vardır.Within a globally distributed database environment, there is a direct relationship between the consistency level and data durability in the presence of a region-wide outage. İş sürekliliği planınızı geliştirirken, kesintiye uğratan bir olaydan sonra uygulamanın tam olarak kurtarmadan önce kabul edilebilir en uzun süreyi anlamanız gerekir.As you develop your business continuity plan, you need to understand the maximum acceptable time before the application fully recovers after a disruptive event. Uygulamanın tam olarak kurtarılması için gereken süre, kurtarma zamanı hedefi (RTO) olarak bilinir.The time required for an application to fully recover is known as recovery time objective (RTO). Ayrıca, uygulamanın, kesintiye uğratan bir olaydan sonra kurtarılırken kabul edebildiği en son veri güncelleştirme süresini de anlamanız gerekir.You also need to understand the maximum period of recent data updates the application can tolerate losing when recovering after a disruptive event. Kaybetmeyi göze alabileceğiniz güncelleştirme süresi kurtarma noktası hedefini (RPO) olarak bilinir.The time period of updates that you might afford to lose is known as recovery point objective (RPO). RPO ve RTO Azure Cosmos DB için bkz. tutarlılık düzeyleri ve veri dayanıklılığıTo see the RPO and RTO for Azure Cosmos DB, see Consistency levels and data durability

Sonraki adımlarNext steps

Daha sonra aşağıdaki makaleleri okuyabilirsiniz:Next you can read the following articles: