本頁面說明如何將備份中的資料還原至與備份來源資料庫相同名稱的資料庫。閱讀本頁面之前,請先熟悉「備份及還原資料」一文。
就地還原
就地還原可讓您在原始資料庫仍存在的情況下,將資料庫從備份還原至建立備份的來源資料庫。原地還原可避免重新路由流量,或建立名稱不同的資料庫。
還原作業必須使用不存在的目的地資料庫。不過,您可以刪除來源資料庫,然後從備份還原至與來源資料庫同名的全新資料庫,藉此模擬原地還原。
執行原地還原
如要執行原地還原作業,請按照下列步驟操作:
- 指出要用於還原作業的備份。
- 刪除現有資料庫。
- 使用已刪除資料庫的備份和資料庫 ID 來完成還原作業。
事前準備
建議您在開始就地還原程序前,先完成下列步驟:
匯出要刪除的資料庫中的資料。
如果您需要復原已刪除的資料庫,請匯入匯出作業中的資料。如要將已刪除的資料庫還原至相同的資料庫 ID,您必須等待所有執行中的還原作業完成,然後執行下列操作:
- 刪除含有資料庫 ID 的現有資料庫,並等待至少 5 分鐘
- 使用資料庫 ID 建立新的資料庫
- 開始匯入作業
擷取並複製資料庫的索引設定。匯出作業不會擷取索引定義。完成原地還原作業後,請使用索引設定重新建立索引。請使用下列指令,擷取資料庫的索引設定:
使用
gcloud firestore indexes composite list
擷取複合式索引清單:gcloud firestore indexes composite list --database=DATABASE_ID
將 DATABASE_ID 替換為資料庫的 ID。
使用
gcloud firestore indexes fields list
擷取單一欄位 (內建) 索引豁免設定清單。gcloud firestore indexes fields list --database=DATABASE_ID
執行原地還原
請完成下列步驟,執行原地還原作業。在刪除資料庫到還原作業完成之間,這項程序需要停機。
還原作業開始後,您就無法取消作業,必須等待作業完成。還原作業會立即佔用作業中使用的資料庫 ID。
使用
gcloud alpha firestore backups list
指令找出要用於還原作業的備份,並記下資源名稱。資源名稱採用下列格式:projects/PROJECT_ID/locations/LOCATION/backups/BACKUP_ID
使用
gcloud firestore databases delete
指令刪除現有資料庫:gcloud firestore databases delete --database='DATABASE_ID'
將 DATABASE_ID 替換為資料庫 ID。
刪除資料庫後,請等待至少 5 分鐘,資料庫 ID 才會再次可用。使用
gcloud alpha firestore databases restore
指令啟動還原作業:gcloud alpha firestore databases restore \ --source-backup=projects/PROJECT_ID/locations/LOCATION/backups/BACKUP_ID \ --destination-database='DATABASE_ID'
將 DATABASE_ID 替換為資料庫 ID。