Descripción general de las copias de seguridad

En este documento se ofrece una descripción general de las copias de seguridad y las programaciones de copias de seguridad de Spanner.

Spanner te permite crear copias de seguridad completas de bases de datos bajo demanda, así como copias de seguridad completas o incrementales mediante una programación de copias de seguridad. Las copias de seguridad completas almacenan todos los datos de una base de datos, mientras que las incrementales solo contienen los datos que han cambiado desde una copia de seguridad anterior.

Puedes restaurar las copias de seguridad cuando se produzcan errores del operador o de la aplicación que provoquen daños lógicos en los datos.

Las copias de seguridad tienen una alta disponibilidad, están cifradas y se pueden conservar durante un máximo de un año desde el momento en que se crean. Cuando creas una copia de seguridad, esta se encuentra en la misma instancia, región y proyecto que su base de datos de origen. Si necesitas restaurar la copia de seguridad en otra región u otro proyecto por motivos de cumplimiento o continuidad del negocio, puedes copiarla en una instancia de otra región u otro proyecto.

Cada copia de seguridad tiene un createTime y un versionTime asociados. El createTime es la marca de tiempo en la que Spanner empieza a crear la copia de seguridad. El versionTime es la marca de tiempo en la que se capturan los contenidos de la base de datos en la copia de seguridad. La copia de seguridad contiene una vista coherente de la base de datos en el momento versionTime.

En el caso de las copias de seguridad bajo demanda, createTime y versionTime son iguales de forma predeterminada. Si es necesario, puedes especificar una versionTime anterior al crear una copia de seguridad bajo demanda si está dentro del periodo de conservación de versiones de la base de datos.

En el caso de las copias de seguridad programadas, versionTime es la hora que elijas al crear la programación de copias de seguridad. Spanner empieza a crear la copia de seguridad en un plazo de cuatro horas desde la versionTime, por lo que la createTime se encuentra dentro de este periodo de cuatro horas. A diferencia de las copias de seguridad bajo demanda, Spanner empieza a crear la copia de seguridad cuando recibe la solicitud.

Por ejemplo, supongamos que crea una programación de copias de seguridad con una frecuencia de 0 7 * * * UTC o todos los días a las 7:00 (UTC). Esto significa que, en cada copia de seguridad, la versionTime se establece a las 7:00 (UTC) y la createTime es una marca de tiempo dentro del periodo de cuatro horas comprendido entre las 7:00 (UTC) y las 11:00 (UTC).

Para obtener más información sobre cómo usar createTime y versionTime con la API, consulta la referencia de la API Backup.

Características principales

  • Coherencia de los datos: las copias de seguridad de una base de datos de Spanner son coherentes desde el punto de vista transaccional y externo en el versionTime de la copia de seguridad.

  • Replicación: las copias de seguridad se encuentran en la misma instancia que su base de datos de origen y se replican en las mismas ubicaciones geográficas. En el caso de las instancias regionales, la copia de seguridad se almacena en cada una de las tres zonas de lectura y escritura. En el caso de las instancias birregionales y multirregionales, la copia de seguridad se almacena en todas las zonas que contengan una réplica de lectura y escritura o de solo lectura. Si necesitas almacenar la copia de seguridad de tu base de datos en otra región u otro proyecto, puedes copiar la copia de seguridad completada de la instancia de origen a una instancia de destino ubicada en otra región u otro proyecto. Para obtener más información, consulta cómo copiar una copia de seguridad.

  • Vencimiento automático: todas las copias de seguridad tienen una fecha de vencimiento especificada por el usuario, que determina cuándo se eliminan automáticamente. Spanner elimina las copias de seguridad caducadas de forma asíncrona, por lo que puede haber un retraso entre el momento en que caduca una copia de seguridad y el momento en que se elimina.

Creación de copias de seguridad

Cuando creas una copia de seguridad, esta se encuentra en la misma instancia, región y proyecto que su base de datos de origen.

Una copia de seguridad contiene la siguiente información de la base de datos en el versionTime de la copia de seguridad:

  • Una copia de seguridad completa contiene todos los datos. Una copia de seguridad incremental solo contiene los datos que han cambiado desde una copia de seguridad anterior.
  • Información del esquema, incluidos los nombres de las tablas, los campos, los tipos de datos, los índices secundarios, los flujos de cambios y las relaciones entre estas entidades.
  • Todas las opciones de la base de datos que se hayan definido con el comando ALTER DATABASE SET OPTIONS.

Una copia de seguridad de Spanner no incluye la siguiente información:

  • Cualquier modificación de los datos o del esquema después del versionTime.
  • Políticas de gestión de identidades y accesos (IAM).
  • Registros de datos de flujo de cambios. Aunque el esquema de los flujos de cambios se almacena, los datos de los flujos de cambios se deben transmitir y consumir casi simultáneamente con los cambios que describen.

Para ayudar a garantizar la coherencia externa de la copia de seguridad, Spanner fija el contenido de la base de datos en versionTime. De esta forma, se evita que el sistema de recogida de elementos no utilizados elimine los valores de datos pertinentes durante la operación de copia de seguridad. A continuación, cada zona de lectura y escritura y de solo lectura de la instancia empieza a copiar los datos en paralelo. Si alguna zona no está disponible temporalmente, la copia de seguridad no se completará hasta que la zona vuelva a estar online. Las copias de seguridad se pueden restaurar en cuanto se complete la operación. En las instancias multirregión, todas las zonas de lectura y escritura y de solo lectura de todas las regiones deben completar sus réplicas de la copia de seguridad para que esta se marque como restaurable.

Frecuencias de las copias de seguridad

Spanner te permite programar copias de seguridad completas o incrementales de bases de datos. Una copia de seguridad incremental solo contiene los datos que han cambiado desde una copia de seguridad anterior, mientras que las copias de seguridad completas almacenan todo el contenido de la base de datos. Puede especificar el tipo de programación de copias de seguridad (completa o incremental) y la frecuencia con la que Spanner debe crear copias de seguridad.

Una programación de copias de seguridad completas puede crear una copia de seguridad cada 12 horas o más. Una programación de copias de seguridad incrementales puede crear una copia de seguridad cada 4 horas o más.

Spanner ofrece copias de seguridad incrementales de tu base de datos mediante una programación de copias de seguridad. No puedes crear una copia de seguridad incremental bajo demanda.

La creación de la copia de seguridad comienza en un plazo de cuatro horas a partir de la hora programada. Puedes tener un máximo de cuatro programaciones de copias de seguridad por base de datos.

Copias de seguridad incrementales

Las copias de seguridad incrementales forman cadenas entre copias de seguridad completas. La primera copia de seguridad creada por una programación de copias de seguridad incrementales es una copia de seguridad completa. Las copias de seguridad consecutivas que se crean en la cadena son incrementales, y cada una de ellas contiene solo los datos que han cambiado desde la copia de seguridad anterior de la cadena.

Spanner permite hasta 13 copias de seguridad incrementales por cadena, además de la copia de seguridad completa inicial. Una cadena se identifica por el valor incrementalBackupChainId correspondiente. Cuando una cadena alcanza su longitud máxima, Spanner crea una nueva cadena que empieza con la copia de seguridad completa inicial.

En algunos casos, Spanner puede crear una cadena antes de que se alcance la longitud máxima de la cadena. A continuación, se indican algunas de las situaciones que pueden darse:

  • La copia de seguridad completa más antigua se hizo hace 28 días o más.
  • Se elimina la copia de seguridad más reciente de la cadena.
  • Se modifica la programación de copias de seguridad incrementales.

Estos son algunos factores que pueden ayudarte a decidir si quieres usar copias de seguridad incrementales:

  • Cifrado: las copias de seguridad incrementales solo admiten el cifrado conGoogle-owned and Google-managed encryption keys , aunque la base de datos esté cifrada con una clave de cifrado gestionada por el cliente (CMEK).

  • Restauración: restaurar una copia de seguridad incremental puede llevar más tiempo que restaurar una copia de seguridad completa que contenga los mismos datos.

  • Eliminación: si eliminas una copia de seguridad de una cadena o esta caduca, es posible que Spanner la conserve para admitir copias de seguridad más recientes de la cadena, si las hay. Spanner necesita todas las copias de seguridad anteriores de la cadena para restaurar una copia de seguridad incremental. Para eliminar todos los datos de una cadena de copias de seguridad, incluidos los de las copias de seguridad caducadas o eliminadas, elimina todas las copias de seguridad de la cadena.

  • Retención: cada programación de copias de seguridad tiene los siguientes términos que ofrecen información sobre la programación:

    • creation_interval: representa la frecuencia de programación especificada para la programación de copias de seguridad.
    • retention_duration: representa el tiempo durante el que se conservan las copias de seguridad creadas por la programación. En una cadena determinada, la copia de seguridad completa más antigua se conserva después de su fecha de vencimiento original si es necesaria para admitir copias de seguridad más recientes de la cadena. La duración total de la conservación de la copia de seguridad completa es, como máximo, el menor de los siguientes valores:
      • retention_duration + 28 días
      • retention_duration + (creation_interval*14)
  • Copia de seguridad: cuando copias una copia de seguridad incremental, Spanner también copia todas las copias de seguridad anteriores de la cadena necesarias para restaurar la copia de seguridad. Si la instancia de destino ya contiene una cadena de copias de seguridad que termina con una copia de seguridad anterior que se copió de la misma cadena de origen, Spanner evita crear copias redundantes de las copias de seguridad. En su lugar, Spanner solo copia la copia de seguridad incremental y las copias de seguridad anteriores que no estén presentes en la cadena de destino, y añade estas copias de seguridad a la cadena. Spanner te cobra en función del almacenamiento total utilizado.

    Por ejemplo, si configura una programación de copias de seguridad incrementales diarias y copia la copia de seguridad más reciente cada día, la instancia de destino mantendrá una cadena de copias de seguridad que refleje la cadena de origen. Spanner no duplica las copias de seguridad copiadas anteriormente en la cadena durante las operaciones de copia posteriores.

    Aunque Spanner intenta evitar copias redundantes, en raras ocasiones, es posible que Spanner tenga que copiar todas las copias de seguridad anteriores de la cadena, aunque ya existan copias de seguridad copiadas previamente en la instancia de destino.

Para obtener más información sobre cómo crear copias de seguridad incrementales, consulta Crear y gestionar programaciones de copias de seguridad.

Frecuencias de copia de seguridad predeterminadas

Cuando creas una instancia de Spanner, puedes especificar si quieres que Spanner cree una programación de copias de seguridad predeterminada para cada base de datos nueva de la instancia. La programación de copias de seguridad predeterminada crea una copia de seguridad completa cada 24 horas. Estas copias de seguridad tienen un periodo de conservación de 7 días. Puedes editar o eliminar la programación de copias de seguridad predeterminada una vez que se haya creado.

Las programaciones de copias de seguridad predeterminadas se habilitan automáticamente en todas las instancias nuevas. Puedes habilitar o inhabilitar las programaciones de copias de seguridad predeterminadas en una instancia al crearla o editándola más adelante.

Puedes habilitar programaciones de copias de seguridad predeterminadas para las instancias que ya tengas. Sin embargo, las programaciones de copias de seguridad predeterminadas no se aplican a las bases de datos que ya haya en la instancia. Las programaciones de copias de seguridad predeterminadas solo se aplican a las bases de datos nuevas de la instancia.

La programación de copias de seguridad predeterminada tarda 24 horas en activarse y empezar a crear copias de seguridad.

Debes eliminar todas las copias de seguridad de una instancia antes de eliminarla. Si creas y eliminas instancias con fines de prueba, puedes eliminar la nueva instancia en un plazo de 24 horas para no tener que eliminar manualmente sus copias de seguridad.

Para obtener instrucciones sobre cómo habilitar o inhabilitar las programaciones de copias de seguridad predeterminadas, consulta Editar el tipo de programación de copias de seguridad predeterminado.

Costes de almacenamiento de copias de seguridad completas e incrementales

Cada copia de seguridad de Spanner tiene los siguientes campos que ofrecen información sobre el consumo de almacenamiento:

  • exclusiveSizeBytes: muestra el número de bytes que necesita la copia de seguridad. Este tamaño representa el tamaño facturable de la copia de seguridad.
  • freeableSizeBytes: muestra el número de bytes que se liberarán si eliminas la copia de seguridad.
  • oldestVersionTime: muestra la versionTime de la copia de seguridad completa más antigua de la cadena, aunque haya caducado. Puedes usar este campo para saber qué datos se están almacenando.

Las copias de seguridad incrementales pueden ayudarte a ahorrar costes de almacenamiento. Una copia de seguridad incremental puede tener un campo exclusiveSizeBytes mucho más pequeño que una copia de seguridad completa, ya que solo necesita almacenar los cambios realizados desde la copia de seguridad anterior de la cadena. Si se añade este valor de campo a cada copia de seguridad de la cadena, se refleja el número total de bytes utilizados por las copias de seguridad de la cadena.

Para restaurar una copia de seguridad incremental, se necesitan todas las copias de seguridad anteriores de la misma cadena. Esto significa que, si existe una copia de seguridad incremental más reciente, los datos de todas las copias de seguridad anteriores de la cadena no se pueden eliminar del sistema y el campo freeableSizeBytes de todas las copias de seguridad anteriores de la misma cadena es cero.

Supongamos que has creado una programación de copia de seguridad completa y una programación de copia de seguridad incremental para una base de datos que tiene un tamaño de 100 GB y aumenta 10 GB cada día. En la siguiente tabla se muestran los posibles costes de almacenamiento de estas programaciones de copias de seguridad:

Día Tamaño de la copia de seguridad programada completa Tamaño de la copia de seguridad programada incremental
1 100 GB 100 GB
2 110 GB 10 GB
3 120 GB 10 GB
4 130 GB 10 GB
5 140 GB 10 GB

En un periodo de 5 días, la programación de copias de seguridad completas utiliza 600 GB de almacenamiento, mientras que la programación de copias de seguridad incrementales utiliza unos 140 GB de almacenamiento. En el caso de una programación de copias de seguridad incrementales, el tamaño de la copia de seguridad completa es la suma de los tamaños de todas las copias de seguridad de la cadena hasta esa copia de seguridad y se refleja en el campo sizeBytes.

Comparación del almacenamiento de copias de seguridad con el almacenamiento de bases de datos

El tamaño de almacenamiento de una copia de seguridad puede ser inferior o superior al de la base de datos de origen en el momento en que se creó la copia de seguridad.

El almacenamiento de una copia de seguridad puede ser menor que el de la base de datos, ya que la copia de seguridad solo contiene una versión de los datos, mientras que la base de datos activa puede contener varias versiones de los datos debido a las operaciones en curso. Las diferencias en el formato de los datos y en la compresión también pueden dar lugar a un tamaño de copia de seguridad menor.

Por el contrario, el almacenamiento de una copia de seguridad puede ser mayor que el de la base de datos, en función de la situación de la base de datos y del momento en que se cree la copia de seguridad.

Por motivos similares, cuando restauras una base de datos a partir de una copia de seguridad, el almacenamiento de la copia de seguridad puede ser mayor que el de la base de datos. Esto puede ocurrir si se ha eliminado y compactado un gran conjunto de datos después de crear la copia de seguridad. Por lo tanto, el tamaño de la copia de seguridad depende de cuándo se haya creado y de las operaciones posteriores que se hayan realizado en la base de datos.

No hay ninguna fórmula para predecir la proporción exacta del tamaño de una copia de seguridad en relación con la base de datos activa. En el caso de una base de datos con una alta tasa de escritura (una base de datos activa), es probable que la copia de seguridad sea más pequeña que la base de datos activa. Sin embargo, en algunas situaciones poco frecuentes, el tamaño de la copia de seguridad puede ser mayor.

Cómo funciona la copia de seguridad

Spanner te permite copiar una copia de seguridad de tu base de datos de Spanner de una instancia a otra en otra región u otro proyecto para ofrecer más protección de datos y funciones de cumplimiento.

No puedes copiar una copia de seguridad si la región de destino o de origen Google Cloud no funciona. Para proteger tus datos en caso de que haya una interrupción en una región, debes copiar periódicamente tus copias de seguridad en una ubicación fuera de la región afectada.

La copia de seguridad tiene las mismas características principales que la copia de seguridad original. Además, puedes restaurar una copia de seguridad en la misma instancia que la copia de seguridad para admitir casos prácticos de copias de seguridad y restauraciones entre regiones y entre proyectos.

Dónde se almacenan las copias de seguridad de Spanner

Las copias de seguridad son recursos de Spanner. Cada recurso de copia de seguridad se organiza en la misma instancia que su base de datos de origen en la jerarquía de recursos y tiene una ruta de recurso con el siguiente formato:

projects/PROJECT_ID/instances/INSTANCE_ID/backups/BACKUP_NAME

Haz los cambios siguientes:

  • PROJECT_ID: el ID del proyecto.
  • INSTANCE_ID: el ID de instancia.
  • BACKUP_NAME: nombre de la copia de seguridad.

Una copia de seguridad sigue existiendo incluso después de que se haya eliminado su base de datos de origen, pero no puede durar más que su instancia principal. Para evitar que se eliminen copias de seguridad por error, no puedes eliminar una instancia de Spanner si tiene copias de seguridad. Si quieres eliminar la instancia, te recomendamos que restaures la copia de seguridad y, a continuación, exportes la base de datos restaurada antes de eliminar la copia de seguridad y la instancia.

Cifrado

Las copias de seguridad de Spanner, al igual que las bases de datos, se cifran con el cifrado predeterminado de GoogleGoogle-owned and Google-managed encryption keys o con claves de cifrado gestionadas por el cliente (CMEK). De forma predeterminada, una copia de seguridad utiliza la misma configuración de cifrado que su base de datos, pero puedes anular este comportamiento especificando otra configuración de cifrado al crear la copia de seguridad. Si la copia de seguridad tiene habilitada la CMEK, se cifra con la versión principal de la clave de KMS en el momento de la creación de la copia de seguridad. Una vez creada la copia de seguridad, no se pueden modificar su clave ni su versión de clave, aunque se rote la clave de KMS. Para obtener más información, consulta Crear una copia de seguridad con CMEK.

Una copia de seguridad utiliza la misma configuración de cifrado, ya seanGoogle-owned and Google-managed encryption keys o claves de cifrado gestionadas por el cliente (CMEK), que el cifrado de la copia de seguridad de origen. Puedes anular este comportamiento especificando una configuración de cifrado diferente al copiar la copia de seguridad. Si quieres que la copia de seguridad se cifre con CMEK al copiarla entre regiones, especifica la clave de Cloud KMS correspondiente a la región de destino.

Puede especificar la configuración del cifrado al crear o modificar la programación de la copia de seguridad. Si quieres que la programación de copias de seguridad cree copias de seguridad cifradas con claves CMEK, debes especificar la ruta de la clave.

Las copias de seguridad incrementales solo admiten el cifrado conGoogle-owned and Google-managed encryption keys, aunque la base de datos esté cifrada con una clave CMEK.

Rendimiento

En esta sección se describe el rendimiento óptimo de las copias de seguridad en Spanner.

Rendimiento al crear copias de seguridad

Cuando se realiza una copia de seguridad, Spanner crea una tarea de copia de seguridad para copiar los datos directamente de la base de datos al almacenamiento de copias de seguridad y dimensiona esta tarea en función del tamaño de la base de datos. Este trabajo de copia de seguridad no usa los recursos de CPU asignados a la instancia de la base de datos, por lo que no afecta al rendimiento de la instancia. Además, la carga computacional de la instancia de la base de datos no afecta a la velocidad de la operación de copia de seguridad. Para monitorizar el progreso y la finalización de una operación de copia de seguridad, consulta Mostrar el progreso de la copia de seguridad.

Por lo general, la mayoría de las copias de seguridad tardan entre 1 y 4 horas. Es posible que algunas copias de seguridad tarden más en completarse debido a su tamaño o porque hay una cola interna de recursos. Si una copia de seguridad tarda más de lo habitual y no ha cambiado ningún otro factor, puede deberse a un retraso en la programación de la tarea de copia de seguridad en una zona. Este proceso puede tardar hasta 30 minutos. Te recomendamos que no canceles ni reinicies la copia de seguridad, ya que es probable que se produzca el mismo retraso en la programación con la nueva operación.

Rendimiento al copiar una copia de seguridad

El tiempo que se tarda en copiar una copia de seguridad depende de factores como el tamaño de la copia de seguridad de origen y la región de destino elegida para la copia. Por lo general, la mayoría de las copias se completan en un plazo de entre 1 y 4 horas. Algunas copias pueden tardar más en función del tamaño de la copia de seguridad y de la región de destino. Copiar una copia de seguridad no tiene ninguna repercusión en el rendimiento de la instancia o la base de datos de origen. Puedes hacer varias copias simultáneas de la copia de seguridad de origen en instancias de diferentes regiones sin que esto afecte al rendimiento.

Cuando copias una copia de seguridad incremental, Spanner también copia todas las copias de seguridad anteriores de la cadena necesarias para restaurar la copia de seguridad copiada. Para mejorar el rendimiento, Spanner copia todas las copias de seguridad simultáneamente en lugar de hacerlo de forma secuencial. Spanner también intenta evitar copiar las copias de seguridad más antiguas de la misma cadena cuando sea posible. Para obtener más información, consulta Copias de seguridad incrementales.

Eliminar una copia de seguridad

Cuando eliminas una copia de seguridad incremental, es posible que no recuperes espacio de almacenamiento si hay copias de seguridad incrementales más recientes en la misma cadena. Las copias de seguridad incrementales más recientes dependen de los datos presentes en la copia de seguridad incremental eliminada y de las copias de seguridad anteriores de la cadena. Spanner conserva los datos y solo libera el almacenamiento cuando caducan todas las copias de seguridad incrementales más recientes. El campo freeableSizeBytes muestra la cantidad de espacio de almacenamiento que puedes recuperar si eliminas la copia de seguridad.

Precios

Se te factura en función de la cantidad de almacenamiento que usan tus copias de seguridad por unidad de tiempo. La facturación comienza una vez que se ha completado la operación de copia de seguridad y continúa hasta que se elimina la copia de seguridad. Una copia de seguridad completa se cobra durante un mínimo de 24 horas. Si creas una copia de seguridad y la eliminas poco después de que se complete, se te cobrarán 24 horas.

Una copia de una copia de seguridad está sujeta a los mismos costes de almacenamiento que una copia de seguridad original. Si creas una copia entre dos instancias que se encuentran en regiones diferentes, se aplican costes de transferencia de datos de salida.

Por ejemplo, si copias tu base de datos de la configuración de instancia multirregional de origen nam7 a la configuración de instancia multirregional de destino nam-eur-asia3, se aplicarán los siguientes cargos:

  • Sin coste por la región us-central1 superpuesta
  • Sin coste económico para la región us-central2 testigo
  • Los cargos por transferencia de datos intercontinental se aplican dos veces: una por cada continente nuevo (Europa y Asia).
  • El cargo por transferencia de datos entre regiones del mismo continente se aplica una vez por us-east1.
  • El cargo por transferencia de datos entre regiones del mismo continente se aplica una vez en Europa

Spanner optimiza el proceso de copia para minimizar el número de transferencias entre regiones. De esta forma, se minimizan los costes de transferencia de datos y se ofrece una experiencia de copia de seguridad rápida.

Las copias de seguridad se almacenan y se facturan por separado. El almacenamiento de copias de seguridad no afecta a la facturación del almacenamiento de bases de datos ni a los límites de almacenamiento de bases de datos. Para obtener más información, consulta también las métricas de uso del almacenamiento.

Para obtener información más detallada sobre los costes de las copias de seguridad, consulta los precios de Spanner.

Siguientes pasos