En esta página, se describen las operaciones de copia de seguridad de Spanner y se explica cómo crear una copia de seguridad de una base de datos. Para obtener más información sobre las copias de seguridad, consulta Descripción general de las copias de seguridad.
Puedes crear una copia de seguridad de bases de datos con lo siguiente:
Antes de comenzar
Los ejemplos de gcloud CLI en esta página hacen las siguientes suposiciones:
- Ya configuraste gcloud CLI para usarlo con Spanner. Si es la primera vez que usas gcloud CLI con Spanner, consulta Comienza a usar Spanner con gcloud CLI.
Configuraste gcloud CLI con tu proyecto. Por ejemplo:
gcloud config set core/project PROJECT_ID
Ya tienes una instancia llamada
test-instance
y una base de datos llamadaexample-db
.
-
A fin de obtener los permisos que necesitas para crear y administrar las copias de seguridad, pídele a tu administrador que te otorgue los siguientes roles de IAM en la instancia:
-
Crea, visualiza, actualiza y borra copias de seguridad:
Administrador de copias de seguridad de Cloud Spanner (
roles/spanner.backupAdmin
) -
Crea y visualiza copias de seguridad:
Escritor de copias de seguridad de Cloud Spanner (
roles/spanner.backupWriter
)
-
Crea, visualiza, actualiza y borra copias de seguridad:
Administrador de copias de seguridad de Cloud Spanner (
Crear una copia de seguridad
Consola
En la consola de Google Cloud, ve a la página Instancias de Spanner.
Haz clic en la instancia que contiene la base de datos de la que deseas crear una copia de seguridad.
Haz clic en la base de datos.
En el panel de navegación, haz clic en Backup/Restore.
En la pestaña Copias de seguridad, haz clic en Crear copia de seguridad.
Completa el formulario y haz clic en Crear.
Para verificar el progreso de una operación de copia de seguridad, consulta Verifica el progreso de la operación.
gcloud
Para crear una copia de seguridad llamada example-db-backup-6
que venza dentro de 1 año, usa gcloud spanner backups create
:
gcloud spanner backups create example-db-backup-6 --instance=test-instance \
--database=example-db --retention-period=1y --async
Estas son algunas notas de uso:
- Para establecer la fecha de vencimiento de la copia de seguridad, especifica las marcas
--retention-period
o--expiration-date
. Para obtener información sobre la sintaxis de fecha, consultagcloud topic datetimes
. - El nombre de la copia de seguridad debe ser único en la instancia.
- El comando muestra resultados de inmediato debido a la marca
--async
. Sin la marca, el comando esperará a que se complete la operación de copia de seguridad. - Especifica la marca
--help
para obtener ayuda con cualquier comando.
El resultado es similar al siguiente:
Create request issued for: [example-db-backup-6]
Check operation [projects/my-project/instances/test-instance/backups/example-db-backup-6/operations/_auto_op_234567] for status.
Para verificar el progreso de una operación de copia de seguridad, consulta Verifica el progreso de la operación.
Bibliotecas cliente
En la siguiente muestra de código, se crea una copia de seguridad en un version_time
específico y, luego, se espera a que se complete. Una vez completada, verifica que la copia de seguridad esté lista y recupera información sobre ella, como su nombre, tamaño y fecha de creación.
C++
C#
Go
Java
Node.js
PHP
Python
Rita
Cómo realizar una copia de seguridad
Consola
En la consola de Google Cloud, ve a la página Instancias de Spanner.
Haz clic en la instancia que contiene la base de datos que deseas copiar.
Haz clic en la base de datos.
En el panel de navegación, haz clic en Backup/Restore.
En la tabla Copias de seguridad, selecciona Acciones para tu copia de seguridad y haz clic en Copiar.
Completa el formulario. Para ello, elige una instancia de destino, proporciona un nombre y selecciona una fecha de vencimiento para la copia de seguridad.
Haz clic en Copiar.
Para verificar el progreso de una operación de copia, consulta Verifica el progreso de la operación.
Si la operación tarda demasiado, puedes cancelarla. Para obtener más información, consulta Cancela una operación de instancia de larga duración.
gcloud
Para copiar una copia de seguridad a una instancia diferente del mismo proyecto, usa gcloud spanner backups copy
:
gcloud spanner backups copy \
--source-instance=test-instance \
--source-backup=example-db \
--destination-instance=backup-instance \
--destination-backup=copied-backup \
--expiration-date=2022-03-30T10:49:41Z
Para copiar una copia de seguridad a una instancia diferente en un proyecto diferente, haz lo siguiente:
gcloud spanner backups copy \
--source-backup=projects/my-project/instances/test-instance/backups/example-db \
--destination-backup=projects/backup-project/instances/backup-instance-eu/backups/copied-backup \
--expiration-date=2022-03-30T10:49:41Z
Notas de uso:
- Si eliges copiar la copia de seguridad a una instancia diferente en el mismo proyecto, debes crear una instancia nueva (o tener una lista) para la copia de seguridad copiada.
En el ejemplo anterior, se usa
backup-instance
. No puedes crear una instancia nueva como parte de la operación de copia de seguridad. - Si eliges copiar la copia de seguridad en un proyecto diferente, debes tener otro proyecto con su propia instancia lista para la copia de seguridad copiada. En el ejemplo anterior, se usó
backup-project
. No puedes crear un proyecto nuevo como parte de la operación de copia de seguridad. - La fecha de vencimiento de la copia de seguridad debe ser de al menos seis horas a partir del momento en que se procesa la solicitud de copia actual y, como máximo, 366 días después de la copia de seguridad de origen
create_time
.
El resultado es similar al siguiente:
createTime: '2022-03-29T22:06:05.905823Z'
database: projects/my-project/instances/test-instance/databases/example-db
databaseDialect: GOOGLE_STANDARD_SQL
encryptionInfo:
encryptionType: GOOGLE_DEFAULT_ENCRYPTION
expireTime: '2022-03-30T10:49:41Z'
maxExpireTime: '2023-03-17T20:46:33.479336Z'
name: projects/backup-project/instances/backup-instance-eu/backups/copied-backup
sizeBytes: '7957667'
state: READY
versionTime: '2022-03-16T20:46:33.479336Z'
Para verificar el progreso de una operación de copia, consulta Verifica el progreso de la operación.
Bibliotecas cliente
En la siguiente muestra de código, se copia una copia de seguridad existente. Puedes copiar la copia de seguridad en una instancia en una región o proyecto diferente. Una vez completada, la muestra recupera e imprime cierta información sobre la copia de seguridad copiada recién creada, como su nombre, tamaño, estado de la copia de seguridad y version_time
.
C++
C#
Go
Java
Node.js
PHP
Python
Rita
Verifica el progreso de la operación
Consola
En la consola de Google Cloud, ve a la página Instancias de Spanner.
Haz clic en la instancia que contiene la base de datos para la que deseas ver la operación de copia de seguridad.
Haz clic en la base de datos.
En el panel de navegación, haz clic en Operaciones. En la página Operaciones, se muestra una lista de las operaciones en ejecución.
gcloud
Usa gcloud spanner operations describe
para verificar el progreso de una operación.
Obtén el ID de operación:
gcloud spanner operations list --instance=INSTANCE_NAME \ --database=DATABASE_NAME --type=BACKUP
Reemplaza lo siguiente:
- INSTANCE_NAME por el nombre de la instancia de Spanner
- DATABASE_NAME por el nombre de la base de datos
Notas de uso:
Para limitar la lista, especifica la marca
--filter
. Por ejemplo:--filter="metadata.name:example-db"
solo enumera las operaciones de una base de datos específica.--filter="error:*"
solo enumera las operaciones de copia de seguridad que fallaron.
Para obtener información sobre la sintaxis del filtro, consulta
gcloud topic filters
. Para obtener información sobre cómo filtrar operaciones de copia de seguridad, consulta el campofilter
enListBackupOperationsRequest
.La marca
--type
no distingue mayúsculas de minúsculas.
El resultado es similar al siguiente:
OPERATION_ID DONE @TYPE BACKUP SOURCE_DATABASE START_TIME END_TIME _auto_op_123456 True CreateBackupMetadata example-db-backup-7 example-db 2020-02-04T02:12:38.075515Z 2020-02-04T02:22:40.581170Z _auto_op_234567 True CreateBackupMetadata example-db-backup-6 example-db 2020-02-04T02:05:43.920377Z 2020-02-04T02:07:59.089820Z
Ejecuta
gcloud spanner operations describe
:gcloud spanner operations describe OPERATION_ID \ --instance=INSTANCE_NAME \ --backup=BACKUP_NAME \
Reemplaza lo siguiente:
- OPERATION_ID: Es el ID de la operación que deseas verificar.
- INSTANCE_NAME: Es el nombre de la instancia de Spanner.
- BACKUP_NAME: Es el nombre de la copia de seguridad de Spanner.
En la sección
progress
del resultado, se muestra el porcentaje de la operación que se completó. El resultado es similar al siguiente:done: true metadata: ... progress: - endTime: '2022-03-01T00:28:06.691403Z' progressPercent: 100 startTime: '2022-03-01T00:28:04.221401Z' - endTime: '2022-03-01T00:28:17.624588Z' startTime: '2022-03-01T00:28:06.691403Z' progressPercent: 100 ...
Si la operación tarda demasiado, puedes cancelarla. Para obtener más información, consulta Cancela una operación de copia de seguridad de larga duración.
Bibliotecas cliente
En la siguiente muestra de código, se enumeran todas las operaciones en curso para crear copias de seguridad (operaciones con CreateBackupMetadata
) y copiar copias de seguridad (operaciones con CopyBackupMetadata
) filtradas por una base de datos determinada.
Para obtener información sobre la sintaxis de filtrado, consulta el parámetro filter
en backupOperations.list
.
C++
C#
Para enumerar todas las operaciones de creación de copias de seguridad, haz lo siguiente:
Para enumerar todas las operaciones de copia de seguridad, haz lo siguiente:
Go
Java
Node.js
PHP
Python
Rita
Para enumerar todas las operaciones de creación de copias de seguridad, haz lo siguiente:
Para enumerar todas las operaciones de copia de seguridad, haz lo siguiente:
Cancela una operación de copia de seguridad
Consola
La consola de Google Cloud no admite la cancelación de una operación de copia de seguridad. Sin embargo, puedes cancelar las operaciones que tardan demasiado con Google Cloud CLI, REST o la API de RPC. Para obtener más información, consulta Cancela una operación de instancia de larga duración.
gcloud
Usa gcloud spanner operations cancel
para cancelar una operación de copia de seguridad.
gcloud spanner operations cancel OPERATION_ID --instance=INSTANCE_NAME \ --database=DATABASE_NAME --backup=BACKUP
Reemplaza lo siguiente:
- OPERATION_ID por el ID de operación de la copia de seguridad
- INSTANCE_NAME por el nombre de la instancia de Spanner
- DATABASE_NAME por el nombre de la base de datos
- BACKUP por el nombre de la copia de seguridad
Bibliotecas cliente
En la siguiente muestra de código, se crea una copia de seguridad, se cancela la operación de copia de seguridad y, luego, se espera hasta que esta operación sea done
. Si la operación se canceló de forma correcta, muestra cancelTime
y un mensaje de error. Si la operación de copia de seguridad se completó antes de que se cancelara, la copia de seguridad existe y puedes borrarla.
C++
C#
Go
Java
Node.js
PHP
Python
Rita
Obtén información de copia de seguridad
Consola
En la consola de Google Cloud, ve a la página Instancias de Spanner.
Haz clic en la instancia que contiene la base de datos sobre la que deseas ver la información de la copia de seguridad.
Haz clic en la base de datos para abrir la página Descripción general.
En el panel de navegación, haz clic en Backup/Restore. Puedes ver la información de la copia de seguridad que seleccionaste en la base de datos.
gcloud
Para obtener información sobre una copia de seguridad, usa gcloud spanner backups describe
:
gcloud spanner backups describe example-db-backup-6 --instance=test-instance
El resultado es similar al siguiente:
createTime: '2020-02-04T02:05:43.920377Z'
database: projects/my-project/instances/test-instance/databases/example-db
expireTime: '2021-02-04T02:05:43.268327Z'
name: projects/my-project/instances/test-instance/backups/example-db-backup-6
sizeBytes: '1000000000'
state: READY
Bibliotecas cliente
Las bibliotecas cliente no admiten la obtención de información de copia de seguridad para una sola copia de seguridad. Sin embargo, puedes enumerar todas las copias de seguridad y su información en una instancia. Para obtener más información, consulta Enumera las copias de seguridad de una instancia.
Enumera las copias de seguridad en una instancia
Consola
En la consola de Google Cloud, ve a la página Instancias de Spanner.
Haz clic en tu instancia para ver todas las copias de seguridad disponibles y su información.
En el panel de navegación, haz clic en Backup/Restore.
gcloud
Para enumerar todas las copias de seguridad en una instancia, usa gcloud spanner backups list
:
gcloud spanner backups list --instance=test-instance
El resultado es similar al siguiente:
BACKUP SOURCE_DATABASE CREATION_TIME EXPIRATION_TIME STATE BACKUP_SIZE_IN_BYTES IN_USE_BY
example-db-backup-6 example-db 2020-02-04T02:05:43.920377Z 2021-02-04T02:05:43.268327Z CREATING
example-db-backup-4 example-db 2020-02-04T01:21:20.873839Z 2021-02-04T01:21:20.530151Z READY 32
example-db-backup-3 example-db 2020-02-03T23:59:18.936433Z 2021-02-03T23:59:18.203083Z READY 32
example-db-backup-5 example-db 2020-02-03T23:48:06.259296Z 2021-02-03T23:48:05.830937Z READY 32
example-db-backup-2 example-db 2020-01-30T19:49:00.616338Z 2021-01-30T19:49:00.283917Z READY 32
example-db-backup-1 example-db 2020-01-30T19:47:09.492551Z 2021-01-30T19:47:09.097804Z READY 32
Para limitar la lista, especifica la marca --filter
. Por ejemplo, para filtrar la lista y que solo incluya las copias de seguridad que aún se están creando, agrega --filter="state:creating"
. Para obtener información sobre la sintaxis del filtro, consulta gcloud topic filters
.
Para obtener información sobre cómo filtrar las copias de seguridad, consulta el campo filter
en ListBackupsRequest
.
Bibliotecas cliente
En la siguiente muestra de código, se enumeran las copias de seguridad en una instancia determinada.
Puedes filtrar la lista de copias de seguridad que se muestran (por ejemplo, filtrar por nombre, hora de la versión o tiempo de vencimiento de la copia de seguridad) si proporcionas una expresión de filtro. Para obtener información sobre la sintaxis del filtrado, consulta el parámetro filter
en Enumera copias de seguridad.
C++
C#
Go
Java
Node.js
PHP
Python
Rita
Actualiza el período de vencimiento de la copia de seguridad
Consola
Ve a la página Instancias de Spanner en la consola de Google Cloud.
Haz clic en la instancia que contiene la base de datos para abrir la página Descripción general de esa instancia.
Haz clic en la base de datos para abrir la página Descripción general.
En el panel de navegación, haz clic en Backup/Restore.
Haz clic en el botón Acciones para la copia de seguridad seleccionada y, luego, selecciona Actualizar metadatos.
Selecciona la nueva fecha de vencimiento.
Haga clic en Update.
gcloud
Para actualizar la fecha de vencimiento de una copia de seguridad, usa gcloud spanner backups update-metadata
:
gcloud spanner backups update-metadata example-db-backup-6 \
--instance=test-instance --expiration-date=2020-05-05T00:00:00Z
El resultado es similar al siguiente:
createTime: '2020-02-04T02:05:43.920377Z'
database: projects/my-project/instances/test-instance/databases/example-db
expireTime: '2020-05-05T00:00:00Z'
name: projects/my-project/instances/test-instance/backups/example-db-backup-6
sizeBytes: '1000000000'
state: READY
Bibliotecas cliente
Con la siguiente muestra de código, se recupera el tiempo de vencimiento de una copia de seguridad y la extiende.
C++
C#
Go
Java
Node.js
PHP
Python
Rita
Borrar una copia de seguridad
Consola
Ve a la página Instancias de Spanner en la consola de Google Cloud.
Haz clic en la instancia que contiene la base de datos para abrir la página Descripción general de esa instancia.
Haz clic en la base de datos para abrir la página Descripción general.
En el panel de navegación, haz clic en Backup/Restore.
Haz clic en el botón Acciones de la copia de seguridad seleccionada y, luego, selecciona Borrar.
Escribe el ID de la copia de seguridad.
Haz clic en Borrar.
gcloud
Para borrar una copia de seguridad, usa gcloud spanner backups delete
:
gcloud spanner backups delete example-db-backup-1 --instance=test-instance
Debes confirmar la operación:
You are about to delete backup [example-db-backup-1]
Do you want to continue (Y/n)? Y
Deleted backup [example-db-backup-1].
Bibliotecas cliente
En la siguiente muestra de código, se borra una copia de seguridad y se verifica que se haya borrado. Si borras una copia de seguridad que aún está en curso, se quitará el recurso de copia de seguridad y se cancelará la operación de copia de seguridad de larga duración.
C++
C#
Go
Java
Node.js
PHP
Python
Rita