Al restaurar un conjunto de réplicas desde una copia de seguridad, Ops Manager le proporciona un archivo de restauración para el punto de restauración seleccionado. Para obtener más información sobre el proceso de restauración, consulte Descripción general de restauración.
Considerations
Revisar el cambio a BinData Subtipo BSON
Tip
Las notas sobre la especificación BSON explican los detalles específicos de este cambio.
Restaurar utilizando la configuración proporcionada en restoreInfo.txt
El archivo de restauración de la copia de seguridad incluye un archivo de metadatos llamado restoreInfo.txt. Este archivo captura las opciones que la base de datos utilizó al tomar la instantánea. La base de datos debe ejecutarse con las opciones indicadas después de restaurarla. Este archivo contiene:
Nombre del grupo
Nombre del conjunto de réplicas
ID de clúster (si corresponde)
Marca de tiempo de la instantánea (como marca de tiempo en UTC)
Restaurar marca de tiempo (como marca de tiempo BSON en UTC)
Último registro de operaciones aplicado (como marca de tiempo BSON en UTC)
Versión de MongoDB
Tipo de motor de almacenamiento
Opciones de inicio de mongod utilizadas en la base de datos cuando se tomó la instantánea
Cifrado (solo aparece si el cifrado está habilitado en la instantánea)
UUID de clave maestra (solo aparece si el cifrado está habilitado en la instantánea)
Si se restaura desde una copia de seguridad cifrada, es necesario tener un certificado provisto para esta clave maestra.
Consideraciones sobre copias de seguridad
Todo Las bases de datosFCV deben cumplir con las consideraciones de respaldo adecuadas.
Requisitos previos
Para realizar restauraciones manuales, debe tener el rol de administrador de respaldo en Ops Manager.
Para restaurar desde una copia de seguridad cifrada, necesita la misma clave maestra utilizada para cifrar la copia de seguridad y el mismo certificado que se encuentra en el host de Backup Daemon o un nuevo certificado proporcionado con esa clave desde el host KMIP.
Si la instantánea está cifrada, el panel de restauración muestra el ID de la clave maestra de KMIP y la información del servidor KMIP. También puede encontrar esta información al visualizar la propia instantánea y en el archivo restoreInfo.txt.
Solicitudes de los clientes durante la restauración
Debe asegurarse de que la implementación de MongoDB no reciba solicitudes de clientes durante la restauración. Debe:
Restaurar en nuevos sistemas con nuevos nombres de host y reconfigurar el código de su aplicación una vez que se esté ejecutando la nueva implementación, o
Asegúrese de que la implementación de MongoDB no reciba solicitudes de clientes mientras restaura los datos.
Restaurar una instantánea
Importante
Rotar la clave maestra después de restaurar instantáneas cifradas con AES256-GCM
Si restauras una snapshot cifrada que Ops Manager cifró con AES256-GCM, rota tu clave maestra después de completar la restauración.
Restauración automática
Para que Ops Manager restaure automáticamente la instantánea:
Seleccione el punto de restauración.
Elija el punto desde el que desea restaurar su copia de seguridad.
Tipo de restauraciónDescripciónAcciónSnapshot
Le permite elegir una instantánea almacenada.
Point In Time
Crea una instantánea personalizada que incluye todas las operaciones hasta el momento seleccionado, pero excluyendo dicho momento. De forma predeterminada, el almacén de registros de operaciones almacena 24 horas de datos.
Por ejemplo, si selecciona
12:00, la última operación en la restauración será11:59:59o anterior.Seleccione Date y Time.
Oplog Timestamp
Crea una instantánea personalizada que incluye todas las operaciones hasta la marca de tiempo del registro de operaciones (incluida). La marca de tiempo del registro de operaciones contiene dos campos:
Timestamp
Marca de tiempo en el número de segundos que han transcurrido desde la época de UNIX
Increment
Orden de operación aplicada en ese segundo como un ordinal de 32bit.
Escriba un Oplog Timestamp y Increment.
Ejecute una consulta en
local.oplog.rsen su conjunto de réplicas para encontrar la marca de tiempo deseada.Haga clic en Next.
Elija restaurar los archivos a otro clúster.
Haga clic en Choose Cluster to Restore to.
Complete los siguientes campos:
CampoAcciónProject
Seleccione un proyecto en el que desea restaurar la instantánea.
Cluster to Restore to
Seleccione el clúster en el que desea restaurar la instantánea.
Ops Manager debe administrar el conjunto de réplicas de destino.
ADVERTENCIA: La automatización elimina todos los datos existentes del clúster. Conserva todos los datos de copia de seguridad y las instantáneas del clúster existente.
Haga clic en Restore.
Ops Manager indica cuánto espacio de almacenamiento requiere la restauración.
Restauración manual
Advertencia
Considere la restauración automática
Este procedimiento implica muchos pasos. Algunos de ellos tienen graves consecuencias para la seguridad. Si no necesita restaurar una implementación que Ops Manager no administra, considere una restauración automática.
Recuperar las instantáneas
Seleccione el punto de restauración.
Elija el punto desde el que desea restaurar su copia de seguridad.
Tipo de restauraciónDescripciónAcciónSnapshot
Le permite elegir una instantánea almacenada.
Point In Time
Crea una instantánea personalizada que incluye todas las operaciones hasta el momento seleccionado, pero excluyendo dicho momento. De forma predeterminada, el almacén de registros de operaciones almacena 24 horas de datos.
Por ejemplo, si selecciona
12:00, la última operación en la restauración será11:59:59o anterior.Seleccione Date y Time.
Oplog Timestamp
Crea una instantánea personalizada que incluye todas las operaciones hasta la marca de tiempo del registro de operaciones (incluida). La marca de tiempo del registro de operaciones contiene dos campos:
Timestamp
Marca de tiempo en el número de segundos que han transcurrido desde la época de UNIX
Increment
Orden de operación aplicada en ese segundo como un ordinal de 32bit.
Escriba un Oplog Timestamp y Increment.
Ejecute una consulta en
local.oplog.rsen su conjunto de réplicas para encontrar la marca de tiempo deseada.Haga clic en Next.
Configurar la descarga de instantáneas.
Configure las siguientes opciones de descarga:
Pull Restore Usage Limit
Seleccione cuántas veces se puede usar el enlace. Si selecciona
No Limit, el enlace se podrá reutilizar hasta su vencimiento.Restore Link Expiration (in hours)
Seleccione el número de horas hasta que caduque el enlace. El valor predeterminado es
1. El valor máximo es el número de horas hasta que caduque la instantánea seleccionada.Haga clic en Finalize Request.
Si usa FA, Ops Manager le solicitará 2su 2código FA. Ingrese su 2código FA y haga clic Finalize Request en.
Retrieve the Snapshots.
Ops Manager crea enlaces a la instantánea. De forma predeterminada, estos enlaces están disponibles durante una hora y solo se pueden usar una vez.
Para descargar las instantáneas:
Si cerró el panel de restauración, haga clic en Continuous Backup y luego en Restore History.
Cuando se complete el trabajo de restauración, haga clic (get link) en para cada conjunto de réplicas que aparezca.
Hacer clic:
El botón de copia a la derecha del enlace para copiar el enlace para usarlo más tarde, o
Download para descargar la instantánea inmediatamente.
Preparar el conjunto de réplicas
Dejar de administrar el conjunto de réplicas de destino.
Antes de intentar restaurar los datos manualmente, elimine el conjunto de réplicas de Automation.
Elija la opción Unmanage this item in Ops Managers but continue to monitor.
Detener el conjunto de réplicas de destino.
Dependiendo de su ruta, es posible que deba especificar la ruta a.mongosh Ejecutar:
mongosh --port <port> \ --eval "db.getSiblingDB('admin').shutdownServer()"
Verificar los requisitos de hardware y software en el conjunto de réplicas de destino.
Capacidad de almacenamiento | El hardware del host de destino debe tener suficiente espacio libre para almacenar los datos restaurados. Si desea conservar los datos del clúster existentes en este host, asegúrese de que tenga suficiente espacio libre para los datos del clúster y los datos restaurados. |
Versión de MongoDB | El host de destino y el host de origen desde el que se realiza la restauración deben tener la misma versión de MongoDB Server. Para comprobar la versión de MongoDB, ejecute |
Para obtener más información, consulte instalación.
Mueva los archivos de datos de instantánea al host de destino.
Antes de mover los archivos de datos de la instantánea al host de destino, verifique si el host de destino contiene algún archivo existente y elimine todos los archivos excepto el archivo automation-mongod.conf.
Descomprima los archivos de instantáneas y muévalos al host de destino de la siguiente manera:
tar -xvf <backupSnapshot>.tar.gz mv <backupSnapshot> </path/to/datafiles>
Inicializar y configurar instancias
Inicie la instancia independiente temporal en el puerto efímero.
Inicie el proceso en modo independiente como medida temporal. Esto le permite agregar nuevos parámetros de configuración a mongod la system.replset colección en pasos posteriores.
Utilice <ephemeralPort> para el mongod proceso temporal independiente en todos los pasos de este procedimiento donde se mencione. Este puerto debe ser diferente de los puertos del host de origen y destino.
Ejecute el proceso como se indica a continuación. Dependiendo de mongod mongod la ruta, es posible que deba especificar la ruta al binario.
mongod --dbpath </path/to/datafiles> \ --port <ephemeralPort> \
Si está restaurando desde una instantánea filtrada por espacio de nombres, utilice la opción --restore.
mongod --dbpath </path/to/datafiles> \ --port <ephemeralPort> \ --restore
Después de que el proceso comience a aceptar conexiones,mongod continúe.
Conéctese a la instancia independiente temporal mongosh con.
Desde el host que ejecuta este mongod proceso, inicie.mongosh Según la ruta, es posible que deba especificar la ruta mongosh a.
Para conectarse al que mongod escucha al host local en el mismo <ephemeralPort> especificado en el paso anterior, ejecute:
mongosh --port <ephemeralPort>
Eliminar colecciones relacionadas con el conjunto de réplicas de la local base de datos.
Para realizar restauraciones manuales, debe tener el rol de administrador de respaldo en Ops Manager.
Ejecute los siguientes comandos para eliminar la configuración del conjunto de réplicas anterior y otras recopilaciones relacionadas con la replicación que no sean registros de operaciones.
db.getSiblingDB("local").replset.minvalid.drop() db.getSiblingDB("local").replset.oplogTruncateAfterPoint.drop() db.getSiblingDB("local").replset.election.drop() db.getSiblingDB("local").system.replset.remove({})
Una respuesta exitosa debería verse así:
> db.getSiblingDB("local").replset.minvalid.drop() true > db.getSiblingDB("local").replset.oplogTruncateAfterPoint.drop() true > db.getSiblingDB("local").replset.election.drop() true > db.getSiblingDB("local").system.replset.remove({}) WriteResult({ "nRemoved" : 1 })
Agregar una nueva configuración de conjunto de réplicas.
Inserte el siguiente documento en la colección system.replset de la base de datos local. Cambie las siguientes variables:
<replaceMeWithTheReplicaSetName>Al nombre de su conjunto de réplicas. Este nombre no tiene que ser el mismo que el anterior.<host>al host que sirve a este miembro del conjunto de réplicas.<finalPortNewReplicaSet>Al puerto final del nuevo conjunto de réplicas. Para una restauración automática, debe especificar un puerto diferente al<ephemeralPort>especificado anteriormente.
Asegúrese de incluir y configurar todos los miembros del nuevo conjunto de réplicas en la matriz members.
1 db.getSiblingDB("local").system.replset.insertOne({ 2 "_id" : "<replaceMeWithTheReplicaSetName>", 3 "version" : NumberInt(1), 4 "protocolVersion" : NumberInt(1), 5 "members" : [ 6 { 7 "_id" : NumberInt(0), 8 "host" : "<host>:<finalPortNewReplicaSet>" 9 }, 10 { 11 . . . 12 }, 13 . . . 14 ], 15 "settings" : { 16 17 } 18 })
Una respuesta exitosa debería verse así:
{ "acknowledged" : true, "insertedId" : "<yourReplicaSetName>" }
Establezca el punto de restauración en los valores Restore Timestamp de restoreInfo.txt desde.
Establezca el oplogTruncateAfterPoint documento con los valores proporcionados en el Restore Timestamp campo del archivo restoreInfo.txt.
El campo Restore Timestamp de ese archivo contiene dos valores. En el siguiente ejemplo, el primero es la marca de tiempo y el segundo, el incremento.
1 ... 2 Restore timestamp: (1609947369, 2) 3 Last Oplog Applied: Wed Jan 06 15:36:09 GMT 2021 (1609947369, 1) 4 MongoDB Version: 4.2.11 5 ...
El siguiente código de ejemplo utiliza el valor de la marca de tiempo y el valor de incremento del ejemplo anterior.
truncateAfterPoint = Timestamp(1609947369,2) db.getSiblingDB("local").replset.oplogTruncateAfterPoint.insertOne({ "_id": "oplogTruncateAfterPoint", "oplogTruncateAfterPoint": truncateAfterPoint })
Una respuesta exitosa debería verse así:
WriteResult({ "nInserted" : 1 })
Nota
Restauración de instantáneas de MongoDB 4.2 mediante MongoDB 4.4
Si intenta restaurar una instantánea de MongoDB 4.2 con un mongod ejecutando MongoDB,4.4 su registro de operaciones puede contener documentos innecesarios.
Para resolver este problema, puede:
Disminuye la marca de tiempo en 1.
Restaurar usando MongoDB 4.2.
Haga que Ops Manager ejecute una restauración automática.
Este problema no se aplica a las instantáneas de MongoDB 4.4 o posteriores.
Administrar instancias
Detener la instancia independiente temporal.
Dependiendo de su ruta, es posible que deba especificar la ruta a.mongosh Ejecutar:
mongosh --port <ephemeralPort> \ --eval "db.getSiblingDB('admin').shutdownServer()"
Reinicie la instancia como un nodo de conjunto de réplicas efímeras.
Inicie elmongodcon el siguiente comando. Esta acción concilia el estadomongodcon el registro de operaciones hasta el Restore
timestamp. Dependiendo de la ruta, podría necesitar especificar la ruta al binariomongod.
mongod --dbpath </path/to/datafiles> \ --port <ephemeralPort> \ --replSet <replaceMeWithTheReplicaSetName>
Detener la instancia temporal en el puerto efímero.
Dependiendo de su ruta, es posible que deba especificar la ruta a.mongosh Ejecutar:
mongosh --port <ephemeralPort> \ --eval "db.getSiblingDB('admin').shutdownServer()"
Restaurar instantáneas de un punto en el tiempo
(Solo restauración a un punto en el tiempo) Ejecute la utilidad de restauración de copia de seguridad de MongoDB.
Este paso es condicional. Ejecútelo si necesita una restauración a un punto en el tiempo.
En este paso, descargue y ejecute la utilidad de restauración de copia de seguridad de MongoDB en la instancia de destino para el conjunto de réplicas y luego detenga la instancia.
Descargue la utilidad de restauración de copia de seguridad de MongoDB en su host.
Si cerró el panel de restauración, haga clic en Continuous Backup in Deployment, More y luego en Download MongoDB Backup Restore Utility.
Inicie una instancia sin autenticación habilitada usando el directorio de la instantánea extraída como directorio
mongodmongodde datos. Dependiendo de la ruta, es posible que deba especificar la ruta al binario.mongod --port <ephemeralPort> \ --dbpath </path/to/datafiles> \ --setParameter ttlMonitorEnabled=false \ --bind_ip <hostname_or_IP> Advertencia
La utilidad de restauración de copia de seguridad de MongoDB no admite la autenticación, por lo que no puede iniciar esta base de datos temporal con autenticación.
Ejecuta la utilidad de restauración de copias de seguridad de MongoDB en tu host de destino. Ejecute una vez para el set de réplicas.
Importante
Comando mongodb-backup-restore-util preconfigurado
Ops Manager proporciona a
mongodb-backup-restore-utillas opciones adecuadas para su restauración en el panel de restauración bajo Run Binary with PIT Options.Debes copiar el comando
mongodb-backup-restore-utilproporcionado en la aplicación Ops Manager../mongodb-backup-restore-util --https --host <targetHost> \ --port <ephemeralPort> \ --opStart <opLogStartTimeStamp> \ --opEnd <opLogEndTimeStamp> \ --logFile <logPath> \ --oplogSourceAddr <oplogSourceAddr> \ --apiKey <apiKey> \ --groupId <groupId> \ --rsId <rsId> \ --whitelist <database1.collection1, database2, etc.> \ --blacklist <database1.collection1, database2, etc.> \ --seedReplSetMember \ --oplogSizeMB <size> \ --seedTargetPort <port> \ --ssl \ --sslCAFile </path/to/ca.pem> \ --sslPEMKeyFile </path/to/pemkey.pem> --sslClientCertificateSubject <distinguishedName> \ --sslRequireValidServerCertificates <true|false> \ --sslServerClientCertificate </path/to/client.pem> \ --sslServerClientCertificatePassword <password> \ --sslRequireValidMMSBackupServerCertificate <true|false> \ --sslTrustedMMSBackupServerCertificate </path/to/mms-certs.pem> \ --httpProxy <proxyURL> El comando
mongodb-backup-restore-utilutiliza las siguientes opciones:OpciónNecesidadDescripción--hostRequerido
--portRequerido
--opStartRequerido
Proporcione la marca de tiempo BSON de la primera entrada del registro de operaciones que desee incluir en la restauración. Esta información aparece en la entrada "Último registro de operaciones aplicado"
restoreInfo.txtdel archivo que se incluye con la instantánea descargada.Este valor debe ser menor o igual al valor
--opEnd.--opEndRequerido
Proporcione la marca de tiempo BSON para la última entrada del registro de operaciones que desea incluir en la restauración.
Este valor no puede ser mayor que el final del opLog.
--logFileOpcional
Proporcione una ruta, incluido el nombre del archivo, donde se escribe el registro MBRU.
--oplogSourceAddrRequerido
Proporcione la URL para el punto final del recurso Ops Manager.
--apiKeyRequerido
Proporciona a tu Ops Manager la clave API del agente.
--groupIdRequerido
--rsIdRequerido
Proporcione el ID del conjunto de réplicas.
--whitelistOpcional
Proporcione una lista de bases de datos y/o colecciones a las que desea limitar la restauración.
--blacklistOpcional
Proporcione una lista de bases de datos y/o colecciones que desea excluir de la restauración.
--seedReplSetMemberOpcional
--oplogSizeMBCondicional
--seedTargetPortCondicional
Proporcione el puerto principal del conjunto de réplicas. Este puede ser diferente del puerto efímero utilizado.
Obligatorio si se establece
--seedReplSetMember.--sslOpcional
--sslCAFileCondicional
Proporcione la ruta al archivo de la autoridad de certificación.
Obligatorio si se establece
--ssl.--sslPEMKeyFileCondicional
Proporcione la ruta al archivo de certificado PEM.
Obligatorio si se establece
--ssl.--sslPEMKeyFilePwdCondicional
Proporcione la contraseña para el archivo de certificado PEM especificado
--sslPEMKeyFileen.Obligatorio si
--sslse establece y el archivo de clave PEM está cifrado.--sslClientCertificateSubjectOpcional
Proporcione el asunto del certificado de cliente o el nombre distinguido (DN) para el proceso MongoDB de destino.
Obligatorio si se establece
--ssl.--sslRequireValidServerCertificatesOpcional
Establezca una bandera que indique si la herramienta debe validar los certificados que presenta el proceso MongoDB de destino.
--sslServerClientCertificateOpcional
Proporcione la ruta absoluta al archivo de certificado de cliente que se utilizará para conectarse al host de Ops Manager.
--sslServerClientCertificatePasswordCondicional
Proporcione la ruta absoluta a la contraseña del archivo de certificado de cliente que se utilizará para conectarse al host de Ops Manager.
Obligatorio si se establece
--sslServerClientCertificatey ese certificado está cifrado.--sslRequireValidMMSBackupServerCertificateOpcional
Establezca una bandera que indique si se requieren certificados válidos al contactar al host de Ops Manager. El valor por defecto es
true.--sslTrustedMMSBackupServerCertificateOpcional
Proporcione la ruta absoluta a los certificados de la autoridad de certificación de confianza en formato PEM para el host de Ops Manager. Si no se proporciona esta opción, se utiliza la autoridad de certificación del sistema.
Si Ops Manager utiliza un certificado SSL autofirmado, esta configuración es obligatoria.
--httpProxyOpcional
Proporcione la URL de un servidor proxy HTTP que la herramienta pueda utilizar.
significa que, si se copió el comando
mongodb-backup-restore-utilproporcionado en la Aplicación de Ops Manager, este campo ya está configurado previamente.Detenga el en la instancia. Dependiendo de
mongodmongoshla ruta, podría necesitar especificar la ruta a. Ejecute:mongosh --port <ephemeralPort> \ --eval "db.getSiblingDB('admin').shutdownServer()"
(Solo restauración a un punto en el tiempo) Reinicie la instancia para recuperar el registro de operaciones.
Inicie utilizando el siguiente comando, especificando estos mongod parámetros:
<bind_ip>al host que sirve a este miembro del set de réplicas que especificaste en la configuración del set de réplicas.<port>al <ephemeralPort> que especificaste cuando iniciaste la instancia temporal autónomo.
Esta acción reproduce el oplog hasta la última entrada, incluidas aquellas insertadas cuando ejecutó la Utilidad de restauración de MongoDB.
mongod --dbpath </path/to/datafiles> \ --port <ephemeralPort> \ --bind_ip <host-serving-this-replica-set-member> --setParameter recoverFromOplogAsStandalone=true --setParameter takeUnstableCheckpointOnShutdown=true --setParameter startupRecoveryForRestore=true
Una vez completado este paso, se completará el proceso de restauración real.
(Solo restauración a un punto en el tiempo) Detenga la instancia independiente.
Dependiendo de su ruta, es posible que deba especificar la ruta a.mongosh Ejecutar:
mongosh --port <port> \ --eval "db.getSiblingDB('admin').shutdownServer()"
Automatización del currículum
Reiniciar todos los nodos en un conjunto de réplicas.
En este punto, los archivos de datos en el conjunto de réplicas están en un estado consistente, pero la configuración del conjunto de réplicas debe actualizarse para que cada nodo esté al tanto de los demás.
Ejecuta el siguiente comando:
sudo -u mongod <path/to/target_mongod_binary> -f /path/to/datafiles/automation-mongod.conf
El siguiente ejemplo reinicia todos los nodos con la versión 4.4.12 enterprise con la ruta de datos /data6/node3:
sudo -u mongod /var/lib/mongodb-mms-automation/mongodb-linux-x86_64-4.4.12-ent/bin/mongod -f /data6/node3/automation-mongod.conf
Reimportar el conjunto de réplicas.
Para administrar nuevamente el conjunto de réplicas con automatización, vuelva a importar el conjunto de réplicas a Ops Manager.
En la página Deployment, haga clic en Add, seleccione Existing MongoDB Deployment y continúe agregando Automation nuevamente a su clúster.