Docs Menu
Docs Home
/ /

reverse

Invierte la dirección de una operación de sincronización confirmada.

Por ejemplo:

  • Tienes una operación de sincronización COMMITTED.

  • cluster0 es la fuente y cluster1 es el destino.

  • Después de la operación de sincronización COMMITTED, las nuevas escrituras solo se realizan en el clúster de destino. El clúster de origen no las aceptará.

En este escenario, puede usar el punto final reverse para sincronizar las escrituras de cluster1 a cluster0, incluidas las escrituras que ocurrieron en cluster1 después de que mongosync llegara a canWrite=true. Para comprobar el estado de canWrite durante la sincronización, use el /progress punto final.

Para obtener más información y un tutorial sobre cómo utilizar el endpoint reverse, consulta Sentido inverso de sincronizar.

Para utilizar el punto final reverse:

  • mongosync Debe configurarse al iniciar la sincronización inicial. La llamada al punto final de la API /start debe configurar:

    • reversible to true

    • enableUserWriteBlocking a "sourceAndDestination".

Nota

Elbloqueo de escritura dual es un requisito previo para ejecutar.reverse

No puedes actualizar estas opciones una vez iniciada la sincronización.

  • mongosync debe estar en el estado COMMITTED.

  • El registro de operaciones del clúster de destino no debe renovarse entre el momento en que mongosync llega a canWrite=true y la recepción de la solicitud /reverse.

Advertencia

Los índices únicos en el clúster de origen no deben usar el formato heredado.

Para validar que los índices de colección en el clúster de origen utilicen el formato adecuado, consulte Validar índices únicos.

  • Los clústeres de origen y destino deben tener el mismo número de fragmentos. No se puede revertir la sincronización cuando los clústeres tienen topologías o versiones principales diferentes.

  • El usuario especificado en la cadena de conexión mongosync debe tener los permisos necesarios en los clústeres de origen y destino. Los permisos varían según el entorno y si desea modificar la configuración de bloqueo de escritura o usar la sincronización inversa.

Nota

Cuando configura varias instancias mongosync para sincronizar entre clústeres fragmentados, debe enviar comandos de punto final de API idénticos a cada instancia mongosync.

Para obtener más información, consulte Invertir múltiples Mongosyncs.

Para invertir la dirección, requieremongosync que todos los índices únicos en el clúster de origen _id (excepto) no tengan claves de índice únicas heredadas.

Puede garantizar que los_id índices únicos no utilicen el formato correcto en el clúster de origen con la $collStats etapa de agregación. Para ejecutar esta canalización de agregación en su colección, copie y pegue el código de ejemplo, reemplazando <collection> por <field_name> el nombre de la colección y por el nombre del campo indexado. Debe ejecutar esto en todos los nodos de todas las colecciones que tengan índices únicos. Tenga en cuenta que solo los_id índices únicos no deben tener formatVersion 13 14o.

db.<collection>.aggregate( [
{ $collStats: { storageStats: { } } },
{ $project: { "storageStats.indexDetails.<index_name>.metadata.formatVersion": 1 } }
] )
[
{
storageStats: {
indexDetails: { <field_name>: { metadata: { formatVersion: 14 } } }
}
}
]

Se garantiza que los índices únicos con formato 13 o 14 no tendrán claves heredadas.

Si tiene índices únicos con una versión de formato diferente, también puede usar el método db.collection.validate() con full = false para confirmar si existen claves de índice heredadas. Debe ejecutarlo en todos los nodos de todas las colecciones con índices únicos. validate() devuelve una advertencia si se detectan claves de índice con formato heredado.

Para actualizar la versión de formato de los índices para que sean compatibles mongosync con, debe resincronizar todos los nodos del clúster de origen original. Para resincronizar todos los nodos:

1

Para obtener un tutorial sobre cómo resincronizar nodos, consulte Resincronizar un miembro de un conjunto de réplicas.

2
3
POST /api/v1/reverse

Este punto final no utiliza parámetros del cuerpo de la solicitud HTTP. Sin embargo,debe especificar la --data opción con un objeto { } vacío.

Campo
Tipo
Descripción

success

booleano

Cuando la solicitud es exitosa, este valor es true.

error

string

Si se produjo un error, indica su nombre. Este campo se omite en la respuesta cuando success es true.

errorDescription

string

Descripción detallada del error ocurrido. Este campo se omite en la respuesta cuando success es true.

El siguiente ejemplo invierte la dirección de una operación de sincronización confirmada.

curl localhost:27182/api/v1/reverse -XPOST --data '{ }'
{"success":true}

El terminal reverse inicia el estado REVERSING. mongosync intercambia los clústeres de origen y destino y reanuda la aplicación de eventos de cambio.

Si la sincronización reverse se realiza correctamente, mongosync pasa al estado RUNNING. La sincronización continúa en sentido inverso al trabajo de sincronización original. No es necesario reiniciar todo el proceso de sincronización para copiar los datos originales.

Para ver la dirección de mapeo para la sincronización de los clústeres de origen y destino, utilice el punto final de progreso y verifique el directionMapping objeto.

El verificador incorporado está habilitado de forma predeterminada para las migraciones de conjuntos de réplicas.

mongosync No protege el punto final reverse. Sin embargo, por defecto, la API se vincula únicamente al host local y no acepta llamadas de otras fuentes. Además, la llamada reverse no expone las credenciales de conexión ni los datos del usuario.

El punto final reverse no admite:

Volver

confirmación

En esta página