Puede detener la desfragmentación de una colección fragmentada con el
abortUnshardCollection dominio.
Acerca de esta tarea
Para detener una operación de unshardCollection en curso, ejecuta 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 de Oplog 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
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
abortUnshardCollectionSólo se puede ejecutar en clústeres fragmentados.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 se pueden ejecutar las siguientes operaciones en el clúster mientras
unshardCollectionesté en progreso:Las creaciones de índices que ocurran mientras
abortUnshardCollectionesté en curso podrían fallar silenciosamente.No cree índices mientras
abortUnshardCollectionesté en progreso.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
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 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 }) } ], ... } ... }