Пользователи тарифного плана Blaze могут настроить свою Firebase Realtime Database для автоматического резервного копирования. Это функция самообслуживания, которая позволяет ежедневно создавать резервные копии данных и правил приложения базы данных в формате JSON в контейнере Cloud Storage .
Настраивать
Чтобы начать работу, перейдите на вкладку «Резервные копии» в разделе «База данных» консоли Firebase , и мастер поможет вам настроить автоматическое резервное копирование.
Чтобы сэкономить на хранении, мы по умолчанию включаем сжатие Gzip , и вы можете включить 30-дневную политику жизненного цикла для своего контейнера, чтобы резервные копии старше 30 дней автоматически удалялись.
Вы можете просматривать статус и активность резервного копирования непосредственно в консоли Firebase , где также можно запустить резервное копирование вручную. Это может быть полезно для создания снимков в определённые временные интервалы или в качестве меры безопасности перед внесением каких-либо изменений в код.
После настройки будет создан новый контейнер Cloud Storage с разрешением WRITER для Firebase. Не храните в этом контейнере данные, к которым Firebase не имеет доступа. У Firebase не будет дополнительного доступа к другим контейнерам Cloud Storage или любым другим областям Google Cloud .
Восстановление из резервных копий
Чтобы восстановить Firebase из резервной копии, сначала загрузите файл из Cloud Storage на локальный диск. Это можно сделать, щёлкнув по имени файла в разделе действий резервного копирования или через интерфейс контейнера Cloud Storage . Если файл сжат Gzip, сначала распакуйте его.
Импортировать данные можно двумя способами:
Способ 1: Нажмите кнопку «Импорт JSON» в разделе «Данные» вашей базы данных и выберите JSON-файл данных приложения.
Способ 2: Вы также можете выполнить запрос CURL из командной строки.
Сначала извлеките секрет из вашей Firebase, который можно получить, посетив страницу настроек базы данных .
Затем введите в терминал следующее, заменив поля DATABASE_NAME
и SECRET
собственными значениями:
curl 'https://<DATABASE_NAME>.firebaseio.com/.json?auth=<SECRET>&print=silent' -X PUT -d @<DATABASE_NAME>.json
Если у вас возникли проблемы с восстановлением резервной копии очень большой базы данных, обратитесь в нашу службу поддержки .
Планирование
Резервное копирование вашей базы данных назначается на определённый час каждый день, что обеспечивает равномерную нагрузку и максимальную доступность для всех клиентов, которым требуется резервное копирование. Это запланированное резервное копирование будет выполняться независимо от того, делаете ли вы какие-либо резервные копии вручную в течение дня.
Именование файлов
Файлы, переданные в ваш контейнер 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, чтобы сэкономить на хранении и ускорить передачу данных. Размер сжатого файла зависит от характеристик вашей базы данных, но обычно размер базы данных может уменьшиться до ⅓ от исходного размера, что позволяет сэкономить на хранении и сократить время загрузки резервных копий.
Чтобы распаковать сжатые Gzip файлы JSON, выполните команду командной строки, используя двоичный файл gunzip
, который поставляется по умолчанию для OS-X и большинства дистрибутивов Linux.
gunzip <DATABASE_NAME>.json.gz # Will unzip to <DATABASE_NAME>.json
Жизненный цикл хранилища 30 дней
Мы предлагаем простой в использовании переключатель конфигурации, который включает 30-дневную политику жизненного цикла объектов по умолчанию для вашего контейнера Cloud Storage . При включении этой политики файлы в контейнере будут автоматически удаляться через 30 дней. Это помогает сократить количество ненужных старых резервных копий, экономя на хранении и поддерживая чистоту каталога контейнера. Если вы поместите другие файлы в контейнер Automated Backups, они также будут удалены с применением той же политики.
Расходы
Функцию резервного копирования можно включить для проектов на тарифном плане Blaze бесплатно. Однако за файлы резервных копий, помещенные в контейнер Cloud Storage будет взиматься стандартная плата . Вы можете включить сжатие Gzip и 30-дневный жизненный цикл хранения, чтобы снизить расходы на хранение.