Definición
addShardToZoneAsocia una partición con una zona. MongoDB asocia esta partición con la zona dada. Los fragmentos que están cubiertos por la zona se asignan a particiones asociadas con la zona.
Tip
In
mongosh, this command can also be run through thesh.addShardToZone()helper method.Helper methods are convenient for
mongoshusers, but they may not return the same level of information as database commands. In cases where the convenience is not needed or the additional return fields are required, use the database command.
You can only run addShardToZone on the admin database from a mongos instance.
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 | The name of the shard to associate with the zone. | |
string | The name of the zone to associate with the shard. |
mongosh provides the helper method 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.
The clusterAdmin or clusterManager built-in roles have the appropriate permissions for issuing addShardToZone. See the documentation page for Role-Based Access Control for more information.
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.