Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs Menu
Docs Home
/ /

Restauración de un clúster autogestionado

Este procedimiento restaura un clúster a partir de una snapshot de copia de seguridad existente, como snapshot del administrador de volúmenes lógicos (LVM). La fuente y el destino del clúster deben tener el mismo número de particiones. Para obtener información sobre cómo crear instantáneas de LVM para todos los componentes de un clúster fragmentado, visita Realiza una copia de seguridad de un clúster fragmentado autogestionado con instantáneas del sistema de archivos.

Nota

Para utilizar mongodumpymongorestorecomo estrategia de respaldo para clústeres fragmentados, consulte Realizar una copia de seguridad de un clúster fragmentado autoadministrado con un volcado de base de datos.

Los clústeres particionados también pueden utilizar uno de los siguientes procesos coordinados de copia de seguridad y restauración, que mantienen las garantías de atomicidad de las transacciones entre particiones:

Para los motores de almacenamiento cifrado que utilizan el modo de cifrado AES256-GCM, AES256-GCM requiere que cada proceso use un valor de bloque de contador único con la clave.

Para el motor de almacenamiento cifrado configurado con el cifrado AES256-GCM:

  • Restauración desde una copia de seguridad en caliente
    Si restauras desde archivos tomados a través de una copia de seguridad en caliente mientras el mongod se está ejecutando, MongoDB detecta claves "sucias" al arrancar y rota automáticamente la clave de la base de datos para evitar la reutilización de IV (Initialization Vector).
  • Restauración desde una copia de seguridad en frío

    Sin embargo, si se restaura desde archivos obtenidos mediante una copia de seguridad "en frío" mientras mongod no se está ejecutando, MongoDB no detecta claves "sucias" al iniciarse, y la reutilización del IV anula las garantías de confidencialidad e integridad.

    Para evitar la reutilización de las claves tras restaurar desde una instantánea del sistema de archivos, MongoDB añade la opción en la --eseDatabaseKeyRollover línea de comandos. Al iniciarse con la --eseDatabaseKeyRollover opción, la mongod instancia reutiliza las claves de la base de datos configuradas con el AES256-GCM cifrado y finaliza.

A partir de MongoDB 8.0, se puede utilizar el rol directShardOperations para realizar operaciones de mantenimiento que requieren ejecutar comandos directamente contra un fragmento.

Advertencia

Ejecutar comandos usando el rol directShardOperations puede hacer que su clúster deje de funcionar correctamente y puede causar corrupción de datos. Utiliza el rol directShardOperations únicamente con fines de mantenimiento o bajo la orientación del soporte de MongoDB. Deja de usar el rol directShardOperations cuando termines de realizar operaciones de mantenimiento.

Este procedimiento inicia un nuevo set de réplicas para el set de réplicas del servidor de configuración (CSRS) y cada set de réplicas de partición utilizando la configuración por defecto. Para usar una configuración de set de réplicas diferente para tus CSRS y particiones restauradas, debes reconfigurar el(los) set(s) de réplicas.

Si el clúster de origen se ejecuta correctamente y es accesible, conecte un shell al miembro principal del conjunto de mongo rs.conf() réplicas en cada conjunto de réplicas. A continuación, ejecute para ver el documento de configuración de la réplica.

Si no puede acceder a uno o más componentes del clúster fragmentado de origen, consulte la documentación interna existente para reconstruir los requisitos de configuración para cada conjunto de réplicas de fragmentos y el conjunto de réplicas del servidor de configuración.

Requisitos de espacio de almacenamiento
Asegúrese de que el hardware del host de destino tenga suficiente espacio de almacenamiento disponible para los datos restaurados. Si el host de destino contiene datos existentes del clúster fragmentado que desea conservar, asegúrese de tener suficiente espacio de almacenamiento tanto para los datos existentes como para los restaurados.
Requisitos de LVM
Para las instantáneas de LVM, debe tener al menos un grupo de volúmenes administrados por LVM y un volumen lógico con suficiente espacio libre para los datos de la instantánea extraídos.
Requisitos de la versión de MongoDB

Asegúrate de que el host de destino y el host de origen tengan la misma versión del Servidor MongoDB. Para comprobar la versión de MongoDB disponible en una máquina host, ejecute mongod --version desde el terminal o shell.

Para obtener la documentación completa sobre la instalación, consulte Instalar MongoDB.

Apague los procesos en ejecución de MongoDB

Si se restaura a un clúster existente, apague el mongod proceso o en el host de destino.mongos

Para los hosts que ejecutan mongos, conecta una mongo shell al mongos y ejecuta db.shutdownServer() desde la base de datos admin:

use admin
db.shutdownServer()

Para los hosts que ejecutan unmongod, conecte un shellmongoal mongod y ejecutedb.hello():

  • Si isWritablePrimary es falso, el mongod es un miembro secundario de un set de réplicas. Puede apagarse ejecutando db.shutdownServer() desde la base de datos admin.

  • Si isWritablePrimary es verdadero, el mongod es el primario de un set de réplicas. Cierre primero los miembros secundarios del set de réplicas. Use rs.status() para identificar a los demás nodos del set de réplicas.

    El primario automáticamente se reinicia después de detectar que la mayoría de los nodos están desconectados. Después de que baje (db.hello() devuelve isWritablePrimary: false), puede apagar de manera segura el mongod.

Preparar Directorio de datos

Crea un directorio en el host de destino para los archivos restaurados de la base de datos. Asegúrate de que el usuario que ejecuta el mongod tenga permisos de lectura, escritura y ejecución para todos los archivos y subcarpetas en ese directorio:

sudo mkdir /path/to/mongodb
sudo chown -R mongodb:mongodb /path/to/mongodb
sudo chmod -R 770 /path/to/mongodb

Sustituye /path/to/mongodb por la ruta al directorio de datos que creaste. En RHEL / CentOS, Amazon Linux y SUSE, el nombre de usuario por defecto es mongod.

Preparar directorio de registros

Cree un directorio en el host de destino para los mongod archivos de registro. Asegúrese de que el usuario que ejecuta tenga permisos de lectura, escritura y ejecución para todos los archivos y subcarpetas de ese mongod directorio.

sudo mkdir /path/to/mongodb/logs
sudo chown -R mongodb:mongodb /path/to/mongodb/logs
sudo chmod -R 770 /path/to/mongodb/logs

Sustituya /path/to/mongodb/logs por la ruta al directorio de registro que creó. En RHEL/CentOS, Amazon Linux y SUSE, el nombre de usuario predeterminado mongod es.

Crear archivo de configuración

Este procedimiento supone iniciar un con un mongod archivode configuración.

Crea el archivo de configuración en tu ubicación preferida. Asegúrese de que el usuario que ejecuta mongod tenga permisos de lectura y escritura en el archivo de configuración:

sudo touch /path/to/mongod.conf
sudo chown mongodb:mongodb /path/to/mongodb/mongod.conf
sudo chmod 644 /path/to/mongodb/mongod.conf

En RHEL/CentOS, Amazon Linux y SUSE, el nombre de usuario predeterminado mongod es.

Abre el archivo de configuración en tu editor de texto preferido y modifícalo según lo requiera tu implementación. De manera alternativa, si tienes acceso al archivo de configuración original de la mongod, cópialo a la ubicación de tu preferencia en el host de destino.

Importante

Valida que tu archivo de configuración incluya la siguiente configuración:

  • storage.dbPath debe configurarse al ruta de su directorio de datos preferido.

  • systemLog.path debe establecerse en la ruta a su directorio de registros preferido

  • net.bindIp Debe incluir la dirección IP de la máquina host.

  • replication.replSetName tiene el mismo valor en cada miembro de cualquier conjunto de réplicas determinado.

  • sharding.clusterRole tiene el mismo valor en cada miembro de cualquier conjunto de réplicas determinado.

  • También debe especificar las mismas opciones de inicio para la nueva implementación especificadas en la snapshot.

1

Selecciona la pestaña que corresponda a tu método de copia de seguridad preferido:

  1. Monte la instantánea de LVM en el host de destino. Los pasos específicos para montar una instantánea de LVM dependen de su configuración.

    El siguiente ejemplo supone una instantánea de LVM creada mediante el paso Crear una instantánea del procedimiento Realizar copia de seguridad de una implementación autoadministrada con instantáneas del sistema de archivos.

    lvcreate --size 250GB --name mongod-datafiles-snapshot vg0
    gzip -d -c mongod-datafiles-snapshot.gz | dd o/dev/vg0/mongod-datafiles-snapshot
    mount /dev/vg0/mongod-datafiles-snapshot /snap/mongodb

    Este ejemplo puede no aplicarse a todas las configuraciones posibles de LVM. Consulta la documentación de LVM para tu sistema para obtener una orientación más completa sobre la restauración de LVM.

  2. Copia los archivos de datos mongod del montaje del snapshot al directorio de datos creado en B. Prepare the Target Host for Restoration:

    cp -a /snap/mongodb/path/to/mongodb /path/to/mongodb

    La opción -a copia recursivamente el contenido de la ruta de origen a la ruta de destino mientras conserva los permisos de carpeta y archivo.

  3. Comenta u omite las siguientes configuraciones de archivo de configuración:

    #replication:
    # replSetName: myCSRSName
    #sharding:
    # clusterRole: configsvr

    Para iniciar la mongod usando un archivo de configuración, especifique la opción --config en la línea de comandos especificando la ruta completa al archivo de configuración.

    mongod --config /path/to/mongodb/mongod.conf

    Si está restaurando desde una instantánea filtrada por espacio de nombres, especifique la --restore opción.

    mongod --config /path/to/mongod/mongod.conf --restore

    Si tienes mongod configurado para ejecutarse como un servicio del sistema, inícialo usando el proceso recomendado para el administrador de servicios del sistema.

    Después de que mongod inicie, conéctate a él usando el shell mongo.

  1. Haz que los archivos de datos almacenados en el medio de copia de seguridad seleccionado estén accesibles en el host. Esto puede requerir montar el volumen de copia de seguridad, abrir la copia de seguridad en una utilidad de software, o utilizar otra herramienta para extraer los datos al disco. Consulta la documentación de tu herramienta de copia de seguridad preferida para obtener instrucciones sobre cómo acceder a los datos contenidos en la copia de seguridad.

  2. Copia los archivos de datos mongod desde la ubicación de datos de copia de seguridad hasta el directorio de datos creado en B. Prepare the Target Host for Restoration:

    cp -a /backup/mongodb/path/to/mongodb /path/to/mongodb

    La opción -a copia recursivamente el contenido de la ruta de origen a la ruta de destino mientras conserva los permisos de carpeta y archivo.

  3. Comenta u omite las siguientes configuraciones de archivo de configuración:

    #replication:
    # replSetName: myCSRSName
    #sharding:
    # clusterRole: configsvr
  4. Para iniciar la mongod usando un archivo de configuración, especifique la opción --config en la línea de comandos especificando la ruta completa al archivo de configuración.

    mongod --config /path/to/mongodb/mongod.conf

    Si se restaura desde una instantánea filtrada por espacio de nombres, especifique también la --restore opción.

    mongod --config /path/to/mongod/mongod.conf --restore

    Nota

    Solo Cloud Manager u Ops Manager

    Si realiza una restauración manual de una copia de seguridad de Cloud Manager o Ops Manager, debe especificar el parámetro de servidor disableLogicalSessionCacheRefresh antes de iniciar.

    mongod --config /path/to/mongodb/mongod.conf \
    --setParameter disableLogicalSessionCacheRefresh=true

    Si tienes mongod configurado para ejecutarse como un servicio del sistema, inícialo usando el proceso recomendado para el administrador de servicios del sistema.

    Después de que mongod inicie, conéctate a él usando el shell mongo.

2

Utilice para eliminar db.dropDatabase() la local base de datos:

use local
db.dropDatabase()
3

Este paso solo es necesario si estás restaurando desde una instantánea filtrada por namespace.

Para cada partición, localice la lista de archivos filtrados con el siguiente formato de nombre: <shardRsID>-filteredFileList.txt. Este archivo contiene una lista de objetos JSON con el siguiente formato:

{
"filename":"file1",
"ns":"sampleDb1.sampleCollection1",
"uuid": "3b241101-e2bb-4255-8caf-4136c566a962"
}

Agrega cada objeto JSON de cada archivo de partición a una nueva colección db.systems.collections_to_restore en tu base de datos local. Puede ignorar las entradas con campos vacíos ns o uuid. Al insertar entradas, el campo uuid debe ser insertado como tipo UUID().

4

Este paso solo es necesario si estás restaurando desde una instantánea filtrada por namespace.

Después de insertar todas las entradas, ejecute los siguientes comandos:

use admin
db.runCommand({"_configsvrRunRestore":1})
5

Puedes omitir este paso si todas las siguientes afirmaciones son verdaderas:

  • Ningún hostname de máquina host de nodo de partición ha cambiado ni cambiará durante este procedimiento.

  • Ningún nombre de set de réplicas de partición ha cambiado o cambiará durante este procedimiento.

Emite el siguiente método find() en la colección shards en la base de datos de configuración. Reemplace <shardName> con el nombre de la partición. Por defecto, el nombre de la partición es el nombre de su conjunto de réplicas. Si añadiste la partición usando el comando addShard y especificaste un name personalizado, debes especificar esa name en <shardName>.

use config
db.shards.find( { "_id" : "<shardName>" } )

Esta operación devuelve un documento que se asemeja al siguiente:

{
"_id" : "shard1",
"host" : "myShardName/alpha.example.net:27018,beta.example.net:27018,charlie.example.net:27018",
"state" : 1
}

Importante

El valor _id debe coincidir con el valor shardName en el documento _id : "shardIdentity" en la partición correspondiente. Al restaurar las particiones más tarde en este procedimiento, valide que el campo _id en shards coincida con el valor shardName en la partición.

Utilice el método updateOne() para actualizar la cadena hosts y reflejar el nombre del set de réplicas previsto y la lista de nombres de host para la partición. Por ejemplo, la siguiente operación actualiza la cadena de conexión host para la partición con "_id" : "shard1":

db.shards.updateOne(
{ "_id" : "shard1" },
{ $set : { "host" : "myNewShardName/repl1.example.net:27018,repl2.example.net:27018,repl3.example.net:27018" } }
)

Repita este proceso hasta que todos los metadatos del fragmento reflejen con precisión el nombre del conjunto de réplicas planificado y la lista de nombres de host para cada fragmento del clúster.

Nota

Si no sabe el nombre de la partición, ejecute el método find() en la colección shards con un documento de filtro vacío {}:

use config
db.shards.find({})

Cada documento en el conjunto de resultados representa una partición en el clúster. Para cada documento, revisa el campo host en busca de una cadena de conexión que coincida con la partición en cuestión, es decir, un nombre de set de réplicas coincidente y una lista de nombres de host de nodos. Utiliza el _id de ese documento en lugar de <shardName>.

6

Apague el. Descomente o agregue las siguientes opciones del archivo de configuración:mongod

replication:
replSetName: myNewCSRSName
sharding:
clusterRole: configsvr

Si desea cambiar el nombre del set de réplicas, debe actualizar el campo replSetName con el nuevo nombre antes de proceder.

Inicie el con el archivo de configuración mongod actualizado:

mongod --config /path/to/mongodb/mongod.conf

Si tienes mongod configurado para ejecutarse como un servicio del sistema, inícialo usando el proceso recomendado para el administrador de servicios del sistema.

Después de que mongod inicie, conéctate a él usando el shell mongo.

7

Inicie el conjunto de réplicas utilizando con la configuración rs.initiate() predeterminada.

rs.initiate()

Una vez que la operación se complete, utilice rs.status() para comprobar que el nodo se convirtió en el primario.

8

Para cada miembro del conjunto de réplicas en el CSRS, inicia el mongod en su máquina host. Una vez que hayas puesto en marcha con éxito todos los nodos restantes del clúster, conecta un shell mongo al nodo primario del set de réplicas. Desde el primario, utilice el método rs.add() para añadir cada nodo del set de réplicas. Incluye el nombre del conjunto de réplicas como prefijo, seguido del hostname y puerto del mongod de los nodos:

rs.add("config2.example.net:27019")
rs.add("config3.example.net:27019")

Si desea agregar el nodo con una configuración específica de la réplica member, puede pasar un documento a rs.add() que defina el nombre de host del nodo y la configuración de members que requiera su implementación.

rs.add(
{
"host" : "config2.example.net:27019",
priority: <int>,
votes: <int>,
tags: <int>
}
)

Cada nuevo miembro realiza una sincronización inicial para alcanzar al principal. Dependiendo de factores como la cantidad de datos a sincronizar, la topología y el estado de la red, y la potencia de cada equipo host, la sincronización inicial puede tardar un tiempo considerable.

El set de réplicas puede elegir un nuevo primario mientras agregas nodos adicionales. Utiliza rs.status() para identificar qué nodo es el primario actual. Solo puedes ejecutar rs.add() desde la primaria.

9

El método actualiza rs.reconfig() reconfig() la configuración del conjunto de réplicas según un documento de configuración pasado como parámetro. Debe ejecutar en el miembro principal del conjunto de réplicas.

Consulta la salida del archivo de configuración original del set de réplicas como se identificó en el paso A. Review Replica Set Configurations y aplica la configuración según sea necesario.

1

Selecciona la pestaña que corresponda a tu método de copia de seguridad preferido:

  1. Monte la instantánea de LVM en el host de destino. Los pasos específicos para montar una instantánea de LVM dependen de su configuración.

    El siguiente ejemplo supone una instantánea de LVM creada mediante el paso Crear una instantánea del procedimiento Realizar copia de seguridad de una implementación autoadministrada con instantáneas del sistema de archivos.

    lvcreate --size 250GB --name mongod-datafiles-snapshot vg0
    gzip -d -c mongod-datafiles-snapshot.gz | dd o/dev/vg0/mongod-datafiles-snapshot
    mount /dev/vg0/mongod-datafiles-snapshot /snap/mongodb

    Este ejemplo puede no aplicarse a todas las configuraciones posibles de LVM. Consulta la documentación de LVM para tu sistema para obtener una orientación más completa sobre la restauración de LVM.

  2. Copia los archivos de datos mongod desde el montaje de la snapshot al directorio de datos creado en B. Prepare the Target Host for Restoration:

    cp -a /snap/mongodb/path/to/mongodb /path/to/mongodb

    La opción -a copia recursivamente el contenido de la ruta de origen a la ruta de destino mientras conserva los permisos de carpeta y archivo.

  3. Comenta u omite las siguientes configuraciones de archivo de configuración:

    #replication:
    # replSetName: myShardName
    #sharding:
    # clusterRole: shardsvr

    Para iniciar el mongod usando un archivo de configuración, especifica la opción --config en la línea de comandos, indicando la ruta completa al archivo de configuración:

    mongod --config /path/to/mongodb/mongod.conf

    Si se está restaurando desde un snapshot con un filtro de namespace, especifica la opción --restore.

    mongod --config /path/to/mongod/mongod.conf --restore

    Si tienes mongod configurado para ejecutarse como un servicio del sistema, inícialo usando el proceso recomendado para el administrador de servicios del sistema.

    Después de que mongod inicie, conéctate a él usando el shell mongo.

  1. Haz que los archivos de datos almacenados en el medio de copia de seguridad seleccionado estén accesibles en el host. Esto puede requerir montar el volumen de copia de seguridad, abrir la copia de seguridad en una utilidad de software, o utilizar otra herramienta para extraer los datos al disco. Consulta la documentación de tu herramienta de copia de seguridad preferida para obtener instrucciones sobre cómo acceder a los datos contenidos en la copia de seguridad.

  2. Copia los archivos de datos mongod desde la ubicación de datos de copia de seguridad hasta el directorio de datos creado en B. Prepare the Target Host for Restoration:

    cp -a /backup/mongodb/path/to/mongodb /path/to/mongodb

    La opción -a copia recursivamente el contenido de la ruta de origen a la ruta de destino mientras conserva los permisos de carpeta y archivo.

  3. Comenta u omite las siguientes configuraciones de archivo de configuración:

    #replication:
    # replSetName: myShardName
    #sharding:
    # clusterRole: shardsvr
  4. Para iniciar el mongod usando un archivo de configuración, especifica la opción --config en la línea de comandos, indicando la ruta completa al archivo de configuración:

    mongod --config /path/to/mongodb/mongod.conf

    Nota

    Solo Cloud Manager u Ops Manager

    Si realiza una restauración manual de una copia de seguridad de Cloud Manager u Ops Manager, debe especificar el parámetro de servidor disableLogicalSessionCacheRefresh antes del inicio:

    mongod --config /path/to/mongodb/mongod.conf \
    --setParameter disableLogicalSessionCacheRefresh=true

    Si tienes mongod configurado para ejecutarse como un servicio del sistema, inícialo usando el proceso recomendado para el administrador de servicios del sistema.

    Después de que mongod inicie, conéctate a él usando el shell mongo.

2

Durante este procedimiento, modificará documentos en la colección admin.system.version. Para los clústeres que hacen cumplir la autenticación, solo el rol __system otorga permiso para modificar esta colección. Puede omitir este paso si el clúster no aplica autenticación.

Advertencia

El __system rol permite a su titular realizar cualquier acción contra cualquier objeto de la base de datos. Este procedimiento incluye instrucciones para eliminar al usuario creado en este paso. No mantenga a este usuario activo más allá del alcance de este procedimiento.

Considera crear este usuario con la clientSource restricción de autenticación configurada para que solo los hosts especificados puedan autenticar como el usuario privilegiado.

  1. Autenticar como usuario con el rol userAdmin en la base de datos admin o el userAdminAnyDatabase rol:

    use admin
    db.auth("myUserAdmin","mySecurePassword")
  2. Crea un usuario con el rol __system:

    db.createUser(
    {
    user: "mySystemUser",
    pwd: "<replaceMeWithAStrongPassword>",
    roles: [ "__system" ]
    }
    )

    Las contraseñas deben ser aleatorias, largas y complejas para garantizar la seguridad del sistema y para prevenir o retrasar el acceso malicioso.

  3. Autenticarse como usuario privilegiado:

    db.auth("mySystemUser","<replaceMeWithAStrongPassword>")
3

Utilice para eliminar db.dropDatabase() la local base de datos:

use local
db.dropDatabase()
4

Para actualizar los elementos internos del particionado, emite el siguiente método deleteOne() en la colección system.version de la base de datos admin:

use admin
db.system.version.deleteOne( { _id: "minOpTimeRecovery" } )

Nota

La colección system.version es una colección interna del sistema. Solo debe modificarlo cuando reciba instrucciones específicas como estas.

5

Puedes omitir este paso si todas las siguientes afirmaciones son verdaderas:

  • Los nombres de host de cualquier host CSRS no cambiaron durante este procedimiento.

  • El nombre del set de réplicas CSRS no cambió durante este procedimiento.

La colección system.version en la base de datos admin contiene metadatos relacionados con la partición, incluido la cadena de conexión CSRS. Si se cambió el nombre o alguno de los nodos de host del CSRS mientras se restauraba el CSRS, debe actualizar esos metadatos.

Emita el siguiente find() método system.version en la colección en la admin base de datos:

use admin
db.system.version.find( {"_id" : "shardIdentity" } )

El método find() devuelve un documento que se asemeja al siguiente:

{
"_id" : "shardIdentity",
"clusterId" : ObjectId("2bba123c6eeedcd192b19024"),
"shardName" : "shard1",
"configsvrConnectionString" : "myCSRSName/alpha.example.net:27019,beta.example.net:27019,charlie.example.net:27019" }

El siguiente updateOne() método actualiza el documento de modo que el string host representa la cadena de conexión CSRS más actual:

db.system.version.updateOne(
{ "_id" : "shardIdentity" },
{ $set :
{ "configsvrConnectionString" : "myNewCSRSName/config1.example.net:27019,config2.example.net:27019,config3.example.net:27019"}
}
)

Importante

El valor de shardName debe coincidir con el valor de _id en la colección shards en el CSRS. Valide que los metadatos en la CSRS coincidan con los metadatos de la partición. Consulta el subpaso 3 en la sección C. Restore Config Server Replica Set de este procedimiento para obtener instrucciones sobre cómo ver los metadatos de CSRS.

6

Apague el. Descomente o agregue las siguientes opciones del archivo de configuración:mongod

replication:
replSetName: myNewShardName
sharding:
clusterRole: shardsvr

Si desea cambiar el nombre del set de réplicas, debe actualizar el campo replSetName con el nuevo nombre antes de proceder.

Inicie el con el archivo de configuración mongod actualizado:

mongod --config /path/to/mongodb/mongod.conf

Si tienes mongod configurado para ejecutarse como un servicio del sistema, inícialo usando el proceso recomendado para el administrador de servicios del sistema.

Después de que mongod inicie, conéctate a él usando el shell mongo.

7

Inicie el conjunto de réplicas utilizando con la configuración rs.initiate() predeterminada.

rs.initiate()

Una vez que la operación se complete, utilice rs.status() para comprobar que el nodo se convirtió en el primario.

8

Para cada miembro del conjunto de réplicas del conjunto de réplicas de fragmentos, inicie en mongod su equipo host. Una vez iniciados correctamente todos los miembros restantes del clúster, conecte un shell al miembro principal mongo del conjunto de réplicas. Desde el principal, utilice el rs.add() método para agregar cada miembro del conjunto de réplicas. Incluya el nombre del conjunto de réplicas como prefijo, seguido del nombre de host y el puerto del mongod proceso del miembro:

rs.add("repl2.example.net:27018")
rs.add("repl3.example.net:27018")

Si desea agregar el nodo con una configuración específica de la réplica member, puede pasar un documento a rs.add() que defina el nombre de host del nodo y la configuración de members que requiera su implementación.

rs.add(
{
"host" : "repl2.example.net:27018",
priority: <int>,
votes: <int>,
tags: <int>
}
)

Cada nuevo miembro realiza una sincronización inicial para alcanzar al principal. Dependiendo de factores como la cantidad de datos a sincronizar, la topología y el estado de la red, y la potencia de cada equipo host, la sincronización inicial puede tardar un tiempo considerable.

El set de réplicas puede elegir un nuevo primario mientras agregas nodos adicionales. Utiliza rs.status() para identificar qué nodo es el primario actual. Solo puedes ejecutar rs.add() desde la primaria.

9

El método actualiza rs.reconfig() reconfig() la configuración del conjunto de réplicas según un documento de configuración pasado como parámetro. Debe ejecutar en el miembro principal del conjunto de réplicas.

Consulta la salida del archivo de configuración original del set de réplicas como se identificó en el paso A. Review Replica Set Configurations y aplica la configuración según sea necesario.

10

Para los clústeres que aplican la autenticación, se debe remover el usuario privilegiado creado anteriormente en este procedimiento:

  1. Autenticar como usuario con el rol userAdmin en la base de datos admin o el userAdminAnyDatabase rol:

    use admin
    db.auth("myUserAdmin","mySecurePassword")
  2. Borrar al usuario privilegiado:

    db.removeUser("mySystemUser")

Reinicia cada mongos en el clúster.

mongos --config /path/to/config/mongos.conf

Incluye todas las demás opciones de línea de comandos según sea necesario para tu implementación.

Si el nombre del conjunto de réplicas CSRS o el nombre de host de algún miembro cambió, actualice la mongos configuración del sharding.configDB archivo con la cadena de conexión del servidor de configuración actualizada:

sharding:
configDB: "myNewCSRSName/config1.example.net:27019,config2.example.net:27019,config3.example.net:27019"

Conecta un mongo shell a uno de los mongos procesos del clúster. Utilice sh.status() para verificar el estado general del clúster. Si sh.status() indica que el balanceador no está en funcionamiento, utilizar sh.startBalancer() para reiniciar el balanceador. [1]

Para confirmar que todas las particiones son accesibles y que se están comunicando, inserta datos de prueba en una colección particionada temporal. Confirme que los datos se están dividiendo y migrando entre cada partición de su clúster. Puedes conectar un shell mongo a cada primario de partición y usar db.collection.find() para validar que los datos fueron particionados como se esperaba.

[1] A partir de MongoDB,6.0.3 la división automática de fragmentos no se realiza. Esto se debe a mejoras en la política de balanceo. Los comandos de división automática aún existen, pero no realizan ninguna operación. En versiones de MongoDB anteriores 6.0.3 a, sh.startBalancer() también habilita la división automática para el clúster fragmentado.

Volver

Cronograma la ventana de copia de seguridad para clústeres fragmentados

En esta página