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

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

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

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

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

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

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

  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 alpha 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 alpha firestore databases restore :

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

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

Что дальше