A partición contiene un subconjunto de datos particionados para un clúster. Juntos, las particiones del clúster mantienen todo el conjunto de datos para el clúster.
Los fragmentos deben implementarse como un conjunto de réplicas para proporcionar redundancia y alta disponibilidad.
Importante
Los clústeres sharded utilizan el nivel de confirmación de escritura (write concern). "majority" para muchas de las operaciones internas. El uso de un árbitro en un clúster no se recomienda debido a los problemas de rendimiento con los sets de réplicas PSA.
Advertencia
Por lo general, no se recomienda realizar operaciones directamente en una partición porque podrían provocar la corrupción o pérdida de datos. Los usuarios, clientes o aplicaciones sólo deberían conectarse directamente a una partición para realizar operaciones administrativas o de mantenimiento locales.
Realizar consultas en una sola partición solo devuelve un subconjunto de datos. Conecte con el mongos para realizar operaciones a nivel de clúster, incluidas las operaciones de lectura o guardar.
Fragmento primario
Cada base de datos de un clúster fragmentado tiene un fragmento principal. Este es el fragmento predeterminado para todas las colecciones no fragmentadas de la base de datos. Todas las colecciones no fragmentadas de una base de datos se crean en el fragmento principal de la base de datos de forma predeterminada. A partir de MongoDB,8.0 puede mover colecciones no fragmentadas a otro fragmento moveCollection mediante. El fragmento principal no tiene relación con el principal en un conjunto de réplicas.
El mongos selecciona la partición primaria al crear una nueva base de datos eligiendo la partición en el clúster que tiene la menor cantidad de datos. mongos utiliza el campo totalSize devuelto por el comando listDatabases como parte del criterio de selección.
Para cambiar la partición primaria de una base de datos, utiliza el comando movePrimary. El proceso de migración de la partición primaria puede requerir un tiempo considerable para completarse, y no debe acceder a las colecciones asociadas con la base de datos hasta que se complete. Dependiendo de la cantidad de datos que se migren, la migración puede afectar las operaciones generales del clúster. Considera el impacto en las operaciones del clúster y la carga de la red antes de intentar cambiar la partición primaria.
Cuando despliegas un nuevo cluster shardeado con particiones previamente utilizadas como sets de réplicas, todas las bases de datos existentes continúan alojadas en sus sets de réplicas originales. Las bases de datos creadas posteriormente pueden residir en cualquier partición del clúster.
Estado del fragmento
Usa el método sh.status() mongosh para ver una descripción general del clúster. Este reporte incluye cuál partición es primaria para la base de datos y la distribución de fragmento entre las particiones. Consulte el método sh.status() para obtener más detalles.
Seguridad en el clúster particionado
Utiliza Autenticación interna/membresía autogestionada para aplicar la seguridad entre clústeres y evitar que componentes de clúster no autorizados accedan al clúster. Debes iniciar cada mongod en el clúster con la configuración de seguridad adecuada para aplicar la autenticación interna.
A partir de MongoDB 5.3, SCRAM-SHA-1 no se puede usar para la autenticación intraclúster. Solo se admite SCRAM-SHA-256.
En versiones anteriores de MongoDB, se pueden usar tanto SCRAM-SHA-1 como SCRAM-SHA-256 para la autenticación intra-clúster, incluso si SCRAM no está explícitamente habilitado.
Consulta Implementar clúster fragmentado autogestionado con autenticación de clave para aprender cómo implementar un clúster fragmentado seguro.
Usuarios locales de la partición
Cada partición admite Control de acceso basado en roles en implementaciones autogestionadas (RBAC) para restringir el acceso no autorizado a los datos y las operaciones de la partición. Inicia cada mongod en el set de réplicas con la opción --auth para aplicar RBAC. Alternativamente, aplicar la autenticación interna/de membresía autogestionado para la seguridad intra-clúster también permite los controles de acceso de usuario a través de RBAC.
A partir de MongoDB 5.3, SCRAM-SHA-1 no se puede usar para la autenticación intraclúster. Solo se admite SCRAM-SHA-256.
En versiones anteriores de MongoDB, se pueden usar tanto SCRAM-SHA-1 como SCRAM-SHA-256 para la autenticación intra-clúster, incluso si SCRAM no está explícitamente habilitado.
Cada fragmento tiene sus propios usuarios locales. Estos usuarios no pueden usarse en otros fragmentos ni para conectarse al clúster mediante mongos un.
Consulta Activar el control de acceso en implementaciones autogestionadas para ver un tutorial sobre cómo añadir usuarios a una implementación de MongoDB con RBAC habilitado.