Esta página describe cómo utilizar la función de copias de seguridad programadas de Cloud Firestore. Utilice copias de seguridad para proteger sus datos contra la corrupción de datos a nivel de aplicación o contra la eliminación accidental de datos.
Las copias de seguridad le permiten configurar programas de copia de seguridad para realizar copias de seguridad diarias o semanales de la base de datos especificada. Luego puede utilizar estas copias de seguridad para restaurar datos en una nueva base de datos.
Acerca de las copias de seguridad
Una copia de seguridad es una copia coherente de la base de datos en un momento determinado. La copia de seguridad contiene todos los datos y las configuraciones de índice en ese momento. Una copia de seguridad no contiene políticas de tiempo de vida de la base de datos. Una copia de seguridad reside en la misma ubicación que la base de datos de origen.
Las copias de seguridad tienen un período de retención configurable y se almacenan hasta que expire el período de retención o hasta que elimine la copia de seguridad. Eliminar la base de datos de origen no elimina automáticamente las copias de seguridad relacionadas.
Cloud Firestore almacena metadatos relacionados con copias de seguridad y programas de copias de seguridad relacionados con una base de datos. Cloud Firestore conserva estos metadatos hasta que todas las copias de seguridad de la base de datos caduquen o se eliminen.
Crear o conservar copias de seguridad no afecta el rendimiento de lecturas o escrituras en su base de datos activa.
Costos
Cuando utilizas copias de seguridad, se te cobra lo siguiente:
- La cantidad de almacenamiento utilizado por cada copia de seguridad.
- Para una operación de restauración, se le cobra según el tamaño de la copia de seguridad.
Para obtener más detalles y tarifas exactas, consulte la página de Precios .
Antes de que empieces
Esta función requiere el plan de precios Blaze .Roles requeridos
Para obtener los permisos que necesita para administrar copias de seguridad y programaciones de copias de seguridad, solicite a su administrador que le otorgue uno o más de los siguientes roles de administración de acceso e identidad:
-
roles/datastore.owner
: acceso completo a la base de datos de Cloud Firestore Los siguientes roles también están disponibles, pero no visibles en Google Cloud Platform Console. Utilice la CLI de Google Cloud para asignar estos roles:
-
roles/datastore.backupsAdmin
: acceso de lectura y escritura a las copias de seguridad -
roles/datastore.backupsViewer
: acceso de lectura a las copias de seguridad -
roles/datastore.backupSchedulesAdmin
: acceso de lectura y escritura a programas de respaldo -
roles/datastore.backupSchedulesViewer
: acceso de lectura a programas de respaldo -
roles/datastore.restoreAdmin
: permisos para iniciar operaciones de restauración
-
Crear y administrar programas de respaldo
Los ejemplos siguientes demuestran cómo configurar una programación de copias de seguridad. Para cada base de datos, puede configurar hasta un programa de copia de seguridad diario y hasta un programa de copia de seguridad semanal. No puede configurar múltiples programas de respaldo semanales para diferentes días de la semana.
No puede configurar la hora exacta del día de la copia de seguridad. Las copias de seguridad se realizan en diferentes momentos cada día. Para los programas de respaldo semanales, puede configurar el día de la semana para realizar un respaldo.
Crear un cronograma de respaldo
Para crear un cronograma de respaldo para una base de datos, use el comando gcloud alpha firestore backups schedules create
.
Cree un programa de respaldo diario
Para crear una programación de respaldo diaria, configure el indicador --recurrence
en daily
:
gcloud alpha firestore backups schedules create \ --database='DATABASE_ID' \ --recurrence=daily \ --retention=RETENTION_PERIOD
Reemplace lo siguiente:
-
DATABASE_ID
: El ID de la base de datos de la que se va a realizar la copia de seguridad. Establezca en(default)
para la base de datos predeterminada. -
RETENTION_PERIOD
: para una repeticióndaily
de la copia de seguridad, configúrelo en un valor de hasta 7 días (7d
). Si establece una periodicidad de copia de seguridadweekly
, configúrelo en un valor de hasta 14 semanas (14w
).
Cree un programa de respaldo semanal
Para crear un programa de respaldo semanal, configure el indicador --recurrence
en weekly
:
gcloud alpha firestore backups schedules create \ --database='DATABASE_ID' \ --recurrence=weekly \ --retention=RETENTION_PERIOD \ --day-of-week=DAY
Reemplace lo siguiente:
-
DATABASE_ID
: El ID de la base de datos de la que se va a realizar la copia de seguridad. Establezca en(default)
para la base de datos predeterminada. -
RETENTION_PERIOD
: para una repetición de la copia de seguridadweekly
, configúrelo en un valor de hasta 14 semanas (14w
). -
DAY
: El día de la semana para realizar la copia de seguridad. Establezca uno de los siguientes:-
SUN
para el domingo -
MON
para el lunes -
TUE
para el martes -
WED
para el miércoles -
THU
para el jueves -
FRI
para el viernes -
SAT
para el sábado
-
Listar programas de respaldo
Para enumerar todos los programas de respaldo para una base de datos, use el comando gcloud alpha firestore backups schedules list
. Este comando devuelve información sobre todas las programaciones de copias de seguridad.
gcloud alpha firestore backups schedules list \ --database='DATABASE_ID'
Reemplace DATABASE_ID
con el ID de la base de datos. Utilice (default)
para la base de datos predeterminada.
Describir el cronograma de respaldo
Para recuperar información sobre una programación de respaldo, usa el comando gcloud alpha firestore backups schedules describe
:
gcloud alpha firestore backups schedules describe \ --database='DATABASE_ID' \ --backup-schedule=BACKUP_SCHEDULE_ID
Reemplace lo siguiente:
-
DATABASE_ID
: El ID de la base de datos de la que se va a realizar la copia de seguridad. Establezca en(default)
para la base de datos predeterminada. -
BACKUP_SCHEDULE_ID
: el ID de una programación de copia de seguridad. Puede ver el ID de cada programa de respaldo cuando enumera todos los programas de respaldo .
Actualizar un programa de respaldo
Para actualizar el período de retención de una programación de respaldo, usa el comando gcloud alpha firestore backups schedules update
:
gcloud alpha firestore backups schedules update \ --database='DATABASE_ID' \ --backup-schedule=BACKUP_SCHEDULE_ID --retention=RETENTION_PERIOD
Reemplace lo siguiente:
-
DATABASE_ID
: El ID de la base de datos de la que se va a realizar la copia de seguridad. Establezca en(default)
para la base de datos predeterminada. -
BACKUP_SCHEDULE_ID
: el ID de una programación de copia de seguridad. Puede ver el ID de cada programa de respaldo cuando enumera todos los programas de respaldo . -
RETENTION_PERIOD
: si establece una periodicidaddaily
de la copia de seguridad, configúrelo en un valor de hasta 7 días (7d
). Si establece una periodicidad de copia de seguridadweekly
, configúrelo en un valor de hasta 14 semanas (14w
).
Eliminar una programación de respaldo
Para eliminar una programación de respaldo, usa el comando gcloud alpha firestore backups schedules delete
:
gcloud alpha firestore backups schedules delete \ --database='DATABASE_ID' \ --backup-schedule=BACKUP_SCHEDULE_ID
Reemplace lo siguiente:
-
DATABASE_ID
: El ID de la base de datos de la que se va a realizar la copia de seguridad. Establezca en(default)
para la base de datos predeterminada. -
BACKUP_SCHEDULE_ID
: el ID de una programación de copia de seguridad. Puede ver el ID de cada programa de respaldo cuando enumera todos los programas de respaldo .
Tenga en cuenta que eliminar una programación de copias de seguridad no eliminará las copias de seguridad ya creadas según esta programación. Puede esperar a que caduquen después de su período de retención o eliminar manualmente una copia de seguridad; consulte eliminar copia de seguridad .
Administrar copias de seguridad
Listar copias de seguridad
Para enumerar las copias de seguridad disponibles, usa el comando gcloud alpha firestore backups list
:
gcloud alpha firestore backups list \ --format="table(name, database, state)"
El --format="table(name, database, state)"
formatea la salida en un formato más legible.
Para enumerar solo las copias de seguridad de una ubicación específica, use el indicador --location
:
gcloud alpha firestore backups list \ --location=LOCATION \ --format="table(name, database, state)"
Reemplace LOCATION
con el nombre de una ubicación de Cloud Firestore.
Describir una copia de seguridad
Para ver detalles sobre una copia de seguridad, usa el comando gcloud alpha firestore backups describe
:
gcloud alpha firestore backups describe \ --location=LOCATION \ --backup=BACKUP_ID
-
LOCATION
: La ubicación de la base de datos. -
BACKUP_ID
: El ID de una copia de seguridad. Puede ver el ID de cada copia de seguridad cuando enumera todas las copias de seguridad .
Eliminar copia de seguridad
Para eliminar una copia de seguridad, usa el comando gcloud alpha firestore backups delete
:
gcloud alpha firestore backups delete \ --location=LOCATION \ --backup=BACKUP_ID
-
LOCATION
: La ubicación de la base de datos. -
BACKUP_ID
: El ID de una copia de seguridad. Puede ver el ID de cada copia de seguridad cuando enumera todas las copias de seguridad .
Restaurar datos desde una copia de seguridad de la base de datos
Una operación de restauración escribe los datos de una copia de seguridad en una nueva base de datos de Cloud Firestore. Para comenzar una operación de restauración, usa el comando gcloud alpha firestore databases restore
:
gcloud alpha firestore databases restore \ --source-backup=projects/PROJECT_ID/locations/LOCATION/backups/BACKUP_ID \ --destination-database='DATABASE_ID'
-
PROJECT_ID
: el ID de tu proyecto. -
LOCATION
: La ubicación de la copia de seguridad de la base de datos y la ubicación de la nueva base de datos creada para los datos restaurados. -
BACKUP_ID
: El ID de una copia de seguridad. Puede ver el ID de cada copia de seguridad cuando enumera todas las copias de seguridad . -
DATABASE_ID
: ID de base de datos para la nueva base de datos. No puede utilizar una ID de base de datos que ya esté en uso.
El resultado incluirá metadata
, name
y componentes response
:
metadata: '@type': type.googleapis.com/google.firestore.admin.v1.RestoreDatabaseMetadata backup: projects/PROJECT_ID/locations/LOCATION/backups/BACKUP_ID database: projects/PROJECT_ID/databases/DATABASE_ID operationState: PROCESSING progressPercentage: completedWork: '20' estimatedWork: '100' startTime: '2023-12-06T14:20:17.398325Z' name: projects/PROJECT_ID/databases/DATABASE_ID/operations/operation_uuid response: '@type': type.googleapis.com/google.firestore.admin.v1.Database createTime: '2023-12-06T14:20:17.398325Z' name: projects/PROJECT_ID/databases/DATABASE_ID ...
El campo metadata
incluye un componente progressPercentage
, que detalla el progreso estimado de la restauración hasta el momento, y un operationState
que especifica el estado general de la restauración.
Para recuperar esta información nuevamente, usa gcloud firestore operations list
:
gcloud firestore operations list --database=DATABASE_ID
o, usando el campo name
del resultado descrito anteriormente, con gcloud firestore operations describe
:
gcloud firestore operations describe OPERATION_NAME