Todos los productos
Search
Centro de documentos

ApsaraDB for MongoDB:Sincronización unidireccional de instancias MongoDB con MongoShake

Última actualización: Sep 03, 2026

MongoShake es una herramienta de código abierto desarrollada por Alibaba Cloud que sincroniza datos entre bases de datos MongoDB para casos de uso como análisis de datos, recuperación ante desastres y replicación activa-activa. Este tema explica cómo configurar la sincronización en tiempo real entre instancias de ApsaraDB for MongoDB.

MongoShake

MongoShake es una herramienta de servicio de propósito general desarrollada por Alibaba Cloud en Go. Replica datos desde MongoDB mediante la lectura de sus registros de operaciones (oplogs) y su reproducción en la instancia de destino.

MongoShake también ofrece funciones de suscripción y consumo de datos. Se integra con SDK, Kafka y MetaQ para admitir escenarios como suscripción a registros, sincronización de centros de datos y eliminación asíncrona de caché.

Nota

Para obtener más información, consulte el repositorio de GitHub de MongoShake.

Orígenes de datos compatibles

Origen

Destino

Base de datos MongoDB autogestionada en una instancia ECS

Base de datos MongoDB autogestionada en una instancia ECS

Base de datos MongoDB autogestionada local

Base de datos MongoDB autogestionada local

Instancia de ApsaraDB for MongoDB

Instancia de ApsaraDB for MongoDB

Base de datos MongoDB en nube de terceros

Base de datos MongoDB en nube de terceros

Notas

  • No ejecute ninguna operación DDL en la base de datos de origen antes de completar la sincronización completa. De lo contrario, pueden producirse inconsistencias en los datos.

  • No se admite la sincronización de la base de datos local. Para sincronizar datos de la base de datos admin, consulte Migrate business data from the admin database to a non-admin database.

Permisos obligatorios

Origen

Permisos obligatorios

Instancia MongoDB de origen

El permiso readAnyDatabase, el permiso read en la base de datos local y el permiso readWrite en la base de datos mongoshake.

Nota

El programa MongoShake crea automáticamente la base de datos mongoshake en la instancia de origen cuando inicia una sincronización incremental.

Instancia MongoDB de destino

El permiso readWriteAnyDatabase o el permiso readWrite en la base de datos de destino.

Nota

Para obtener información sobre cómo crear y autorizar usuarios de bases de datos MongoDB, consulte Use DMS to manage MongoDB database users o el comando db.createUser.

Requisitos previos

  1. Para obtener un rendimiento óptimo de sincronización, asegúrese de que la instancia de conjunto de réplicas de MongoDB de origen utilice una VPC. Si utiliza la red clásica, cambie su tipo de red a VPC. Para obtener más información, consulte Switch the network type of an instance from classic network to VPC.

  2. Cree una instancia de conjunto de réplicas de MongoDB de destino. Para minimizar la latencia de red, cree la instancia de destino en la misma VPC que la instancia de origen. Para obtener más información, consulte Create a replica set instance.

  3. Cree una instancia ECS para ejecutar MongoShake. Para minimizar la latencia de red, cree la instancia ECS en la misma VPC que la instancia de origen. Para obtener más información, consulte Create an ECS instance.

  4. Agregue la dirección IP privada de la instancia ECS a las listas de permitidos de las instancias MongoDB de origen y de destino, y compruebe que la instancia ECS pueda conectarse a ambas instancias. Para obtener más información, consulte Modify a whitelist.

Nota

Si su configuración de red no cumple con los requisitos anteriores, puede solicitar un endpoint público tanto para la instancia MongoDB de origen como para la de destino. Luego, agregue la dirección IP pública de la instancia ECS a las listas de permitidos de ambas instancias MongoDB para realizar la sincronización a través de los endpoints públicos. Para obtener más información, consulte Apply for a public endpoint y Modify a whitelist.

Procedimiento

Este procedimiento asume que MongoShake está instalado en el directorio /test/mongoshake.

  1. Inicie sesión en la instancia ECS.

    Nota

    Puede elegir un método de inicio de sesión según su escenario. Para obtener más información, consulte Overview of logon methods for ECS servers.

  2. Ejecute el siguiente comando para descargar el programa MongoShake y renombrarlo como mongoshake.tar.gz.

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

    El comando descarga MongoShake 2.8.7. Para descargar la versión más reciente, consulte la página de versiones.

  3. Ejecute el siguiente comando para extraer el paquete de MongoShake en el directorio /test/mongoshake.

    tar zxvf mongoshake.tar.gz && mv mongo-shake-v2.8.7 /test/mongoshake && cd /test/mongoshake
  4. Ejecute el comando vi collector.conf para modificar el archivo de configuración de MongoShake collector.conf. La siguiente tabla describe los parámetros principales.

    Parámetro

    Descripción

    Ejemplo

    mongo_urls

    La URI de cadena de conexión de la instancia MongoDB de origen. En el ejemplo, la cuenta de la base de datos es test, que se encuentra en la base de datos admin.

    Nota

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

    Nota

    La contraseña no puede contener el signo de arroba (@). De lo contrario, la conexión fallará.

    tunnel.address

    La URI de cadena de conexión de la instancia MongoDB de destino. En el ejemplo, la cuenta de la base de datos es test, que se encuentra en la base de datos admin.

    Nota

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

    Nota

    La contraseña no puede contener el signo de arroba (@). De lo contrario, la conexión fallará.

    sync_mode

    El modo de sincronización de datos. Valores válidos:

    • all: realiza una sincronización completa y una incremental.

    • full: realiza únicamente una sincronización completa.

    • incr: realiza únicamente una sincronización incremental.

    Nota

    El valor predeterminado es incr.

    sync_mode = all

    Nota

    Para consultar la lista completa de parámetros en collector.conf, consulte la sección "Parámetros de collector.conf" en Appendix.

  5. Ejecute el siguiente comando para iniciar la tarea de sincronización e imprimir los registros.

    ./collector.linux -conf=collector.conf -verbose
  6. Observe la salida de registros. Cuando aparezca una entrada similar a la siguiente, indica que la sincronización completa ha finalizado y ha comenzado la sincronización incremental.

    [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]

Estado del monitoreo

Una vez iniciada la sincronización incremental, abra una nueva ventana de terminal y ejecute los siguientes comandos:

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

mongoshake-stat es un script de Python y requiere tener instalado Python 2.7. Para obtener más información, consulte el sitio web oficial de Python.

Salida de ejemplo:

./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

Descripciones de parámetros:

Parámetro

Descripción

logs_get/sec

Número de oplogs obtenidos por segundo.

logs_repl/sec

Número de operaciones de reproducción de oplogs ejecutadas por segundo.

logs_success/sec

Número de operaciones de reproducción de oplogs exitosas por segundo.

lsn.time

Marca de tiempo del último oplog enviado.

lsn_ack.time

Marca de tiempo en la que la instancia de destino confirmó la operación de escritura.

lsn_ckpt.time

Marca de tiempo en la que se persistió el punto de control.

now.time

Hora actual.

replset

Nombre del conjunto de réplicas de la base de datos de origen.

Migrar datos desde la base de datos admin

MongoDB no recomienda oficialmente almacenar datos empresariales en la base de datos admin, ya que el comportamiento de bloqueo y los conflictos con comandos internos pueden degradar el rendimiento de la instancia.

MongoShake admite la sincronización de datos empresariales desde la base de datos admin hacia una base de datos que no sea admin.

Para lograrlo, siga los pasos en Procedure. En el paso 4, al modificar el archivo collector.conf, agregue los siguientes elementos de configuración:

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

Apéndice

Tabla 1. Parámetros de collector.conf

Categoría

Parámetro

Descripción

Ejemplo

N/A

conf.version

Versión del archivo de configuración. No modifique este valor.

conf.version = 4

Opciones globales

id

ID de la tarea de sincronización. Este valor se puede personalizar y se utiliza para el nombre del archivo de registro, el nombre de la base de datos que almacena la información de los puntos de control y el nombre de la base de datos en la instancia de destino.

id = mongoshake

master_quorum

Opción de alta disponibilidad. Cuando los nodos primario y en espera de MongoShake sincronizan datos desde el mismo origen, establezca este parámetro en true en el nodo primario de MongoShake.

Valores válidos:

  • true: habilitado

  • false: deshabilitado

Nota

El valor predeterminado es false.

master_quorum = false

full_sync.http_port

Puerto HTTP para consultar el estado de la sincronización completa.

Nota

El valor predeterminado es 9101.

full_sync.http_port = 9101

incr_sync.http_port

Puerto HTTP para consultar el estado de la sincronización incremental.

Nota

El valor predeterminado es 9100.

incr_sync.http_port = 9100

system_profile_port

Puerto de generación de perfiles que se utiliza para consultar información interna de la pila.

system_profile_port = 9200

log.level

Nivel de registro. Valores válidos:

  • error: Información de nivel de error.

  • warning: Información de nivel de advertencia.

  • info: Mensajes informativos sobre el estado actual del sistema.

  • debug: Información de depuración.

Valor predeterminado: info.

log.level = info

log.dir

Directorio para los archivos de registro y los archivos PID. Si no se establece este parámetro, se utiliza de forma predeterminada el directorio logs en la ruta actual.

Nota

Debe especificar una ruta absoluta para este parámetro.

log.dir = ./logs/

log.file

Nombre del archivo de registro. Este valor se puede personalizar.

Nota

El valor predeterminado es collector.log.

log.file = collector.log

log.flush

Frecuencia de actualización de registros en pantalla. Valores válidos:

  • true: imprime cada entrada de registro inmediatamente. Esto puede afectar el rendimiento.

  • false: no garantiza que cada entrada de registro se imprima de inmediato. Esta opción mejora el rendimiento.

Nota

El valor predeterminado es false.

log.flush = false

sync_mode

Modo de sincronización de datos. Valores válidos:

  • all: realiza una sincronización completa y una incremental.

  • full: realiza únicamente una sincronización completa.

  • incr: realiza únicamente una sincronización incremental.

Nota

El valor predeterminado es incr.

sync_mode = all

mongo_urls

URI de cadena de conexión de la instancia MongoDB de origen. En el ejemplo, la cuenta de la base de datos es test, ubicada en la base de datos admin.

Nota

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

mongo_cs_url

Si el origen es una instancia de clúster fragmentado, debe especificar la URI de cadena de conexión del nodo ConfigServer (CS). Para obtener información sobre cómo conseguir la URI de cadena de conexión de un nodo ConfigServer, consulte Apply for an endpoint for a shard.

En el ejemplo, la cuenta de la base de datos es test, ubicada en la base de datos admin.

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

Si el origen es una instancia de clúster fragmentado, debe especificar la URI de cadena de conexión de como mínimo un nodo mongos. Separe varias direcciones de mongos con comas (,). Para obtener información sobre cómo conseguir la URI de cadena de conexión de un nodo mongos, consulte Apply for an endpoint for a shard.

En el ejemplo, la cuenta de la base de datos es test, ubicada en la base de datos admin.

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

tunnel

Tipo de canal de sincronización. Valores válidos:

  • direct: sincroniza datos directamente con la instancia MongoDB de destino.

  • rpc: sincroniza datos mediante NET/RPC.

  • tcp: sincroniza datos mediante TCP.

  • file: sincroniza datos mediante transferencia de archivos.

  • kafka: sincroniza datos mediante Kafka.

  • mock: solo para fines de prueba. Los datos no se escriben en el canal.

Nota

El valor predeterminado es direct.

tunnel = direct

tunnel.address

Dirección del destino. El formato de dirección compatible varía según el tipo de túnel:

  • Si tunnel está establecido en direct, especifique la URI de cadena de conexión de la instancia MongoDB de destino.

  • Si tunnel está establecido en rpc, especifique la dirección del receptor RPC de la instancia de destino.

  • Si tunnel está establecido en tcp, especifique la dirección del receptor TCP de la instancia de destino.

  • Si tunnel está establecido en file, especifique la ruta del archivo de datos de la instancia de destino.

  • Si tunnel está establecido en kafka, especifique la dirección de Kafka, por ejemplo, topic@brokers1,brokers2.

  • Si tunnel está establecido en mock, deje este parámetro vacío.

En el ejemplo, la cuenta de la base de datos es test, ubicada en la base de datos admin.

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

tunnel.message

Tipo de datos en el canal. Este parámetro solo es válido cuando tunnel está establecido en kafka o file. Valores válidos:

  • raw: tipo predeterminado. Los datos se escriben y leen en lotes.

  • json: los datos se escriben en Kafka en formato JSON, lo que permite a los usuarios leerlos directamente.

  • bson: los datos se escriben en Kafka en formato binario BSON.

Nota

El valor predeterminado es raw.

tunnel.message = raw

mongo_connect_mode

Modo de conexión de la instancia MongoDB. Este parámetro solo es válido cuando tunnel está establecido en direct. Valores válidos:

  • primary: extrae datos del nodo primario.

  • secondaryPreferred: extrae datos de un nodo secundario.

  • standalone: extrae datos de un único nodo específico.

Nota

El valor predeterminado es secondaryPreferred.

mongo_connect_mode = secondaryPreferred

filter.namespace.black

Especifica una lista de bloqueados para la sincronización de datos. Los namespaces especificados no se sincronizan con la base de datos de destino. Separe varios namespaces con punto y coma (;).

Nota

Un namespace es el nombre canónico de una colección o índice en MongoDB. Es una combinación del nombre de la base de datos y el nombre de la colección o índice, como mongodbtest.customer.

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

filter.namespace.white

Especifica una lista de permitidos para la sincronización de datos. Solo los namespaces especificados se sincronizan con la base de datos de destino. Separe varios namespaces con punto y coma (;).

filter.namespace.white = mongodbtest.customer;test123

filter.pass.special.db

Habilita la sincronización de bases de datos especiales. De forma predeterminada, se filtran bases de datos como admin, local, mongoshake, config y system.views. Puede habilitar la sincronización para estas bases de datos según requisitos específicos. Separe varios nombres de bases de datos con punto y coma (;).

filter.pass.special.db = admin;mongoshake

filter.ddl_enable

Especifica si se debe habilitar la sincronización DDL. Valores válidos:

  • true: habilitado

  • false: deshabilitado

Nota

Esta función no es compatible cuando el origen es una instancia de clúster fragmentado.

filter.ddl_enable = false

checkpoint.storage.url

Dirección de almacenamiento para los puntos de control, utilizada para admitir la sincronización reanudable. Si no se configura este parámetro, el programa escribe los puntos de control en una de las siguientes bases de datos según el tipo de instancia:

  • Instancia de conjunto de réplicas de MongoDB: se escribe en la base de datos mongoshake.

  • Instancia de clúster fragmentado de MongoDB: se escribe en la base de datos admin del nodo ConfigServer.

En el ejemplo, la cuenta de la base de datos es test, ubicada en la base de datos admin.

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

checkpoint.storage.db

Nombre de la base de datos para almacenar puntos de control.

Nota

El valor predeterminado es mongoshake.

checkpoint.storage.db = mongoshake

checkpoint.storage.collection

Nombre de la colección para almacenar puntos de control. Cuando los nodos primario y en espera de MongoShake sincronizan datos desde el mismo origen, puede cambiar este nombre de colección para evitar conflictos.

Nota

El valor predeterminado es ckpt_default.

checkpoint.storage.collection = ckpt_default

checkpoint.start_position

Posición inicial para la sincronización. Este parámetro solo se utiliza si no se encuentra ningún punto de control. El formato es YYYY-MM-DDTHH:MM:SSZ.

Nota

El valor predeterminado es 1970-01-01T00:00:00Z.

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

transform.namespace

Cambia el nombre de una base de datos o colección de origen y la sincroniza con el destino. Por ejemplo, puede cambiar el nombre de database A.collection B en la instancia de origen a database C.collection D en la instancia de destino.

transform.namespace = fromA.fromB:toC.toD

Opciones de sincronización completa

full_sync.reader.collection_parallel

Número máximo de colecciones que MongoShake puede extraer simultáneamente a la vez.

full_sync.reader.collection_parallel = 6

full_sync.reader.write_document_parallel

Número de hilos de escritura concurrentes por colección para MongoShake.

full_sync.reader.write_document_parallel = 8

full_sync.reader.document_batch_size

Tamaño del lote para escribir documentos en la instancia de destino. Por ejemplo, un valor de 128 indica que se agrupan 128 documentos antes de escribirlos.

full_sync.reader.document_batch_size = 128

full_sync.collection_exist_drop

Especifica qué hacer si una colección de destino tiene el mismo nombre que una colección de origen. Valores válidos:

  • true: elimina la colección de destino y luego sincroniza la colección de origen.

    Aviso

    Esta operación elimina la colección de destino. Asegúrese de tener una copia de seguridad antes de continuar.

  • false: reporta un error y finaliza si se detecta una colección con el mismo nombre en la base de datos de destino.

full_sync.collection_exist_drop = true

full_sync.create_index

Especifica si se debe crear un índice una vez completada la sincronización. Valores válidos:

  • foreground: crea un índice en primer plano.

  • background: crea un índice en segundo plano.

  • none: no crea ningún índice.

full_sync.create_index = none

full_sync.executor.insert_on_dup_update

Especifica si se debe convertir una instrucción INSERT en una instrucción UPDATE si la base de datos de destino contiene un campo _id duplicado. Valores válidos:

  • true: convierte la instrucción.

  • false: no convierte la instrucción.

full_sync.executor.insert_on_dup_update = false

full_sync.executor.filter.orphan_document

Especifica si se deben filtrar documentos huérfanos cuando el origen es una instancia de clúster fragmentado. Valores válidos:

  • true: filtra documentos huérfanos.

  • false: no filtra documentos huérfanos.

full_sync.executor.filter.orphan_document = false

full_sync.executor.majority_enable

Especifica si se debe habilitar la escritura por mayoría en la instancia de destino. Valores válidos:

  • true: habilita la escritura por mayoría.

  • false: deshabilita la escritura por mayoría.

full_sync.executor.majority_enable = false

Opciones de sincronización incremental

incr_sync.mongo_fetch_method

Método para extraer datos incrementales. Valores válidos:

  • oplog: extrae oplogs de la base de datos de origen.

  • change_stream: extrae eventos de cambio de la base de datos de origen. Solo es compatible con MongoDB 4.0 y versiones posteriores.

Valor predeterminado: oplog.

incr_sync.mongo_fetch_method = oplog

incr_sync.oplog.gids

Se utiliza para configurar la replicación bidireccional en clústeres en la nube.

incr_sync.oplog.gids = xxxxxxxxxxxx

incr_sync.shard_key

Método interno de concurrencia para MongoShake. No modifique este parámetro.

incr_sync.shard_key = collection

incr_sync.worker

Número de hilos concurrentes para transmitir oplogs. Puede aumentar este valor si el rendimiento del host es suficiente.

Nota

Si el origen es una instancia de clúster fragmentado, el número de hilos debe ser igual al número de shards.

incr_sync.worker = 8

incr_sync.worker.oplog_compressor

Habilita la compresión de datos para reducir el consumo de ancho de banda de red. Valores válidos:

  • none: sin compresión

  • gzip: comprime datos en formato gzip

  • zlib: comprime datos en formato zlib

  • deflate: comprime datos en formato deflate

Nota

Este parámetro solo es válido cuando el parámetro tunnel no está establecido en direct. Si el parámetro tunnel está establecido en direct, debe establecer este parámetro en none.

incr_sync.worker.oplog_compressor = none

incr_sync.target_delay

Retraso, en segundos, antes de aplicar los cambios del origen al destino. Puede configurar este parámetro para evitar operaciones accidentales. Por ejemplo, incr_sync.target_delay = 1800 genera un retraso de 30 minutos.

Nota

Un valor de 0 indica sincronización en tiempo real.

incr_sync.target_delay = 1800

incr_sync.worker.batch_queue_size

Parámetros de configuración de la cola interna de MongoShake. No modifique estos parámetros a menos que sea necesario.

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

Opciones de sincronización de MongoDB (solo para modo direct)

incr_sync.executor.upsert

Especifica si se debe convertir una instrucción UPDATE en una instrucción INSERT si no existe un documento con el _id o índice único correspondiente. Valores válidos:

  • true: convierte la instrucción.

  • false: no convierte la instrucción.

incr_sync.executor.upsert = false

incr_sync.executor.insert_on_dup_update

Especifica si se debe convertir una instrucción INSERT en una instrucción UPDATE si ya existe un documento con el _id o índice único correspondiente. Valores válidos:

  • true: convierte la instrucción.

  • false: no convierte la instrucción.

incr_sync.executor.insert_on_dup_update = false

incr_sync.conflict_write_to

Especifica si se deben registrar documentos conflictivos cuando ocurre un conflicto de escritura durante la sincronización. Valores válidos:

  • none: no registra documentos conflictivos.

  • db: registra los registros de conflictos en la base de datos mongoshake_conflict.

  • sdk: registra los registros de conflictos en el SDK.

incr_sync.conflict_write_to = none

incr_sync.executor.majority_enable

Especifica si se debe habilitar la escritura por mayoría en la instancia de destino. Valores válidos:

  • true: habilita la escritura por mayoría.

  • false: deshabilita la escritura por mayoría.

Nota

Habilitar esta función puede afectar el rendimiento.

incr_sync.executor.majority_enable = false

Preguntas frecuentes

Consulte las preguntas frecuentes de MongoShake. Si encuentra otros problemas al utilizar MongoShake, puede abrir un ticket en GitHub Issues.