Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
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 sh.unshardCollection() de.

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 la posibilidad de que los secundarios queden obsoletos, 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 se puede utilizar unshardCollection para colecciones de cifrado consultable.

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 el fragmento 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 periodo de dos segundos en el que la colección afectada bloquea las escrituras. Durante este periodo, la aplicación experimenta un aumento de 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