Azure Cosmos DB 中的定期備份和還原
適用於:NoSQL MongoDB Cassandra Gremlin 資料表
Azure Cosmos DB 會自動地定期備份您的資料。 自動備份的進行不會影響資料庫作業的效能或可用性。 所有備份會儲存在另外的儲存體服務中,而且系統會全域複寫這些備份,以便為區域性災害提供復原功能。 有了 Azure Cosmos DB,不只您的資料,還有資料的備份都一併具有高度備援性,可針對區域性災害進行復原。
Azure Cosmos DB 如何執行資料備份
下列步驟顯示 Azure Cosmos DB 如何執行資料備份:
Azure Cosmos DB 會每隔 4 小時 (在任何時間點) 自動建立資料庫的完整備份一次,而且預設只會儲存最新的兩個備份。 如果預設間隔無法滿足您的工作負載,則您可以從 Azure 入口網站變更備份間隔和保留期間。 您可以在 Azure Cosmos DB 帳戶建立期間或之後變更備份設定。 如果刪除容器或資料庫,則 Azure Cosmos DB 會將所給定佈建輸送量容器或共用輸送量資料庫的現有快照集保留 30 天。 如果在資料庫層級佈建輸送量,則整個資料庫範圍都會進行備份和還原流程。
Azure Cosmos DB 會將這些備份儲存至 Azure Blob 儲存體,而實際資料則位於 Azure Cosmos DB 本機內。
為了保證低延遲,系統會將備份的快照集儲存至 Azure Blob 儲存體,而此儲存體的所在區域與目前寫入區域 (如果您有多區域寫入設定,則為其中「一個」寫入區域) 相同。 為了從區域性災害中復原,系統會再透過異地備援儲存體 (GRS),將 Azure Blob 儲存體中的每個備份資料快照集複寫到另一個區域。 至於會將備份複寫到哪個區域,則取決於來源區域以及與來源區域相關聯的區域配對。 若要深入了解,請參閱 Azure 區域的異地備援配對清單一文。 您無法直接存取此備份。 在您透過支援要求提出要求時,Azure Cosmos DB 小組會還原您的備份。
下圖顯示三個主要實體分割區都在美國西部的 Azure Cosmos DB 容器。 此容器會備份至美國西部的遠端 Azure Blob 儲存體帳戶,然後再複寫至美國東部:
備份的進行不會影響應用程式的效能或可用性。 Azure Cosmos DB 會在背景中執行資料備份,既不會取用任何額外佈建的輸送量 (RU),也不會影響資料庫的效能和可用性。
使用定期備份模式時,備份只會在 Azure Cosmos DB 帳戶的寫入區域中進行。 還原動作一律會將資料還原到位於來源帳戶寫入區域中的新帳戶。
還原至新帳戶的內容為何?
- 您可以選擇還原已佈建的輸送量容器、共用輸送量資料庫或整個帳戶的任何組合。
- 還原動作會將所有資料及其索引屬性還原到新的帳戶。
- 還原的持續時間將取決於需要還原的資料量。
- 新還原資料庫帳戶的一致性設定將會與來源資料庫帳戶的一致性設定相同。
哪些項目不會還原?
下列設定不會在時間點復原之後還原。
- 無法還原共用輸送量資料庫下的一部分容器。 整個資料庫可以作為一個整體進行還原。
- 資料庫帳戶金鑰。 還原的帳戶會使用新的資料庫帳戶金鑰產生。
- 防火牆、VNET、資料平面 RBAC 或私人端點設定。
- 區域。 還原的帳戶只會是單一區域帳戶,也就是來源帳戶的寫入區域。
- 預存程序、觸發程序、UDF。
- 角色型存取控制指派。 必須重新指派這些項目。
- 因為 TTL 過期而刪除的文件。
- 啟用 synapse 連結時的分析資料。
- 具體化檢視
還原完成之後,您可以將這其中的部分設定新增至還原的帳戶。
使用 Azure Synapse Link 進行 Azure Cosmos DB 備份
若為已啟用 Azure Synapse Link 的帳戶,則備份和還原不包括分析存放區資料。 啟用 Azure Synapse Link 時,Azure Cosmos DB 會持續以排程備份間隔,自動在交易存放區中備份資料。 目前不支援在分析存放區自動備份和還原您的資料。
了解備份的成本
系統會提供兩個免費的備份,並根據備份儲存體定價中所述的備份儲存體區域型定價來收取額外備份的費用。
例如,假設備份保留期設定為 [240 小時] (或 [10 天]),而備份間隔設定為 [24 小時]。 此設定表示備份資料有 10 個複本。 如果您在 Azure 美國西部區域中有 1 TB 的資料,則給定月份的備份儲存體成本會是:0.12 * 1000 * 8
管理保留或還原的必要權限
允許屬於角色 CosmosdbBackupOperator、擁有者或參與者的主體要求還原或變更保留期間。
在 Azure Cosmos DB 中手動管理定期備份
使用 Azure Cosmos DB API for NoSQL 帳戶時,您也可以使用下列其中一個方式來維護您自己的備份:
Azure Data Factory
使用 Azure Data Factory 將資料定期移至所選擇的儲存體解決方案。
Azure Cosmos DB 變更摘要
使用 Azure Cosmos DB 變更摘要,來定期讀取完整備份或增量變更的資料,並將資料儲存至您自己的儲存體。