Blaze計劃用戶可以設置他們的 Firebase 實時數據庫以進行自動備份,這是一種自助服務功能,可以每天將 JSON 格式的數據庫應用程序數據和規則備份到Cloud Storage存儲桶。
設置
首先,請訪問 Firebase 控制台數據庫部分中的備份選項卡,嚮導將指導您設置自動備份。
為了節省存儲成本,我們默認啟用Gzip壓縮,您可以選擇在存儲桶上啟用30 天生命週期策略,以自動刪除超過 30 天的備份。
您可以直接在 Firebase 控制台中查看狀態和備份活動,您還可以在其中啟動手動備份。這對於拍攝特定的定時快照或作為執行任何代碼更改之前的安全操作很有用。
設置完成後,將為您創建一個具有 Firebase 的WRITER 權限的新 Cloud Storage 存儲桶。您不應該將數據存儲在您不滿意 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 文件,請使用默認為 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 天生命週期以降低存儲成本。