Realiza un restablecimiento local

Es pertinente para las ediciones Standard y Enterprise de Cloud Firestore.

En esta página, se describe cómo restablecer datos de una copia de seguridad en una base de datos con el mismo nombre como la base de datos de origen de la copia de seguridad. Antes de leer esta página, debes familiarizarte con Cómo crear una copia de seguridad y restablecer los datos.

Restablecimiento local

El restablecimiento local te permite restablecer una base de datos desde una copia de seguridad a la base de datos de origen que creó la copia de seguridad mientras que la base de datos original aún existe. Un restablecimiento local te ayuda a evitar redirigir el tráfico o crear una base de datos con un nombre diferente.

Una operación de restablecimiento debe usar una base de datos de destino que no existe todavía. Sin embargo, puedes simular una restauración local si borras la base de datos de origen y, luego, restableces desde una copia de seguridad a una nueva base de datos con el mismo nombre que la base de datos de origen.

Realiza un restablecimiento local

Para realizar un restablecimiento local, sigue estos pasos:

  1. Identifica la copia de seguridad que se usará para la operación de restablecimiento.
  2. Borra la base de datos existente.
  3. Usa la copia de seguridad y el ID de la base de datos de la base de datos borrada para completar la operación de restablecimiento.
Precaución: Si tu app usa una biblioteca cliente de Cloud Firestore en modo nativo y tus clientes usan una caché sin conexión, un restablecimiento local podría vaciar tus operaciones de escritura a la base de datos restablecida en lugar de descartar las operaciones de escritura. Esta situación puede ocurrir si el cliente conectado a la base de datos borrada se queda sin conexión mientras la caché acumula operaciones de escritura en el momento en que realizas un restablecimiento local.

Antes de comenzar

Te recomendamos que completes los siguientes pasos antes de comenzar el proceso de restablecimiento local.

Recupera y copia la configuración de índices de tu base de datos. Usa la configuración de índices para volver a crear los índices después de completar la operación de restablecimiento local. Usa los siguientes comandos para recuperar la configuración de índices de tu base de datos:

  • Usa gcloud firestore indexes composite list para recuperar una lista de índices compuestos:

        gcloud firestore indexes composite list --database=DATABASE_ID
    

    Reemplaza DATABASE_ID por el ID de tu base de datos.

  • Usa gcloud firestore indexes fields list para recuperar una lista de exenciones de índice de campo único (integrados).

        gcloud firestore indexes fields list --database=DATABASE_ID
    

Realiza un restablecimiento local

Completa los siguientes pasos para realizar una operación de restablecimiento local. Este proceso requiere tiempo de inactividad desde que se borra la base de datos hasta que se completa la operación de restablecimiento.

Una vez que comienza una operación de restablecimiento, no puedes cancelarla y debes esperar hasta que la operación finalice. La operación de restablecimiento ocupa inmediatamente el ID de la base de datos que se usa en la operación.

  1. Usa el comando gcloud firestore backups list para identificar la copia de seguridad que se usará para la operación de restablecimiento y anota el nombre del recurso. El nombre del recurso usa el siguiente formato:

        projects/PROJECT_ID/locations/LOCATION/backups/BACKUP_ID
    
  2. Usa el comando gcloud firestore databases delete para borrar la base de datos existente:

        gcloud firestore databases delete --database='DATABASE_ID'
    

    Reemplaza DATABASE_ID por el ID de la base de datos.

  3. Espera al menos 5 minutos después de borrar la base de datos para que el ID de la base de datos vuelva a estar disponible. Inicia una operación de restablecimiento con el comando gcloud firestore databases restore:

    gcloud firestore databases restore \
    --source-backup=projects/PROJECT_ID/locations/LOCATION/backups/BACKUP_ID \
    --destination-database='DATABASE_ID'
    

    Reemplaza DATABASE_ID por el ID de la base de datos.

Próximos pasos