Автоматическое резервное копирование

Пользователи тарифного плана Blaze могут настроить Firebase Realtime Database для автоматического резервного копирования. Эта функция позволяет ежедневно создавать резервные копии данных приложения Database и Security Rules в формате JSON в сегменте Cloud Storage.

Настройка

  1. В консоли Firebase выберите Databases & Storage (Базы данных и хранилище) > Realtime Database (База данных в реальном времени).

  2. На вкладке Резервные копии настройте автоматическое резервное копирование.

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

Вы можете посмотреть статус и действия по резервному копированию в консоли Firebase, а также запустить резервное копирование вручную. Это может быть полезно, если вам нужно сделать снимок в определенный момент времени или перед внесением изменений в код.

После настройки для вас будет создан новый сегмент Cloud Storage с разрешением на запись для Firebase. Не храните в этом сегменте данные, к которым вы не хотите предоставлять доступ Firebase. У Firebase не будет дополнительного доступа к другим сегментам Cloud Storage или другим областям Google Cloud.

Восстановление из резервных копий

Чтобы восстановить Firebase из резервной копии, сначала скачайте файл из Cloud Storage на локальный диск. Для этого нажмите на название файла в разделе резервного копирования или в интерфейсе сегмента Cloud Storage. Если файл сжат с помощью Gzip, сначала распакуйте его.

Импортировать данные можно двумя способами:

  • Вариант 1. Используйте консоль Firebase.

    1. Перейдите в раздел Databases & Storage (Базы данных и хранилище) > Realtime Database (База данных в реальном времени) > вкладка Data (Данные).

    2. Нажмите Импортировать JSON и выберите JSON-файл с данными приложения.

  • Вариант 2. Отправьте запрос CURL из командной строки.

    1. Получите секретный ключ из Firebase. Для этого перейдите в раздел Databases & Storage (Базы данных и хранилище) > Realtime Database (База данных в реальном времени) > Settings (Настройки).

    2. Введите в терминале следующую команду, заменив поля DATABASE_NAME и SECRET собственными значениями:

      curl 'https://<DATABASE_NAME>.firebaseio.com/.json?auth=<SECRET>&print=silent' -X PUT -d @<DATABASE_NAME>.json
      

Если у вас возникли проблемы с восстановлением резервной копии из очень большой базы данных, обратитесь в службу поддержки Firebase.

Планирование

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

Названия файлов

Файлы, перенесенные в сегмент Cloud Storage, будут иметь временную метку (стандарт ISO 8601) и следующие названия:

  • Данные базы данных: YYYY-MM-DDTHH:MM:SSZ_<DATABASE_NAME>_data.json
  • Правила базы данных: YYYY-MM-DDTHH:MM:SSZ_<DATABASE_NAME>_rules.json

Если включено сжатие Gzip, к названиям файлов будет добавлен суффикс .gz. Вы можете легко найти резервные копии за определенную дату или время, используя поиск по префиксу Cloud Storage.

Сжатие Gzip

По умолчанию мы сжимаем файлы резервных копий с помощью Gzip, чтобы снизить расходы на хранение и сократить время передачи. Размер сжатого файла зависит от характеристик данных в базе, но обычно он уменьшается до ⅓ от исходного размера. Это позволяет снизить расходы на хранение и сократить время загрузки резервных копий.

Чтобы распаковать JSON-файлы, сжатые с помощью Gzip, выполните команду в командной строке, используя двоичный файл gunzip, который по умолчанию поставляется для OS-X и большинства дистрибутивов Linux.

gunzip <DATABASE_NAME>.json.gz  # Will unzip to <DATABASE_NAME>.json

Хранение в течение 30 дней

Мы предлагаем простой в использовании переключатель конфигурации, который включает стандартные правила жизненного цикла объектов (30 дней) для вашего сегмента Cloud Storage. Если включить эту функцию, файлы в сегменте будут автоматически удаляться через 30 дней. Это помогает уменьшить количество ненужных старых резервных копий, сэкономить на хранении и поддерживать порядок в каталоге сегмента. Если вы поместите в сегмент автоматического резервного копирования другие файлы, они также будут удалены в соответствии с теми же правилами.

Стоимость

Функцию резервного копирования можно бесплатно включить для проектов с тарифным планом Blaze. Однако за хранение файлов резервной копии в сегменте Cloud Storage будет взиматься плата по стандартным тарифам. Чтобы снизить расходы на хранение, вы можете включить сжатие Gzip и 30-дневный жизненный цикл хранилища.