Azure Cosmos DB'de anlık geri yükleme ile kesintisiz yedekleme

Azure Cosmos DB'nin zamanda bir noktaya geri yükleme özelliği, birçok senaryoda yardımcı olur.

  • Bir kapsayıcı içindeki yanlışlıkla yapılan yazma veya silme işlemlerinden geri kazanma.
  • Silinen bir hesabı, veritabanını veya kapsayıcıyı geri yükleme.
  • Geri yükleme noktasında, yedeklemelerin mevcut olduğu herhangi bir bölgedeki bir noktaya geri yükleme yapılması.

Azure Cosmos DB, fazladan sağlanan aktarım hızı (RU) kullanmadan veya veritabanınızın performansını ve kullanılabilirliğini etkilemeden arka planda veri yedekleme gerçekleştirir. Sürekli yedeklemeler, hesabın bulunduğu her bölgede alınır. Örneğin, bir hesabın Batı ABD'de yazma bölgesi ve Doğu ABD ile Doğu ABD 2'deki okuma bölgeleri olabilir. Bu çoğaltma bölgeleri daha sonra ilgili her bölgedeki bir uzak Azure Depolama hesabına yedeklenebilir. Varsayılan olarak, her bölge yedeklemeyi yerel olarak yedekli depolama hesaplarında depolar. Bölgede kullanılabilirlik alanları etkinse yedekleme, alanlar arası yedekli depolama hesaplarında depolanır.

Bir kapsayıcının birden çok bölgede nasıl yedeklendiğini gösteren diyagram.

Geri yükleme için kullanılabilen zaman penceresi (bekletme süresi olarak da bilinir), aşağıdaki iki seçeneğin daha düşük değeridir: 30 gün ve 7 gün.

Seçilen seçenek, sürekli yedeklemenin seçilen katmanına bağlıdır. Geri yükleme için seçilebilecek zaman, kaynağın oluşturulduğu tarihten daha önce olmamak üzere, saklama süresi içerisindeki herhangi bir zaman damgası olabilir. Güçlü tutarlılık modunda, yazma bölgesinde alınan yedeklemeler, okuma bölgelerine kıyasla daha günceldir. Okuma bölgeleri, ağ veya diğer geçici sorunlar nedeniyle geri kalabilir. Geri yükleme yaparken, belirli bir bölgedeki belirli bir kaynak için en son geri yüklenebilir zaman damgasını alabilirsiniz. En son geri yüklenebilir zaman damgasına başvurmak, kaynak yedeklemelerinin verilen zaman damgasına kadar olduğunu ve bu bölgede geri yüklenebileceğini onaylamaya yardımcı olur.

Şu anda belirli bir noktada bir Azure Cosmos DB hesabı (NoSQL için API veya MongoDB API'si, Tablo için API, Gremlin için API) içeriğini başka bir hesaba geri yükleyebilirsiniz. Bu geri yükleme işlemini Azure portalı, Azure CLI, Azure PowerShell veya Azure Resource Manager şablonları aracılığıyla gerçekleştirebilirsiniz.

Yedekleme alanı yedekliliği

Varsayılan olarak, Azure Cosmos DB sürekli mod yedekleme verilerini yerel olarak yedekli depolama bloblarında depolar. Alanlar arası yedeklilik yapılandırılmış bölgeler için yedekleme, alanlar arası yedekli depolama bloblarında depolanır. Sürekli yedekleme modunda yedekleme depolama yedekliliğini güncelleştiremezsiniz.

Geri yüklemenin farklı yolları

Sürekli yedekleme modu, silinen kapsayıcıları ve veritabanlarını geri yüklemenin iki yolunu destekler. Bunlar yeni bir hesaba veya mevcut bir hesaba geri yüklenebilir. Bu iki mod arasındaki seçim senaryolara bağlıdır. Çoğu durumda, silinen kapsayıcıları ve veritabanlarını mevcut bir hesaba geri yüklemek tercih edilir. Bu, yeni bir hesaba geri yükleme sırasında gereken veri aktarımı maliyetini önler. Yanlışlıkla veri değişikliğinin yapıldığı senaryolarda, yeni bir hesaba geri yükleme tercih edilen seçenek olabilir.

Yeni hesaba ne geri yüklenir?

Kararlı bir durumda, kaynak hesapta gerçekleştirilen tüm mutasyonlar (veritabanları, kapsayıcılar ve öğeler dahil) 100 saniye içinde zaman uyumsuz olarak yedeklenir. Azure Depolama yedekleme medyası çalışmıyor veya kullanılamıyorsa, medya kullanılabilir olana kadar mutasyonlar yerel olarak kalıcı hale gelir. Daha sonra mutasyonlar silinir ve geri yüklenebilen işlemlerin aslına uygunluk kaybı yaşanmasını önlemek için gerekli önlemler alınır.

Sağlanan kapsayıcı işleme birimlerinin herhangi bir bileşimini, paylaşılan veritabanı işleme birimini veya hesabın tamamını geri yüklemeyi seçebilirsiniz. Geri yükleme eylemi tüm verileri ve bunların dizin özelliklerini yeni bir hesaba geri yükler. Geri yükleme işlemi bir hesapta, veritabanında veya kapsayıcıda geri yüklenen tüm verilerin belirtilen geri yükleme süresince tutarlı olmasını garanti eder. Geri yükleme süresi, geri yüklenmesi gereken veri miktarına bağlıdır. Yeni geri yüklenen veritabanı hesabının tutarlılık ayarı, kaynak veritabanı hesabının tutarlılık ayarlarıyla aynıdır.

Note

Sürekli yedekleme moduyla yedeklemeler, Azure Cosmos DB hesabınızın kullanılabildiği her bölgede alınır. Her bölge hesabı için alınan yedeklemeler varsayılan olarak yerel yedeklidir ve hesabınızda bu bölge için kullanılabilirlik alanı özelliği etkinleştirilmişse alanlar arası yedeklidir. Geri yükleme eylemi her zaman verileri yeni bir hesaba geri yükler.

Hangi öğeler geri yüklenmez?

Belirli bir noktaya kurtarma işleminden sonra aşağıdaki yapılandırmalar geri yüklenmez:

  • Paylaşılan aktarım hızı veritabanı altındaki kapsayıcıların bir alt kümesi geri yüklenemez. Veritabanının tamamı bir bütün olarak geri yüklenebilir.
  • Güvenlik duvarı, sanal ağ, veri düzlemi rol tabanlı erişim denetimi veya özel uç nokta ayarları.
  • Kaynak hesaptan tüm bölgeler.
  • Saklı yordamlar, tetikleyiciler, Kullanıcı Tanımlı Fonksiyonlar (UDF'ler).
  • Rol tabanlı erişim denetimi atamaları.

Geri yükleme tamamlandıktan sonra bu yapılandırmaları geri yüklenen hesaba ekleyebilirsiniz.

Canlı hesaplar için geri getirilebilir zaman damgası

Silinmemiş Azure Cosmos DB canlı hesaplarını geri yüklemek için kapsayıcı için her zaman en son geri yüklenebilir zaman damgasını belirlemek en iyi yöntemdir. Daha sonra hesabı en son sürümüne geri yüklemek için bu zaman damgasını kullanabilirsiniz.

Geri yükleme senaryoları

Geri yükleme özelliği, belirli bir zamana geri dönmeyi aşağıdaki senaryolar için destekler. 1 ile 3 arasında senaryolarda, geri yükleme zaman damgası önceden biliniyorsa geri yüklemenin nasıl tetikleneceği gösterilmektedir. Ancak, yanlışlıkla silme veya bozulmanın tam zamanını bilmediğiniz senaryolar olabilir. Senaryo 4 ve 5, geri yüklenebilir veritabanı veya kapsayıcılardaki yeni olay akışı API'lerini kullanarak geri yükleme zaman damgasının nasıl bulunduğunu gösterir.

Geri yüklenebilen bir hesabın zaman damgalarıyla yaşam döngüsü olaylarını gösteren diyagram.

  • Senaryo 1 - Silinen hesabı geri yükleme: Geri yükleyebileceğiniz tüm silinmiş hesaplar Geri Yükleme bölmesinde görünür. Örneğin, A Hesabı zaman damgası T3'te silinirse. Bu durumda T3'ten hemen önceki zaman damgası, konum, hedef hesap adı, kaynak grubu ve hedef hesap adı Azure portalından, PowerShell'den veya CLI'dan geri yüklemek için yeterlidir.

    Geri yüklenebilen bir veritabanı ve kapsayıcı için zaman damgaları içeren yaşam döngüsü olayları.

  • Senaryo 2 - Belirli bir bölgedeki bir hesabın verilerini geri yükleme: Örneğin, A Hesabı T3 zaman damgasında Doğu ABD ve Batı ABD olmak üzere iki bölgede mevcutsa. Batı ABD'de A hesabının bir kopyasına ihtiyacınız varsa Azure portalından, PowerShell'denveya CLI'dan belirli bir noktaya geri yükleme gerçekleştirebilir ve hedef konum olarak Batı ABD kullanabilirsiniz.

  • Senaryo 3 - Bilinen geri yükleme zaman damgasına sahip bir kapsayıcı içindeki yanlışlıkla yazma veya silme işleminden kurtarma: Örneğin, Veritabanı 1 içindeki Kapsayıcı 1'in içeriğinin yanlışlıkla T3 zaman damgasında değiştirildiğini biliyorsanız. Kapsayıcının istenen durumunu kurtarmak için zaman damgası T3'te Azure portalından, PowerShell'den veya CLI'dan başka bir hesaba belirli bir noktaya geri yükleme yapabilirsiniz.

  • Senaryo 4 - Veritabanının yanlışlıkla silinmesinden önceki bir zamana hesap geri yükleme: Azure portalında, bir veritabanının ne zaman silindiğini belirlemek ve geri yükleme süresini bulmak için olay akışı bölmesini kullanabilirsiniz. Benzer şekilde, Azure CLI ve PowerShell ile veritabanı olay akışını numaralandırarak veritabanı silme olayını bulabilir ve ardından geri yükleme komutunu gerekli parametrelerle tetikleyebilirsiniz.

  • Senaryo 5 - Kapsayıcı özelliklerinin yanlışlıkla silinmesi veya değiştirilmesinden önce hesabı önceki bir noktaya geri yükleme: Azure portalında, geri yükleme zamanını bulmak için bir kapsayıcının ne zaman oluşturulduğunu, değiştirildiğini veya silindiğini belirlemek için olay akışı bölmesini kullanabilirsiniz. Benzer şekilde, Azure CLI ve PowerShell ile kapsayıcı olayları akışını numaralandırarak tüm kapsayıcı olaylarını bulabilir ve ardından geri yükleme komutunu gerekli parametrelerle tetikleyebilirsiniz.

Permissions

Azure Cosmos DB, sürekli yedekleme hesabının geri yükleme izinlerini belirli bir rol veya sorumluyla yalıtmanıza ve kısıtlamanıza olanak tanır. Daha fazla bilgi edinmek için bkz. Azure Cosmos DB hesabını geri yükleme izinlerini yönetme.

Çok bölgeli yazma yetkisine sahip hesabın geri yükleme işlemini anlama

Hub bölgesinde gerçekleştirilen yazma işlemleri hemen onaylanır ve 100 saniye içinde zaman uyumsuz olarak yedeklenir. Çoklu yazma hesaplarında, uydu bölgesinde yapılan mutasyonlar onay için merkez bölgeye gönderilir. Hub bölgesi herhangi bir çakışma çözümü gerekip gerekmediğini denetler, çakışmaları çözdükten sonra bir çakışma çözümleme zaman damgası atar ve belgeyi uydu bölgesine geri gönderir. Uydu bölgesi yalnızca onay hub'dan alındıktan sonra belgeleri yedekler. Kısacası, geri yükleme işlemi yalnızca merkez bölgesi tarafından, belirlenen geri yükleme noktasında onaylanan belgeleri geri yükler.

Çok bölgeli yazma hesabının geri yüklenmesinde ne olur?

  • Geri yükleme zaman damgası tarafından henüz onaylanmayan mutasyonlar geri yüklenmez.
  • Özel çakışma çözümleme ilkesine sahip koleksiyonlar, zaman damgasına göre 'son yazan kazanır' ilkesine sıfırlanır.

Note

Yerel kesin olmayan yazmaları onaylandığı gibi çözümlemek veya bunları geri almak için bir işlem yapmak üzere çok bölgeli hesabın merkez bölgesinde geri yükleme işlemine kıyasla uydu bölgesinden geri yükleme işlemi daha yavaştır.

Çoklu yazma özellikli bir hesapta zaman damgalarını anlama hakkında daha fazla bilgi edinmek için bkz. Zaman damgalarını anlama.

Örnek senaryo: Doğu ABD ve Batı ABD olmak üzere iki bölgeye sahip, doğu ABD'nin merkez bölge olduğu çoklu yazma bölgesi hesabı verildiğinde aşağıdaki olay dizisini göz önünde bulundurun:

  • T1: İstemci, Doc1 belgesini Doğu ABD'ye yazar (Merkez bölgesi Doğu ABD olduğundan yazma işlemi hemen onaylanır)

  • T2: İstemci Belge2'yi Batı ABD'ye yazar

  • T3: Batı ABD, Doc2'yi onay için Doğu ABD'ye gönderiyor

  • T4: Doğu ABD Doc2'yi aldı, belgeyi onaylar ve Doc2'yi Batı ABD'ye geri gönderir

  • T5: Batı ABD, onaylı Doc2'yi aldı.

Bu senaryoda, verilen geri yükleme zaman damgası T3 ana bölge için kaynak olarak sağlanmışsa, yalnızca Doc1 geri yüklenir. Doc2, merkez tarafından T3 tarafından onaylanmadı. Yalnızca geri yükleme zaman damgası T4'ten fazlaysa, doc2 henüz onaylanmadığı için uyduda T4'te yalnızca doc1 içerdiği şekilde geri yüklenir.

Pricing

Sürekli 30 günlük yedeklemeye sahip Azure Cosmos DB hesabı, yedeklemeyi depolamak için ek aylık ücrete sahiptir. Verilerinizi geri yüklemek için hem 30 günlük hem de 7 günlük sürekli yedekleme katmanı ücretlendirilir. Geri yükleme işlemi her başlatıldığında geri yükleme maliyeti eklenir. Bir hesabı sürekli yedeklemeyle yapılandırdıysanız ancak verileri geri yüklemezseniz, faturanıza yalnızca yedekleme depolama maliyeti dahil edilir.

Aşağıdaki örnek, Batı ABD'de dağıtılan bir Azure Cosmos DB hesabının fiyatını temel alır. Fiyatlandırma ve hesaplama, kullandığınız bölgeye bağlı olarak değişebilir. En son fiyatlandırma bilgileri için Azure Cosmos DB fiyatlandırma sayfasına bakın.

  • 30 günlük sürekli yedekleme ilkesiyle etkinleştirilen tüm hesaplar aşağıdaki gibi hesaplanan yedekleme depolama alanı için aylık ücretlendirilir:

    $0,20/GB * Hesaptaki GB cinsinden veri boyutu * Bölge sayısı

  • Her geri yükleme API'sini çağırma tek seferlik ücretlendirilir. Ücret, geri yüklenen veri miktarının bir işlevidir:

    $0,15/GB * GB cinsinden veri boyutu

Örneğin, iki bölgede 1 TB veriniz varsa:

  • Yedekleme depolama maliyeti aylık 1000 * 0,20 * 2 = 400 TL olarak hesaplanır

  • Geri yükleme maliyeti, geri yükleme başına 1000 * 0,15 = 150 ABD doları olarak hesaplanır

Tip

Azure Cosmos DB hesabınızın geçerli veri kullanımını ölçme hakkında daha fazla bilgi için Azure İzleyici Azure Cosmos DB içgörüleri keşfetme bölümüne bkz. Sürekli 7 günlük katmanda, verilerin yedeklenmesi için ücret alınmaz.

Sürekli 30 günlük katman ile 7 günlük katman karşılaştırması

  • Bir katman için bekletme süresi, başka bir katman için 7 güne kıyasla 30 gündür.
  • Yedekleme depolaması için 30 günlük saklama katmanı ücretlendirilir. Yedi günlük saklama katmanı ücretlendirilmiyor.
  • Geri yükleme her zaman iki katmanda da ücretlendirilir

Yaşam süresi

  • Varsayılan geri yükleme işlemi, TTL yapılandırması da dahil olmak üzere bir kapsayıcının tüm özelliklerini varsayılan olarak geri yükler. Bu, TTL devre dışı bırakılmadan geri yükleme yapılırsa verilerin silinmesine neden olabilir. Silme işlemini önlemek için, geri yüklemeyi yaparken PowerShell 'de (-DisableTtl $true) veya cli'de (--disable-ttl True) TTL'yi devre dışı bırakmak için bir parametre geçirin.

Müşteri tarafından yönetilen anahtarlar

Öğrenmek için bkz . Müşteri tarafından yönetilen anahtarlar sürekli yedeklemeleri nasıl etkiler?

  • Sürekli yedeklemelerle müşteri tarafından yönetilen anahtarları kullanırken Azure Cosmos DB hesabınızı yapılandırma.
  • Müşteri tarafından yönetilen anahtarlar geri yüklemeleri nasıl etkiler?

Mevcut sınırlamalar

Şu anda belirli bir noktaya geri yükleme işlevi aşağıdaki sınırlamalara sahiptir:

  • Sürekli yedekleme için desteklenen SQL, MongoDB, Gremlin ve Tablo için Azure Cosmos DB API'leri. Cassandra için API şu anda desteklenmiyor.

  • Şu anda kapsayıcılardan Synapse Link'i devre dışı bırakmış olan müşteriler sürekli yedeklemeye geçiremez. Analiz deposu yedeklemelere dahil değildir.

  • Geri yüklenen hesaplar kaynak hesabınızın bulunduğu bölgede oluşturulur. Bir hesabı kaynak hesabın mevcut olmadığı bir bölgeye geri yükleyemezsiniz.

  • Geri yükleme penceresi, sürekli 30 günlük katman için yalnızca 30 gündür ve sürekli 7 günlük katman için yedi gündür. Bu katmanlar değiştirilebilir, ancak gerçek miktarlar (7 veya 30) değiştirilemez. Ayrıca, 30 günlük katmandan 7 günlük katmana geçerseniz, yedinci katmandan sonraki günlerde veri kaybı olasılığı vardır.

  • Yedeklemeler otomatik olarak coğrafi olağanüstü durumlara karşı dayanıklı değildir. Hesabın ve yedeklemenin dayanıklılığı için açıkça başka bir bölge eklenmelidir.

  • Geri yükleme işlemi devam ederken Kimlik ve Erişim Yönetimi (IAM) ilkelerini değiştirmeyin veya silmeyin. Bu ilkeler, hesabın herhangi bir sanal ağı, güvenlik duvarı yapılandırmasını değiştirmesine izin verir.

  • Sürekli yedeklemeye sahip MongoDB için Azure Cosmos DB hesapları, mevcut bir koleksiyon için benzersiz dizin oluşturmayı desteklemez. Böyle bir hesap için benzersiz dizinlerin koleksiyon oluşturma işlemiyle birlikte oluşturulması gerekir. Bu dizinler yalnızca koleksiyon uzantısı oluşturma komutları kullanılarak yapılmalıdır ve yapılabilir.

  • Geri yüklemeden sonra, bazı koleksiyonlarda tutarlı dizin yeniden oluşturuluyor olabilir. IndexTransformationProgress özelliği aracılığıyla yeniden derleme işleminin durumunu de kontrol edebilirsiniz.

  • Sürekli yedekleme modu hesabı oluşturduğunuzda MongoDB için API'deki benzersiz dizinler eklenemez, güncelleştirilemez veya bırakılamaz. Ayrıca, bir hesabı düzenli aralıklı moddan sürekli moda geçirdiğinizde de değiştirilemezler.

  • Sürekli mod geri yükleme, geri yükleme noktasından itibaren geçerli olan aktarım hızı ayarını geri yüklemeyebilir.

Sonraki Adımlar