Crear copias de seguridad y restaurar datos

En esta página se describe cómo usar la función de copias de seguridad programadas del modo Datastore. Usa copias de seguridad para proteger tus datos frente a la corrupción de datos a nivel de aplicación o frente a 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. Después, puedes usar estas copias de seguridad para restaurar datos en una nueva base de datos.

Información sobre 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. Las copias de seguridad no contienen políticas de tiempo de vida de bases de datos. Las copias de seguridad se encuentran en la misma ubicación que la base de datos de origen.

Las copias de seguridad tienen un periodo de conservación configurable y se almacenan hasta que este periodo caduca o hasta que las eliminas. Si eliminas la base de datos de origen, no se eliminarán automáticamente las copias de seguridad relacionadas.

Firestore almacena metadatos relacionados con las copias de seguridad y las programaciones de copias de seguridad de una base de datos. Firestore conserva estos metadatos hasta que caducan o se eliminan todas las copias de seguridad de la base de datos.

Crear o conservar copias de seguridad no afecta al rendimiento de las lecturas o escrituras en tu base de datos activa.

Costes

Cuando utilizas copias de seguridad, se te cobra por lo siguiente:

  • El espacio de almacenamiento que ocupa cada copia de seguridad.
  • En el caso de las operaciones de restauración, se te cobra en función del tamaño de la copia de seguridad.

Para obtener más información y las tarifas exactas, consulta la página Precios.

Antes de empezar

Comprueba que la facturación esté habilitada en tu Google Cloud proyecto. Consulta cómo comprobar si la facturación está habilitada en un proyecto.

Roles obligatorios

Para obtener los permisos que necesitas para gestionar copias de seguridad y programaciones de copias de seguridad, pide a tu administrador que te conceda uno o varios de los siguientes roles de gestión de identidades y accesos:

  • roles/datastore.owner: acceso completo a la base de datos de Firestore
  • 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 las programaciones de copias de seguridad
  • roles/datastore.backupSchedulesViewer: acceso de lectura a las programaciones de copias de seguridad
  • roles/datastore.restoreAdmin: permisos para iniciar operaciones de restauración

Crear y gestionar programaciones de copias de seguridad

En los ejemplos que se muestran a continuación se indica cómo configurar una programación de copias de seguridad. En cada base de datos, puedes configurar hasta una programación de copias de seguridad diarias y hasta una programación de copias de seguridad semanales. No puedes configurar varias programaciones de copias de seguridad semanales para diferentes días de la semana.

No puedes configurar la hora exacta del día en que se realiza la copia de seguridad. Las copias de seguridad se realizan a diferentes horas cada día. En el caso de las programaciones de copias de seguridad semanales, puedes configurar el día de la semana en el que se hará la copia.

Crear una programación de copias de seguridad

Usa una de las siguientes herramientas para crear una programación de copias de seguridad.

Crear una programación de copias de seguridad diarias

Google Cloud consola
  1. En la Google Cloud consola, ve a la página Bases de datos.

    Ir a Bases de datos

  2. En la lista de bases de datos, busque la fila de la base de datos. En la columna Copias de seguridad programadas, haz clic en Ver copias de seguridad o en Editar configuración, según si hay una programación de copias de seguridad.
  3. Haz clic en Editar para editar la configuración de recuperación ante desastres.
  4. Marca la casilla Diario, define el periodo de conservación y haz clic en Guardar.
gcloud
Para crear una programación de copias de seguridad de una base de datos, usa el comando gcloud firestore backups schedules create. Para crear una programación de copias de seguridad diarias, asigna el valor daily al indicador --recurrence:
gcloud firestore backups schedules create \
--database='DATABASE_ID' \
--recurrence=daily \
--retention=RETENTION_PERIOD

Haz los cambios siguientes:

  • DATABASE_ID: ID de la base de datos de la que se va a crear una copia de seguridad. Se define como '(default)' para la base de datos predeterminada.
  • RETENTION_PERIOD: asigna un valor de hasta 14 semanas (14w).
Terraform
Para crear una programación de copias de seguridad diarias, crea un recurso google_firestore_backup_schedule.
resource "google_firestore_backup_schedule" "daily-backup" {
  project  = PROJECT_ID
  database = DATABASE_ID

  retention = RETENTION_PERIOD_SECONDS

  daily_recurrence {}
}

Haz los cambios siguientes:

  • PROJECT_ID: el ID del proyecto.
  • DATABASE_ID: ID de la base de datos de la que se va a crear una copia de seguridad. Se define como '(default)' para la base de datos predeterminada.
  • También puedes usar una referencia de recurso a un recurso de Terraform de tipo google_firestore_database.
  • RETENTION_PERIOD_SECONDS: asigna un valor en segundos seguido de "s". El valor máximo es 8467200s (14 semanas).

Crear una programación de copias de seguridad semanal

Google Cloud consola
  1. En la Google Cloud consola, ve a la página Bases de datos.

    Ir a Bases de datos

  2. En la lista de bases de datos, busque la fila de la base de datos. En la columna Copias de seguridad programadas, haz clic en Ver copias de seguridad o en Editar configuración, según si hay una programación de copias de seguridad.
  3. Haz clic en Editar para editar la configuración de recuperación ante desastres.
  4. Marca la casilla Semanal, selecciona un día de la semana, define el periodo de conservación y haz clic en Guardar.
gcloud
Para crear una programación de copias de seguridad semanales, asigna el valor --recurrence a la marca weekly:
gcloud firestore backups schedules create \
--database='DATABASE_ID' \
--recurrence=weekly \
--retention=RETENTION_PERIOD \
--day-of-week=DAY
Sustituye lo siguiente:
  • DATABASE_ID: ID de la base de datos de la que se va a crear una copia de seguridad. Se define como '(default)' para la base de datos predeterminada.
  • RETENTION_PERIOD: asigna un valor de hasta 14 semanas (14w).
  • DAY: el día de la semana en el que se hará la copia de seguridad. Se debe configurar como uno de los siguientes valores:
    • 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
Terraform
Para crear una programación de copias de seguridad semanales, crea un recurso google_firestore_backup_schedule.
resource "google_firestore_backup_schedule" "weekly-backup" {
  project  = PROJECT_ID
  database = DATABASE_ID

  retention = RETENTION_PERIOD_SECONDS

  weekly_recurrence {
    day = DAY
  }
}

Haz los cambios siguientes:

  • PROJECT_ID: el ID del proyecto.
  • DATABASE_ID: ID de la base de datos de la que se va a crear una copia de seguridad. Se define como '(default)' para la base de datos predeterminada.
  • También puedes usar una referencia de recurso a un recurso de Terraform de tipo google_firestore_database.
  • RETENTION_PERIOD_SECONDS: asigna un valor en segundos seguido de "s". El valor máximo es 8467200s (14 semanas).
  • DAY: el día de la semana en el que se hará la copia de seguridad. Se debe configurar como uno de los siguientes valores:
    • SUNDAY para el domingo
    • MONDAY para el lunes
    • TUESDAY para el martes
    • WEDNESDAY para el miércoles
    • THURSDAY para el jueves
    • FRIDAY para el viernes
    • SATURDAY para el sábado

Mostrar las programaciones de copias de seguridad

Para obtener una lista de todas las programaciones de copias de seguridad de una base de datos, utiliza uno de los siguientes métodos:

Google Cloud consola
  1. En la Google Cloud consola, ve a la página Bases de datos.

    Ir a Bases de datos

  2. En la lista de bases de datos, busque la fila de la base de datos. En la columna Copias de seguridad programadas, haz clic en Ver copias de seguridad o en Editar configuración, según si hay una programación de copias de seguridad.
  3. Se abrirá la página Recuperación tras desastres. En esta página se describen las programaciones de copias de seguridad y se enumeran las copias de seguridad disponibles.
gcloud
Usa el comando gcloud firestore backups schedules list.
gcloud firestore backups schedules list \
--database='DATABASE_ID'
Sustituye DATABASE_ID por el ID de la base de datos. Usa '(default)' para la base de datos predeterminada.

Describe la programación de la copia de seguridad

Para obtener información sobre una programación de copias de seguridad, utiliza uno de los siguientes métodos:

Google Cloud consola
  1. En la Google Cloud consola, ve a la página Bases de datos.

    Ir a Bases de datos

  2. En la lista de bases de datos, busque la fila de la base de datos. En la columna Copias de seguridad programadas, haz clic en Ver copias de seguridad o en Editar configuración, según si hay una programación de copias de seguridad.
  3. Se abrirá la página Recuperación tras desastres. En esta página se describen las programaciones de copias de seguridad y se enumeran las copias de seguridad disponibles.
gcloud
Usa el comando gcloud firestore backups schedules describe:
gcloud firestore backups schedules describe \
--database='DATABASE_ID' \
--backup-schedule=BACKUP_SCHEDULE_ID
Sustituye lo siguiente:
  • DATABASE_ID: ID de la base de datos de la que se va a crear una copia de seguridad. Se define como '(default)' para la base de datos predeterminada.
  • BACKUP_SCHEDULE_ID: ID de una programación de copias de seguridad. Puedes ver el ID de cada programación de copias de seguridad cuando muestras todas las programaciones de copias de seguridad.

Actualizar una programación de copias de seguridad

Para actualizar el periodo de conservación de una programación de copias de seguridad, utilice uno de los siguientes métodos:

Google Cloud consola
  1. En la Google Cloud consola, ve a la página Bases de datos.

    Ir a Bases de datos

  2. En la lista de bases de datos, busque la fila de la base de datos. En la columna Copias de seguridad programadas, haz clic en Ver copias de seguridad o en Editar configuración.
  3. Haz clic en Editar para editar la configuración de recuperación ante desastres.
  4. Edita los ajustes de la programación de copias de seguridad y haz clic en Guardar.
gcloud
Usa el comando gcloud firestore backups schedules update:
gcloud firestore backups schedules update \
--database='DATABASE_ID' \
--backup-schedule=BACKUP_SCHEDULE_ID \
--retention=RETENTION_PERIOD
Sustituye lo siguiente:
  • DATABASE_ID: ID de la base de datos de la que se va a crear una copia de seguridad. Se define como '(default)' para la base de datos predeterminada.
  • BACKUP_SCHEDULE_ID: ID de una programación de copias de seguridad. Puedes ver el ID de cada programación de copias de seguridad cuando muestras todas las programaciones de copias de seguridad.
  • RETENTION_PERIOD: asigna un valor de hasta 14 semanas (14w).

Puedes actualizar el periodo de conservación de una programación de copias de seguridad, pero no su periodicidad. Si necesitas una programación de copias de seguridad con otra periodicidad, elimina la antigua si ya no la necesitas y crea una nueva con la periodicidad que quieras.

Eliminar una programación de copias de seguridad

Para eliminar una programación de copias de seguridad, utilice uno de los siguientes métodos:

Google Cloud consola
  1. En la Google Cloud consola, ve a la página Bases de datos.

    Ir a Bases de datos

  2. En la lista de bases de datos, busque la fila de la base de datos. En la columna Copias de seguridad programadas, haz clic en Ver copias de seguridad o en Editar configuración, según si hay una programación de copias de seguridad.
  3. Haz clic en Editar para editar la configuración de recuperación ante desastres.
  4. Edita los ajustes de la programación de copias de seguridad y haz clic en Guardar.
gcloud
Usa el comando gcloud firestore backups schedules delete:
gcloud firestore backups schedules delete \
--database='DATABASE_ID' \
--backup-schedule=BACKUP_SCHEDULE_ID
Sustituye lo siguiente:
  • DATABASE_ID: ID de la base de datos de la que se va a crear una copia de seguridad. Se define como '(default)' para la base de datos predeterminada.
  • BACKUP_SCHEDULE_ID: ID de una programación de copias de seguridad. Puedes ver el ID de cada programación de copias de seguridad cuando muestras todas las programaciones de copias de seguridad.

Ten en cuenta que, al eliminar una programación de copias de seguridad, no se eliminarán las copias de seguridad que ya se hayan creado con esta programación. Puedes esperar a que caduquen una vez que haya transcurrido el periodo de conservación o eliminar una copia de seguridad manualmente.

Administrar copias de seguridad

Mostrar copias de seguridad

Para ver una lista de las copias de seguridad disponibles, utiliza uno de los siguientes métodos:

Google Cloud consola
  1. En la Google Cloud consola, ve a la página Bases de datos.

    Ir a Bases de datos

  2. En la lista de bases de datos, busque la fila de la base de datos. En la columna Copias de seguridad programadas, haz clic en Ver copias de seguridad o en Editar configuración, según si hay una programación de copias de seguridad.
  3. Haz clic en Editar para editar la configuración de recuperación ante desastres.
  4. Edita los ajustes de la programación de copias de seguridad y haz clic en Guardar.
gcloud
Usa el comando gcloud firestore backups list:
gcloud firestore backups list \
--format="table(name, database, state)"
La marca --format="table(name, database, state)" da formato a la salida para que sea más legible. Para mostrar 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)"
Sustituye LOCATION por el nombre de una ubicación del modo Datastore.

Describir una copia de seguridad

Para ver los detalles de una copia de seguridad, utiliza uno de los siguientes métodos:

Google Cloud consola
  1. En la Google Cloud consola, ve a la página Bases de datos.

    Ir a Bases de datos

  2. En la lista de bases de datos, busque la fila de la base de datos. En la columna Copias de seguridad programadas, haz clic en Ver copias de seguridad o en Editar configuración, según si hay una programación de copias de seguridad.
  3. Se abrirá la página Recuperación tras desastres. En esta página se describen las programaciones de copias de seguridad y se enumeran las copias de seguridad disponibles.
gcloud
Usa el comando gcloud firestore backups describe:
gcloud firestore backups describe \
--location=LOCATION \
--backup=BACKUP_ID
Sustituye lo siguiente:

Eliminar copia de seguridad

Para eliminar una copia de seguridad, utiliza uno de los siguientes métodos.

Google Cloud consola
  1. En la Google Cloud consola, ve a la página Bases de datos.

    Ir a Bases de datos

  2. En la lista de bases de datos, busque la fila de la base de datos. En la columna Copias de seguridad programadas, haz clic en Ver copias de seguridad o en Editar configuración, según si hay una programación de copias de seguridad. Se abrirá la página Recuperación tras desastres. En esta página se describen las programaciones de copias de seguridad y se enumeran las copias de seguridad disponibles.
  3. En la tabla Copias de seguridad, busca la fila de una copia de seguridad y, en la columna Acciones, haz clic en Ver más(). Haz clic en Eliminar.
  4. Confirma la acción en el campo de texto y haz clic en Eliminar.
gcloud
Usa el comando gcloud firestore backups delete:
gcloud firestore backups delete \
--location=LOCATION \
--backup=BACKUP_ID
Sustituye lo siguiente:

Restaurar datos a partir de una copia de seguridad de una base de datos

Una operación de restauración escribe los datos de una copia de seguridad en una nueva base de datos en modo Datastore.

Para iniciar una operación de restauración, utilice uno de los siguientes métodos:

Google Cloud consola
  1. En la Google Cloud consola, ve a la página Bases de datos.

    Ir a Bases de datos

  2. En la lista de bases de datos, busque la fila de la base de datos. En la columna Copias de seguridad programadas, haz clic en Ver copias de seguridad o en Editar configuración, según si hay una programación de copias de seguridad. Se abrirá la página Recuperación tras desastres. En esta página se describen las programaciones de copias de seguridad y se enumeran las copias de seguridad disponibles.
  3. En la tabla Copias de seguridad, busca la fila de una copia de seguridad y, en la columna Acciones, haz clic en Ver más(). Haz clic en Restaurar con Cloud Shell.
  4. Se abre el panel de Cloud Shell con un comando de gcloud CLI para restaurar la copia de seguridad seleccionada. Sustituye ID_OF_NEW_DATABASE por un ID de la base de datos y ejecuta el comando.

    Al ejecutar el comando, se devuelve una respuesta con más información sobre la operación. La base de datos aparecerá pronto en tu lista de bases de datos. La operación de restauración tardará un tiempo y debe completarse antes de que se pueda acceder a la base de datos.

gcloud
Usa el comando gcloud firestore databases restore:
gcloud firestore databases restore \
--source-backup=projects/PROJECT_ID/locations/LOCATION/backups/BACKUP_ID \
--destination-database='DATABASE_ID \
--tags=[KEY=VALUE]'
Sustituye lo siguiente:
  • PROJECT_ID: tu ID de 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. Puedes ver el ID de cada copia de seguridad cuando muestres todas las copias de seguridad.
  • DATABASE_ID: ID de la nueva base de datos. No puedes usar un ID de base de datos que ya esté en uso.
  • [KEY=VALUE]: lista opcional de pares de etiquetas CLAVE=VALOR que se van a vincular. Por ejemplo:
    • --tags=123/environment=production,123/costCenter=marketing
    • --tags=tagKeys/333=tagValues/444
El modo de la base de datos coincidirá con el de la copia de seguridad. El resultado incluirá los componentes 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 de la restauración hasta el momento, y un operationState que especifica el estado general de la restauración. Para volver a obtener esta información, usa gcloud firestore operations list:
gcloud firestore operations list --database=DATABASE_ID
o bien, usando el campo name de la salida descrita anteriormente, con gcloud firestore operations describe:
gcloud firestore operations describe OPERATION_NAME