Share via


Azure Cosmos DB (預覽) 中的容器複製作業

適用於:NoSQL MongoDB Cassandra

您可以使用容器複製工作,在 Azure Cosmos DB 帳戶內執行離線容器複本。

如果您想要達到下列任一情節,則可能需要複製 Azure Cosmos DB 帳戶內的資料:

可以使用 Azure CLI 命令建立和管理容器複製作業。

開始使用

若要開始使用,請在 Azure 入口網站中註冊相關預覽功能。

跨 Azure Cosmos DB 帳戶的容器複製

NoSQL API

若要開始使用適用於 Azure Cosmos DB for NoSQL API 帳戶的跨帳戶離線容器複製,請在 Azure 入口網站的 [預覽功能] 中註冊 [跨帳戶離線容器複製 (NoSQL)] 預覽功能旗標。 註冊完成後,預覽對於訂用帳戶中的所有 NoSQL API 帳戶都生效。

Azure Cosmos DB 帳戶內的容器複製

NoSQL 和 Cassandra API

若要開始使用適用於 NoSQL 和 Cassandra API 帳戶的帳戶內部離線容器複製,請在 Azure 入口網站的 [預覽功能] 中註冊 [帳戶內部離線容器複製 (Cassandra 和 NoSQL)] 預覽功能旗標。 註冊完成時,預覽會對訂用帳戶中的所有 Cassandra 和 API for NoSQL 帳戶生效。

適用於 MongoDB 的 API

若要開始使用適用於 Azure Cosmos DB for MongoDB 帳戶的帳戶內部離線容器複製,請在 Azure 入口網站的 [預覽功能] 中註冊 [帳戶內部離線集合複製 (MongoDB)] 預覽功能旗標。 註冊完成後,預覽對於訂用帳戶中的所有 API for MongoDB 帳戶都生效。

複製容器資料

  1. 使用您想要使用的設定 (分割區索引鍵、輸送量細微性、要求單位、唯一索引鍵等) 來建立目標 Azure Cosmos DB 容器。
  2. 暫停應用程式執行個體或任何與其連線的用戶端,以停止來源容器上的作業。
  3. 建立容器複製作業
  4. 監視容器複製作業的進度,並等待此作業完成。
  5. 視需要適當地將應用程式或用戶端指向來源或目標容器複本,以繼續作業。

容器複製如何運作?

容器複製作業會使用來源容器的累加變更摘要記錄來執行離線資料複製。

  1. 平台會為目的地 Azure Cosmos DB 帳戶配置伺服器端計算執行個體。
  2. 當帳戶內建立一或多個容器複製作業時,就會配置這些執行個體。
  3. 容器複製作業會在這些執行個體上執行。
  4. 單一作業會隨時在所有執行個體上執行。
  5. 執行個體是由相同帳戶內執行的所有容器複製作業共用。
  6. 如果執行個體閒置超過 15 分鐘,則平台可能會將其取消配置。

注意

我們目前僅支援離線容器複製作業。 強烈建議您在開始容器複製之前停止對來源容器執行任何作業。 可能無法擷取在您開始複製作業之後於來源容器上完成的項目刪除和更新。 如果您在進行容器作業時繼續於來源容器上執行作業,則目標容器上可能會有重複或遺漏的資料。

影響容器複製作業速率的因素

容器複製作業進度的速率取決於下列因素:

  • 來源容器或資料庫輸送量設定。

  • 目標容器或資料庫輸送量設定。

    提示

    至少將目標容器輸送量設定為來源容器輸送量的兩倍。

  • 配置給 Azure Cosmos DB 帳戶以執行資料傳輸的伺服器端計算執行個體。

    重要

    預設 SKU 會為每個帳戶提供兩個 4-vCPU 16 GB 伺服器端執行個體。

限制

預覽版適用性準則

容器複製作業不適用於已啟用下列功能的帳戶。 在執行容器複製作業之前停用這些功能:

帳戶設定

未調整目的地容器中的存留時間 (TTL) 設定。 因此,如果文件尚未在來源容器中過期,則會在目的地容器中重新開始倒數。

常見問題集

容器複製作業是否有服務等級協定?

目前以最佳方式支援容器複製作業。 我們未提供任何服務等級協定 (SLA) 來保證作業完成所需的時間。

我可以在帳戶內建立多個容器複製作業嗎?

是,您可以在相同的帳戶內建立多個作業。 作業會持續執行。 您可以列出帳戶內建立的所有作業,並監視其進度。

我可以在 Azure Cosmos DB 帳戶內複製整個資料庫嗎?

您必須針對資料庫中的每個容器建立作業。

我有具有多個區域的 Azure Cosmos DB 帳戶。 容器複製作業會在哪個區域中執行?

容器複製作業會在寫入區域中執行。 在已設定多區域寫入的帳戶中,會在寫入區域清單中的其中一個區域中執行作業。

當帳戶的寫入區域變更時,容器複製作業會有什麼情況?

帳戶的寫入區域可能會因區域中斷或手動容錯移轉等罕見情況而變更。 在此情況下,帳戶內所建立的不完整容器複製作業會失敗。 您需要重新建立這些失敗的作業。 接著會在新的 (目前) 寫入區域中執行已重新建立的作業。

支援的區域

下列區域目前支援容器複製:

美洲 歐洲和非洲 亞太地區
巴西南部 法國中部 澳大利亞中部
加拿大中部 法國南部 澳大利亞中部 2
加拿大東部 德國北部 澳大利亞東部
美國中部 德國中西部 印度中部
美國中部 EUAP 北歐 日本東部
美國東部 挪威東部 南韓中部
美國東部 2 挪威西部 東南亞
美國東部 2 EUAP 瑞士北部 阿拉伯聯合大公國中部
美國中北部 瑞士西部 印度西部
美國中南部 英國南部 東亞
美國中西部 英國西部 馬來西亞南部
美國西部 西歐 日本西部
美國西部 2 以色列中部 澳大利亞東南部
不支援 南非北部 不支援

已知和常見問題

  • 錯誤 - 擁有者資源不存在。

    如果作業建立失敗,並顯示「擁有者資源不存在」錯誤 (錯誤碼 404),則尚未建立目標容器,或用來建立作業的容器名稱不符合實際的容器名稱。

    請確定先建立目標容器,再執行作業 (如概觀中所指定),並確定作業中的容器名稱符合實際的容器名稱。

    "code": "404",
    "message": "Response status code does not indicate success: NotFound (404); Substatus: 1003; ActivityId: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx; Reason: (Message: {\"Errors\":[\"Owner resource does not exist\"]
    
  • 錯誤 - 要求未經授權。

    如果要求失敗,並顯示錯誤「未經授權」 (錯誤碼 401),則可能會停用本機授權。 了解如何啟用本機授權

    容器複製作業會使用主索引鍵進行驗證。 如果停用本機授權,則作業建立會失敗。 必須啟用本機授權,容器複製作業才能運作。

    "code": "401",
    "message": " Response status code does not indicate success: Unauthorized (401); Substatus: 5202; ActivityId: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx; Reason: Local Authorization is disabled. Use an AAD token to authorize all requests."
    
  • 錯誤 - 取得作業資源時發生錯誤。

    此錯誤可能因內部伺服器問題而發生。 若要解決此問題,請在 Azure 入口網站中開啟 [新增支援要求],以連絡 Microsoft 支援服務。 針對 [問題類型],選取 [資料移轉]。 針對 [問題子類型],選取 [帳戶內部容器複製]

    "code": "500"
    "message": "Error while getting resources for job, StatusCode: 500, SubStatusCode: 0, OperationId:  xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx, ActivityId: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
    

下一步