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.
Bu makale, MongoDB'den Azure DocumentDB'ye geçişi planlamanıza ve yürütmenize yardımcı olur. Kullanılabilir geçiş araçlarını, geçişin temel aşamalarını ve riski azaltmaya ve kapalı kalma süresini en aza indirmeye yönelik en iyi yöntemleri kapsar.
İster şirket içi MongoDB sunucusundan, ister bulutta barındırılan bir VM'den ister yönetilen MongoDB hizmetinden geçiş yapın, bu makaledeki geçiş seçenekleri, yönergeler ve en iyi yöntemler geçerlidir.
Önemli geçiş aşamaları
Başarılı bir geçiş, bu ayrı aşamaları izler. Her aşamanın belirli hedefleri ve başarı ölçütleri vardır.
1. Değerlendirme
Desteklenmeyen özellikleri, komutları, sorgu söz dizimini ve dizin türlerini belirlemek için Azure DocumentDB Geçiş uzantısı kullanarak kaynak MongoDB'nizde otomatik tarama çalıştırın. Değerlendirme ayrıca MongoDB sürümüne, lisansına, örnek türüne ve veritabanı ve koleksiyon ölçümlerine genel bir bakış sağlar. Şema değişikliklerini planlamak ve geçiş öncesinde gerekli yeniden düzenlemeyi belirlemek için bu bulguları kullanın.
Tip
Desteklenen MongoDB Sorgu Dili (MQL) özelliklerini ve söz dizimini ayrıntılı olarak gözden geçirmenizi ve gerçek geçişten önce kavram kanıtı gerçekleştirmenizi öneririz.
2. Hazırlama
Değerlendirme raporunu analiz edin ve kaynak TPS'yi (saniyedeki işlemler) ölçün. Hedef İşlem Katmanı, Depolama Katmanı ve parça sayısı oluşturmak için temsili verilerde deneme geçişleri çalıştırın. Hedef yapılandırmanın gereksinimlerinizi karşıladığından emin olmak için performans testleri gerçekleştirin.
3. İyileştirme
Üretim sorgu desenlerinizle eşleşen uygun parça anahtarları ve dizinlerle hedef koleksiyonları hazırlayın. Birden çok parça kullanıyorsanız, yükü dengelemek ve parçalar arası işlemleri en aza indirmek için koleksiyonları parçalar arasında dağıtmaya karar verin.
4. Geçiş
Verileri çevrimdışı veya çevrimiçi modda taşımak için geçiş işini çalıştırın:
- Çevrimdışı geçiş: Başlangıçta kaynağın anlık görüntüsünü alır ve kaynağı hedefe toplu olarak kopyalar. Anlık görüntü alındıktan sonra kaynağa eklenen, güncellenen veya silinen hiçbir veri kopyalanmaz. Gerekli kesinti süresi, toplu kopyalamanın ne kadar süreceğine bağlıdır.
- Çevrimiçi geçiş: Çevrimdışı olarak aynı toplu kopyalamayı gerçekleştirir, ancak işlem boyunca değişiklik akışını da izler. Geçiş sırasında yapılan değişiklikler hedefe çoğaltılır, bu nedenle gerekli uygulama kesintisi süresi en düşük düzeydedir. Kaynakta değişiklik akışı ve yeterince büyük bir oplog gerektirir.
Tip
Çevrimiçi geçişler için, geçiş penceresi sırasında tüm değişiklikleri yakalamak için değişiklik akışının etkinleştirildiğinden ve oplog'un kaynak MongoDB'nizde uygun şekilde boyutlandırılmış olduğundan emin olun.
Kullanılabilir araçlar için bkz Geçiş araçları.
5. Doğrulama
En son güncelleştirmeler de dahil olmak üzere tüm verilerin kopyalandığını doğrulayın. Belge sayılarını karşılaştırın, örnek tabanlı doğrulamayı çalıştırın ve dizinlerin ve veri yapılarının hedef üzerindeki beklentilerle eşleştiğinden emin olun. Doğrulamayı yinelenebilir ve tutarlı hale getirmek için otomatik betikleri kullanın.
6. Kesintisiz Geçiş
Okuma trafiğini hedefe taşıyın ve işlevsel veya performans sorunları olmadığını doğrulayın. Okuma doğrulaması başarılı olduktan sonra yazma trafiğini hedefe taşıyın. Kesilme penceresi sırasında olası anomalileri yakından izleyin.
Geçiş araçları
Bu makalede açıklanan araçlar, MongoDB iş yüklerinizi aşağıdaki kaynaklardan geçirmenize yardımcı olabilir:
- MongoDB Sanal Makinesi
- MongoDB Atlası
- AWS DocumentDB
Azure DocumentDB Geçiş Uzantısı
Visual Studio Code ile Azure DocumentDB Geçiş Uzantısı (Genel Önizleme) içinde geçiş işlerinizi oluşturun ve yönetin — basitlik, güvenlik ve sıfır kesinti için tasarlanmış bir çözüm.
Bu araç, hizmet kesintisi olmadan iş yüklerini geçirmenize yardımcı olmak için açık, adım adım yönergeler sağlar. Şunları yapabilirsiniz:
- Geçiş için belirli veritabanlarını ve koleksiyonları seçme
- Tanıdık VS Code arabirimindeki tüm adımları gerçekleştirme
- İşlem boyunca güvenli bağlantı olduğundan emin olun
- Uzantıyı kullanmak için sıfır maliyetin keyfini çıkarın
Azure DocumentDB Geçiş Uzantısı ile, ek altyapı veya karmaşıklık olmadan denetim ve güvenliği korurken geçiş yolculuğunuzu kolaylaştırabilirsiniz.
Web Uygulaması Yardımcı Programı (Çevrimiçi)
Verimlilik, güvenilirlik ve kullanım kolaylığı için tasarlanmış bir araç olan MongoMigrationwebBasedUtility ile Azure DocumentDB'ye geçişinizi kolaylaştırın. Depo, iş yüklerinizi geçirmek için ayrıntılı, adım adım yönergeler sunar. Bu araç hem çevrimiçi hem de çevrimdışı veri geçişleri için sorunsuz bir deneyim sunar. İşlem kullanıcı dostudur ve yalnızca kaynak ve hedef ayrıntılarının sağlanmasını gerektirmektedir. Denetimi, güvenliği ve ölçeklenebilirliği koruyarak Azure DocumentDB'nin tüm potansiyelini ortaya çıkararak MongoDB koleksiyonlarınızı zahmetsizce geçirmenizi sağlar.
Önemli özellikler şunlardır:
- Gelişmiş güvenlik için sanal ağınızda özel dağıtımı destekler
- Bağlantı kaybı veya geçici hatalar varsa otomatik devam etme yetenekleri
- Kullanıcı dostu arabirim
- GitHub'da C# kaynak koduna erişim
Araç esnek dağıtım seçeneklerini destekler ve diğer Azure kaynaklarına bağımlılık olmadan bağımsız olarak çalışır. Ayrıca, özelleştirilebilir Azure Web App fiyatlandırma planlarıyla ölçeklenebilir performans sunar.
Yerel MongoDB araçları (Çevrimdışı)
Veri kümelerini çevrimdışı (canlı değişiklikleri çoğaltmadan) Azure DocumentDB teklifine geçirmek için mongodump/mongorestore, mongoexport/mongoimport gibi yerel MongoDB araçlarını da kullanabilirsiniz.
| Scenario | MongoDB yerel aracı |
|---|---|
| Veritabanı verilerinin alt kümesini taşıma (JSON/CSV tabanlı) | mongoexport/mongoimport |
| Veritabanının tamamını taşıma (BSON tabanlı) | mongodump/mongorestore |
-
mongoexport/mongoimport , MongoDB veritabanınızın bir alt kümesini geçirmek için en iyi geçiş araçları çiftidir.
- mongoexport mevcut verilerinizi insan tarafından okunabilir bir JSON veya CSV dosyasına aktarır. mongoexport , dışarı aktarılacak mevcut verilerinizin alt kümesini belirten bir bağımsız değişken alır.
- mongoimport bir JSON veya CSV dosyası açar ve içeriği hedef veritabanı örneğine ekler (bu örnekte Azure DocumentDB.).
- JSON ve CSV kompakt bir biçim değildir; mongoimport Azure DocumentDB'ye veri gönderdiği için fazla ağ ücretleriyle karşınıza çıkabilir.
-
mongodump/mongorestore , MongoDB veritabanınızın tamamını geçirmek için en iyi geçiş araçları çiftidir. Kompakt BSON biçimi, veriler Azure DocumentDB'ye eklendiğinden ağ kaynaklarının daha verimli kullanılmasını sağlar.
- mongodump , mevcut verilerinizi BSON dosyası olarak dışarı aktarır.
- mongorestore BSON dosya dökümünüzü Azure DocumentDB'ye aktarır.
Note
MongoDB yerel araçları, verileri yalnızca konak donanımının izin verdiği kadar hızlı taşıyabilir.
Geçiş için en iyi yöntemler
Riski azaltmak, kapasiteyi daha doğru tahmin etmek, geçiş hızını artırmak ve tam geçişi güvenli bir şekilde yürütmek için bu en iyi yöntemleri kullanın.
Hataları azaltma
Bağlantı dizelerinde URL ile kodlanmış parolalar kullanın. ,
@ve#gibi:özel karakterler kodlanmadığında ayrıştırmayı kesebilir. URL kodlaması, değerlendirme ve geçiş çalıştırmaları sırasında bağlantı hatalarını önlemeye yardımcı olur.Geçişten önce bir ön değerlendirme yapın. Değerlendirme, desteklenmeyen özellikleri, uyumluluk boşluklarını ve olası engelleyicileri erken belirlemenize yardımcı olur. Kesinti anında yeniden çalışmayı azaltmak için geçiş öncesi bulguları çözün.
Üretim öncesinde taşıma ve tam geçiş alıştırması yapın. Üretim dışı bir ortamda bir veya daha fazla prova geçişi uygulayın. Alıştırma, üretim tam geçişi sırasında zamanlama doğruluğunu, ekip hazırlığını ve güvenilirliği artırır.
Altyapıyı doğru boyutlandırma
Küçük ama temsili bir veri kümesinde deneme geçişi çalıştırın. Gerçekçi aktarım hızı, gecikme süresi ve kaynak tüketimini yakalamak için deneme sürümünü kullanın. Temsili örnek yapay test verilerinden daha iyi tahminler sunar.
İşlem Katmanı, Depolama Katmanı ve parça sayısını tahmin etmek için deneme sonuçlarını tahmin edin. Tam veri kümesi hacminize göre son boyutlandırma gereksinimlerini yansıtmak için gözlemlenen deneme ölçümlerini kullanın. Tahmininizi, üretim verileri dağılımınız örnekten farklıysa gözden geçirin.
Üretim benzeri ayarlarla temsili belge sayısını, boyutunu ve yapısını kullanın. Deneme sırasında maliyetin veya geçiş süresinin hafife alınmaması için üretimde kullanılan dizin oluşturma ve dilimleme ayarlarını eşleştirin. Üretim dışı ayarlar yanıltıcı sonuçlara neden olabilir.
Kaynak ve hedef boyutların eşit olduğunu varsayma yerine deneme sonuçlarından hedef depolama tahmini yapın. Kaynak ve hedef depolama ayak izleri, dizin tanımlarındaki ve veri düzenindeki farklılıklar nedeniyle farklılık gösterebilir. Güvenli bir arabelleğe sahip depolamayı planlamak için deneme sonuçlarını kullanın.
Geçiş hızını iyileştirme
Mümkün olduğunda aynı bölge içinde geçiş yapın. Kaynak ve hedefin aynı bölgede tutulması, ağ gecikme süresini azaltır ve veri aktarımı performansını artırır. Ayrıca bölgeler arası veri aktarımı maliyetlerini de azaltabilir.
Geçiş sırasında ölçeği artırın ve kesim sonrasında ölçeği küçültün. Örneğin, geçiş aktarım hızını artırmak için hedef kümeyi geçici olarak M200'e ölçeklendirin. Geçiş sonrasında, durağan iş yükleri için ölçeği desteklenen aralıkta uygun bir katmana düşürebilirsiniz.
Daha hızlı yazma işlemleri için daha yüksek IOPS'ye sahip diskler seçin. Daha yüksek IOPS, yoğun yazma geçişi performansını önemli ölçüde iyileştirebilir. Disk boyutu genellikle daha sonra ölçeklendirilemediği için planlama sırasında disk boyutunu dikkatli bir şekilde seçin.
Geri alma olmadığı için geçişi dikkatle planlayın.
Düşük trafikli bir pencere sırasında kapalı kalma süresini planlayın. Gerekli kapalı kalma süresi, geçiş tamamlandıktan sonra doğrulama adımlarının ne kadar süreceğine bağlıdır. Trafiğin düşük olduğu bir pencere, iş etkisini azaltır.
Tam geçişten hemen önce kaynağa yapılan tüm yazmaları durdurun. Bu adım, kaynak ve hedef arasında son dakika ayrışmasını önler. Tam geçişi tamamlamadan önce yazma işleminin tam anlamıyla durdurulduğunu onaylayın.
Yazma işlemlerine geçmeden önce taşınan verileri doğrulayın. Belge sayılarını karşılaştırın, sonra rastgele örnek belge karşılaştırması (örneğin, karma tabanlı kontroller) yapın. Doğrulama sürecini tekrarlanabilir hale getirmek için mümkün olduğunda bir komut dosyası kullanın.
Uygulama bağlantı dizelerini güncelleştirin ve hedefte test edin. Üretim yazmalarını etkinleştirmeden önce hedef okumalara karşı işlevsel ve performans doğrulamasını çalıştırın ve trafiği test edin. Kritik yolların beklendiği gibi davrandığını onaylayın.
Yazma trafiğini yalnızca doğrulama başarılı olduktan sonra taşıyın. Yalnızca test sonuçları başarılı ve tutarlı olduktan sonra üretim yazmalarını hedefe kaydırma. Uygulama mimariniz destekliyorsa aşamalı bir dağıtım kullanın.
Sorunsuz geçiş için ekipler arasında koordinasyon
Tüm paydaşların onayını alın: uygulama, veri, altyapı, güvenlik, ağ ve yönetim ekipleri. Beklentileri ve sorumlulukları erken uyumlu hale getirin. Paylaşılan sahiplik, yürütme sırasındaki yanlış anlamaları ve gecikmeleri azaltır.
Ekip güveni oluşturmak ve yordamları iyileştirmek için planlama ve deneme çalıştırmalarını kullanın. Sorunsuz geçiş için kısayol yoktur. Deneme çalışmaları, sorunları daha düşük riskli bir ortamda ortaya çıkarır ve ekiplere pratik yapma olanağı sunar.
Geçiş sürecini kritik ve zamana duyarlı bir şekilde değerlendirin. Kesintisiz geçiş için hassas koordinasyon ve net duyuru gerekir. Karar verenleri belirleyin ve başlamadan önce yükseltme yolları oluşturun.
Her adımı kimin gerçekleştireceğini, ne zaman gerçekleşmesi gerektiğini ve kapalı kalma süresini nasıl en aza indirebileceğinizi öğrenin. Sorumlulukları atayın, zaman çizelgeleri oluşturun ve başarı ölçütlerine uygun hale getirin. Tam runbook'u belgeleyip tüm katılımcılarla paylaşın.
Kesinti birden çok iş yükünün eşzamanlı olarak güncellenmesini gerektirdiğinde, tüm paydaşlarla eşgüdüm sağlayın. Tam geçişi tüm ekipler için çalışan bir bakım penceresi sırasında zamanlayın. Cuma gecelerinden veya büyük iş etkinliklerine yakın dönemlerden kaçının.
Durum tespiti adımlarını aceleye getirmeyin veya atlamayın; geri alma işlemi yoktur. Kapsamlı doğrulama ve dikkatli yürütme, yüksek maliyetli hataları önler. Tam geçişin zaman aldığını kabul edin; hız odaklı kısayollar risk oluşturur.
İlgili içerik
- Yerel MongoDB araçlarını kullanarak verileri Azure DocumentDB'ye geçirme.
- MongoMigrationwebBasedUtility kullanarak verileri Azure DocumentDB'ye geçirin.