Puede detener la desfragmentación de una colección fragmentada con el
abortUnshardCollection dominio.
Acerca de esta tarea
Para detener una operación unshardCollection en curso, ejecute el comando abortUnshardCollection.
Nota
La desfragmentación es un proceso de escritura intensiva que puede generar un aumento en la tasa de registros de operaciones. Le recomendamos:
defina un tamaño fijo para el oplog para prevenir el crecimiento sin límites del oplog.
Aumente el tamaño del registro de operaciones para minimizar la posibilidad de que uno o más nodos secundarios queden obsoletos.
Consulte la documentación del registro de operaciones del conjunto de réplicas para obtener más detalles.
Compatibilidad
Puede realizar esta tarea en implementaciones alojadas en los siguientes entornos:
MongoDB Atlas: El servicio totalmente gestionado para implementaciones de MongoDB en la nube
Nota
Esta tarea no está disponible en los niveles gratuito o flexible de MongoDB Atlas.
MongoDB Enterprise: La versión basada en suscripción y autogestionada de MongoDB
MongoDB Community: La versión de MongoDB con código fuente disponible, de uso gratuito y autogestionada.
Restricciones
abortUnshardCollectionSólo se puede ejecutar en clústeres fragmentados.abortUnshardCollectionSólo puede operar en colecciones fragmentadas.abortUnshardCollectionSólo puede operar en una única colección a la vez.No puede realizar cambios de topología, como añadir o remover particiones o pasar de servidores de configuración dedicados a embebidos, hasta que
abortUnshardCollectionse complete.No se pueden ejecutar las siguientes operaciones en la colección que se está desfragmentando mientras
abortUnshardCollectionestá en progreso:No se pueden ejecutar las siguientes operaciones en el clúster mientras
unshardCollectionesté en progreso:Las compilaciones de índices que ocurren mientras
abortUnshardCollectionestá en progreso pueden fallar silenciosamente.No cree índices mientras
abortUnshardCollectionesté en progreso.No llame a
abortUnshardCollectionsi hay compilaciones de índices en curso.
Control de acceso
Si su implementación tiene habilitado el control de acceso, el rol le otorga acceso para ejecutar enableSharding el abortUnshardCollection comando.
Pasos
Dejar de desfragmentar la colección
Para detener la fragmentación de una colección, ejecute el comando. El siguiente ejemplo detiene abortUnshardCollection las unshardCollection operaciones en el us_accounts de la sales base de datos:
db.adminCommand( { abortUnshardCollection: "sales.us_accounts", } )
Confirmar que la operación de desfragmentación se ha detenido
Para confirmar que la operación unshardCollection se ha detenido, utiliza el método sh.status():
sh.status()
Esta salida de muestra muestra la colección fragmentada con su clave de fragmento original:
collections: { 'sales.us_accounts': { shardKey: { account_number: 1 }, unique: false, balancing: true, chunkMetadata: [ { shard: 'shard-0', nChunks: 1 }, { shard: 'shard-1', nChunks: 1 } ], chunks: [ { min: { _id: MinKey() }, max: { _id: Long('0') }, 'on shard': 'shard-0', 'last modified': Timestamp({ t: 1, i: 0 }) }, { min: { _id: Long('0') }, max: { _id: MaxKey() }, 'on shard': 'shard-1', 'last modified': Timestamp({ t: 1, i: 1 }) } ], ... } ... }