¿Cómo administro el balanceador?
Escenario
- Habilitar el balanceador durante las horas fuera de pico.
- Deshabilitar el balanceador durante las horas pico.
- Programar una ventana de balanceo para que el balanceador pueda trabajar durante las horas no pico.
Restricciones
- El balanceador solo se aplica a instancias de clúster.
- DDS habilita el balanceador de forma predeterminada.
Habilitación del balanceador
- Conéctese a una instancia de clúster mediante Mongo Shell.
- Después de conectarse a un nodo mongos, ejecute el siguiente comando para cambiar a la base de datos de configuración:
use config
- Ejecute el siguiente comando para habilitar el balanceador:
sh.setBalancerState(true)
Deshabilitación del balanceador
- Conéctese a una instancia de clúster mediante Mongo Shell.
- Después de conectarse a un nodo mongos, ejecute el siguiente comando para cambiar a la base de datos de configuración:
use config
- Ejecute el siguiente comando para comprobar el estado del balanceador:
while( sh.isBalancerRunning() ) { print("waiting..."); sleep(500); }
- Si la salida del comando está vacía, el balanceador no está ejecutando ninguna tarea. En este caso, puede proceder a desactivar el balanceador.
- Si la salida del comando es waiting, el balanceador está migrando chunks. En este caso, no puede desactivar el balanceador. De lo contrario, los datos pueden volverse incoherentes.
- Si el resultado del comando en 3 está vacío, ejecute el siguiente comando para deshabilitar el balanceador:
sh.stopBalancer()
Programación de una ventana de balanceo
Para evitar que la migración de chunk afecte a su empresa, puede realizar las siguientes operaciones para programar una ventana de balanceo.
Antes de programar una ventana de balanceo, asegúrese de que el balanceador está habilitado haciendo referencia a Habilitación del balanceador.
- Conéctese a una instancia de clúster mediante Mongo Shell.
- Después de conectarse a un nodo mongos, ejecute el siguiente comando para cambiar a la base de datos de configuración:
use config
- Ejecute los siguientes comandos para programar una ventana de balanceo:
db.settings.update( { _id: "balancer" }, { $set: { activeWindow : { start : "<start-time>", stop : "<stop-time>" } } }, { upsert: true } )
- <start-time> indica el comienzo de la ventana de balanceo. Especifique la hora en el formato HH:MM (hora UTC). Para los valores de HH, utilice valores de hora que van de 00 a 23. Para el valor MM, utilice valores de minutos que van desde 00 hasta 59.
- <stop-time>: indica el final de la ventana de balanceo. Especifique la hora en el formato HH:MM (hora UTC). Para los valores de HH, utilice valores de hora que van de 00 a 23. Para el valor MM, utilice valores de minutos que van desde 00 hasta 59.
Puede ejecutar el comando sh.status() para comprobar una programación de ventana de balanceo. El siguiente resultado del comando en Figura 1 muestra que la ventana de balanceo es de 22:00 a 24:00.
Eliminación de una tabla de planificación de ventana de balanceo
Si ha establecido la ventana de balanceo y desea quitar la programación para que el balanceador esté siempre en ejecución, ejecute el siguiente comando:
db.settings.update({ _id : "balancer" }, { $unset : { activeWindow : true } })