Definición
addShardToZoneAsocia una partición con un zona. MongoDB asocia esta partición con la zona especificada. Los fragmentos cubiertos por la zona se asignan a particiones asociados con la zona.
Tip
En
mongosh, este comando también puede ejecutarse a través del método asistentesh.addShardToZone().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.
Solo se puede ejecutar addShardToZone en la base de datos de admin desde una instancia de mongos.
Compatibilidad
Este comando está disponible en implementaciones alojadas en los siguientes entornos:
MongoDB Atlas: El servicio totalmente gestionado para implementaciones de MongoDB en la nube
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.
Sintaxis
El comando tiene la siguiente sintaxis:
db.adminCommand( { addShardToZone: <string>, zone: <string> } )
Campos de comandos
El comando toma los siguientes campos:
Campo | Tipo | Descripción |
|---|---|---|
string | El nombre de la partición con la que se asociará la zona. | |
string | Nombre de la zona a asociar con la partición. |
mongosh proporciona el método asistente sh.addShardToZone().
Comportamiento
Puedes asociar una zona con múltiples particiones y una partición puede estar asociada con múltiples zonas.
Consulta la página de manual de zonas para obtener más información sobre zonas en un clúster fragmentado.
rango
MongoDB ignora de manera efectiva las zonas que no tienen al menos un rango de valores de la clave de partición asociado con ellas.
Para asociar un rango de valores de la clave de partición con una zona, utiliza el comando de base de datos updateZoneKeyRange o el asistente de shell sh.updateZoneKeyRange().
Puede ejecutar el updateZoneKeyRange comando de base de datos y sus asistentes sh.updateZoneKeyRange() y sh.addTagRange() en una colección no particionada o en una colección que no existe.
Tip
Al definir las zonas y los rangos de zonas antes de fragmentar una colección vacía o inexistente, la operación de "shard colletion" crea fragmentos para la zona definida rangos así como cualquier fragmento adicional para cubrir todo el rango de los valores de la clave de partición y realiza una distribución inicial de fragmentos basada en los rangos de zonas. Esta creación y distribución inicial de fragmentos permite una configuración más rápida del particionado zonificado. Después de la distribución inicial, el balanceador gestiona la distribución de fragmentos en adelante.
Consulta Predefinir zonas y rangos de zonas para una colección vacía o inexistente para ver un ejemplo.
Seguridad
Para los clústeres particionados que aplican control de acceso, debe autenticarse como un usuario cuyos privilegios incluyan cualquiera de los siguientes:
updateen la colecciónshardsen la base de datosconfig; o, alternativamente,enableShardingen el recurso de clúster.
Las clusterAdmin o clusterManager roles integradas tienen los permisos adecuados para emitir addShardToZone. Consulta la página de documentación sobre Control de Acceso Basado en Roles para obtener más información.
Ejemplo
El siguiente ejemplo asocia shard0000 con la zona JFK:
db.adminCommand( { addShardToZone : "shard0000" , zone : "JFK" } )
Una partición puede asociarse a varias zonas. El siguiente ejemplo asocia LGA a shard0000:
db.adminCommand( { addShardToZone : "shard0000" , zone : "LGA" } )
shard0000 se asocia con la zona LGA y la zona JFK. En un clúster equilibrado, MongoDB enruta las lecturas y escrituras cubiertas por cualquier zona a shard0000.