Crear una copia de seguridad de datos y restablecerlos

En esta página, se describe cómo usar la función de copias de seguridad programadas del modo Datastore. 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.

Firestore almacena metadatos relacionados con las copias de seguridad y los programas de copias de seguridad de una base de datos. Firestore conserva estos metadatos hasta que todas las copias de seguridad de la base de datos se 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

Asegúrate de que la facturación esté habilitada para tu proyecto de Google Cloud. Obtén información sobre cómo verificar si la facturación está habilitada en un proyecto.

Funciones obligatorias

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 Firestore
  • Los siguientes roles también están disponibles, pero no se pueden ver en la consola de Google Cloud. Usa 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 quieres crear una programación de copia de seguridad para una base de datos, usa el comando gcloud alpha firestore backups schedules create.

Crea un programa de copias de seguridad diarias

Para crear una programación de copia de seguridad diaria, establece la marca --recurrence en daily:

gcloud alpha 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 un valor de hasta 14 semanas (14w).

Crea una programación de copia de seguridad semanal

Para crear una programación de copia de seguridad semanal, establece la marca --recurrence en weekly:

gcloud alpha firestore backups schedules create \
--database='DATABASE_ID' \
--recurrence=weekly \
--retention=RETENTION_PERIOD \
--day-of-week=DAY

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 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 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

Enumera programaciones de copias de seguridad

Para enumerar todas las programaciones de copias de seguridad de una base de datos, usa 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'

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 el comando gcloud alpha firestore backups schedules describe:

gcloud alpha firestore backups schedules describe \
--database='DATABASE_ID' \
--backup-schedule=BACKUP_SCHEDULE_ID

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.
  • 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 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

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.
  • BACKUP_SCHEDULE_ID: El ID de una programación de copia de seguridad. Puedes ver el ID en cada programación de copia de seguridad cuando enumeras todas las programaciones de copias de seguridad.
  • RETENTION_PERIOD: Establece un valor de hasta 14 semanas (14w).

Borra una programación de copia de seguridad

Para borrar una programación de copia de seguridad, usa el comando gcloud alpha firestore backups schedules delete:

gcloud alpha firestore backups schedules delete \
--database='DATABASE_ID' \
--backup-schedule=BACKUP_SCHEDULE_ID

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.
  • 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.

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 el comando gcloud alpha firestore backups list:

gcloud alpha firestore backups list \
--format="table(name, database, state)"

La marca --format="table(name, database, state)" da formato al resultado en un formato más legible.

Para enumerar solo las copias de seguridad de una ubicación específica, usa la marca --location:

gcloud alpha firestore backups list \
--location=LOCATION \
--format="table(name, database, state)"

Reemplaza LOCATION por el nombre de una ubicación en modo Datastore.

Describe una copia de seguridad

Para ver los detalles de una copia de seguridad, usa el comando gcloud alpha firestore backups describe:

gcloud alpha firestore backups describe \
--location=LOCATION \
--backup=BACKUP_ID

Borrar copia de seguridad

Para borrar una copia de seguridad, usa el comando gcloud alpha firestore backups delete:

gcloud alpha firestore backups delete \
--location=LOCATION \
--backup=BACKUP_ID

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 nueva base de datos en modo Datastore. Para iniciar una operación de restablecimiento, 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: 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. El modo de 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 del restablecimiento hasta ahora, y un operationState que especifica el estado general del restablecimiento.

Para volver a recuperar esta información, usa gcloud firestore operations list:

gcloud firestore operations list --database=DATABASE_ID

O bien, usando el campo name del resultado descrito antes, con gcloud firestore operations describe:

gcloud firestore operations describe OPERATION_NAME