Spanner Omni te permite crear copias de seguridad completas de bases de datos a pedido o con una programación 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 corrupción lógica de los datos.
Descripción general de la copia de seguridad de Spanner Omni
Las copias de seguridad tienen alta disponibilidad y se pueden conservar hasta por un año a partir de su hora de creación. Cada copia de seguridad tiene un createTime y un versionTime asociados. El valor createTime es la marca de tiempo en la que Spanner Omni comienza a crear la copia de seguridad. 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 momento 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 crees una copia de seguridad a pedido si se encuentra dentro del período de retención de la versión de la base de datos.
En el caso de las copias de seguridad programadas, el versionTime es la hora que eliges cuando creas la programación de copias de seguridad. Spanner Omni comienza a crear la copia de seguridad en un plazo de cuatro horas desde el versionTime, por lo que el createTime se encuentra dentro de este período de cuatro horas. Esto es diferente de las copias de seguridad según demanda, en las que Spanner Omni comienza a crear la copia de seguridad cuando recibe la solicitud.
Por ejemplo, supongamos que creas una programación 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, versionTime es las 7:00 a.m. (UTC) y 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).
Características clave
Las copias de seguridad de Spanner Omni proporcionan coherencia de los datos, replicación externa resiliente y vencimiento automático.
Coherencia de los datos: Las copias de seguridad de una base de datos de Spanner Omni son coherentes de forma externa y transaccional en el momento
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 borrarán. 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 se encuentra 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 del almacenamiento externo
Administra el almacenamiento externo creando, borrando y enumerando ubicaciones de almacenamiento para tus copias de seguridad.
Cómo crear 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 almacenamiento externo de Cloud Storage
Para crear el almacenamiento externo de Cloud Storage, ejecuta el siguiente comando:
spanner external-storages create EXTERNAL_STORAGE_ID \
--gcs-bucket-name=BUCKET_NAME
Crea almacenamiento externo compatible con Amazon S3
Para crear 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
Cómo borrar el almacenamiento externo
Para borrar el almacenamiento externo, primero asegúrate de que no haya copias de seguridad existentes o 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 copia de seguridad
Un descriptor de copia de seguridad representa los metadatos y las rutas de acceso a los archivos de 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 se almacenan en Spanner Omni y los archivos de la copia residen en el almacenamiento externo.
Una copia de seguridad contiene la siguiente información de la base de datos en el momento de la copia de seguridad:versionTime
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 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:
Todas las modificaciones en los datos o el esquema después de
versionTimePolíticas de Identity and Access Management (IAM)
Registros de datos de flujos de cambios Aunque se almacena el esquema de los flujos de cambios, los datos de los flujos de cambios se deben transmitir y consumir casi al mismo tiempo que los cambios que describen.
Para ayudar a 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 basura quite los valores de datos pertinentes 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 |
| Cómo crear y ver copias de seguridad | roles/spanner.backupWriter |
Crear copia de seguridad
Crea una copia de seguridad según demanda.
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 existentes de Spanner Omni 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
Si borras accidentalmente una implementación, puedes importar copias de seguridad de ella si no borraste los archivos de copia de seguridad del almacenamiento externo.
Crea almacenamiento externo en la nueva implementación que use el mismo bucket de Amazon S3 o bucket de Cloud Storage de la implementación original.
spanner external-storages create EXTERNAL_STORAGE_ID \ --gcs-bucket-name=BUCKET_NAMEEnumera los descriptores de copias de seguridad en el almacenamiento externo.
spanner external-storages backup-descriptors list EXTERNAL_STORAGE_IDSelecciona el descriptor de copia de seguridad y, luego, impórtalo en la implementación nueva.
spanner backups import BACKUP_NAME \ --external-storage EXTERNAL_STORAGE_ID \ --backup-descriptor BACKUP_DESCRIPTOR \ --retention-period 24h
Programaciones de copias de seguridad
Spanner Omni te permite programar copias de seguridad completas para las bases de datos. Puedes especificar con qué frecuencia Spanner Omni crea copias de seguridad en la programación.
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 desde la hora programada. Puedes tener un máximo de cuatro programas de copias 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:
Crear, ver, actualizar y borrar programas de copias de seguridad:
roles/spanner.backupAdminCrear y ver programas de copias de seguridad:
roles/spanner.backupWriter
Crear una programación de copia de seguridad
Crea un nuevo programa de copias de seguridad 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 una programación de copia de seguridad
Obtiene información sobre una programación de copias de seguridad específica.
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 una programación 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 una programación de copias de seguridad.
spanner backup-schedules set-iam-policy SCHEDULE_ID \
--database=DATABASE_ID \
policy.json
Obtén la política de control de acceso de IAM
Obtén la política de control de acceso de IAM para una programación de copias de seguridad.
spanner backup-schedules get-iam-policy SCHEDULE_ID --database=DATABASE_ID
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 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 más pequeño 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 varias versiones debido a las operaciones en curso. Las diferencias en el formato de datos y la compresión también pueden generar 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 crees 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 comprimió un conjunto grande de datos después de crear la copia de seguridad. Por lo tanto, el tamaño de la copia de seguridad depende del momento en que 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 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.