En esta página, se describe cómo usar la Copia de seguridad y restablecimiento de Cloud Spanner con la interfaz de línea de comandos de gcloud.
Requisitos
En los ejemplos de esta página, se supone que hiciste lo siguiente:
Ya configuraste el SDK de gcloud para usarlo con Cloud Spanner. Si no tienes experiencia en el uso de gcloud con Cloud Spanner, consulta Comienza a usar Cloud Spanner.
Ya configuraste gcloud con un proyecto predeterminado. Por ejemplo:
gcloud config set core/project my-project
Ya tienes una instancia llamada
test-instance
y una base de datos llamadaexample-db
.
Crea una copia de seguridad
Para crear una copia de seguridad llamada example-db-backup-6
y hacer que caduque en 1 año, haz lo siguiente:
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 más información sobre la sintaxis de fecha, consulta gcloud topic datetimes. - El nombre de la copia de seguridad debe ser único en la instancia.
- El comando se muestra 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 sobre cualquier comando.
A continuación, se muestra el resultado:
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.
En la siguiente sección, usaremos la operación de copia de seguridad para verificar el progreso de la copia de seguridad.
Para obtener más detalles sobre este comando, consulta gcloud spanner backups create.
Muestra el progreso de una copia de seguridad
Para seguir el progreso de una operación de copia de seguridad, usa gcloud spanner operations describe:
gcloud spanner operations describe _auto_op_234567 \ --instance=test-instance --backup=example-db-backup-6
Este es el resultado:
done: true metadata: '@type': type.googleapis.com/google.spanner.admin.database.v1.CreateBackupMetadata database: projects/my-project/instances/test-instance/databases/example-db name: projects/my-project/instances/test-instance/backups/example-db-backup-6 progress: endTime: '2020-02-04T02:07:59.089820Z' progressPercent: 100 startTime: '2020-02-04T02:05:43.920377Z' name: projects/my-project/instances/test-instance/backups/example-db-backup-6/operations/_auto_op_234567 response: '@type': type.googleapis.com/google.spanner.admin.database.v1.Backup 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
Si no tienes el nombre de la operación, búscalo con gcloud spanner operations list:
gcloud spanner operations list --instance=test-instance --type=BACKUP
Notas de uso:
Para limitar la lista, especifica la marca
--filter
.- Por ejemplo,
--filter="metadata.name:example-db"
enumera solo las operaciones de copia de seguridad en una base de datos específica. - Por ejemplo,
--filter="error:*"
enumera solo las operaciones de copia de seguridad fallidas.
Si deseas obtener información sobre la sintaxis de filtro, consulta gcloud topic filters. Para obtener información sobre cómo filtrar las operaciones de copia de seguridad, consulta el campo
filter
en ListBackupOperationsRequest.- Por ejemplo,
La marca
--type
no distingue entre mayúsculas y minúsculas.
Este es el resultado:
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
Restablece una base de datos a partir de una copia de seguridad
Para restablecer una base de datos, sigue estos pasos:
gcloud spanner databases restore --async \
--destination-instance=test-instance --destination-database=example-db-restored \
--source-instance=test-instance --source-backup=example-db-backup-6
Notas de uso:
- El comando se muestra de inmediato debido a la marca
--async
. Sin la marca, el comando esperará a que se complete la operación de restablecimiento. - Si las instancias de origen y destino son diferentes, deben tener la misma configuración de instancia.
- Si la base de datos de destino ya existe, la operación fallará.
Este es el resultado:
Restore database in progress. Operation name=projects/my-project/instances/test-instance/databases/example-db-restored-1/operations/_auto_op_bb8e360b256b04bf
Para obtener más detalles sobre este comando, consulta gcloud spanner databases restore.
Muestra el restablecimiento y la optimización del progreso
Para realizar un seguimiento del progreso de una operación de restablecimiento, usa gcloud spanner operations describe:
gcloud spanner operations describe _auto_op_bb8e360b256b04bf \ --instance=test-instance --database=example-db-restored
Este es el resultado:
done: true metadata: '@type': type.googleapis.com/google.spanner.admin.database.v1.RestoreDatabaseMetadata backupInfo: backup: projects/my-project/instances/test-instance/backups/example-db-backup-6 createTime: '2020-02-03T23:48:06.259296Z' sourceDatabase: projects/my-project/instances/test-instance/databases/example-db name: projects/my-project/instances/test-instance/databases/example-db-restored optimizeDatabaseOperationName: projects/my-project/instances/test-instance/databases/example-db-restored/operations/_auto_op_7702f3f19fa99616 progress: endTime: '2020-02-04T02:40:56.424382Z' progressPercent: 100 startTime: '2020-02-04T02:35:30.683330Z' sourceType: BACKUP name: projects/my-project/instances/test-instance/databases/example-db-restored/operations/_auto_op_91ff1f270832a22b response: '@type': type.googleapis.com/google.spanner.admin.database.v1.Database createTime: '2020-02-04T02:35:30.683330Z' name: projects/my-project/instances/test-instance/databases/example-db-restored restoreInfo: backupInfo: backup: projects/my-project/instances/test-instance/backups/example-db-backup-6 createTime: '2020-02-03T23:48:06.259296Z' sourceDatabase: projects/my-project/instances/test-instance/databases/example-db sourceType: BACKUP state: READY_OPTIMIZING
En el resultado, podemos ver que la operación de restablecimiento está completa y ahora está en el estado
READY_OPTIMIZING
, como se describe en Cómo funciona el restablecimiento. También tenemosoptimizeDatabaseOperationName
, que podemos usar para realizar un seguimiento del progreso de la operación de optimización.Para realizar un seguimiento del progreso de la operación de optimización, usa gcloud spanner operations describe:
gcloud-testing spanner operations describe _auto_op_7702f3f19fa99616 \ --instance=test-instance --database=example-db-restored
Este es el resultado:
done: true metadata: '@type': type.googleapis.com/google.spanner.admin.database.v1.OptimizeRestoredDatabaseMetadata name: projects/my-project/instances/test-instance/databases/example-db-restored progress: endTime: '2020-02-04T22:11:21.731739Z' progressPercent: 100 startTime: '2020-02-04T22:10:48.308090Z' name: projects/my-project/instances/test-instance/databases/example-db-restored/operations/_auto_op_7702f3f19fa99616 response: '@type': type.googleapis.com/google.spanner.admin.database.v1.Database createTime: '2020-02-04T22:03:34.282186Z' name: projects/my-project/instances/test-instance/databases/example-db-restored restoreInfo: backupInfo: backup: projects/my-project/instances/test-instance/backups/example-db-backup-6 createTime: '2020-02-03T23:48:06.259296Z' sourceDatabase: projects/my-project/instances/test-instance/databases/example-db sourceType: BACKUP state: READY
Si no tienes el nombre de la operación de restablecimiento o de optimización, búscalo con gcloud spanner operations list. Si la base de datos restablecida no está en la misma instancia que la copia de seguridad, asegúrate de especificar la instancia de destino en la marca
instance
:gcloud spanner operations list --instance=test-instance \ --type=DATABASE_RESTORE
Este es el resultado:
OPERATION_ID DONE @TYPE RESTORED_DATABASE SOURCE_BACKUP START_TIME END_TIME _auto_op_7702f3f19fa99616 True OptimizeRestoredDatabaseMetadata example-db-restored 2020-02-04T02:40:56.424382Z 2020-02-04T02:41:37.765157Z _auto_op_91ff1f270832a22b True RestoreDatabaseMetadata example-db-restored example-db-backup-6 2020-02-04T02:35:30.683330Z 2020-02-04T02:40:56.424382Z
Obtén información de copia de seguridad
Para obtener información sobre una copia de seguridad, ejecuta el siguiente comando:
gcloud spanner backups describe example-db-backup-6 --instance=test-instance
Este es el resultado:
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
Para obtener más detalles sobre este comando, consulta gcloud spanner backups describe.
Mostrar lista de copias de seguridad
Para enumerar todas las copias de seguridad en una instancia, ejecuta el siguiente comando:
gcloud spanner backups list --instance=test-instance
Este es el resultado:
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, --filter="state:creating"
enumera solo las copias de seguridad que aún se están creando.
Si deseas obtener información sobre la sintaxis de filtro, consulta gcloud topic filters.
Para obtener información sobre cómo filtrar copias de seguridad, consulta el campo filter
en ListBackupsRequest.
Para obtener más detalles sobre este comando, consulta gcloud spanner backups list.
Actualiza los metadatos de copia de seguridad
Para actualizar la fecha de vencimiento de una copia de seguridad, haz lo siguiente:
gcloud spanner backups update-metadata example-db-backup-6 \
--instance=test-instance --expiration-date=2020-05-05T00:00:00Z
Este es el resultado:
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
Para obtener más detalles sobre este comando, consulta gcloud spanner backups update-metadata.
Borrar copia de seguridad
Para borrar una copia de seguridad, haz lo siguiente:
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].
Para obtener más detalles sobre este comando, consulta gcloud spanner backups delete.