Copias de seguridad de Spanner Omni

Spanner Omni te permite crear copias de seguridad completas de las bases de datos a pedido o con un programa de copias de seguridad. Las copias de seguridad almacenan todos los datos de una base de datos. Puedes restablecer las copias de seguridad cuando los errores del operador o de la aplicación causan daños lógicos en los datos.

Descripción general de las copias de seguridad de Spanner Omni

Las copias de seguridad tienen alta disponibilidad y se pueden conservar hasta un año a partir de su momento de creación. Cada copia de seguridad tiene un createTime y un versionTime asociados. createTime es la marca de tiempo en la que Spanner Omni comienza a crear la copia de seguridad. La versionTime es la marca de tiempo en la que la copia de seguridad captura el contenido de la base de datos. La copia de seguridad contiene una vista coherente de la base de datos en el versionTime.

En el caso de las copias de seguridad a pedido, createTime y versionTime son iguales de forma predeterminada. Si es necesario, puedes especificar un versionTime anterior cuando creas una copia de seguridad a pedido si está dentro del período de retención de la versión de la base de datos.

Para las copias de seguridad programadas, la versionTime es la hora que eliges cuando creas la programación de la copia de seguridad. Spanner Omni comienza a crear la copia de seguridad en un plazo de cuatro horas a partir de la versionTime, por lo que la createTime se encuentra dentro de este período de cuatro horas. Esto es diferente de las copias de seguridad a pedido, en las que Spanner Omni comienza a crear la copia de seguridad cuando recibe la solicitud.

Por ejemplo, supongamos que creas un programa de copias de seguridad con una frecuencia de 0 7 * * * UTC (todos los días a las 7:00 a.m. UTC). Esto significa que, para cada copia de seguridad, la versionTime es las 7:00 a.m. UTC y la createTime es una marca de tiempo dentro del período de cuatro horas entre las 7:00 a.m. UTC y las 11:00 a.m. UTC.

Las copias de seguridad de Spanner Omni solo se pueden restablecer en implementaciones de Spanner Omni. No puedes restablecer una copia de seguridad de Spanner administrada en Spanner Omni ni restablecer una copia de seguridad de Spanner Omni en Spanner administrado. Para transferir datos entre Spanner y Spanner Omni, usa flujos de cambios o importa y exporta archivos Avro. Para obtener más información, consulta Replica datos de Spanner a Spanner Omni y Importa y exporta datos.

Características clave

Las copias de seguridad de Spanner Omni proporcionan coherencia de los datos, replicación externa resiliente y vencimiento automatizado.

  • Coherencia de los datos: Las copias de seguridad de una base de datos de Spanner Omni son coherentes de forma transaccional y externa en el versionTime de la copia de seguridad.

  • Replicación: Los archivos de copia de seguridad se almacenan en un sistema de almacenamiento externo, fuera de la implementación de Spanner Omni.

  • Vencimiento automático: Todas las copias de seguridad tienen una fecha de vencimiento especificada por el usuario que determina cuándo se borran. Spanner Omni borra las copias de seguridad vencidas de forma asíncrona, por lo que puede haber un retraso entre el momento en que vence una copia de seguridad y el momento en que se borra.

Almacenamiento externo

El almacenamiento externo representa el almacenamiento remoto que está fuera de la implementación de Spanner Omni. Puedes configurar Amazon Simple Storage Service (Amazon S3), Cloud Storage o cualquier almacenamiento compatible con Amazon S3 como almacenamiento externo. Spanner Omni almacena los archivos de copia de seguridad en este almacenamiento externo.

Administración de almacenamiento externo

Administra el almacenamiento externo creando, borrando y enumerando ubicaciones de almacenamiento para tus copias de seguridad.

Crea un almacenamiento externo

Para crear un almacenamiento externo de Amazon S3, ejecuta el siguiente comando:

spanner external-storages create EXTERNAL_STORAGE_ID \
  --s3-bucket-name=BUCKET_NAME \
  --s3-region=AWS_REGION \
  --s3-assume-role-arn=ASSUME_ROLE_ARN

Crea un almacenamiento externo de Cloud Storage

Antes de configurar el almacenamiento externo de Cloud Storage, asegúrate de tener los siguientes elementos:

Para registrar tu bucket de Cloud Storage como almacenamiento externo, ejecuta este comando:

spanner external-storages create EXTERNAL_STORAGE_ID \
  --gcs-bucket-name=BUCKET_NAME

Reemplaza lo siguiente:

  • EXTERNAL_STORAGE_ID: Es un identificador único para la configuración del almacenamiento externo, por ejemplo, gcp-gcs-backup-target.
  • BUCKET_NAME: Es el nombre de tu bucket de Cloud Storage de destino.

Crea un almacenamiento externo compatible con Amazon S3

Para crear un almacenamiento externo compatible con Amazon S3, ejecuta el siguiente comando:

spanner external-storages create EXTERNAL_STORAGE_ID \
    --s3-compatible-bucket-name=BUCKET_NAME \
    --s3-compatible-endpoint=ENDPOINT \
    --s3-compatible-credential-file-path=FILE

Borra el almacenamiento externo

Para borrar el almacenamiento externo, primero asegúrate de que no haya copias de seguridad existentes ni en curso. Luego, ejecuta el comando siguiente:

spanner external-storages delete EXTERNAL_STORAGE_ID

Describe el almacenamiento externo

Para obtener información sobre el almacenamiento externo, ejecuta el siguiente comando:

spanner external-storages describe EXTERNAL_STORAGE_ID

Enumera el almacenamiento externo

Para obtener una lista del almacenamiento externo, ejecuta el siguiente comando:

spanner external-storages list

Descriptor de la copia de seguridad

Un descriptor de copia de seguridad representa los metadatos y las rutas de acceso de los archivos de copia de seguridad de las copias de seguridad completadas que se almacenan en un almacenamiento externo.

spanner external-storages backup-descriptors list EXTERNAL_STORAGE_ID

Información de copia de seguridad

Cuando creas una copia de seguridad, los metadatos de la copia de seguridad se almacenan en Spanner Omni y los archivos de copia de seguridad residen en el almacenamiento externo.

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.

  • 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 configuran con el comando ALTER DATABASE SET OPTIONS.

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

  • Cualquier modificación en los datos o el esquema después de la versionTime.

  • nivel más alto que las políticas de IAM.

  • Registros de datos de flujos de cambios. Aunque se almacena el esquema de los flujos de cambios, los datos de estos flujos se deben transmitir y consumir casi al mismo tiempo que los cambios que describen.

Para garantizar la coherencia externa de la copia de seguridad, Spanner Omni fija el contenido de la base de datos en versionTime. Esto evita que el sistema de recolección de elementos no utilizados quite los valores de datos relevantes durante la operación de copia de seguridad.

Administración de copia de seguridad

Para crear copias de seguridad, necesitas los siguientes permisos. Pídele a tu administrador que te otorgue los siguientes roles de IAM en una implementación:

Acción Función de IAM
Crear, ver, actualizar y borrar copias de seguridad roles/spanner.backupAdmin
Crea y visualiza copias de seguridad roles/spanner.backupWriter

Crear copia de seguridad

Crear una copia de seguridad a pedido

spanner backups create BACKUP_NAME \
--database=DATABASE_ID \
--retention-period=RETENTION_PERIOD \
--async

Borrar copia de seguridad

Borra los metadatos y los archivos de la copia de seguridad.

spanner backups delete BACKUP_NAME

Describe la copia de seguridad

Recupera información sobre una copia de seguridad.

spanner backups describe BACKUP_NAME

Mostrar una lista de las copias de seguridad

Enumera las copias de seguridad de Spanner Omni existentes en la implementación.

spanner backups list

Actualiza el vencimiento de la copia de seguridad

Actualiza la fecha de vencimiento de una copia de seguridad.

spanner backups update-metadata BACKUP_NAME \
--expiration-date=EXPIRATION_DATE

Importar copia de seguridad

Para recuperar una base de datos en otra implementación de Spanner Omni, por ejemplo, para recuperar entre implementaciones de Spanner Omni o si borras la implementación original, puedes importar copias de seguridad si los archivos de copia de seguridad permanecen en el almacenamiento externo:

  1. Crea un almacenamiento externo en la implementación nueva que use el mismo bucket de Amazon S3 o bucket de Cloud Storage que la implementación original, por ejemplo:

    spanner external-storages create EXTERNAL_STORAGE_ID \
      --gcs-bucket-name=BUCKET_NAME
    
  2. Enumera los descriptores de copia de seguridad en el almacenamiento externo:

    spanner external-storages backup-descriptors list EXTERNAL_STORAGE_ID
    
  3. Importa los metadatos de la copia de seguridad a la implementación nueva:

    spanner backups import BACKUP_NAME \
      --external-storage=EXTERNAL_STORAGE_ID \
      --backup-descriptor=BACKUP_DESCRIPTOR \
      --retention-period=RETENTION_PERIOD
    

    Reemplaza lo siguiente:

    • BACKUP_NAME: Es un nombre para la copia de seguridad importada.
    • EXTERNAL_STORAGE_ID: Es el ID de la configuración de tu almacenamiento externo.
    • BACKUP_DESCRIPTOR: Es el ID del descriptor que se devolvió en el paso anterior.
    • RETENTION_PERIOD: Es la duración de la retención de la copia de seguridad, por ejemplo, 24h o 30d.

Después de importar los metadatos de la copia de seguridad, puedes restablecerla en una base de datos nueva en la implementación. Para obtener más información, consulta Restablece una copia de seguridad de Spanner Omni.

Programaciones de copias de seguridad

Spanner Omni te permite programar copias de seguridad completas de las bases de datos. Puedes especificar con qué frecuencia Spanner Omni crea copias de seguridad en el programa.

Una programación de copias de seguridad completas crea copias de seguridad cada 12 horas o más. Las copias de seguridad se inician en un plazo de 30 minutos a partir de la hora programada. Puedes tener un máximo de cuatro programas de copia de seguridad por base de datos.

Administración de la programación de copias de seguridad

Para crear y administrar programas de copias de seguridad, necesitas los siguientes permisos. Pídele a tu administrador que te otorgue los siguientes roles de IAM en la implementación:

  • Crea, visualiza, actualiza y borra programaciones de copias de seguridad: roles/spanner.backupAdmin

  • Crea y visualiza programas de copias de seguridad: roles/spanner.backupWriter

Crear una programación de copia de seguridad

Crea un programa de copias de seguridad nuevo para la base de datos de Spanner Omni.

spanner backup-schedules create SCHEDULE_ID \
  --database=DATABASE_ID \
  --retention-duration=RETENTION_DURATION \
  --cron="CRONTAB_EXPRESSION"

Obtén un programa de copias de seguridad

Obtén información sobre un programa de copias de seguridad específico.

spanner backup-schedules describe SCHEDULE_ID --database=DATABASE_ID

Enumera programaciones de copias de seguridad

Enumera todas las programaciones de copias de seguridad de una base de datos determinada.

spanner backup-schedules list --database=DATABASE_ID

Actualiza una programación de copia de seguridad

Actualiza las propiedades de un programa de copia de seguridad existente.

spanner backup-schedules update SCHEDULE_ID \
  --database=DATABASE_ID \
  --retention-duration=RETENTION_DURATION \
  --cron="CRONTAB_EXPRESSION"

Borra una programación de copia de seguridad

Borra una programación de copia de seguridad de la base de datos.

spanner backup-schedules delete SCHEDULE_ID --database=DATABASE_ID

Configura la política de control de acceso de IAM

Establece la política de control de acceso de IAM para un programa de copia de seguridad.

spanner backup-schedules set-iam-policy SCHEDULE_ID \
  --database=DATABASE_ID \
  policy.json

Obtén la política de IAM de control de acceso

Obtén la política de control de acceso de IAM para un programa de copia de seguridad.

spanner backup-schedules get-iam-policy SCHEDULE_ID --database=DATABASE_ID

Compara el almacenamiento de copias de seguridad con el de la base de datos

El tamaño de almacenamiento de una copia de seguridad puede ser menor o mayor que el tamaño de almacenamiento de la base de datos de origen en el momento de la creación.

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

Por el contrario, el almacenamiento de una copia de seguridad puede ser mayor que el de la base de datos, según el estado de la base de datos y el momento en que creas la copia de seguridad.

Por motivos similares, cuando restableces una base de datos a partir de una copia de seguridad, su almacenamiento puede ser mayor que el de la base de datos. Esto puede ocurrir si se borró y compactó un conjunto grande de datos después de que se creó la copia de seguridad. Por lo tanto, el tamaño de la copia de seguridad depende de cuándo se creó y de las operaciones posteriores en la base de datos.

No hay ninguna fórmula que prediga el 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 operaciones 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, el tamaño de la copia de seguridad puede ser mayor.

¿Qué sigue?