Tüm Ürünler
Search
Belge Merkezi

ApsaraDB for MongoDB:MongoShake ile MongoDB örneklerinin tek yönlü senkronizasyonu

Son Güncelleme:Oct 03, 2026

Alibaba Cloud tarafından geliştirilen açık kaynaklı bir araç olan MongoShake; veri analitiği, olağanüstü durum kurtarma ve aktif-aktif çoğaltma gibi kullanım senaryoları için MongoDB veritabanları arasında veri senkronizasyonu sağlar. Bu konuda, ApsaraDB for MongoDB örnekleri arasında gerçek zamanlı senkronizasyonun nasıl yapılandırılacağı açıklanmaktadır.

MongoShake

MongoShake, Alibaba Cloud tarafından Go dilinde geliştirilmiş genel amaçlı bir hizmet aracıdır. MongoDB'nin işlem günlüklerini (oplog) okuyarak ve bunları hedef örnekte yeniden oynatarak verileri çoğaltır.

MongoShake ayrıca veri aboneliği ve tüketimi özellikleri sunar. Günlük aboneliği, veri merkezi senkronizasyonu ve eşzamansız önbellek temizleme gibi senaryoları desteklemek amacıyla SDK'lar, Kafka ve MetaQ ile entegre olur.

Not

Daha fazla bilgi için MongoShake GitHub deposuna bakın.

Desteklenen veri kaynakları


Kaynak


Hedef


ECS örneğindeki kendi yönetiminizdeki MongoDB veritabanı


ECS örneğindeki kendi yönetiminizdeki MongoDB veritabanı


Şirket içi kendi yönetiminizdeki MongoDB veritabanı


Şirket içi kendi yönetiminizdeki MongoDB veritabanı


ApsaraDB for MongoDB örneği


ApsaraDB for MongoDB örneği


Üçüncü taraf cloud MongoDB veritabanı


Üçüncü taraf cloud MongoDB veritabanı

Notlar

Gerekli izinler

Kaynak

Gerekli izinler

Kaynak MongoDB örneği

readAnyDatabase izni, local veritabanı üzerinde read izni ve mongoshake veritabanı üzerinde readWrite izni.

Not

mongoshake veritabanı, artımlı senkronizasyon başladığında MongoShake programı tarafından kaynak örnekte otomatik olarak oluşturulur.

Hedef MongoDB örneği

readWriteAnyDatabase izni veya hedef veritabanı üzerinde readWrite izni.

Not

MongoDB veritabanı kullanıcılarının nasıl oluşturulacağına ve yetkilendirileceğine ilişkin bilgi için MongoDB veritabanı kullanıcılarını yönetmek için DMS kullanın veya db.createUser komutu konularına bakın.

Önkoşullar

  1. Optimum senkronizasyon performansı için kaynak MongoDB çoğaltma kümesi örneğinin bir VPC kullandığından emin olun. Klasik ağ kullanıyorsa ağ türünü VPC'ye geçirin. Daha fazla bilgi için Bir örneğin ağ türünü klasik ağdan VPC'ye geçirin konusuna bakın.

  2. Bir hedef MongoDB çoğaltma kümesi örneği oluşturun. Ağ gecikme süresini en aza indirmek için hedef örneği kaynak örnekle aynı VPC'de oluşturun. Daha fazla bilgi için Çoğaltma kümesi örneği oluşturun konusuna bakın.

  3. MongoShake'i çalıştırmak için bir ECS örneği oluşturun. Ağ gecikme süresini en aza indirmek için ECS örneğini kaynak örnekle aynı VPC'de oluşturun. Daha fazla bilgi için ECS örneği oluşturun konusuna bakın.

  4. ECS örneğinin özel IP adresini hem kaynak hem de hedef MongoDB örneklerinin izin listesine ekleyin ve ECS örneğinin her iki örneğe de bağlanabildiğini doğrulayın. Daha fazla bilgi için İzin listesini değiştirin konusuna bakın.

Not

Ağ kurulumunuz yukarıdaki gereksinimleri karşılamıyorsa hem kaynak hem de hedef MongoDB örnekleri için bir genel uç nokta talep edebilirsiniz. Ardından, genel uç noktalar üzerinden senkronizasyon gerçekleştirmek amacıyla ECS örneğinin genel IP adresini her iki MongoDB örneğinin izin listesine ekleyin. Daha fazla bilgi için Genel uç nokta talep edin ve İzin listesini değiştirin konularına bakın.

Yordam

Bu yordamda MongoShake'in /test/mongoshake dizinine yüklendiği varsayılmaktadır.

  1. ECS örneğinde oturum açın.

    Not

    Senaryonuzuna uygun bir oturum açma yöntemi seçebilirsiniz. Daha fazla bilgi için ECS sunucuları için oturum açma yöntemlerine genel bakış konusuna bakın.

  2. MongoShake programını indirmek ve adını mongoshake.tar.gz olarak değiştirmek için aşağıdaki komutu çalıştırın.

    wget "https://github.com/alibaba/MongoShake/releases/download/release-v2.8.7-20251218/mongo-shake-v2.8.7.tgz" -O mongoshake.tar.gz
    Not

    Komut, MongoShake 2.8.7 sürümünü indirir. En son sürümü indirmek için sürümler sayfasına bakın.

  3. MongoShake paketini /test/mongoshake dizinine ayıklamak için aşağıdaki komutu çalıştırın.

    tar zxvf mongoshake.tar.gz && mv mongo-shake-v2.8.7 /test/mongoshake && cd /test/mongoshake
  4. MongoShake yapılandırma dosyası collector.conf dosyasını değiştirmek için vi collector.conf komutunu çalıştırın. Aşağıdaki tabloda ana parametreler açıklanmıştır.

    Parametre

    Açıklama

    Örnek

    mongo_urls

    Kaynak MongoDB örneğinin bağlantı dizesi URI'si. Örnekte veritabanı hesabı, admin veritabanında bulunan test hesabıdır.

    Not

    mongo_urls = mongodb://test:**@dds-bp19f409d7512.mongodb.rds.aliyuncs.com:3717,dds-bp19f409d7512**.mongodb.rds.aliyuncs.com:3717

    Not

    Parola at işaretini (@) içeremez. Aksi takdirde bağlantı başarısız olur.

    tunnel.address

    Hedef MongoDB örneğinin bağlantı dizesi URI'si. Örnekte veritabanı hesabı, admin veritabanında bulunan test hesabıdır.

    Not

    tunnel.address = mongodb://test:**@dds-bp19f409d7512.mongodb.rds.aliyuncs.com:3717,dds-bp19f409d7512**.mongodb.rds.aliyuncs.com:3717

    Not

    Parola at işaretini (@) içeremez. Aksi takdirde bağlantı başarısız olur.

    sync_mode

    Veri senkronizasyon modu. Geçerli değerler:

    • all: tam senkronizasyon ve artımlı senkronizasyon gerçekleştirir.

    • full: yalnızca tam senkronizasyon gerçekleştirir.

    • incr: yalnızca artımlı senkronizasyon gerçekleştirir.

    Not

    Varsayılan değer incr değeridir.

    sync_mode = all

    Not

    collector.conf dosyasındaki parametrelerin tam listesi için Ek bölümündeki "collector.conf parametreleri" kısmına bakın.

  5. Senkronizasyon görevini başlatmak ve günlükleri yazdırmak için aşağıdaki komutu çalıştırın.

    ./collector.linux -conf=collector.conf -verbose
  6. Günlük çıktısını gözlemleyin. Aşağıdakine benzer bir giriş göründüğünde tam senkronizasyonun tamamlandığı ve artımlı senkronizasyonun başladığı anlaşılır.

    [09:38:57 CST 2019/06/20] [INFO] (mongoshake/collector.(*ReplicationCoordinator).Run:80) finish full sync, start incr sync with timestamp: fullBeginTs[1560994443], fullFinishTs[1560994737]

İzleme durumu

Artımlı senkronizasyon başladıktan sonra yeni bir terminal penceresi açın ve aşağıdaki komutları çalıştırın:

cd /test/mongoshake && ./mongoshake-stat --port=9100
Not

mongoshake-stat bir Python betiğidir ve Python 2.7'nin yüklü olmasını gerektirir. Daha fazla bilgi için resmi Python web sitesine bakın.

Örnek çıktı:

./mongoshake-stat --port=9100

  logs_get/sec  |  logs_repl/sec  |  logs_success/sec  |          lsn.time          |        lsn_ack.time        |       lsn_ckpt.time        |         now.time           |   replset
      none      |      none       |        none        |  2019-06-20 10:34:14       |  2019-06-20 10:34:13       |  2019-06-20 10:33:36       |  2019-06-20 10:34:14       |  mgset-10
      545       |      768        |        768         |  2019-06-20 10:34:15       |  2019-06-20 10:34:15       |  2019-06-20 10:34:14       |  2019-06-20 10:34:15       |  mgset-10
      541       |      511        |        511         |  2019-06-20 10:34:15       |  2019-06-20 10:34:15       |  2019-06-20 10:34:14       |  2019-06-20 10:34:16       |  mgset-10
      639       |      512        |        512         |  2019-06-20 10:34:16       |  2019-06-20 10:34:16       |  2019-06-20 10:34:14       |  2019-06-20 10:34:17       |  mgset-10
      543       |      512        |        512         |  2019-06-20 10:34:17       |  2019-06-20 10:34:17       |  2019-06-20 10:34:14       |  2019-06-20 10:34:18       |  mgset-10
      546       |      768        |        768         |  2019-06-20 10:34:19       |  2019-06-20 10:34:19       |  2019-06-20 10:34:14       |  2019-06-20 10:34:19       |  mgset-10
      538       |      512        |        512         |  2019-06-20 10:34:20       |  2019-06-20 10:34:20       |  2019-06-20 10:34:19       |  2019-06-20 10:34:20       |  mgset-10
      550       |      511        |        511         |  2019-06-20 10:34:21       |  2019-06-20 10:34:21       |  2019-06-20 10:34:19       |  2019-06-20 10:34:21       |  mgset-10
      546       |      512        |        512         |  2019-06-20 10:34:22       |  2019-06-20 10:34:22       |  2019-06-20 10:34:19       |  2019-06-20 10:34:22       |  mgset-10
      531       |      512        |        512         |  2019-06-20 10:34:23       |  2019-06-20 10:34:23       |  2019-06-20 10:34:19       |  2019-06-20 10:34:23       |  mgset-10
      547       |      512        |        512         |  2019-06-20 10:34:24       |  2019-06-20 10:34:24       |  2019-06-20 10:34:19       |  2019-06-20 10:34:24       |  mgset-10
      541       |      512        |        512         |  2019-06-20 10:34:24       |  2019-06-20 10:34:24       |  2019-06-20 10:34:19       |  2019-06-20 10:34:25       |  mgset-10

Parametre açıklamaları:


Parametre


Açıklama


logs_get/sn


Saniyede alınan oplog sayısı.


logs_repl/sn


Saniyede gerçekleştirilen oplog yeniden oynatma işlemi sayısı.


logs_success/sn


Saniyede başarılı oplog yeniden oynatma işlemi sayısı.


lsn.time


Gönderilen son oplog'un zaman damgası.


lsn_ack.time


Yazma işleminin hedef örnek tarafından onaylandığı zaman damgası.


lsn_ckpt.time


Kontrol noktasının kalıcı hale getirildiği zaman damgası.


now.time


Geçerli saat.


replset


Kaynak veritabanı çoğaltma kümesinin adı.

admin veritabanından veri taşıma

MongoDB, kilitleme davranışı ve dahili komutlarla oluşan çakışmaların örnek performansını düşürebilmesi nedeniyle iş verilerinin admin veritabanında depolanmasını resmi olarak önermez.

MongoShake, admin veritabanındaki iş verilerini admin olmayan bir veritabanına senkronize etmeyi destekler.

Bunu yapmak için Yordam bölümündeki adımları uygulayın. 4. Adımda collector.conf dosyasını değiştirirken aşağıdaki yapılandırma öğelerini ekleyin:

filter.pass.special.db = admin

# Migrate all business collections from the admin database to newDB.
transform.namespace = admin:newDB
# Or, migrate the abc collection in the admin database to the def collection in the target database. You can configure multiple rules.
transform.namespace = admin.abc:target.def

Ek

Tablo 1. collector.conf parametreleri

Kategori

Parametre

Açıklama

Örnek

Yok

conf.version

Yapılandırma dosyasının sürümü. Bu değeri değiştirmeyin.

conf.version = 4

Global seçenekler

id

Senkronizasyon görevinin kimliği. Bu değeri özelleştirebilirsiniz. Günlük dosyası adı, kontrol noktası bilgilerini depolamak için kullanılan veritabanı adı ve hedef örnekteki veritabanı adı için kullanılır.

id = mongoshake

master_quorum

Yüksek kullanılabilirlik seçeneği. Birincil ve yedek MongoShake düğümleri aynı kaynaktan veri senkronize ederken bu parametreyi birincil MongoShake düğümünde true olarak ayarlayın.

Geçerli değerler:

  • true: etkin

  • false: devre dışı

Not

Varsayılan değer false değeridir.

master_quorum = false

full_sync.http_port

Tam senkronizasyon durumunu görüntülemek için kullanılan HTTP bağlantı noktası.

Not

Varsayılan değer 9101'dir.

full_sync.http_port = 9101

incr_sync.http_port

Artımlı senkronizasyon durumunu görüntülemek için kullanılan HTTP bağlantı noktası.

Not

Varsayılan değer 9100'dür.

incr_sync.http_port = 9100

system_profile_port

Dahili yığın bilgilerini görüntülemek için kullanılan profil oluşturma bağlantı noktası.

system_profile_port = 9200

log.level

Günlük düzeyi. Geçerli değerler:

  • error: Hata düzeyindeki bilgiler.

  • warning: Uyarı düzeyindeki bilgiler.

  • info: Geçerli sistem durumuyla ilgili bilgilendirici mesajlar.

  • debug: Hata ayıklama bilgileri.

Varsayılan değer: info.

log.level = info

log.dir

Günlük dosyaları ve PID dosyaları için dizin. Bu parametre ayarlanmazsa varsayılan olarak geçerli yoldaki logs dizini kullanılır.

Not

Bu parametre için mutlak bir yol belirtmeniz gerekir.

log.dir = ./logs/

log.file

Günlük dosyasının adı. Bu değeri özelleştirebilirsiniz.

Not

Varsayılan değer collector.log değeridir.

log.file = collector.log

log.flush

Ekrandaki günlük yenileme sıklığı. Geçerli değerler:

  • true: Her günlük girdisini anında yazdırır. Bu durum performansı etkileyebilir.

  • false: Her günlük girdisinin anında yazdırılacağını garanti etmez. Bu seçenek performansı artırır.

Not

Varsayılan değer false değeridir.

log.flush = false

sync_mode

Veri senkronizasyon modu. Geçerli değerler:

  • all: tam senkronizasyon ve artımlı senkronizasyon gerçekleştirir.

  • full: yalnızca tam senkronizasyon gerçekleştirir.

  • incr: yalnızca artımlı senkronizasyon gerçekleştirir.

Not

Varsayılan değer incr değeridir.

sync_mode = all

mongo_urls

Kaynak MongoDB örneğinin bağlantı dizesi URI'si. Örnekte veritabanı hesabı, admin veritabanında bulunan test hesabıdır.

Not

mongo_urls = mongodb://test:**@dds-bp19f409d7512.mongodb.rds.aliyuncs.com:3717,dds-bp19f409d7512**.mongodb.rds.aliyuncs.com:3717

mongo_cs_url

Kaynak bir parçalı küme örneğiyse ConfigServer (CS) düğümünün bağlantı dizesi URI'sini belirtmeniz gerekir. Bir ConfigServer düğümünün bağlantı dizesi URI'sinin nasıl alınacağı hakkında bilgi için Parça için uç nokta talep edin konusuna bakın.

Örnekte veritabanı hesabı, admin veritabanında bulunan test hesabıdır.

mongo_cs_url = mongodb://test:**@dds-bp19f409d7512-csxxx.mongodb.rds.aliyuncs.com:3717,dds-bp19f409d7512**-csxxx.mongodb.rds.aliyuncs.com:3717/admin

mongo_s_url

Kaynak bir parçalı küme örneğiyse en az bir mongos düğümünün bağlantı dizesi URI'sini belirtmeniz gerekir. Birden çok mongos adresini virgülle (,) ayırın. Bir mongos düğümünün bağlantı dizesi URI'sinin nasıl alınacağı hakkında bilgi için Parça için uç nokta talep edin konusuna bakın.

Örnekte veritabanı hesabı, admin veritabanında bulunan test hesabıdır.

mongos_s_url = mongodb://test:**@s-bp19f409d7512.mongodb.rds.aliyuncs.com:3717,s-bp19f409d7512**.mongodb.rds.aliyuncs.com:3717/admin

tunnel

Senkronizasyon kanalı türü. Geçerli değerler:

  • direct: verileri doğrudan hedef MongoDB örneğine senkronize eder.

  • rpc: NET/RPC kullanarak verileri senkronize eder.

  • tcp: TCP kullanarak verileri senkronize eder.

  • file: dosya aktarımı kullanarak verileri senkronize eder.

  • kafka: Kafka kullanarak verileri senkronize eder.

  • mock: yalnızca test amaçlıdır. Veriler kanala yazılmaz.

Not

Varsayılan değer direct değeridir.

tunnel = direct

tunnel.address

Hedefin adresi. Desteklenen adres biçimi tünel türüne göre değişir:

  • tunnel değeri direct olarak ayarlanmışsa hedef MongoDB örneğinin bağlantı dizesi URI'sini belirtin.

  • tunnel değeri rpc olarak ayarlanmışsa hedef örneğin RPC alıcı adresini belirtin.

  • tunnel değeri tcp olarak ayarlanmışsa hedef örneğin TCP alıcı adresini belirtin.

  • tunnel değeri file olarak ayarlanmışsa hedef örneğin veri dosyası yolunu belirtin.

  • tunnel değeri kafka olarak ayarlanmışsa Kafka adresini belirtin; örneğin topic@brokers1,brokers2.

  • tunnel değeri mock olarak ayarlanmışsa bu parametreyi boş bırakın.

Örnekte veritabanı hesabı, admin veritabanında bulunan test hesabıdır.

tunnel.address = mongodb://test:**@dds-bp19f409d7512.mongodb.rds.aliyuncs.com:3717,dds-bp19f409d7512**.mongodb.rds.aliyuncs.com:3717

tunnel.message

Kanaldaki veri türü. Bu parametre yalnızca tunnel değeri kafka veya file olarak ayarlandığında geçerlidir. Geçerli değerler:

  • raw: varsayılan türdür. Veriler toplu halde yazılır ve okunur.

  • json: veriler JSON biçiminde Kafka'ya yazılır; bu, kullanıcıların doğrudan okumasına olanak tanır.

  • bson: veriler BSON ikili biçiminde Kafka'ya yazılır.

Not

Varsayılan değer raw değeridir.

tunnel.message = raw

mongo_connect_mode

MongoDB örneğinin bağlantı modu. Bu parametre yalnızca tunnel değeri direct olarak ayarlandığında geçerlidir. Geçerli değerler:

  • primary: verileri birincil düğümden çeker.

  • secondaryPreferred: verileri ikincil düğümden çeker.

  • standalone: verileri belirtilen tek bir düğümden çeker.

Not

Varsayılan değer secondaryPreferred değeridir.

mongo_connect_mode = secondaryPreferred

filter.namespace.black

Veri senkronizasyonu için bir engelleme listesi belirtir. Belirtilen ad alanları hedef veritabanına senkronize edilmez. Birden çok ad alanını noktalı virgülle (;) ayırın.

Not

Ad alanı, MongoDB'deki bir koleksiyonun veya dizinin kanonik adıdır. Veritabanı adı ile koleksiyon veya dizin adının birleşiminden oluşur; örneğin mongodbtest.customer.

filter.namespace.black = mongodbtest.customer;testdata.test123

filter.namespace.white

Veri senkronizasyonu için bir izin listesi belirtir. Yalnızca belirtilen ad alanları hedef veritabanına senkronize edilir. Birden çok ad alanını noktalı virgülle (;) ayırın.

filter.namespace.white = mongodbtest.customer;test123

filter.pass.special.db

Özel veritabanlarının senkronizasyonunu etkinleştirir. Varsayılan olarak admin, local, mongoshake, config ve system.views gibi veritabanları filtrelenir. Bu veritabanları için belirli gereksinimler doğrultusunda senkronizasyonu etkinleştirebilirsiniz. Birden çok veritabanı adını noktalı virgülle (;) ayırın.

filter.pass.special.db = admin;mongoshake

filter.ddl_enable

DDL senkronizasyonunun etkinleştirilip etkinleştirilmeyeceğini belirtir. Geçerli değerler:

  • true: etkin

  • false: devre dışı

Not

Kaynak bir parçalı küme örneği olduğunda bu özellik desteklenmez.

filter.ddl_enable = false

checkpoint.storage.url

Kalan senkronizasyonu desteklemek için kullanılan kontrol noktalarının depolama adresi. Bu parametre yapılandırılmazsa program, örnek türüne bağlı olarak kontrol noktalarını aşağıdaki veritabanlarından birine yazar:

  • MongoDB çoğaltma kümesi örneği: mongoshake veritabanına yazılır.

  • MongoDB parçalı küme örneği: ConfigServer düğümünün admin veritabanına yazılır.

Örnekte veritabanı hesabı, admin veritabanında bulunan test hesabıdır.

checkpoint.storage.url = mongodb://test:**@dds-bp19f409d7512.mongodb.rds.aliyuncs.com:3717,dds-bp19f409d7512**.mongodb.rds.aliyuncs.com:3717

checkpoint.storage.db

Kontrol noktalarını depolamak için kullanılan veritabanının adı.

Not

Varsayılan değer mongoshake değeridir.

checkpoint.storage.db = mongoshake

checkpoint.storage.collection

Kontrol noktalarını depolamak için kullanılan koleksiyonun adı. Birincil ve yedek MongoShake düğümleri aynı kaynaktan veri senkronize ederken çakışmaları önlemek için bu koleksiyon adını değiştirebilirsiniz.

Not

Varsayılan değer ckpt_default değeridir.

checkpoint.storage.collection = ckpt_default

checkpoint.start_position

Senkronizasyonun başlangıç konumu. Bu parametre yalnızca kontrol noktası bulunamadığında kullanılır. Biçim YYYY-MM-DDTHH:MM:SSZ şeklindedir.

Not

Varsayılan değer 1970-01-01T00:00:00Z değeridir.

checkpoint.start_position = 1970-01-01T00:00:00Z

transform.namespace

Bir kaynak veritabanını veya koleksiyonu yeniden adlandırır ve hedefe senkronize eder. Örneğin, kaynak örnekteki database A.collection B öğesini hedef örnekte database C.collection D olarak yeniden adlandırabilirsiniz.

transform.namespace = fromA.fromB:toC.toD

Tam senkronizasyon seçenekleri

full_sync.reader.collection_parallel

MongoShake'in aynı anda çekebileceği maksimum koleksiyon sayısı.

full_sync.reader.collection_parallel = 6

full_sync.reader.write_document_parallel

MongoShake için koleksiyon başına eşzamanlı yazma iş parçacığı sayısı.

full_sync.reader.write_document_parallel = 8

full_sync.reader.document_batch_size

Belgelerin hedef örneğe yazılması için kullanılan toplu iş boyutu. Örneğin, 128 değeri 128 belgenin birlikte gruplanıp yazıldığını gösterir.

full_sync.reader.document_batch_size = 128

full_sync.collection_exist_drop

Hedef koleksiyonun kaynak koleksiyonla aynı ada sahip olması durumunda ne yapılacağını belirtir. Geçerli değerler:

  • true: hedef koleksiyonu siler ve ardından kaynak koleksiyonu senkronize eder.

    Uyarı

    Bu işlem hedef koleksiyonu siler. Devam etmeden önce yedeklemenizin olduğundan emin olun.

  • false: hedef veritabanında aynı ada sahip bir koleksiyon algılanırsa hata bildirir ve çıkar.

full_sync.collection_exist_drop = true

full_sync.create_index

Senkronizasyon tamamlandıktan sonra dizin oluşturulup oluşturulmayacağını belirtir. Geçerli değerler:

  • foreground: ön plan dizini oluşturur.

  • background: arka plan dizini oluşturur.

  • none: dizin oluşturmaz.

full_sync.create_index = none

full_sync.executor.insert_on_dup_update

Hedef veritabanı yinelenen bir _id alanı içeriyorsa bir INSERT deyiminin bir UPDATE deyimine dönüştürülüp dönüştürülmeyeceğini belirtir. Geçerli değerler:

  • true: deyimi dönüştürür.

  • false: deyimi dönüştürmez.

full_sync.executor.insert_on_dup_update = false

full_sync.executor.filter.orphan_document

Kaynak bir parçalı küme örneğiyse sahipsiz belgelerin filtrelenip filtrelenmeyeceğini belirtir. Geçerli değerler:

  • true: sahipsiz belgeleri filtreler.

  • false: sahipsiz belgeleri filtrelemez.

full_sync.executor.filter.orphan_document = false

full_sync.executor.majority_enable

Hedef örnekte çoğunluk yazmanın etkinleştirilip etkinleştirilmeyeceğini belirtir. Geçerli değerler:

  • true: çoğunluk yazmayı etkinleştirir.

  • false: çoğunluk yazmayı devre dışı bırakır.

full_sync.executor.majority_enable = false

Artımlı senkronizasyon seçenekleri

incr_sync.mongo_fetch_method

Artımlı verileri çekme yöntemi. Geçerli değerler:

  • oplog: oplog'ları kaynak veritabanından çeker.

  • change_stream: değişiklik olaylarını kaynak veritabanından çeker. Bu yöntem yalnızca MongoDB 4.0 ve sonraki sürümlerde desteklenir.

Varsayılan değer: oplog.

incr_sync.mongo_fetch_method = oplog

incr_sync.oplog.gids

Cloud kümeleri için çift yönlü çoğaltma kurmak amacıyla kullanılır.

incr_sync.oplog.gids = xxxxxxxxxxxx

incr_sync.shard_key

MongoShake'in dahili eşzamanlılık yöntemi. Bu parametreyi değiştirmeyin.

incr_sync.shard_key = collection

incr_sync.worker

Oplog'ları iletmek için kullanılan eşzamanlı iş parçacığı sayısı. Ana bilgisayar performansı yeterliyse bu değeri artırabilirsiniz.

Not

Kaynak bir parçalı küme örneğiyse iş parçacığı sayısı parça sayısına eşit olmalıdır.

incr_sync.worker = 8

incr_sync.worker.oplog_compressor

Ağ bant genişliği tüketimini azaltmak için veri sıkıştırmayı etkinleştirir. Geçerli değerler:

  • none: sıkıştırma yok

  • gzip: verileri gzip biçiminde sıkıştırır

  • zlib: verileri zlib biçiminde sıkıştırır

  • deflate: verileri deflate biçiminde sıkıştırır

Not

Bu parametre yalnızca tunnel parametresi direct olarak ayarlanmadığında geçerlidir. tunnel parametresi direct olarak ayarlanırsa bu parametreyi none olarak ayarlamanız gerekir.

incr_sync.worker.oplog_compressor = none

incr_sync.target_delay

Kaynaktaki değişikliklerin hedefe uygulanmasından önceki saniye cinsinden gecikme. Yanlışlıkla yapılan işlemleri önlemek için bu parametreyi ayarlayabilirsiniz. Örneğin, incr_sync.target_delay = 1800 ayarı 30 dakikalık bir gecikme oluşturur.

Not

0 değeri gerçek zamanlı senkronizasyonu gösterir.

incr_sync.target_delay = 1800

incr_sync.worker.batch_queue_size

MongoShake'in dahili kuyruk yapılandırma parametreleri. Gerekmedikçe bu parametreleri değiştirmeyin.

incr_sync.worker.batch_queue_size = 64

incr_sync.adaptive.batching_max_size

incr_sync.adaptive.batching_max_size = 1024

incr_sync.fetcher.buffer_capacity

incr_sync.fetcher.buffer_capacity = 256

MongoDB senkronizasyon seçenekleri (yalnızca direct modu için)

incr_sync.executor.upsert

İlgili _id veya benzersiz dizine sahip bir belge mevcut değilse bir UPDATE deyiminin bir INSERT deyimine dönüştürülüp dönüştürülmeyeceğini belirtir. Geçerli değerler:

  • true: deyimi dönüştürür.

  • false: deyimi dönüştürmez.

incr_sync.executor.upsert = false

incr_sync.executor.insert_on_dup_update

İlgili _id veya benzersiz dizine sahip bir belge zaten mevcutsa bir INSERT deyiminin bir UPDATE deyimine dönüştürülüp dönüştürülmeyeceğini belirtir. Geçerli değerler:

  • true: deyimi dönüştürür.

  • false: deyimi dönüştürmez.

incr_sync.executor.insert_on_dup_update = false

incr_sync.conflict_write_to

Senkronizasyon sırasında bir yazma çakışması oluşursa çakışan belgelerin kaydedilip kaydedilmeyeceğini belirtir. Geçerli değerler:

  • none: çakışan belgeleri kaydetmez.

  • db: çakışma günlüklerini mongoshake_conflict veritabanında kaydeder.

  • sdk: çakışma günlüklerini SDK'da kaydeder.

incr_sync.conflict_write_to = none

incr_sync.executor.majority_enable

Hedef örnekte çoğunluk yazmanın etkinleştirilip etkinleştirilmeyeceğini belirtir. Geçerli değerler:

  • true: çoğunluk yazmayı etkinleştirir.

  • false: çoğunluk yazmayı devre dışı bırakır.

Not

Bu özelliği etkinleştirmek performansı etkileyebilir.

incr_sync.executor.majority_enable = false

SSS

MongoShake SSS konularına bakın. MongoShake'i kullanırken başka sorunlarla karşılaşırsanız GitHub Issues üzerinden bir sorun bildirebilirsiniz.