Blaze 方案用户可以设置自己的 Firebase Realtime Database 以执行自动备份。启用这项自助式功能后,您的数据库应用数据和规则每天都会以 JSON 格式备份至一个 Cloud Storage 存储桶。
设置
要开始使用自动备份,请访问 Firebase 控制台中“数据库”部分的“备份”标签页,向导将会引导您设置自动备份。
为节省存储费用,我们会默认启用 Gzip 压缩。您还可以选择为自己的存储桶启用 30 天生命周期政策,自动删除存在时间已超过 30 天的备份。
您可以直接在 Firebase 控制台中查看状态和备份活动,还可在该控制台中启动手动备份。如果您要在特定时间截取快照,或者想在执行代码更改前采取一定安全措施,手动备份就非常有用。
设置完毕后,系统会为您创建一个新的 Cloud Storage 存储桶,并向 Firebase 授予该存储桶的 WRITER 权限。建议不要在此存储分区中储存您不想让 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 文件进行解压缩,请使用 OS-X 和大多数 Linux 发行版默认随附的 gunzip
二进制程序,在命令行中运行以下命令。
gunzip <DATABASE_NAME>.json.gz # Will unzip to <DATABASE_NAME>.json
30 天存储生命周期
我们提供了一个易于使用的配置开关,用于为 Cloud Storage 存储桶启用默认 30 天的对象生命周期政策。您启用该政策后,存储分区内的文件会在 30 天后自动删除。这有助于减少不需要的旧备份,从而为您节省存储费用并让存储桶目录保持简洁。如果您将其他文件保存在自动备份存储桶中,这些文件也会按照这一政策自动删除。
费用
您无需支付额外费用即可为 Blaze 方案中的项目启用备份功能。不过,您需要为保存在 Cloud Storage 存储桶内的备份文件支付标准费用。您可以启用 Gzip 压缩和 30 天存储生命周期政策来降低存储费用。