Puede detener la desvinculación de una colección particionada utilizando el
abortUnshardCollection .
Acerca de esta tarea
Para detener una operación de unshardCollection en curso, ejecuta el comando abortUnshardCollection.
Nota
Una operación de desfragmentación es un proceso intensivo de escritura que puede generar tasas aumentadas de oplog. Es posible que desees:
defina un tamaño fijo para el oplog para prevenir el crecimiento sin límites del oplog.
aumente el tamaño de Oplog para minimizar la posibilidad de que uno o más nodos secundarios queden obsoletos.
Consulta la documentación de Oplog del set de réplicas para obtener más información.
Compatibilidad
Puedes realizar esta tarea en las 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 gratuitos o flexibles 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
abortUnshardCollectionsolo se puede ejecutar en clústeres segmentados.abortUnshardCollectionsolo puede operar en colecciones fragmentadas.abortUnshardCollectionsolo 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 puedes ejecutar las siguientes operaciones en la colección que se está desfragmentando mientras
abortUnshardCollectionestá en curso:No puedes ejecutar las siguientes operaciones en el clúster mientras
unshardCollectionestá en curso:Las creaciones de índices que ocurran mientras
abortUnshardCollectionesté en curso podrían fallar silenciosamente.No crear índices mientras
abortUnshardCollectionesté en curso.No llame a
abortUnshardCollectionsi hay creaciones de índices en curso.
Control de acceso
Si tu implementación tiene control de acceso habilitado, el rol enableSharding te otorga acceso para ejecutar el comando abortUnshardCollection.
Pasos
Deja de desfragmentar la colección
Para dejar de crear instancias independientes de una colección, ejecuta el comando abortUnshardCollection. El siguiente ejemplo detiene unshardCollection operaciones en la us_accounts de la base de datos sales:
db.adminCommand( { abortUnshardCollection: "sales.us_accounts", } )
Confirma 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 particionada con su clave de partición 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 }) } ], ... } ... }