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
/ /

Orientación para las copias de seguridad de Atlas

MongoDB Atlas proporciona copias de seguridad totalmente gestionadas y personalizables para garantizar la retención de datos y la recuperación:

  • Copias de seguridad en la nube: Admite instantáneas completas y almacenamiento localizado de instantáneas mediante las funciones nativas de su proveedor de nube. Estas instantáneas son siempre incrementales para lograr restauraciones rápidas y de bajo costo. Usted elige una política de copias de seguridad que especifique la frecuencia y el periodo de retención de las instantáneas por hora, día, semana, mes y año.

  • Copias de Seguridad Continuas en la Nube: Potencian las copias de seguridad estándar en la nube al ofrecer recuperación en punto en el tiempo (PIT). Esta funcionalidad aditiva almacena snapshots junto con el oplog del clúster para capturar los cambios de datos entre los snapshots, permitiéndote recuperar tus datos exactamente en el momento (un punto en el tiempo) justo antes de cualquier fallo o evento. Esto admite objetivos de punto de recuperación (RPO) de hasta 1 minuto.

No recomendamos habilitar copias de seguridad para los entornos de desarrollo y prueba. Para entornos de preparación y producción, recomendamos desarrollar plantillas de implementación automatizadas que incluyan las recomendaciones de políticas de copia de seguridad descritas en esta página.

Atlas proporciona copia de seguridad totalmente gestionada de tus datos, incluyendo recuperación en un punto de datos y snapshots coherentes y a nivel de clúster de todos los clústeres, incluidos los clústeres fragmentados. En Atlas, puede elegir entre cinco frecuencias de snapshots, cada una con un periodo de retención propio: cada hora, día, semana, mes y año.

copias de seguridad en la nube

Esta funcionalidad proporciona almacenamiento de copia de seguridad localizado mediante la funcionalidad de snapshot nativa del proveedor de servicios en la nube de tu clúster. Los beneficios incluyen un sólido cronograma de retención de copias de seguridad por defecto de 12 meses, plena flexibilidad para personalizar los snapshots y los cronogramas de retención, así como la capacidad de establecer diferentes frecuencias de snapshots (como cada hora para recuperación, semanal o mensual para retención a largo plazo) para cumplir con las regulaciones industriales. You can access your datos de copia de seguridad instantly, which is useful for auditing, cumplimiento, or data recovery purposes.

Copias de seguridad continuas en la nube

Esta función se puede habilitar sobre las copias de seguridad en la nube para proporcionar recuperación a un punto en el tiempo (PIT). Las copias de seguridad continuas en la nube almacenan instantáneas junto con el registro de operaciones del clúster en una ventana de restauración a un punto en el tiempo (PITr) personalizable. Esto permite restaurar a la última instantánea y luego reproducir todas las operaciones desde su captura. Esto permite recuperar los datos al momento exacto (un punto en el tiempo) justo antes de cualquier fallo o pérdida de datos, como un ciberataque.

Distribución de snapshot multirregional

Esta función permite aumentar la resiliencia distribuyendo copias de instantáneas de respaldo y registros de operaciones entre regiones geográficas, además de la región principal predeterminada. Esta configuración cumple con los requisitos de cumplimiento normativo para almacenar copias de seguridad en diferentes ubicaciones geográficas y garantizar la recuperación ante desastres en caso de interrupciones regionales.

Para aprender más, Distribución de snapshot.

Política de cumplimiento de copias de seguridad

Esta funcionalidad protege aún más los datos críticos del negocio al evitar que todas las instantáneas y registros de operaciones almacenados en Atlas sean modificados o borrados, garantizando que tus copias de seguridad cumplan totalmente con la normativa WORM (guardar una vez, leer muchas veces). Solo un usuario designado y autorizado puede desactivar esta protección después de completar un proceso de verificación con el soporte de MongoDB. Existe un período de enfriamiento obligatorio para desactivar esta funcionalidad, de modo que un atacante no pueda cambiar la política de copia de seguridad y exportar los datos.

Para obtener más información, consulte Configurar una política de cumplimiento de copias de seguridad.

Debe alinear su estrategia de copia de seguridad con Objetivos de Punto de Recuperación (RPO) específicos y Objetivos de Tiempo de Recuperación (RTO) para cumplir con los requisitos de continuidad del negocio, especialmente para aplicaciones críticas donde se requiera RPO y tiempos rápidos de recuperación son cruciales. RPO define la cantidad máxima de pérdida de datos aceptable durante una falla o interrupción, mientras que RTO define el tiempo máximo que toma para que tu clúster o servicio se recupere. Debe calcular sus estándares para RPO y RTO basándose en la criticidad de su aplicación. Por ejemplo, los datos críticos para la misión generalmente requieren un RPO más bajo que el análisis de clickstream.

La naturaleza de su escenario de desastre y su método de recuperación afectan sus RPO y RTO alcanzables. La arquitectura de alta disponibilidad predeterminada de MongoDB admite la conmutación por error automática para recuperarse de interrupciones temporales del proveedor de nube con un RTO y RPO prácticamente nulos, según el alcance de la interrupción y el paradigma de implementación elegido. Para obtener más información sobre las configuraciones de implementación que admiten la conmutación por error automática, consulte Orientación para la alta disponibilidad en Atlas.

Para escenarios de desastres que requieren restauración desde una copia de seguridad, como un error de código que corrompe toda la base de datos o una eliminación accidental de clústeres, el RTO y el RPO de tu implementación dependen de lo siguiente:

  • ElRPO depende del intervalo de instantáneas definido en su política de copias de seguridad. Cuando las copias de seguridad continuas en la nube están deshabilitadas, su RPO se corresponde directamente con el tiempo transcurrido entre instantáneas. Si toma instantáneas de copia de seguridad cada cuatro horas, por ejemplo, podría perder hasta cuatro horas de datos durante un fallo. Si habilita las copias de seguridad continuas en la nube, podrá realizar restauraciones PIT que garantizan un RPO de tan solo un minuto dentro de su ventana PITr personalizable.

  • ElRTO depende del tamaño de la copia de seguridad y de la eficiencia de la operación de restauración. Los conjuntos de réplicas (y fragmentos) grandes tardan más en restaurarse. Para acelerar las restauraciones, Atlas realiza automáticamente restauraciones de conexión directa optimizadas para clústeres ubicados en el mismo proyecto y las mismas regiones donde se almacenan las copias instantáneas.

    Si no hay una instantánea local disponible, o si el clúster usa almacenamiento NVMe en lugar del almacenamiento general estándar o de CPU baja, Atlas utiliza de manera predeterminada restauraciones de transmisión más lentas.

    Además, si habilitas las Copias de seguridad continuas en la nube, Atlas debe reproducir las operaciones después de restaurar la última snapshot para completar una restauración PIT. Cuanto menos tiempo pase entre snapshots, menos operaciones deberán reproducirse. Por lo tanto, puede reducir su RTO priorizando restauraciones óptimas y requiriendo instantáneas más frecuentes en su política de copias de seguridad.

Para garantizar una estrategia de copias de seguridad integral, recomendamos usar la siguiente política de copias de seguridad predeterminada como punto de partida. Adapte esta política a las necesidades de retención de datos y recuperación ante desastres de su empresa.

Tipo de póliza
Nivel
Copia de seguridad continua en la cloud
Instantánea tomada
Instantánea retenida

Por hora

NVMe

Activado

Cada 12 horas

7 días

Por hora

non-NVMe

Activado

Cada 6 horas

7 días

Diario

Todo

Cualquiera de los dos

Cada día

7 días

Semanal

Todo

Cualquiera de los dos

Todos los sábados

4 semanas

Mensual

Todo

Cualquiera de los dos

Último día del mes

12 meses

Anual

Todo

Cualquiera de los dos

Cada 1 de diciembre

1 año

Tip

Para mejorar aún más la resiliencia en una implementación de una sola región, recomendamos configurar Atlas para que copie snapshots de la región principal a una región de copia de seguridad secundaria. De esta manera, podrá restaurar versiones anteriores incluso si la región principal deja de funcionar. Para obtener más información, consulta Distribución de snapshot.

Recomendamos aplicar la Política de cumplimiento de copias de seguridad de Atlas para evitar modificaciones o eliminaciones no autorizadas de copias de seguridad, garantizando así la protección de datos y una recuperación ante desastres sólida.

Las copias de seguridad continuas en la nube permiten una recuperación precisa a un punto en el tiempo (PIT), lo que minimiza la pérdida de datos durante fallos. Atlas puede recuperarse rápidamente a la marca de tiempo exacta antes de un fallo, garantizando un RPO de al menos un minuto. Esto se debe a que Atlas restaura la instantánea más reciente anterior al punto en el tiempo deseado y luego reproduce los cambios del registro de operaciones para restaurar a ese punto específico. Los tiempos de recuperación pueden variar según el calentamiento del disco del proveedor de la nube y la cantidad de registro de operaciones que se debe reproducir durante la recuperación. El rendimiento de su clúster podría ser lento hasta que se complete el calentamiento del disco del proveedor de la nube después de una restauración. Si puede ser flexible con sus requisitos de recuperación, le recomendamos diseñar plantillas que identifiquen la mejor relación calidad-precio.

Para optimizar los costos de copia de seguridad de Atlas, puedes ajustar la frecuencia de las copias de seguridad y las políticas de retención para alinearlas con la criticidad de los datos y reducir los gastos de almacenamiento innecesarios. Por ejemplo, recomendamos desactivar las copias de seguridad en entornos inferiores, como clústeres de desarrollo o de prueba donde la recuperación de datos no es crítica. Para los entornos superiores, recomendamos equilibrar los costos de transferencia de datos entre regiones con los requisitos de alta disponibilidad al distribuir snapshots de copia de seguridad entre regiones.

Los siguientes ejemplos habilitan operaciones de copia de seguridad y restauración mediante Atlas herramientas para automatización.

Estos ejemplos solo se aplican a entornos de staging y producción donde se ha habilitado copia de seguridad para el clúster.

Ejecuta el siguiente comando para tomar una snapshot de copia de seguridad del clúster denominado myDemo y conservar la snapshot durante 7 días:

atlas backups snapshots create myDemo --desc "my backup snapshot" --retention 7

Habilite la política de cumplimiento de copias de seguridad para su proyecto con un usuario autorizado designado (governance@example.org) quien solo puede desactivar esta protección después de completar un proceso de verificación con el soporte de MongoDB.

atlas backups compliancePolicy enable \
--projectId 67212db237c5766221eb6ad9 \
--authorizedEmail governance@example.org \
--authorizedUserFirstName john \
--authorizedUserLastName doe

Ejecuta el siguiente comando para crear una política de cumplimiento para las instantáneas de copia de seguridad programadas que aplica el número de veces que se deben tomar las instantáneas, establecido en cada 6 horas, y la duración para retener las instantáneas, establecida en 1 meses.

atlas backups compliancePolicy policies scheduled create \
--projectId 67212db237c5766221eb6ad9 \
--frequencyInterval 6 \
--frequencyType hourly \
--retentionValue 1 \
--retentionUnit months

Los siguientes ejemplos demuestran cómo configurar copias de seguridad durante la implementación. Antes de que puedas crear recursos con Terraform, debes:

Importante

Los siguientes ejemplos utilizan MongoDB Atlas Terraform proveedor versión 2.x (~> 2.2). Si estás actualizando desde la versión 1.x del proveedor, consulta la 2.0.0 Guía de actualización para cambios disruptivos y pasos de migración. Los ejemplos utilizan el recurso mongodbatlas_advanced_cluster con la versión v2.x sintaxis.

Debe crear los siguientes archivos para cada ejemplo. Coloque los archivos de cada ejemplo en su propio directorio. Cambie los ID y los nombres para usar sus valores. A continuación, ejecute los comandos para inicializar Terraform, ver el plan de Terraform y aplicar los cambios.

variable "org_id" {
description = "Atlas organization ID"
type = string
}
variable "project_name" {
description = "Atlas project name"
type = string
}
variable "cluster_name" {
description = "Atlas Cluster Name"
type = string
}
variable "point_in_time_utc_seconds" {
description = "PIT in UTC"
default = 0
type = number
}

Utilice lo siguiente para configurar una programación de copias de seguridad para el clúster con la siguiente frecuencia y retención de instantáneas:

  • Cada hora: cada 12 horas, conservar durante 7 días

  • Diario: una vez al día, retener durante 7 días

  • Semanal: sábado, conservar durante 4 semanas

  • Mensual: Último día del mes, conservar durante 3 meses

locals {
atlas_clusters = {
"cluster_1" = { name = "m10-aws-1e", region = "US_EAST_1" },
"cluster_2" = { name = "m10-aws-2e", region = "US_EAST_2" },
}
}
resource "mongodbatlas_project" "atlas-project" {
org_id = var.org_id
name = var.project_name
}
resource "mongodbatlas_advanced_cluster" "automated_backup_test_cluster" {
for_each = local.atlas_clusters
project_id = mongodbatlas_project.atlas-project.id
name = each.value.name
cluster_type = "REPLICASET"
replication_specs = [
{
region_configs = [
{
electable_specs = {
instance_size = "M10"
node_count = 3
}
analytics_specs = {
instance_size = "M10"
node_count = 1
}
provider_name = "AWS"
region_name = each.value.region
priority = 7
}
]
}
]
backup_enabled = true # enable cloud backup snapshots
pit_enabled = true
}
resource "mongodbatlas_cloud_backup_schedule" "test" {
for_each = local.atlas_clusters
project_id = mongodbatlas_project.atlas-project.id
cluster_name = mongodbatlas_advanced_cluster.automated_backup_test_cluster[each.key].name
reference_hour_of_day = 3 # backup start hour in UTC
reference_minute_of_hour = 45 # backup start minute in UTC
restore_window_days = 7 # Restore window for near-zero RPO
copy_settings {
cloud_provider = "AWS"
frequencies = ["HOURLY",
"DAILY",
"WEEKLY",
"MONTHLY",
"YEARLY",
"ON_DEMAND"]
region_name = "US_WEST_1"
zone_id = mongodbatlas_advanced_cluster.automated_backup_test_cluster[each.key].replication_specs.*.zone_id[0]
should_copy_oplogs = true
}
policy_item_hourly {
frequency_interval = 12 # backup every 12 hours, accepted values = 1, 2, 4, 6, 8, 12 -> every n hours
retention_unit = "days"
retention_value = 7 # retain for 7 days
}
policy_item_daily {
frequency_interval = 1 # backup every day, accepted values = 1 -> every 1 day
retention_unit = "days"
retention_value = 7 # retain for 7 days
}
policy_item_weekly {
frequency_interval = 7 # every Sunday, accepted values = 1 to 7 -> every 1=Monday,2=Tuesday,3=Wednesday,4=Thursday,5=Friday,6=Saturday,7=Sunday day of the week
retention_unit = "weeks"
retention_value = 4 # retain for 4 weeks
}
policy_item_monthly {
frequency_interval = 28 # accepted values = 1 to 28 -> 1 to 28 every nth day of the month
retention_unit = "months"
retention_value = 3 # retain for 3 months
}
depends_on = [
mongodbatlas_advanced_cluster.automated_backup_test_cluster
]
}

Utilice lo siguiente para configurar las copias de seguridad en la nube snapshot y la tarea de restauración de PIT.

# Create a project
resource "mongodbatlas_project" "project_test" {
name = var.project_name
org_id = var.org_id
}
# Create a cluster with 3 nodes
resource "mongodbatlas_advanced_cluster" "cluster_test" {
project_id = mongodbatlas_project.project_test.id
name = var.cluster_name
cluster_type = "REPLICASET"
backup_enabled = true # enable cloud provider snapshots
pit_enabled = true
retain_backups_enabled = true # keep the backup snapshopts once the cluster is deleted
replication_specs = [
{
region_configs = [
{
priority = 7
provider_name = "AWS"
region_name = "US_EAST_1"
electable_specs = {
instance_size = "M10"
node_count = 3
}
}
]
}
]
}
# Specify number of days to retain backup snapshots
resource "mongodbatlas_cloud_backup_snapshot" "test" {
project_id = mongodbatlas_advanced_cluster.cluster_test.project_id
cluster_name = mongodbatlas_advanced_cluster.cluster_test.name
description = "My description"
retention_in_days = "1"
}
# Specify the snapshot ID to use to restore
resource "mongodbatlas_cloud_backup_snapshot_restore_job" "test" {
count = (var.point_in_time_utc_seconds == 0 ? 0 : 1)
project_id = mongodbatlas_cloud_backup_snapshot.test.project_id
cluster_name = mongodbatlas_cloud_backup_snapshot.test.cluster_name
snapshot_id = mongodbatlas_cloud_backup_snapshot.test.id
delivery_type_config {
point_in_time = true
target_cluster_name = mongodbatlas_advanced_cluster.cluster_test.name
target_project_id = mongodbatlas_advanced_cluster.cluster_test.project_id
point_in_time_utc_seconds = var.point_in_time_utc_seconds
}
}

Volver

Alta disponibilidad