在 Azure 受控 Redis 中匯入和匯出資料 (預覽版)
使用 Azure 受控 Redis (預覽版) 中的匯入和匯出功能作為資料管理作業。 您將數據匯入快取實例,或使用 Redis 資料庫 (RDB) 快照集從快取實例匯出數據。 快照集是使用 Azure 儲存體帳戶中的 Blob 匯入或匯出的。
- 匯出 - 您可以將 Azure 受控 Redis RDB 快照集匯出至區塊 Blob。
- 匯入 - 您可以從分頁 Blob 或區塊 Blob 匯入 Azure 受控 Redis RDB 快照。
您可以使用匯入/匯出在不同的 Azure 受控 Redis 執行個體之間移轉,或者在使用之前使用資料填入快取。 您也可以從舊版 Azure Cache for Redis 執行個體匯出資料,將資料移轉至 Azure 受控 Redis 執行個體。
本文提供使用 Azure 受控 Redis 匯入和匯出數據的指南,並提供常見問題的解答。
可用性範圍
層 | 記憶體最佳化、平衡、計算最佳化 | 快閃記憶體最佳化 |
---|---|---|
可用的 | Yes | Yes |
相容性
- 資料會匯出為 .gz 區塊 Blob。
- 執行 Redis 7.2 的執行個體支援 RDB 11 及以下版本。
- 從較新版本的 Redis (例如 Redis 7.2) 匯出的備份無法匯入至舊版 Redis (例如 Redis 6.0) 中
- 來自進階層 Azure Cache for Redis 執行個體的 RDB 檔案可以匯入至 Azure 受控 Redis,反之則不然。
- 您可以從企業層或企業快閃層 Azure Cache for Redis 執行個體匯入 RDB 檔案至 Azure 受控 Redis。 如果企業層快取執行相同的 Redis 版本 (例如 Redis 7.2),則來自 Azure 受控 Redis 的 RDB 檔案可以匯回這些層級
Import
使用匯入來從任何雲端或環境中執行的 Redis 伺服器 (包含在 Linux、Windows 上執行的 Redis,或任何雲端提供者,例如 Amazon Web Services 等) 引入 Redis 相容 RDB 檔案。 匯入資料是使用預先填入資料建立快取的輕鬆方式。 在匯入程序中,Azure 受控 Redis 會將 RDB 檔從 Azure 儲存體載入至記憶體中,然後將密鑰插入快取。
注意
在開始匯入作業之前,請確保將 Redis 資料庫 (RDB) 檔案上傳至 Azure 儲存體中的分頁或區塊 Blob 中,該儲存體與 Azure 受控 Redis 執行個體位於同一區域和訂用帳戶中。 如果您使用受控識別進行驗證,儲存體帳戶可以位於不同的訂用帳戶中。 如需詳細資訊,請參閱 開始使用 Azure Blob 儲存體。 如果使用 Azure Cache for Redis 匯出功能匯出 RDB 檔,則 RDB 檔會儲存於區塊 Blob 中且可供匯入。
若要匯入一或多個匯出的快取 Blob,請瀏覽至 Azure 入口網站中的快取,然後自 [資源功能表] 選取 [匯入資料]。 在工作窗格中,您會看到 [選擇 Blob],其中可以找到 RDB 檔案。
選取 [選擇 Blob],然後選取包含所要匯入資料的儲存體帳戶。
選取包含所要匯入資料的容器。
選取 Blob 名稱左側的區域以選取一或多個要匯出的 Blob,然後按一下 [選取]。
選取 [匯入] 開始匯入程序。
重要
快取用戶端無法在匯入程序期間存取快取,而且在快取中的所有現有資料都會刪除。
您可以遵循 Azure 入口網站的通知,或檢視活動記錄中的事件來監視匯入作業的進度。
重要
Azure 受控 Redis 中尚未提供活動記錄支援。
Export
匯出可讓您匯出儲存在 Azure 受控 Redis 中的資料。 您可以使用此功能將資料從一個 Azure 受控 Redis 執行個體移動到另一個執行個體或另一個 Redis 伺服器。 在匯出程序中,裝載 Azure 受控 Redis 伺服器執行個體的 VM 會建立暫存檔案。 接著,將檔案上傳至所選的儲存體帳戶。 當匯出作業完成時的狀態為成功或失敗時,都會刪除暫存檔案。
若要將快取的目前內容匯出至儲存體,請瀏覽至 Azure 入口網站中的快取,然後自 [資源功能表] 選取 [匯出資料]。 您會在工作窗格中看到 [選擇儲存體容器]。
選取 [選擇儲存體容器] 並顯示可用儲存體帳戶的清單。 選取所要的儲存體帳戶。 該儲存體帳戶必須與您的快取位於相同區域。 如果您使用受控識別進行驗證,儲存體帳戶可以位於不同的訂用帳戶中。 否則,儲存體帳戶必須與您的快取位於相同的訂用帳戶中。
選擇所要保留匯出的儲存體容器,然後選擇 [選取]。 若要使用新的容器,請先選取 [新增容器] 加以新增,然後自清單中選取容器。
輸入 [Blob 名稱前置詞],然後選取 [匯出] 開始匯出程序。 Blob 名稱前置詞可用來做為此匯出作業所產生之檔案名稱的前置詞。
您可以遵循 Azure 入口網站的通知,或檢視稽核記錄檔中的事件來監視匯出作業的進度。
在匯出程序期間快取隨時可供使用。
匯入/匯出常見問題集
本節包含匯入/匯出功能的常見問題集。
- 哪些層支援匯入/匯出?
- 我是否可以從任何 Redis 伺服器匯入資料?
- 我可以匯入哪些 RDB 版本?
- 在匯入/匯出作業期間,是否可以使用我的快取?
- 匯入/匯出和 Redis 永續性有何不同?
- 我可以使用 PowerShell、CLI 或其他管理用戶端自動化匯入/匯出嗎?
- 我在匯入/匯出作業期間收到逾時錯誤。 這代表什麼?
- 我將資料匯出至 Azure Blob 儲存體時收到錯誤。 發生什麼事?
- 如果已在我的儲存體帳戶上啟用防火牆,該怎麼辦?
- 我是否可以在與快取不同的訂用帳戶中,從儲存體帳戶匯入或匯出資料?
- 哪些權限必須授與儲存體帳戶容器共用存取簽章 (SAS) 權杖,才能允許匯出?
哪些層支援匯入/匯出?
匯入和匯出功能可在 Azure 受控 Redis 的所有層級中使用。
我是否可以從任何 Redis 伺服器匯入資料?
可以,您可以匯入從 Azure 受控 Redis 執行個體或從任何雲端或環境中執行的任何 Redis 伺服器匯出資料。 環境包括 Linux、Windows 或雲端提供者 (例如 Amazon Web Services)。 若要匯入此資料,請將 RDB 檔從想要使用的 Redis 伺服器上傳至 Azure 儲存體帳戶中的分頁或區塊 Blob。 然後,將其匯入至您的 Azure 受控 Redis 執行個體。
例如,您可能要:
從您的生產快取匯出資料。
然後,將其匯入至快取,作為預備環境進行測試或移轉的一部分。
重要
若要在使用分頁 blob 時,成功匯入從 Azure 受控 Redis 以外的 Redis 伺服器所匯出的資料,分頁 Blob 大小必與 512 位元組界限對齊。 如需執行任何所需的位元組填補的範例程式碼,請參閱範例分頁 Blob 上傳 \(英文\)。
我可以匯入哪些 RDB 版本?
如需與匯入搭配使用的受支援 RDB 版本的詳細資訊,請參閱相容性一節。
在匯入/匯出作業期間,是否可以使用我的快取?
- 匯出 - 快取持續可供使用,而且您可以繼續在匯出作業期間使用快取。
- 匯入 - 匯入作業啟動時會無法使用快取,當匯入作業完成時,快取即可供使用。
匯入/匯出和 Redis 永續性有何不同?
Azure 受控 Redis 持續性功能主要是一項資料持續性功能。 相反地,「匯入/匯出」功能是設計為一種定期建立資料備份以進行時間點復原的方法。
設定「持續性」時,您的快取會根據可設定的備份頻率,將資料的快照集保存至磁碟。 使用者無法存取此持續性檔案。 如果發生同時停用主要和複本快取的災難性事件,則會使用最新的快照集自動還原快取資料。
資料持續性是專為災害復原而設計。 其並非旨在作為時間點復原機制。
如果您想要定期建立資料備份以進行時間點復原,我們建議您使用「匯入/匯出」功能。 如需詳細資訊,請參閱如何為 Azure 受控 Redis 設定資料持續性。
我可以使用 PowerShell、CLI 或其他管理用戶端自動化匯入/匯出嗎?
可以,請參閱下列指示:
- 如何匯入 Redis 資料和匯出 Redis 資料的 PowerShell 指示。
- 如何匯入 Redis 資料和匯出 Redis 資料的 Azure CLI 指示
我在匯入/匯出作業期間收到逾時錯誤。 這代表什麼?
如果您在開始作業之前仍在匯入資料或匯出資料超過 15 分鐘,則會收到錯誤,其中包含類似於以下範例的錯誤訊息:
The request to import data into cache 'contoso55' failed with status 'error' and error 'One of the SAS URIs provided could not be used for the following reason: The SAS token end time (se) must be at least 1 hour from now and the start time (st), if given, must be at least 15 minutes in the past.
若要解決此錯誤,請在經過 15 分鐘之前開始匯入或匯出作業。
我將資料匯出至 Azure Blob 儲存體時收到錯誤。 發生什麼事?
匯出僅適用於儲存為區塊 Blob 的 RDB 檔案。 目前不支援其他 Blob 類型。 如需詳細資訊,請參閱 Azure 儲存體帳戶概觀。 如果您使用存取金鑰來驗證儲存體帳戶,儲存體帳戶上的防火牆例外狀況通常會造成匯入/匯出程式失敗。
如果已在我的儲存體帳戶上啟用防火牆,該怎麼辦?
您必須在記憶體帳戶設定中檢查 [允許受信任服務清單中的 Azure 服務存取此記憶體帳戶]。 然後,使用受控識別 (系統或使用者指派),並為該物件識別碼佈建儲存體 Blob 資料參與者 RBAC 角色。
如需詳細資訊,請參閱儲存體帳戶的受控識別 - Azure Cache for Redis
是否可以在與我快取不同的訂用帳戶中,從儲存體帳戶匯入或匯出資料?
您可以從與快取不同的訂用帳戶中的儲存體帳戶匯入和匯出資料,但必須使用受控識別作為驗證方法。 設定匯入或匯出時,您必須選取保存儲存體帳戶的所選訂用帳戶。
哪些權限必須授與儲存體帳戶容器共用存取簽章 (SAS) 權杖,才能允許匯出?
若要成功匯出至 Azure 儲存體帳戶,共用存取簽章 (SAS) 權杖必須具有以下權限:
read
add
create
write
delete
tag
move