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
/ /

sh.moveCollection() (método mongosh)

sh.moveCollection(namespace, toShard)

Mueve una única colección no particionada a un diferente fragmento. Ejecute sh.moveCollection() con una instancia mientras usa la mongos basede datos de administración.

Importante

Método mongosh

Esta página documenta a Método mongosh. Esta no es la documentación de comandos de base de datos ni de controladores específicos del lenguaje, como Node.js.

Para el comando de base de datos, consulta el comando moveCollection.

Para los drivers de API de MongoDB, consulte la documentación del driver de MongoDB específica del lenguaje.

sh.moveCollection() tiene la siguiente sintaxis:

sh.moveCollection( "<namespace>", "<toShard>" )

Nota

Utilice el comando para recuperar el ID del fragmento del listShards destinatario.

sh.moveCollection() toma los siguientes parámetros:

Parameter
Tipo
Descripción

namespace

string

Base de datos y nombre de la colección a trasladar.

toShard

string

ID de la partición receptora.

Este método está disponible en implementaciones alojadas en los siguientes entornos:

  • MongoDB Atlas: El servicio totalmente gestionado para implementaciones de MongoDB en la nube

Nota

Este comando no está disponible en los niveles Atlas Free y Flex.

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

  • sh.moveCollection() Sólo se puede ejecutar en clústeres fragmentados.

  • sh.moveCollection() solo puede mover colecciones que no estén fragmentadas.

  • sh.moveCollection() solo puede mover una colección a la vez.

  • sh.moveCollection() tiene una duración mínima de 5 minutos.

  • Si la colección que se está moviendo utiliza MongoDB Search, sus índices de búsqueda dejan de estar disponibles una vez que moveCollection finaliza. Debe reconstruir manualmente los índices de búsqueda.

  • No se pueden realizar cambios en la topología, como agregar o eliminar fragmentos o realizar transiciones entre servidores de configuración integrados y dedicados, hasta que se complete moveCollection.

  • No puedes ejecutar las siguientes operaciones en la colección que se está moviendo mientras sh.moveCollection() esté en curso:

  • No se pueden ejecutar las siguientes operaciones contra el clúster mientras moveCollection esté en progreso:

  • Las creaciones de índices que ocurran mientras sh.moveCollection() esté en curso podrían fallar silenciosamente.

    • No cree índices mientras sh.moveCollection() esté en progreso.

    • No llame a sh.moveCollection() si hay creaciones de índices en curso.

Antes de trasladar 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%.

Importante

La base de datos no exige estos requisitos. Si no se asignan suficientes recursos, pueden producirse las siguientes consecuencias:

  • la base de datos se queda sin espacio y se apaga

  • rendimiento reducido

  • la operación tarda más de lo esperado

Si su aplicación tiene períodos de tiempo con menos tráfico, realice esta operación en la colección durante ese tiempo si es posible.

Este ejemplo mueve una colección no particionada llamada inventory en la base de datos app a la partición shard02.

sh.moveCollection( "app.inventory", "shard02" )

Para obtener una lista de los ID de fragmentos disponibles,sh.status() ejecute. Para más detalles, consulte la salida de sh.status().

Volver

sh.moveChunk

En esta página