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
versionTimede 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:
- Un bucket de Cloud Storage de destino en tu proyecto de Google Cloud .
- Una cuenta de servicio de Google Cloud a la que se le otorgó el rol de Identity and Access Management (IAM) de administrador de objetos de almacenamiento (
roles/storage.objectAdmin) en el bucket de destino. Para obtener más información, consulta Roles de IAM para Cloud Storage. - Credenciales de autenticación configuradas en tu entorno de Spanner Omni, como un archivo de claves de cuenta de servicio o credenciales intercambiadas a través de la federación de identidades para cargas de trabajo. Para obtener más información sobre la autenticación desde entornos externos, consulta Configura la federación de identidades para cargas de trabajo con VMs de AWS y Configura la federación de identidades para cargas de trabajo con Kubernetes.
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:
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_NAMEEnumera los descriptores de copia de seguridad en el almacenamiento externo:
spanner external-storages backup-descriptors list EXTERNAL_STORAGE_IDImporta 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_PERIODReemplaza 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,24ho30d.
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.backupAdminCrea 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.