Veri Aktarım Hizmeti'ni (DTS) kullanarak kendi yönettiğiniz bir MongoDB replika kümesinden, replika kümesi veya parçalı küme mimarisine sahip bir ApsaraDB for MongoDB örneğine veri aktarın. DTS; şema geçişi, tam veri geçişi ve artımlı veri geçişini destekleyerek minimum kesinti süresiyle geçiş yapılmasını sağlar.
Ön koşullar
Başlamadan önce aşağıdaki koşulları karşıladığınızdan emin olun:
Hedef bir ApsaraDB for MongoDB örneği (replika kümesi veya parçalı küme mimarisi) oluşturun. Bkz. Replika kümesi örneği oluşturma ve Parçalı küme örneği oluşturma
Hedef depolama alanının, kaynak veritabanı tarafından kullanılan depolama alanından en az %10 daha büyük olması
Kaynak veritabanını çalıştıran sunucuda yeterli giden bant genişliği bulunması
Kaynak veritabanında oplog özelliğinin etkinleştirilmiş olması ve işlem günlüklerinin en az yedi gün boyunca saklanması ya da değişiklik akışlarının etkinleştirilmiş olması ve DTS'nin son yedi gündeki veri değişikliklerine abone olabilmesi (artımlı veri geçişi için gereklidir)
(Yalnızca hedef parçalı küme için) Hedef örnekte parçalamaya yönelik veritabanları ve koleksiyonların oluşturulmuş, veri parçalamanın yapılandırılmış, dengeleyicinin etkinleştirilmiş ve ön parçalamanın gerçekleştirilmiş olması. Bkz. Parça performansını en üst düzeye çıkarmak için veri parçalamayı yapılandırma ve Parçalı küme MongoDB örneğinde eşit olmayan veri dağıtımını işleme
Veri parçalamayı yapılandırmak, tüm verilerin tek bir parçaya yönlendirilmesini önler. Dengeleyiciyi etkinleştirmek ve ön parçalama yapmak, veri çarpıklığını önlemeye yardımcı olur.
Kaynak veritabanındaki veri değişikliklerini almak için oplog özelliğini kullanın. Değişiklik akışları yalnızca kaynak veritabanı MongoDB V4.0 veya sonraki bir sürümü çalıştırıyorsa kullanılabilir.
Faturalandırma
|
|
|
|
|
|
|
|
|
|
|
|
Geçiş türleri
DTS, iş gereksinimlerinizi karşılamak üzere birleştirebileceğiniz aşağıdaki geçiş türlerini destekler.
Geçiş türü | Desteklenen nesneler | Açıklama |
Şema geçişi | DATABASE, COLLECTION, INDEX | Şemaları kaynaktan hedefe geçirir |
Tam veri geçişi | DATABASE, COLLECTION | Mevcut tüm verileri geçirir |
Artımlı veri geçişi | — | Tam veri geçişi tamamlandıktan sonra değişiklikleri sürekli olarak geçirir OplogArtımlı geçiş, görev başladıktan sonra oluşturulan veritabanlarını desteklemez. Aşağıdaki artımlı güncellemeler desteklenir:
Değişiklik akışıAşağıdaki artımlı güncellemeler desteklenir:
|
Minimum kesinti süresiyle geçiş yapmak için Şema Geçişi, Tam Veri Geçişi ve Artımlı Veri Geçişi olmak üzere üç türü de seçin.
Artımlı geçişin yakaladığı veriler
Oplog kullanıldığında DTS şunları yakalar:
CREATE COLLECTIONveCREATE INDEXDROP DATABASE,DROP COLLECTIONveDROP INDEXRENAME COLLECTIONBelgeler üzerindeki ekleme, güncelleme ve silme işlemleri (yalnızca
$setile yapılan güncellemeler)
DTS, geçiş görevi başladıktan sonra oluşturulan veritabanlarından artımlı verileri geçirmez.
Değişiklik akışları kullanıldığında DTS şunları yakalar:
DROP DATABASEveDROP COLLECTIONRENAME COLLECTIONBelgeler üzerindeki ekleme, güncelleme ve silme işlemleri (yalnızca
$setile yapılan güncellemeler)
Gerekli izinler
Geçiş görevini başlatmadan önce veritabanı hesaplarını aşağıdaki izinlerle yapılandırın.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Hesap oluşturma talimatları için:
Kendi yönetilen MongoDB: db.createUser()
ApsaraDB for MongoDB: MongoDB veritabanlarında kullanıcı izinlerini yönetme
Artımlı geçiş yöntemi olarak ChangeStream kullanıyorsanız, kaynak veritabanı hesabının örnek genelinde Change Streams okuma iznine (örneğin readAnyDatabase) sahip olması gerekir. Kaynak özel bir hesaba sahip bir ApsaraDB for MongoDB örneğiyse, hesaba admin veritabanında okuma izni de vermeniz gerekir. Ayrıntılar için bkz. Örnek oluşturma sırasında belirtilen kök hesabın izinleri.
Sınırlamalar
Geçiş görevini yapılandırmadan önce bu sınırlamaları gözden geçirin. Hedef mimariniz için geçerli olmayan sınırlamaları atlayın.
Kaynak veritabanı
Azure Cosmos DB for MongoDB kümeleri ve Amazon DocumentDB esnek kümeleri: Yalnızca tam veri geçişi desteklenir.
Koleksiyon gereksinimleri: Koleksiyonlar, tüm alanların benzersiz olduğu PRIMARY KEY veya UNIQUE kısıtlamalarına sahip olmalıdır; aksi takdirde hedefte yinelenen kayıtlar görünebilir.
Koleksiyon sayısı: Tek tek koleksiyonları seçerek geçiş yaparken, görev başına en fazla 1.000 koleksiyon desteklenir. Bu sınırın aşılması istek hatasına neden olur. Bunun yerine toplu halde geçiş yapın veya tüm veritabanlarını seçin.
Belge boyutu: Tek bir belge 16 MB'ı aşamaz; bu sınırın aşılması görevin başarısız olmasına neden olur.
TTL dizinleri: Geçişten sonra kaynak ve hedef arasında veri tutarsızlığı oluşabilir.
Şema değişiklikleri: Şema geçişi ve tam veri geçişi sırasında şemaları değiştirmeyin (dizi türü güncellemeleri dahil). Böyle bir işlem görevin başarısız olmasına veya veri tutarsızlığına neden olur.
Yalnızca tam geçiş sırasında yazma işlemleri: Artımlı geçiş olmadan yalnızca tam veri geçişi çalıştırıyorsanız, geçiş sırasında kaynak veritabanına yazma yapmayın. Yazma işlemleri veri tutarsızlığına neden olur.
Birincil/ikincil anahtar değiştirme: Geçiş sırasında kaynakta birincil/ikincil anahtar değiştirme gerçekleşirse görev başarısız olur.
Geçiş gecikmesi doğruluğu: DTS, geçiş gecikmesini en son geçirilen verinin zaman damgasını mevcut kaynak zaman damgasıyla karşılaştırarak hesaplar. Kaynakta yakın zamanda güncelleme yoksa görüntülenen gecikme yanlış olabilir. Gecikmeyi yenilemek için kaynakta bir güncelleme gerçekleştirin.
Tüm bir veritabanını geçiriyorsanız bir heartbeat tablosu oluşturun. DTS, heartbeat tablosunu her saniye günceller; bu da gecikme okumalarının doğru kalmasını sağlar.
Hedef parçalı küme
Yetim belgeler: Geçişten önce yetim belgeleri silin. Kaynak ve hedef belgeler arasındaki
_idçakışmaları veri tutarsızlığına veya görevin başarısız olmasına neden olabilir.Parça anahtarları: Görevi başlatmadan önce kaynakta verilere parça anahtarları ekleyin. Kaynağa parça anahtarları eklemek mümkün değilse bkz. Parçalama anahtarı olmayan bir MongoDB örneğinden MongoDB parçalı küme örneğine veri geçişi.
Geçiş sırasında eklemeler: Eklenen veriler parça anahtarlarını içermelidir.
Geçiş sırasında güncellemeler: Parça anahtarları değiştirilemez.
Hedef replika kümesi
Express Connect, VPN Gateway, Smart Access Gateway, Genel IP Adresi veya Cloud Enterprise Network (CEN) üzerinden bağlantılar için: Domain Name or IP ve Bağlantı Noktası Numarası değerlerini birincil düğümün IP adresi ve bağlantı noktasına ayarlayın veya yüksek kullanılabilirliğe sahip bir uç nokta yapılandırın. Bkz. Kaynak veya hedef veritabanının yüksek kullanılabilirliğe sahip bir MongoDB veritabanı olduğu bir DTS görevi oluşturma.
ECS üzerinde Kendi Yönetilen Veritabanı üzerinden bağlantılar için: Port Number değerini birincil düğümün bağlantı noktasına ayarlayın.
Genel
DTS, bir MongoDB veritabanına SRV uç noktası üzerinden bağlanamaz.
Hedef MongoDB sürümü, kaynak sürümle aynı veya ondan daha yeni olmalıdır. Daha eski hedef sürümler uyumluluk sorunlarına neden olabilir.
DTS,
admin,configveyalocalveritabanlarından veri geçişi yapamaz.Hedefte benzersiz dizini olan veya
capped: trueolan koleksiyonlar yalnızca tek iş parçacıklı yazmayı destekler ve artımlı geçiş sırasında eşzamanlı yeniden oynatmayı desteklemez. Bu durum geçiş gecikmesini artırabilir.İşlemler korunmaz. Geçiş sırasında işlemler tek tek kayıtlara dönüştürülür.
Birincil anahtar veya benzersiz anahtar çakışması oluşursa DTS, çakışan yazma işlemini atlar ve hedefteki mevcut verileri korur.
DTS, FLOAT ve DOUBLE değerlerini almak için
ROUND(COLUMN, PRECISION)kullanır. Varsayılan hassasiyet: FLOAT için 38 basamak, DOUBLE için 308 basamak. Bu varsayılanların gereksinimlerinizi karşıladığını doğrulayın.Tam veri geçişi sırasında eşzamanlı yazma işlemleri, hedef koleksiyonlarda parçalanmaya neden olur. Tam geçişten sonra hedef depolama alanı, kaynak depolama alanını %5–10 oranında aşabilir.
DTS, başarısız görevleri en fazla yedi gün boyunca yeniden dener. İş yüklerini hedefe geçirmeden önce başarısız görevleri durdurun veya serbest bırakın. Alternatif olarak, görev devam ettikten sonra kaynağın hedefin üzerine yazmasını önlemek için DTS hesabının hedef veritabanındaki yazma izinlerini iptal edin.
Hedefteki satır sayılarını şu şekilde sorgulayın:
db.$table_name.aggregate([{ $count:"myCount"}]).Hedef veritabanının kaynakla aynı
_iddeğerlerine sahip olmadığından emin olun. Çakışma varsa görevi başlatmadan önce çakışan verileri hedeften silin.Bir DTS örneği başarısız olursa DTS destek ekibi 8 saat içinde kurtarmaya çalışır. Kurtarma işlemleri, örneği yeniden başlatmayı veya parametreleri ayarlamayı içerebilir. Değişebilecek parametreler için bkz. Örnek parametrelerini değiştirme.
Geçiş görevini yapılandırma ve çalıştırma
1. Adım: Veri Geçişi sayfasına gidin
DTS konsolu üzerinden:
DTS konsolunda oturum açın.
Sol gezinme bölmesinde Data Migration öğesini tıklayın.
Sol üst köşeden geçiş örneğinin bulunduğu bölgeyi seçin.
DMS konsolu üzerinden:
Gerçek adımlar, DMS konsol moduna ve düzenine göre değişebilir. Bkz. Basit mod ve DMS konsolunun düzenini ve stilini özelleştirme .
DMS konsolunda oturum açın.
Üst gezinme çubuğunda işaretçiyi Data + AI > DTS (DTS) > Data Migration üzerine getirin.
Veri Geçişi Görevleri yanındaki açılan listeden geçiş örneğinin bulunduğu bölgeyi seçin.
2. Adım: Görevi oluşturun ve kaynak ile hedef veritabanlarını yapılandırın
Create Task öğesini tıklayın.
Aşağıdaki tablolardaki parametreleri kullanarak kaynak ve hedef veritabanlarını yapılandırın.
Kaynak ve hedef veritabanlarını yapılandırdıktan sonra sayfanın üst kısmında görüntülenen Sınırlamaları gözden geçirin. Bu adımı atlamak görevin başarısız olmasına veya veri tutarsızlığına neden olabilir.
Kaynak veritabanı parametreleri
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Hedef veritabanı parametreleri
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3. Adım: Bağlantıyı test edin
Test Connectivity and Proceed öğesini tıklayın, ardından CIDR Blocks of DTS Servers iletişim kutusunda Test Connectivity öğesini tıklayın.
DTS sunucularının CIDR bloklarının kaynak ve hedef veritabanlarının izin listelerine eklendiğinden emin olun. Bkz. DTS sunucu IP adreslerini izin listesine ekleme .
4. Adım: Geçiş nesnelerini yapılandırın
Configure Objects sayfasında aşağıdaki parametreleri kullanarak geçiş nesnelerini yapılandırın.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5. Adım: Gelişmiş ayarları yapılandırın
Next: Advanced Settings öğesini tıklayın ve aşağıdaki parametreleri yapılandırın.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6. Adım: Veri doğrulamayı yapılandırın (isteğe bağlı)
Bir veri doğrulama görevi ayarlamak için Next Data Verification öğesini tıklayın. Bkz. Veri doğrulama görevi yapılandırma.
7. Adım: Ön denetimi çalıştırın
Next: Save Task Settings and Precheck öğesini tıklayın.
Bu görev yapılandırması için API parametrelerini önizlemek için işaretçiyi Next: Save Task Settings and Precheck üzerine getirin ve Preview OpenAPI parameters öğesini tıklayın.
DTS, geçişi başlatmadan önce bir ön denetim çalıştırır. Görev yalnızca ön denetimden geçtikten sonra başlar.
Bir denetim öğesi başarısız olursa View Details öğesini tıklayın, sorunu çözün ve ardından Precheck Again öğesini tıklayın.
Yoksayılabilen bir denetim öğesi için bir uyarı tetiklenirse Confirm Alert Details > Ignore > OK > Precheck Again öğelerini tıklayın. Uyarıları yoksaymak veri tutarsızlığıyla sonuçlanabilir.
8. Adım: Örneği satın alın ve başlatın
Success Rate değerinin %100 olmasını bekleyin, ardından Next: Purchase Instance öğesini tıklayın.
Purchase Instance sayfasında aşağıdaki parametreleri yapılandırın.
|
|
|
|
|
|
|
|
|
Data Transmission Service (Pay-as-you-go) Service Terms metnini okuyun ve kabul etmek için onay kutusunu seçin.
Buy and Start öğesini tıklayın, ardından onay iletişim kutusunda OK öğesini tıklayın.
Geçiş ilerlemesini izleyin
İlerlemeyi Data Migration sayfasından takip edin.
Artımlı geçiş içermeyen görevler, tam geçiş tamamlandığında otomatik olarak durur. Durum Completed olarak değişir.
Artımlı geçiş içeren görevler sürekli olarak çalışır. Görevi durdurana kadar durum Running olarak kalır.
Geçiş sağlığını değerlendirmek için aşağıdaki temel göstergeleri izleyin:
|
|
|
|
|
|
|
|
|
|
|
|
Gecikme kalıcı olarak yüksekse ve kaynakta güncelleme yoksa görüntülenen gecikme değerini yenilemek için kaynakta bir yazma işlemi gerçekleştirin.
Hedefe geçiş yapın
Artımlı geçiş gecikmesi 0 saniyeye yakın bir değerde sabitlendiğinde hedef kaynakla senkronize demektir. Geçiş işlemini aşağıdaki sırayla tamamlayın:
Kaynak veritabanına yazma işlemlerini durdurun.
Geçiş gecikmesinin 0 saniyeye ulaşmasını bekleyin.
DTS geçiş görevini durdurun.
Uygulamanızın bağlantı dizesini hedef ApsaraDB for MongoDB örneğini gösterecek şekilde güncelleyin.
Uygulamanın hedefte doğru çalıştığını doğrulayın.
İş yüklerini geçirmeden önce DTS görevini durdurun veya serbest bırakın. Başarısızlıktan sonra görev hala çalışıyorsa devam edebilir ve hedefteki verilerin üzerine yazabilir. Alternatif olarak, DTS hesabının hedef veritabanındaki yazma izinlerini iptal edin.