自动备份

Blaze 方案用户可以设置自己的 Firebase 实时数据库以进行自动备份。这项自助式功能可让您以 JSON 格式将您的数据库应用数据和规则每天备份至一个 Google Cloud Storage 存储分区。

设置

要开始使用自动备份,请访问 Firebase 控制台中“数据库”部分的“备份”标签,向导将会引导您设置自动备份。

为节省存储费用,我们会默认启用 Gzip 压缩。您还可以选择为自己的存储分区启用 30 天生命周期政策,自动删除存在时间已超过 30 天的备份。

您可以直接在 Firebase 控制台中查看状态和备份活动;此外,您还可以在该控制台中启动手动备份。手动备份在以下情况中非常有用:在特定时间截取快照,或者在执行代码更改前作为安全措施。

设置完毕后,系统会为您新建一个具有 WRITER 权限的 Google 云端存储分区,以备份 Firebase 内容。此存储分区中不要储存您不想让 Firebase 访问的数据。Firebase 不具备访问其他 Google 云端存储分区或 Google 云端中其他任何区域的额外权限。

从备份中恢复

要从某个备份中恢复 Firebase,请先将相应备份文件从 Google 云端存储下载到本地磁盘。为此,您可以在备份活动部分或 Google 云端存储分区界面中点击文件名。如果文件经过 Gzip 压缩,请先解压缩该文件。

您可以通过以下两种方法导入您的数据:

方法 1:在数据库的“数据”部分,点击“导入 JSON”按钮,然后选择应用数据 JSON 文件。

方法 2:您也可以通过命令行发出 CURL 请求。

首先,在 Firebase 中检索密钥(可通过访问数据库设置页面获得)。

然后,将以下内容输入到您的终端,将其中的 DATABASE_NAMESECRET 字段替换成您自己的值:

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

如果您要从超大型数据库恢复备份,但是遇到问题,请与我们的支持团队联系。

时间安排

您的数据库备份会安排在每天的特定时间进行,以确保所有备份客户都能获得相同的负载和最高的可用性。不管您在一天中是否执行过手动备份,预先安排的这项备份都会照常进行。

文件命名

系统会为传输到 Google 云端存储分区的文件加盖时间戳(遵循 ISO 8601 标准)并为其采用以下命名惯例:

  • 数据库数据:YYYY-MM-DDTHH:MM:SSZ_<DATABASE_NAME>_data.json
  • 数据库规则:YYYY-MM-DDTHH:MM:SSZ_<DATABASE_NAME>_rules.json

如果启用了 Gzip,则系统会在文件名后面附加一个 .gz 后缀。您可以使用 Google 云端存储前缀搜索,轻松找到特定日期或时间的备份。

Gzip 压缩

默认情况下,我们会使用 Gzip 压缩来压缩您的备份文件,以节省存储费用并减少传输时间。压缩后的文件大小取决于您数据库的数据特征,但一般的数据库在经过压缩后,其大小可能会缩至原始大小的 ⅓,这可为您节省存储费用并减少备份上传时间。

要对经过 Gzip 压缩的 JSON 文件进行解压缩,请采用 OS-X 和大多数 Linux 发行版都默认支持的 gunzip 二进制发出命令行命令。

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

30 天存储生命周期

我们提供了一个易于使用的配置开关。您可以使用这个开关为 Google 云端存储分区启用默认 30 天的对象生命周期政策。启用后,存储分区内的文件会在 30 天后自动删除。这有助于减少不需要的旧备份,从而为您节省存储费用并让存储分区目录保持干净整洁。如果您将其他文件保存在自动备份存储分区中,这些文件也会按照这一政策规定自动删除。

费用

Blaze 客户无需支付额外费用即可启用备份功能。不过,您需要为保存在 Google 云端存储分区内的备份文件支付标准费用。您可以启用 Gzip 压缩30 天存储生命周期来降低存储费用。