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

Актуально для Cloud Firestore Standard Edition и Cloud Firestore Enterprise Edition.

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

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

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

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

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

Для выполнения восстановления на месте выполните следующие действия:

  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 на идентификатор базы данных.

Что дальше?