從 Azure Cosmos DB 備份要求資料還原
適用於:NoSQL MongoDB Cassandra Gremlin 桌子
如果您不小心刪除資料庫或容器,則可以提出支援票證或連絡 Azure 支援,從自動線上備份還原資料。 Azure 支援僅適用於選取的方案,例如 [標準]、[開發人員] 以及高於這些層級的方案。 Azure 支援不適用於 [基本] 方案。 若要深入了解不同的支援方案,請參閱 Azure 支援方案頁面。
若要還原特定備份快照集,Azure Cosmos DB 需要該資料在該快照集的備份週期期間為可用狀態。 要求還原之前,您應該有下列詳細資料:
- 準備好您的訂用帳戶識別碼。
- 視資料遭到意外刪除或修改的情況而定,您可能須準備其他資訊。 建議您預先準備好資料,以降低資料來回傳送時,可能對某些具時效性案例造成的損害。
- 如果整個 Azure Cosmos DB 帳戶遭到刪除,您需要提供已刪除帳戶的名稱。 如果您用已刪除帳戶的名稱建立另一個帳戶,請將此情況告知支援小組,如此才能判斷要選擇的正確帳戶。 建議您對每個已刪除的帳戶提出不同的支援票證,因為這樣可將還原狀態的混淆減到最低。
- 如果刪除一或多個資料庫,則您應該提供 Azure Cosmos DB 帳戶和 Azure Cosmos DB 資料庫名稱,並指定是否有使用相同名稱的新資料庫存在。
- 如果刪除一或多個容器,則您應該提供 Azure Cosmos DB 帳戶名稱、資料庫名稱和容器名稱。 並指出是否有使用相同名稱的容器存在。
- 如果您不小心刪除或損毀資料,則請在 8 小時內連絡 Azure 支援,這樣 Azure Cosmos DB 小組才能協助您從備份還原資料。 在建立支援要求以還原資料之前,請務必針對您的帳戶增加備份保留期到至少七天。 最好在此事件的 8 小時內增加您的保留期。 如此一來,Azure Cosmos DB 支援小組就有足夠的時間來還原您的帳戶。
除了 Azure Cosmos DB 帳戶名稱、資料庫名稱和容器名稱之外,您還應該指定要用於資料還原的時間點。 愈精確越好,如此可協助我們判斷該時間的最佳可用備份。 也請務必以 UTC 指定時間。 如果您想要還原沒有網路存取權的帳戶,請在票證中提及。
下列螢幕擷取畫面說明如何使用 Azure 入口網站,為要還原資料的容器 (集合/圖表/資料表) 建立支援要求。 提供其他詳細資料 (例如資料類型、還原目的和資料刪除時間),以協助我們優先處理此要求。
從備份還原資料的考量
在下列其中一個案例中,您可能會不小心刪除或修改資料:
刪除整個 Azure Cosmos DB 帳戶。
刪除一或多個 Azure Cosmos DB 資料庫。
刪除一或多個 Azure Cosmos DB 容器。
刪除或修改容器內的 Azure Cosmos DB 項目 (例如,文件)。 這種特定情況一般稱為資料損毀。
刪除或損毀共用供應項目資料庫或其內的容器。
Azure Cosmos DB 可以在遇到上述所有情況時還原資料。 從備份還原時,會建立新的 Azure Cosmos DB 帳戶來保存已還原的資料。 新帳戶的名稱 (若未指定) 具有此格式:<Azure_Cosmos_account_original_name>-restored1
。 如果嘗試還原多次,則最後一個數字會遞增。 您無法將資料還原至預先建立好的 Azure Cosmos DB 帳戶。
當您不小心刪除 Azure Cosmos DB 帳戶時,如果目前未使用該帳戶名稱,則可以將資料還原至相同名稱的新帳戶。 因此,建議您不要在刪除帳戶之後重新建立帳戶。 因為它不僅會防止已還原的資料使用相同的名稱,還會讓探索正確的帳戶很難還原。
當您不小心刪除 Azure Cosmos DB 資料庫時,可以還原整個資料庫,也可以只還原該資料庫內的一部分容器。 您也可以在資料庫中選取特定容器,並將它們還原至新的 Azure Cosmos DB 帳戶。
當您不小心刪除或修改容器內的一或多個項目時 (資料損毀案例),需要指定要還原到哪個時間點。 如果資料損毀,則時間十分重要。 因為容器處於運作狀態,所以備份仍在執行,因此,如果您等到超過保留期間 (預設值為八小時) 才還原,則系統將會覆寫備份。 為了防止覆寫備份,請至少將帳戶的備份保留期增加到七天。 最好是從資料損毀算起的 8 小時內增加您的保留期。
如果您不小心刪除或損毀資料,則請在 8 小時內連絡 Azure 支援,這樣 Azure Cosmos DB 小組才能協助您從備份還原資料。 如此一來,Azure Cosmos DB 支援小組就有足夠的時間來還原您的帳戶。
注意
在您還原資料之後,並不會將所有來源功能或設定都傳送至已還原的帳戶。 下列設定不會傳送至新的帳戶:
- VNET 存取控制清單
- 預存程序、觸發程序和使用者定義的函式
- 多區域設定
- 受控識別設定
如果您在資料庫層級指派輸送量,則在此案例中,系統會在整個資料庫層級 (而非個別的容器層級) 進行備份和還原程序。 在這種情況下,您無法選取要還原的一部分容器。
從還原的帳戶取得還原詳細資料
還原作業完成之後,您可能會想要知道您還原的來源帳戶詳細資料或還原時間。 您可以從 Azure 入口網站、PowerShell 或 CLI 取得這些詳細資料。
使用下列步驟從 Azure 入口網站取得還原詳細資料:
登入 Azure 入口網站,然後導覽至已還原的帳戶。
開啟 [標記] 頁面。
標記頁面應該具有標記 restoredAtTimestamp 和 restoredSourceDatabaseAccountName。 這些標記說明已用於定期還原的時間戳記和來源帳戶名稱。
還原後的動作
資料還原的主要目標是復原您意外刪除或修改的資料。 因此,建議您先檢查所復原資料的內容,以確保所含資料符合您的預期。 如果一切看起來都沒問題,則您可以將資料移轉回主要帳戶。 雖然您可以將已還原的帳戶用作新的使用中帳戶,但如果您有生產工作負載,則不建議這麼做。
還原資料之後,您會收到有關新帳戶名稱 (格式通常會是 <original-name>-restored1
) 及帳戶還原時間點的通知。 已還原的帳戶具有相同的已佈建輸送量和編製索引原則,而且位於與原始帳戶相同的區域中。 身為訂用帳戶管理員或共同管理員的使用者可以看到已還原的帳戶。
將資料移轉至原始帳戶
下列不同的方法可將資料移轉回原始帳戶:
- 使用 Azure Data Factory。
- 在 Azure Cosmos DB 中,使用變更摘要。
- 您可以撰寫自己的自訂程式碼。
建議您在移轉資料之後立即刪除容器或資料庫。 如果您未刪除已還原的資料庫或容器,則它們會產生要求單位、儲存體和輸出的成本。