Docs Menu
Docs Home
/ /
particionado

sh.removeRangeFromZone() (método mongosh)

sh.removeRangeFromZone(namespace, minimum, maximum)

Elimina la asociación entre un rango de valores de clave de fragmento y una zona.

sh.removeRangeFromZone() toma los siguientes campos:

Parameter
Tipo
Descripción

namespace

string

El espacio de nombres de la colección fragmentada que se asociará con la zona.

La colección debe estar fragmentada para que la operación tenga éxito.

minimum

Documento

El límite inferior inclusivo del rango de valores de clave de fragmento.

Especifique cada campo de la clave de fragmento con el formato <fieldname> : <value>. El valor debe ser del mismo tipo o tipos BSON que la clave de fragmento.

maximum

Documento

El límite superior exclusivo del rango de valores de clave de fragmento.

Especifique cada campo de la clave de fragmento con el formato <fieldname> : <value>. El valor debe ser del mismo tipo o tipos BSON que la clave de fragmento.

Utilice sh.removeRangeFromZone() para eliminar la asociación entre rangos de claves de fragmentos no utilizados, obsoletos o conflictivos y una zona.

Si ningún rango coincide con los límites mínimo y máximo pasados ​​a sh.removeRangeFromZone(), no se elimina nada.

Ejecute mongos solo sh.removeRangeFromZone() cuando esté conectado a una instancia.

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

Importante

Este comando no es compatible con los clústeres M0 y Flex. Para obtener más información, consulta Comandos no compatibles.

  • 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.removeRangeFromZone() No elimina la asociación entre una zona y un fragmento. Tampoco elimina la zona en sí.

Consulte la página del manual de zonas para obtener más información sobre las zonas en clústeres fragmentados.

Al eliminar la asociación entre un rango y una zona, se eliminan las restricciones que mantienen los fragmentos cubiertos por el rango en los fragmentos dentro de esa zona. Durante la siguiente ronda de balanceo, este puede migrar fragmentos que anteriormente estaban cubiertos por la zona.

Consulte la documentación del equilibrador de clúster fragmentado para obtener más información sobre cómo funcionan las migraciones en un clúster fragmentado.

Para los clústeres fragmentados que se ejecutan con autenticación, debe autenticarse como:

  • un usuario cuyos privilegios incluyen las acciones especificadas en varias colecciones en la base de datos config:

    o, alternativamente

  • un usuario cuyos privilegios incluyen en enableSharding el recurso del clúster.

Los roles clusterAdmin integrados o tienen los permisos adecuados para clusterManager sh.removeRangeFromZone() ejecutar. Consulte la documentación sobre el control de acceso basado en roles para obtener más información.

Dada una colección fragmentada exampledb.collection con una clave de fragmento de { a : 1 }, la siguiente operación elimina el rango con un límite inferior de 1 y un límite superior de 10:

sh.removeRangeFromZone( "exampledb.collection",
{ a : 1 },
{ a : 10 }
)

Los valores min y max deben coincidir exactamente con los límites del rango objetivo. La siguiente operación intenta eliminar el rango creado previamente, pero especifica { a : 0 } como el límite min:

admin = db.getSiblingDB("admin")
admin.runCommand(
{
updateZoneKeyRange : "exampledb.collection",
min : { a : 0 },
max : { a : 10 },
zone : null
}
)

Si bien el rango de { a : 0 } y { a : 10 } abarca el rango existente, no es una coincidencia exacta y, por lo tanto, sh.removeRangeFromZone() no elimina nada.

Dada una colección fragmentada exampledb.collection con una clave de fragmento de { a : 1, b : 1 }, la siguiente operación elimina el rango con un límite inferior de { a : 1, b : 1} y un límite superior de { a : 10, b : 10 }:

sh.removeRangeFromZone( "exampledb.collection",
{ a : 1, b : 1 },
{ a : 10, b : 10 }
)

En el ejemplo anterior, si existía un rango previo con un límite inferior de { a : 1, b : 5 } y un límite superior de { a : 10, b : 1 }, la operación no removería ese rango, ya que no es una coincidencia exacta con el mínimo y máximo pasados a sh.removeRangeFromZone().

Volver

sh.moveRange

En esta página