在 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 匯入和匯出數據的指南,並提供常見問題的解答。
可用性範圍
層 | 記憶體優化、平衡、計算優化 | Flash Optimized |
---|---|---|
可用的 | Yes | Yes |
相容性
- 數據會匯出為.gz區塊 Blob。
- 執行 Redis 7.2 的實例支援 RDB 11 版和更新版本。
- 從較新版本的 Redis 導出備份(例如 Redis 7.2)無法匯入舊版 Redis(例如 Redis 6.0)
- 來自 進階層 Azure Cache for Redis 實例的 RDB 檔案可以匯入至 Azure 受控 Redis,但反之亦然。
- 您可以從 Enterprise 或 Enterprise Flash 層 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 入口網站中的快取,然後自 [資源功能表] 選取 [匯出資料]。 您會在工作窗格中看到 [選擇儲存體容器]。
選取 [選擇儲存體容器] 並顯示可用儲存體帳戶的清單。 選取所要的儲存體帳戶。 該儲存體帳戶必須與您的快取位於相同區域。 如果您使用受控識別進行驗證,儲存體帳戶可以位於不同的訂用帳戶中。 否則,儲存體帳戶必須與您的快取位於相同的訂用帳戶中。
重要
- 匯出適用於傳統和 Resource Manager 儲存體帳戶支援的分頁 Blob。
- Azure 受控 Redis 不支持導出至 ADLS Gen2 儲存器帳戶。
- 如果您的快取資料匯出至已啟用防火牆的儲存體帳戶失敗,請參閱如果已在我的儲存體帳戶上啟用防火牆,該怎麼辦?
如需詳細資訊,請參閱 Azure 儲存體帳戶概觀。
選擇所要保留匯出的儲存體容器,然後選擇 [選取]。 若要使用新的容器,請先選取 [新增容器] 加以新增,然後自清單中選取容器。
輸入 [Blob 名稱前置詞],然後選取 [匯出] 開始匯出程序。 Blob 名稱前置詞可用來做為此匯出作業所產生之檔案名稱的前置詞。
您可以遵循 Azure 入口網站的通知,或檢視稽核記錄檔中的事件來監視匯出作業的進度。
在匯出程序期間快取隨時可供使用。
匯入/匯出常見問題集
本節包含匯入/匯出功能的常見問題集。
- 哪些層支援匯入/匯出?
- 我是否可以從任何 Redis 伺服器匯入資料?
- 我可以匯入哪些 RDB 版本?
- 在匯入/匯出作業期間,是否可以使用我的快取?
- 匯入/匯出和 Redis 永續性有何不同?
- 我可以使用 PowerShell、CLI 或其他管理用戶端自動化匯入/匯出嗎?
- 我在匯入/匯出作業期間收到逾時錯誤。 這代表什麼?
- 我將資料匯出至 Azure Blob 儲存體時收到錯誤。 發生什麼事?
- 如果已在我的儲存體帳戶上啟用防火牆,該怎麼辦?
- 我是否可以在與快取不同的訂用帳戶中,從儲存體帳戶匯入或匯出資料?
- 哪些權限必須授與儲存體帳戶容器共用存取簽章 (SAS) 權杖,才能允許匯出?
哪些層支援匯入/匯出?
匯入和導出功能可在 Azure 受控 Redis 的所有層中使用。
我是否可以從任何 Redis 伺服器匯入資料?
是,您可以匯入從 Azure 受控 Redis 實例或從任何雲端或環境中執行的任何 Redis 伺服器匯出的數據。 環境包括 Linux、Windows 或雲端提供者 (例如 Amazon Web Services)。 若要匯入此數據,請從您想要的 Redis 伺服器將 RDB 檔案上傳至 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