Para agentes de IA: hay un índice de documentación disponible en https://www.mongodb.com/es/docs/llms.txt — versiones en markdown de todas las páginas están disponibles agregando .md a cualquier ruta URL.
Docs Menu

reverse

Revierte 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 que la operación de sincronización esté COMMITTED, las nuevas escrituras solo ocurren en el clúster de destino. El clúster de origen no aceptará nuevos guardados.

En este escenario, puede utilizar el endpoint reverse para sincronizar guardados de cluster1 a cluster0, incluidos los guardados que se produjeron en cluster1 después de que mongosync alcanzara canWrite=true. Para comprobar el estado del canWrite durante la sincronización, utiliza el endpoint /progress.

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

Para usar el reverse endpoint:

  • mongosync debe configurarse cuando se inicia la sincronización inicial. La llamada al endpoint API /start debe establecer la opción reversible en true.

No puedes actualizar esta opción después de que comience la sincronización.

  • mongosync debe estar en el estado COMMITTED.

  • El oplog del clúster de destino no debe reiniciarse entre que mongosync alcance canWrite=true y reciba la solicitud /reverse.

Advertencia

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

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

  • Los clústeres de origen y destino deben tener el mismo número de particiones. No se puede sincronizar de forma inversa cuando los clústeres tienen diferentes topologías.

  • Los clústeres de origen y destino deben ejecutar la misma versión principal de MongoDB.

  • El usuario especificado en la cadena de conexión mongosync debe tener los permisos requeridos en los clústeres de origen y destino. Los permisos varían según tu entorno y si deseas utilizar la sincronización inversa.

Nota

Cuando configures múltiples instancias de mongosync para sincronizarse entre clústeres fragmentados, debes enviar comandos idénticos de puntos finales API a cada instancia de mongosync.

Para obtener más información, consulta Revertir varios Mongosyncs.

In order to reverse direction, mongosync requires that all unique indexes on the source cluster (except for _id) do not have legacy unique index keys.

You can ensure that non-_id unique indexes use the correct formatting on the source cluster with the $collStats aggregation stage. To run this aggregation pipeline on your collection, copy and paste the example code, replacing <collection> with the collection name and <field_name> with the name of the indexed field. You must run this on all nodes, for all collections that have unique indexes. Note that only the non-_id unique indexes need to have formatVersion 13 or 14.

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 formatVersion 13 o 14 no tienen claves heredadas.

If you have unique indexes of a different formatVersion, you can also use the db.collection.validate() method with full = false to confirm if there are legacy index keys. You must run this on all nodes for all collections with unique indexes. validate() returns a warning if legacy format index keys are detected.

Para actualizar la versión de formato de los índices para la compatibilidad con mongosync, se debe resincronizar todos los nodos del clúster de origen original. Para volver a sincronizar todos los nodos:

1

Para un tutorial sobre cómo resincronizar nodos, consulta Resincronizar un nodo de un set de réplicas.

2
3
POST /api/v1/reverse

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

Campo
Tipo
Descripción

success

booleano

Cuando la solicitud es exitosa, este valor es true.

error

string

Si se produce un error, se indicará el nombre del error. Este campo se omite de la respuesta cuando success es true.

errorDescription

string

Descripción detallada del error que ocurrió. 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 con reverse es exitosa, mongosync entra en el estado de RUNNING. La sincronización continúa en sentido inverso a la tarea 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, utiliza el endpoint progreso y verifica el objeto directionMapping.

Nota

mongosync no retiene los documentos activos especificados con la opción --hotDocIDs o la configuración hotDocIDs al sincronizar reverse. Si se produce un atraso de la replicación debido a documentos activos durante una sincronización reverse, reinicie el proceso mongosync y especifique los identificadores de documentos activos para la dirección inversa. Los identificadores de documentos activos especificados solo surten efecto después de detener y reiniciar mongosync. No reinicie la migración desde cero.

El verificador integrado está habilitado por defecto para migraciones de sets de réplicas.

mongosync no protege el punto de conexión reverse. Sin embargo, por defecto, la API se vincula únicamente a localhost y no acepta llamadas de otras fuentes. Además, la llamada reverse no expone credenciales de conexión ni datos de usuario.

El endpoint reverse no admite lo siguiente: