En esta página, se describe cómo usar las copias de seguridad programadas de Cloud Firestore. Usa las copias de seguridad para proteger tus datos contra la corrupción de datos a nivel de la aplicación o la eliminación accidental de datos.
Las copias de seguridad te permiten configurar programaciones para crear copias de seguridad diarias o semanales de la base de datos especificada. Puedes usar estas copias de seguridad para restablecer los datos en una base de datos nueva.
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 todas las configuraciones de índices y datos en ese momento. Una copia de seguridad no contiene las políticas de tiempo de actividad de la base de datos. Una copia de seguridad se encuentra 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 vence el período de retención o hasta que borres la copia de seguridad. Si borras la base de datos de origen, no se borrarán 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 retiene estos metadatos hasta que todas las copias de seguridad de la base de datos venzan o se borren.
La creación o retención de copias de seguridad no afecta el rendimiento de las lecturas o escrituras en tu base de datos activa.
Costos
Cuando usas copias de seguridad, se te cobra por lo siguiente:
- La cantidad de almacenamiento que usa cada copia de seguridad.
- Para una operación de restablecimiento, se te cobra según el tamaño de la copia de seguridad.
Para obtener más detalles y conocer las tarifas exactas, consulta la página Precios.
Antes de comenzar
Esta función requiere el plan de precios Blaze.Roles obligatorios
Para obtener los permisos que necesitas para administrar las copias de seguridad y los programas de copias de seguridad, pídele a tu administrador que te otorgue uno o más de los siguientes roles de Identity and Access Management:
roles/datastore.owner
: Acceso completo a la base de datos de Cloud FirestoreLos siguientes roles también están disponibles, pero no se pueden ver en la consola de Google Cloud. Usa la Google Cloud CLI para asignar estos roles:
roles/datastore.backupsAdmin
: Tiene acceso de lectura y escritura a las copias de seguridad.roles/datastore.backupsViewer
: Tiene acceso de lectura a las copias de seguridad.roles/datastore.backupSchedulesAdmin
: Tiene acceso de lectura y escritura a las programaciones de copias de seguridad.roles/datastore.backupSchedulesViewer
: Tiene acceso de lectura a las programaciones de copias de seguridad.roles/datastore.restoreAdmin
: Tiene permisos para iniciar operaciones de restablecimiento.
Crea y administra programas de copias de seguridad
En los siguientes ejemplos, se muestra cómo configurar un programa de copia de seguridad. Para cada base de datos, puedes configurar hasta una programación de copia de seguridad diaria y hasta una programación de copia de seguridad semanal. No puedes configurar múltiples programaciones de copias de seguridad semanales para diferentes días de la semana.
No puedes configurar la hora exacta del día de la copia de seguridad. Las copias de seguridad se realizan en diferentes momentos de cada día. Para las programaciones de copias de seguridad semanales, puedes configurar el día de la semana para realizar una copia de seguridad.
Crea una programación de copia de seguridad
Si deseas crear un programa de copia de seguridad para una base de datos, usa el
comando gcloud firestore backups schedules create
o firebase firestore:databases:backups:schedules
.
Crea un programa de copias de seguridad diarias
gcloud
Para crear una programación de copia de seguridad diaria, establece la marca--recurrence
en daily
:gcloud firestore backups schedules create \ --database='DATABASE_ID' \ --recurrence=daily \ --retention=RETENTION_PERIOD
Reemplaza lo siguiente:
- DATABASE_ID: El ID de la base de datos de la que se creará una copia de seguridad. Configúralo en
'(default)'
para la base de datos predeterminada. - RETENTION_PERIOD: Establece este valor en un valor de hasta 14 semanas (
14w
).
Firebase CLI
Para crear una programación de copia de seguridad diaria, establece la marca--recurrence
en DAILY
:firebase firestore:backups:schedules:create \ --database 'DATABASE_ID' \ --recurrence 'DAILY' \ --retention RETENTION_PERIOD
Reemplaza lo siguiente:
- DATABASE_ID: El ID de la base de datos de la que se creará una copia de seguridad. Configúralo en
'(default)'
para la base de datos predeterminada. - RETENTION_PERIOD: Establece este valor en un valor de hasta 14 semanas (
14w
).
Terraform
Para crear un programa diario de copias de seguridad, crea un recursogoogle_firestore_backup_schedule
.
resource "google_firestore_backup_schedule" "daily-backup" { project = PROJECT_ID database = DATABASE_ID retention = RETENTION_PERIOD_SECONDS daily_recurrence {} }
Reemplaza lo siguiente:
- PROJECT_ID: El ID del proyecto.
- DATABASE_ID: El ID de la base de datos de la que se creará una copia de seguridad. Configúralo en
'(default)'
para la base de datos predeterminada.
También puedes usar una referencia del recurso en un
recurso de Terraform de tipo - RETENTION_PERIOD_SECONDS: Establece este valor en segundos, seguido de "s". El valor máximo es
8467200s
(14 semanas).
google_firestore_database
.
Crea una programación de copia de seguridad semanal
gcloud
Para crear una programación de copia de seguridad semanal, establece la marca--recurrence
en weekly
:
gcloud firestore backups schedules create \ --database='DATABASE_ID' \ --recurrence=weekly \ --retention=RETENTION_PERIOD \ --day-of-week=DAYReemplaza lo siguiente:
- DATABASE_ID: El ID de la base de datos de la que se creará una copia de seguridad. Configúralo en
'(default)'
para la base de datos predeterminada. - RETENTION_PERIOD: Establece este valor en un valor de hasta 14 semanas (
14w
). - DAY: El día de la semana para realizar la copia de seguridad. Configúralo con uno de los siguientes valores:
SUN
para el domingoMON
para el lunesTUE
para el martesWED
para el miércolesTHU
para el juevesFRI
para el viernesSAT
para el sábado
Firebase CLI
Para crear una programación de copia de seguridad semanal, establece la marca--recurrence
en WEEKLY
:
firebase firestore:backups:schedules:create \ --database 'DATABASE_ID' \ --recurrence 'WEEKLY' \ --retention RETENTION_PERIOD --day-of-week DAYReemplaza lo siguiente:
- DATABASE_ID: El ID de la base de datos de la que se creará una copia de seguridad. Configúralo en
'(default)'
para la base de datos predeterminada. - RETENTION_PERIOD: Establece este valor en un valor de hasta 14 semanas (
14w
). - DAY: El día de la semana para realizar la copia de seguridad. Configúralo con uno de los siguientes valores:
SUNDAY
para el domingoMONDAY
para el lunesTUESDAY
para el martesWEDNESDAY
para el miércolesTHURSDAY
para el juevesFRIDAY
para el viernesSATURDAY
para el sábado
Terraform
Para crear un programa de copia de seguridad semanal, crea un recursogoogle_firestore_backup_schedule
.
resource "google_firestore_backup_schedule" "weekly-backup" { project = PROJECT_ID database = DATABASE_ID retention = RETENTION_PERIOD_SECONDS weekly_recurrence { day = DAY } }
Reemplaza lo siguiente:
- PROJECT_ID: El ID del proyecto.
- DATABASE_ID: El ID de la base de datos de la que se creará una copia de seguridad. Configúralo en
'(default)'
para la base de datos predeterminada.
También puedes usar una referencia del recurso en un
recurso de Terraform de tipo - RETENTION_PERIOD_SECONDS: Establece este valor en segundos, seguido de "s". El valor máximo es
8467200s
(14 semanas). - DAY: El día de la semana para realizar la copia de seguridad. Configúralo con uno de los siguientes valores:
SUNDAY
para el domingoMONDAY
para el lunesTUESDAY
para el martesWEDNESDAY
para el miércolesTHURSDAY
para el juevesFRIDAY
para el viernesSATURDAY
para el sábado
google_firestore_database
.
Enumera programaciones de copias de seguridad
Para enumerar todas las programaciones de copias de seguridad de una base de datos, usa uno de los siguientes métodos:
gcloud
Usa el comandogcloud firestore backups schedules list
.
gcloud firestore backups schedules list \ --database='DATABASE_ID'Reemplaza DATABASE_ID por el ID de la base de datos. Usa
'(default)'
para la base de datos predeterminada.
Firebase CLI
Usa el comandofirebase firestore:backups:schedules:list
.
firebase firestore:backups:schedules:list \ --database 'DATABASE_ID'Reemplaza DATABASE_ID por el ID de la base de datos. Usa
'(default)'
para la base de datos predeterminada.
Describir una programación de copia de seguridad
Para recuperar información sobre una programación de copia de seguridad, usa uno de los siguientes métodos:
gcloud
Usa la Comandogcloud firestore backups schedules describe
:
gcloud firestore backups schedules describe \ --database='DATABASE_ID' \ --backup-schedule=BACKUP_SCHEDULE_IDReemplaza lo siguiente:
- DATABASE_ID: El ID de la base de datos de la que se creará una copia de seguridad. Configúralo en
'(default)'
para la base de datos predeterminada. - BACKUP_SCHEDULE_ID: El ID de una programación de copia de seguridad. Puedes ver el ID de cada programación de copia de seguridad cuando enumeras todas las programaciones de copias de seguridad.
Actualiza una programación de copia de seguridad
Para actualizar el período de retención de una programación de copia de seguridad, usa uno de los siguientes métodos:
gcloud
Usa el comandogcloud firestore backups schedules update
:
gcloud firestore backups schedules update \ --database='DATABASE_ID' \ --backup-schedule=BACKUP_SCHEDULE_ID \ --retention=RETENTION_PERIODReemplaza lo siguiente:
- DATABASE_ID: El ID de la base de datos de la que se creará una copia de seguridad. Configúralo en
'(default)'
para la base de datos predeterminada. - BACKUP_SCHEDULE_ID: El ID de una programación de copia de seguridad. Puedes ver el ID de cada programación de copia de seguridad cuando enumeras todas las programaciones de copias de seguridad.
- RETENTION_PERIOD: Establece este valor en un valor de hasta 14 semanas (
14w
).
Firebase CLI
Usa el comandofirebase firestore:backups:schedules:update
:
firebase firestore:backups:schedules:update \ BACKUP_SCHEDULE \ --retention RETENTION_PERIODReemplaza lo siguiente:
- BACKUP_SCHEDULE: Es el nombre completo del recurso de una programación de copia de seguridad. Puedes ver el nombre de cada programación de copia de seguridad cuando enumeras todas las programaciones de copias de seguridad.
- RETENTION_PERIOD: Establece este valor en un valor de hasta 14 semanas (
14w
).
Puedes actualizar el período de retención de una programación de copia de seguridad, pero no puedes actualizar su recurrencia. Si necesitas un programa de copia de seguridad con una recurrencia diferente, borra el programa de copia de seguridad anterior si ya no es necesario y crea uno nuevo con la recurrencia deseada.
Borra una programación de copia de seguridad
Para borrar una programación de copia de seguridad, usa uno de los siguientes métodos:
gcloud
Usa el comandogcloud firestore backups schedules delete
:
gcloud firestore backups schedules delete \ --database='DATABASE_ID' \ --backup-schedule=BACKUP_SCHEDULE_IDReemplaza lo siguiente:
- DATABASE_ID: El ID de la base de datos de la que se creará una copia de seguridad. Configúralo en
'(default)'
para la base de datos predeterminada. - BACKUP_SCHEDULE_ID: El ID de una programación de copia de seguridad. Puedes ver el ID de cada programación de copia de seguridad cuando enumeras todas las programaciones de copias de seguridad.
Firebase CLI
Usa el comandofirebase firestore:backups:schedules:delete
:
firebase firestore:backups:schedules:delete \ BACKUP_SCHEDULEReemplaza lo siguiente:
- BACKUP_SCHEDULE: Es el nombre completo del recurso de una programación de copia de seguridad. Puedes ver el nombre de cada programación de copia de seguridad cuando enumeras todas las programaciones de copias de seguridad.
Ten en cuenta que si borras una programación de copias de seguridad, no se borrarán las copias de seguridad que ya haya creado esta programación. Puedes esperar a que venzan después del período de retención o borrar una copia de seguridad de forma manual, consulta borra la copia de seguridad.
Administrar copias de seguridad
Mostrar una lista de las copias de seguridad
Para enumerar las copias de seguridad disponibles, usa uno de los siguientes métodos:
gcloud
Usa el comandogcloud firestore backups list
:
gcloud firestore backups list \ --format="table(name, database, state)"La marca
--format="table(name, database, state)"
le da un formato más legible al resultado.
Para enumerar solo las copias de seguridad de una ubicación específica, usa la marca --location
:
gcloud firestore backups list \ --location=LOCATION \ --format="table(name, database, state)"Reemplaza
LOCATION
por el nombre de una ubicación de Cloud Firestore.
Firebase CLI
Usa el comandofirebase firestore:backups:list
:
firebase firestore:backups:listPara enumerar solo las copias de seguridad de una ubicación específica, usa la marca
--location
:
firebase firestore:backups:list \ --location=LOCATIONReemplaza
LOCATION
por el nombre de una ubicación de Cloud Firestore.
Describe una copia de seguridad
Para ver los detalles de una copia de seguridad, usa uno de los siguientes métodos:
gcloud
Usa el comandogcloud firestore backups describe
:
gcloud firestore backups describe \ --location=LOCATION \ --backup=BACKUP_IDReemplaza lo siguiente:
- LOCATION: Es la ubicación de la base de datos.
- BACKUP_ID: El ID de una copia de seguridad Puedes ver el ID de cada copia de seguridad cuando enumeras todas las copias de seguridad.
Firebase CLI
Usa el comandofirebase firestore:backups:get
:
firebase firestore:backups:get BACKUPReemplaza lo siguiente:
- BACKUP: Es el nombre completo del recurso de una copia de seguridad. Puedes ver el nombre de cada copia de seguridad cuando enumeras todas las copias de seguridad.
Borrar copia de seguridad
gcloud
Usa el comandogcloud firestore backups delete
:
gcloud firestore backups delete \ --location=LOCATION \ --backup=BACKUP_IDReemplaza lo siguiente:
- LOCATION: Es la ubicación de la base de datos.
- BACKUP_ID: El ID de una copia de seguridad Puedes ver el ID de cada copia de seguridad cuando enumeras todas las copias de seguridad.
Firebase CLI
Usa el comandofirebase firestore:backups:delete
:
firebase firestore:backups:delete \ BACKUPReemplaza lo siguiente:
- BACKUP: Es el nombre completo del recurso de una copia de seguridad. Puedes ver el nombre de cada copia de seguridad cuando enumeras todas las copias de seguridad.
Restablece datos a partir de una copia de seguridad de una base de datos
Una operación de restablecimiento escribe los datos de una copia de seguridad en una base de datos de Cloud Firestore nueva.
Para comenzar una operación de restablecimiento, usa uno de los siguientes métodos:
gcloud
Usa el comandogcloud firestore databases restore
:
gcloud firestore databases restore \ --source-backup=projects/PROJECT_ID/locations/LOCATION/backups/BACKUP_ID \ --destination-database='DATABASE_ID'Reemplaza lo siguiente:
- PROJECT_ID: ID del proyecto
- LOCATION: Es la ubicación de la copia de seguridad de la base de datos y la ubicación de la base de datos nueva creada para los datos restablecidos.
- BACKUP_ID: El ID de una copia de seguridad Puedes ver el ID de cada copia de seguridad cuando enumeras todas las copias de seguridad.
- DATABASE_ID: Un ID de la base de datos para la base de datos nueva. No puedes usar un ID de base de datos que ya esté en uso.
metadata
, name
y 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 del restablecimiento hasta el momento, y un operationState
que especifica el estado general del restablecimiento.
Para recuperar esta información, usa gcloud firestore operations list
:
gcloud firestore operations list --database=DATABASE_IDO bien, mediante el campo
name
del resultado que se describió antes, con gcloud firestore operations describe
:
gcloud firestore operations describe OPERATION_NAME
Firebase CLI
Usa el comandofirebase firestore:databases:restore
:
firebase firestore:databases:restore \ --backup 'BACKUP' \ --database 'DATABASE_ID'Reemplaza lo siguiente:
- BACKUP: Es el nombre completo del recurso de una copia de seguridad. Puedes ver el nombre de cada copia de seguridad cuando enumeras todas las copias de seguridad.
- DATABASE_ID: Un ID de la base de datos para la base de datos nueva. No puedes usar un ID de base de datos que ya esté en uso.