Make the MongoDB docs better! We value your opinion. Share your feedback for a chance to win $100.
Click here >
Docs Menu
Docs Home
/ /

unshardCollection (comando de base de datos)

unshardCollection

Desharda una colección particionada existente y traslada los datos de la colección a una única partición. Cuando se desagrupa una colección, la colección no puede dividirse entre múltiples shards y la clave de partición se eliminan.

Nuevo en la versión 8.0.

Tip

En mongosh, este comando también se puede ejecutar a través del sh.unshardCollection().

Los métodos asistente son convenientes para usuarios de mongosh, pero es posible que no proporcionen el mismo nivel de información que los comandos de base de datos. En los casos en que no se necesite la conveniencia o se requieran campos de retorno adicionales, utiliza el comando de base de datos.

Este comando debe ejecutarse en la base de datos admin.

Si la colección tiene una configuración de zona aplicada, primero debes remover las asociaciones de rango y las particiones de la zona antes de dividir la colección. Para obtener más información, consulta Zonas sin particiones.

Nota

Desfragmentar una colección es una operación intensiva en escritura que puede resultar en una mayor tasa de crecimiento del oplog. Para ayudar a mitigar esto, considera los siguientes cambios de configuración:

  • Para prevenir el crecimiento ilimitado del oplog, establece un tamaño fijo para el oplog.

  • Para reducir las posibilidades de que los nodos secundarios estén desactualizados, aumente el tamaño del oplog.

Para obtener más detalles, consulta el Oplog del set de réplicas.

Este comando está disponible en implementaciones alojadas en los siguientes entornos:

  • 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.

  • 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.

No puedes usar unshardCollection para colecciones de Queryable Encryption.

db.adminCommand( {
unshardCollection: "<database>.<collection>",
toShard: "<shard-id>"
} )
Campo
Tipo
Necesidad
Descripción

unshardCollection

string

Requerido

Especifique o base de datos e a colección para desvincular.

toShard

string

Opcional

Especifica el ID de partición del destinatario. A medida que MongoDB deja de particionar la colección, mueve los datos de la colección de sus particiones actuales a esta partición específica.

Si no se especifica, el clúster selecciona la partición con la menor cantidad de datos.

Antes de desfragmentar tu colección, asegúrate de cumplir los siguientes requisitos:

  • Su aplicación puede tolerar un período de dos segundos en el que la colección afectada bloquea los guardados. Durante el periodo en el que las écritas están bloqueadas, tu aplicación experimenta un aumento en la latencia.

  • Su base de datos cumple con estos requisitos de recursos:

    • Asegúrate de que la partición a la que mueves la colección tenga suficiente espacio de almacenamiento para la colección y sus índices. La partición de destino requiere al menos ( Collection storage size + Index Size ) * 2 bytes disponibles.

    • Asegúrate de que tu capacidad de E/S esté por debajo de 50%.

    • Asegúrate de que la carga de tu CPU esté por debajo del 80%.

Para desfragmentar una colección que utiliza particionado por zona, primero debes detener el equilibrador y luego remover el rango y la partición de la zona.

El siguiente ejemplo desfragmenta la colección sales.eu_accounts:

db.adminCommand( {
unshardCollection: "sales.eu_accounts"
} )

El siguiente ejemplo desfragmenta las colecciones sales.us_accounts y ubica los datos de la colección en shard1:

db.adminCommand( {
unshardCollection: "sales.eu_accounts",
toShard: "shard1"
} )

Volver

desactivar particionando

En esta página