Realizar una operación de restauración in situ

En esta página se describe cómo restaurar los datos de una copia de seguridad en una base de datos con el mismo nombre que la base de datos de origen de la copia de seguridad. Antes de leer esta página, debes familiarizarte con el artículo Crear copias de seguridad y restaurar datos.

Restauración in situ

Una restauración in situ te permite restaurar una base de datos a partir de una copia de seguridad en la base de datos de origen que creó la copia de seguridad mientras la base de datos original sigue existiendo. Una restauración in situ te ayuda a evitar que se redirija el tráfico o que se cree una base de datos con otro nombre.

En una operación de restauración, se debe usar una base de datos de destino que aún no exista. Sin embargo, puedes simular una restauración in situ eliminando la base de datos de origen y, a continuación, restaurando una copia de seguridad en una base de datos nueva con el mismo nombre que la base de datos de origen.

Realizar una restauración in situ

Para realizar una restauración in situ, sigue estos pasos:

  1. Identifica la copia de seguridad que quieres usar para la operación de restauración.
  2. Elimina la base de datos.
  3. Usa la copia de seguridad y el ID de la base de datos eliminada para completar la operación de restauración.

Antes de empezar

Te recomendamos que sigas estos pasos antes de iniciar el proceso de restauración in situ:

  1. Exporta los datos de la base de datos que vas a eliminar.

    Si necesitas recuperar la base de datos eliminada, importa los datos de la operación de exportación. Para recuperar la base de datos eliminada con el mismo ID, debes esperar a que se completen las operaciones de restauración en curso y, a continuación, hacer lo siguiente:

    1. Elimina la base de datos con el ID de la base de datos y espera al menos 5 minutos.
    2. Crea una base de datos con el ID de base de datos
    3. Iniciar una operación de importación
  2. Recupera y copia la configuración del índice de tu base de datos. Las operaciones de exportación no capturan definiciones de índices. Usa la configuración de índice para volver a crear los índices después de completar la operación de restauración in situ. Usa los siguientes comandos para obtener la configuración de índice de tu base de datos:

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

      gcloud firestore indexes composite list --database=DATABASE_ID
      

      Sustituye DATABASE_ID por el ID de tu base de datos.

    • Usa gcloud firestore indexes fields list para obtener una lista de exenciones de índices de un solo campo (integrados).

      gcloud firestore indexes fields list --database=DATABASE_ID
      

Realizar una restauración in situ

Sigue estos pasos para realizar una operación de restauración in situ. Este proceso requiere un tiempo de inactividad entre el momento en que eliminas la base de datos y cuando se completa la operación de restauración.

Una vez que se inicia una operación de restauración, no se puede cancelar y debes esperar a que se complete. La operación de restauración ocupa inmediatamente el ID de la base de datos utilizado en la operación.

  1. Usa el comando gcloud firestore backups list para identificar la copia de seguridad que quieres usar en la operación de restauración y anota el nombre del recurso. El nombre del recurso tiene el siguiente formato:

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

        gcloud firestore databases delete --database='DATABASE_ID'
    

    Sustituye DATABASE_ID por el ID de la base de datos.

  3. Espera al menos 5 minutos después de eliminar la base de datos para que el ID de la base de datos vuelva a estar disponible. Inicia una operación de restauración 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'
    

    Sustituye DATABASE_ID por el ID de la base de datos.

Siguientes pasos