Выполните восстановление на месте

Относится к версиям Cloud Firestore Standard и Cloud Firestore Enterprise.

На этой странице описывается, как восстановить данные из резервной копии в базу данных с тем же именем, что и у исходной базы данных. Перед прочтением этой страницы вам следует ознакомиться с разделом Резервное копирование и восстановление данных .

Восстановление на месте

Восстановление на месте позволяет восстановить базу данных из резервной копии в исходную базу данных, создавшую резервную копию, при этом исходная база данных всё ещё существует. Восстановление на месте помогает избежать перенаправления трафика или создания базы данных с другим именем.

Операция восстановления должна использовать целевую базу данных, которая ещё не существует. Однако вы можете смоделировать восстановление на месте, удалив исходную базу данных и выполнив восстановление из резервной копии в новую базу данных с тем же именем, что и у исходной.

Выполнить восстановление на месте

Чтобы выполнить восстановление на месте, выполните следующие действия:

  1. Определите резервную копию, которую следует использовать для операции восстановления.
  2. Удалить существующую базу данных.
  3. Используйте резервную копию и идентификатор удаленной базы данных для завершения операции восстановления.

Прежде чем начать

Перед началом процесса восстановления на месте мы рекомендуем выполнить следующие шаги:

  1. Экспортируйте данные из базы данных, которую вы собираетесь удалить.

    Если вам необходимо восстановить удалённую базу данных, импортируйте данные из операции экспорта. Чтобы восстановить удалённую базу данных с тем же идентификатором, необходимо дождаться завершения всех запущенных операций восстановления, а затем:

    1. Удалите существующую базу данных с идентификатором базы данных и подождите не менее 5 минут.
    2. Создайте новую базу данных с идентификатором базы данных
    3. Начать импортную операцию
  2. Получите и скопируйте конфигурацию индекса вашей базы данных. Операции экспорта не сохраняют определения индексов. Используйте конфигурацию индекса для повторного создания индексов после завершения операции восстановления на месте. Для получения конфигурации индекса вашей базы данных используйте следующие команды:

    • Используйте gcloud firestore indexes composite list для получения списка составных индексов:

      gcloud firestore indexes composite list --database=DATABASE_ID
      

      Замените DATABASE_ID на идентификатор вашей базы данных.

    • Используйте gcloud firestore indexes fields list для получения списка исключений индексов с одним полем (встроенным).

      gcloud firestore indexes fields list --database=DATABASE_ID
      

Выполнить восстановление на месте

Выполните следующие шаги для выполнения операции восстановления на месте. Этот процесс требует простоя с момента удаления базы данных до завершения операции восстановления.

После начала операции восстановления её невозможно отменить, необходимо дождаться её завершения. Операция восстановления немедленно занимает идентификатор базы данных, использованный в ней.

  1. Используйте команду gcloud firestore backups list , чтобы определить резервную копию, используемую для восстановления, и запишите имя ресурса. Имя ресурса имеет следующий формат:

        projects/PROJECT_ID/locations/LOCATION/backups/BACKUP_ID
    
  2. Используйте команду gcloud firestore databases delete для удаления существующей базы данных:

        gcloud firestore databases delete --database='DATABASE_ID'
    

    Замените DATABASE_ID на идентификатор базы данных.

  3. Подождите не менее 5 минут после удаления базы данных, чтобы идентификатор базы данных снова стал доступен. Запустите операцию восстановления с помощью команды gcloud firestore databases restore :

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

    Замените DATABASE_ID на идентификатор базы данных.

Что дальше?