Blaze 方案使用者可以設定 Firebase Realtime Database 進行自動備份。這項自助式功能可將資料庫應用程式資料和 規則備份到 Cloud Storage 值區,備份格式為 JSON。
設定
如要開始使用,請前往 Firebase 控制台「Database」部分的「Backups」分頁標籤,然後按照精靈的指示設定自動備份。
為節省儲存空間成本,我們預設啟用 Gzip 壓縮功能,您也可以選擇在 bucket 中啟用 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 壓縮備份檔案,以節省儲存空間費用並縮短傳輸時間。壓縮後的檔案大小會因資料庫的資料特性而異,但一般資料庫可能會縮減至原始大小的 ⅓,可節省儲存空間費用,並縮短備份的檔案上傳時間。
如要解壓縮 Gzipped JSON 檔案,請使用 gunzip
二進位檔發出指令列指令。這個二進位檔預設會隨 OS-X 和大多數 Linux 發行版本一起出貨。
gunzip <DATABASE_NAME>.json.gz # Will unzip to <DATABASE_NAME>.json
設定為期 30 天的儲存空間生命週期
我們提供簡單易用的設定切換選項,可為 Cloud Storage 值區啟用預設 30 天的物件生命週期政策。啟用後,儲存空間中的檔案會在 30 天後自動刪除。這有助於減少不必要的舊備份,節省儲存空間成本,並保持儲存空間目錄乾淨。如果您將其他檔案放入自動備份值區,系統也會根據相同政策刪除這些檔案。
費用
如果專案採用 Blaze 方案,即可啟用備份功能,無須額外付費。不過,如果將備份檔案放在 Cloud Storage 值區,系統會以標準費率計費。您可以啟用 Gzip 壓縮和儲存空間 30 天生命週期,降低儲存空間費用。