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

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

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

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

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

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

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

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

  1. Определите резервную копию, которую следует использовать для операции восстановления.
  2. Удалить существующую базу данных.
  3. Используйте резервную копию и идентификатор удаленной базы данных для завершения операции восстановления.
Внимание: Если ваше приложение использует клиентскую библиотеку Cloud Firestore в нативном режиме, а ваши клиенты используют автономный кэш, восстановление на месте может привести к сбросу записей в восстановленную базу данных вместо их удаления. Такая ситуация может возникнуть, если клиент, подключенный к удаленной базе данных, отключается, и, находясь в автономном режиме, кэш накапливает записи во время восстановления на месте.

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

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

Получите и скопируйте конфигурацию индекса вашей базы данных. Используйте её для повторного создания индексов после завершения операции восстановления на месте. Для получения конфигурации индекса вашей базы данных используйте следующие команды:

  • Используйте 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 на идентификатор базы данных.

Что дальше?