適用於:SQL Server
本文協助您準備環境,以利用 Azure Arc 啟用的日誌重播服務 (LRS) 遷移將您的 SQL Server 實例轉移至 Azure 入口網站中的 Azure SQL 管理實例。
透過 LRS,你可以透過日誌運送(線上遷移)來備份與還原,將 SQL Server 資料庫遷移到 Azure SQL 管理實例:
備註
你可以 直接向產品團隊提供遷移經驗的回饋。
先決條件
要透過 Azure 入口網站將您的 SQL Server 資料庫遷移到 Azure SQL 管理實例,您需要以下先決條件:
- 有效的 Azure 訂用帳戶。 如果您沒有訂用帳戶,請建立免費帳戶。
- 受 Azure Arc 啟用的 SQL Server 受支援實例,並包含 SQL Server 版本 或更新版本的 Azure 擴充功能。 你可以透過 Azure 入口網站 或 Azure CLI 來升級擴充功能。
支援的 SQL Server 版本
使用 LRS 的遷移適用於 Windows 上所有版本的 SQL Server。 雖然支援遷移至 SQL 管理實例的通用服務層與商業關鍵服務層級,但直接遷移至商業關鍵服務層級有一些 重要限制 需要考慮。
下表列出 LRS 支援的最低 SQL Server 版本:
| SQL Server 版本 | 最低限度維修需求更新 |
|---|---|
| SQL Server 2025 (17.x) | SQL Server 2025 RTM (17.0.1000.7) |
| SQL Server 2022 (16.x) | SQL Server 2022 RTM (16.0.1000.6) |
| SQL Server 2019 (15.x) | SQL Server 2019 RTM (15.0.2000.5) |
| SQL Server 2017 (14.x) | SQL Server 2017 RTM (14.0.1000.169) |
| SQL Server 2016 (13.x) | SQL Server 2016 RTM (13.0.1400.361) |
| SQL Server 2014 (12.x) | SQL Server 2014 RTM (12.0.2000.8) |
| SQL Server 2012 (11.x) | SQL Server 2012 RTM (11.0.2100.60) |
支援的反向遷移僅限於從具有相應更新原則的 SQL 管理實例到 SQL Server 2025 和 SQL Server 2022。 你也可以透過其他工具手動逆轉遷移,例如 原生備份與還原,或 在 SSMS 中手動設定連結。
權限
本節說明透過 Azure 入口網站將 SQL Server 執行個體移轉至 SQL 受控執行個體所需的許可權。
在來源 SQL Server 執行個體上,您需要下列權限:
若要使用 LRS 移轉,您需要 SQL 受控執行個體目標的下列其中一個許可權:
- SQL 受控實例參與者 角色
- 具有下列權限的角色:
Microsoft.Sql/managedInstances/databases/*
建立記憶體帳戶
您可以使用 Azure Blob 儲存體帳戶作為 SQL Server 執行個體與 SQL 受控執行個體部署之間備份檔案的中繼儲存體。 儲存帳號必須與你的 SQL 管理實例目標在同一個 Azure 訂閱中。
建立新的儲存體帳戶並在該儲存體帳戶中建立 Blob 容器:
-
建立儲存帳號:
- 在 Azure 入口網站搜尋 儲存帳戶 ,然後選擇 建立。
- 在 基礎 標籤中,選擇你的訂閱和資源群組。 區域應該和你的 SQL 受管實例目標相同。
- 請將 偏好儲存類型 留空。
- 其餘分頁使用預設設定,並選擇 評論+建立。
- 驗證通過後,選取 [建立]。
- 在記憶體帳戶內建立 Blob 容器。
- 前往 Azure 入口中的新的儲存帳戶。
- 在 [資料儲存體] 下選取 [容器]。
- 使用 新增容器 來開啟 新容器 視窗。
- 輸入容器名稱,保留預設選項,然後選擇 建立 容器。
- (可選)如果你的 Azure 儲存裝置在防火牆後面,SQL 管理實例配置完成後,Azure Blob 儲存需要 額外設定 。
授予 Azure Blob 儲存服務的許可權
Azure Arc 與 LRS 的 SQL Server 遷移使用管理身份來認證 Azure Blob Storage。
您需要授予以下權限:
- 授權使用者存取你計劃在遷移過程中存放備份的儲存帳號。
- 授權使用者存取包含該儲存帳號的資源群組。
- 在你的 SQL 管理實例配置完成後,授予儲存帳號管理身份存取權。
授權使用者存取儲存帳號
為了在遷移過程中存取資料庫備份,請將登入 Azure 入口網站並執行遷移的使用者指派為包含備份的儲存帳戶的Storage Blob Data Reader角色。
要指派角色,請依照以下步驟操作:
在 Azure 入口網站,前往包含你儲存帳號的資源群組。
從資源功能表中選取 [訪問控制][IAM ]。
使用 + 新增 選擇 新增角色指派 ,並開啟 新增角色指派 面板。
搜尋並選擇 Storage Blob Data Reader 角色。 然後選取下一步。
使用 + Select 成員 開啟「 Select 成員 」面板,並搜尋執行遷移者的使用者帳號。 如果有多個人在遷移資料,請授權所有這些使用者取得此權限。 選擇使用者帳號,然後用 Select 儲存你的選擇。 請檢查將存取權分配給 使用者、群組或服務主體的選項。
選擇 Review + 指派 ,進入 Review + 指派 標籤,然後再選擇 Review + 指派 完成角色分配。
授權使用者存取資源群組
在遷移過程中存取資料庫備份,登入 Azure 入口網站並執行遷移的使用者,必須被指派為包含儲存帳號的資源群組中的 讀取 器角色。
要指派角色,請依照以下步驟操作:
在 Azure 入口網站,前往包含你儲存帳號的資源群組。
從資源功能表中選取 [訪問控制][IAM ]。
使用 + 新增 選擇 新增角色指派 ,並開啟 新增角色指派 面板。
搜尋並選擇 「讀者 」角色。 然後選取下一步。
使用 + Select 成員 開啟「 Select 成員 」面板,並搜尋執行遷移者的使用者帳號。 如果有多個人在遷移資料,請授權所有這些使用者取得此權限。 選擇使用者帳號,然後用 Select 儲存你的選擇。 請選擇將存取權分配給 使用者、群組或服務主體 ,然後使用 「下一 頁」繼續。
在 分配類型 標籤中,將 分配類型 設為 「活躍 」,「 分配期限 」為 永久:
選擇 Review + 指派 ,進入 Review + 指派 標籤,然後再選擇 Review + 指派 完成角色分配。
授予受管理的身分對儲存帳戶的存取權限
當您的 SQL 管理實例配置完成後,您需要將 SQL 管理實例的管理身份分配為 Storage Blob Data Reader 角色,以便在遷移過程中存取您的 Azure Blob 儲存帳號。
首先,你必須確定你的 SQL 管理實例使用哪種類型的管理身份。 若要這樣做,請遵循下列步驟:
- 在 Azure 入口網站中移至您的 [SQL 受控執行個體]。
- 在 [安全性] 下,選取 [身分識別]。
- 如果在 使用者指派的管理身份下,你看到 「找不到任何使用者指派的受管理身份」,你的 SQL 管理實例會使用預設 的系統指派管理身份。
- 如果你在 主身份 欄位看到一個項目,表示你的 SQL 管理實例使用自訂 的使用者指派管理身份。 在授權 Storage Blob Data Reader 存取儲存帳號時,請在選擇這個管理身份的步驟中記錄這個身份。
要授權存取儲存帳戶,請依照以下步驟操作:
- 請前往你打算用於遷移的 Azure 入口網站中的 Azure Blob Storage 帳號。
- 從資源功能表中選取 [訪問控制][IAM ]。
- 使用 + 新增 選擇 新增角色指派 ,並開啟 新增角色指派 面板。
- 搜尋並選擇 Storage Blob Data Reader 角色。 然後選取下一步。
- 在 「指派存取權 」下勾選 「管理身份」 選項。
- 使用 選擇成員 來開啟 「選擇成員 」面板。
- 如果你的 SQL 管理實例使用預設 的系統指派管理身份:
- 在 「受管理身份」中,選擇 SQL 管理實例。
- 搜尋並選擇你 SQL 管理實例的名稱。
- 使用 Select 來儲存你的選擇。
- 如果你的 SQL 管理實例使用 使用者指派的管理身份:
- 在 「管理身份」中,選擇 「使用者指派」的管理身份。
- 從你 SQL 管理實例的身份頁面搜尋你之前提到的主要身份名稱並選擇它。
- 使用 Select 來儲存你的選擇。
- 選擇 Review + 指派 ,進入 Review + 指派 標籤,然後再選擇 Review + 指派 完成角色分配。
一旦你至少上傳了一個完整備份到這個儲存帳號,你可以對你的 SQL 管理實例執行以下指令,以驗證它是否能存取你的 Azure Blob 儲存帳號:
RESTORE HEADERONLY
FROM URL = 'https://<mystorageaccountname>.blob.core.windows.net/<containername>/full_0_0.bak';
將備份上傳至 Blob 儲存體帳戶
當你的 blob 容器準備好,且確認 SQL 管理的實例能存取容器後,就可以開始將備份上傳到 Azure Blob Storage 帳號。 當你所有備份都上傳到你的儲存帳號時,你就可以開始遷移了。
要將備份上傳到 Azure:
考量下列最佳做法:
- 使用
COMPRESSION和CHECKSUM選項進行備份,以減少備份檔案的大小,防止遷移損壞的資料庫。 - 請分批進行備份。
- 使用平行上傳線程。
- 將最後一個備份檔案縮小到最小。
- 若要使用相同的 Azure Blob 儲存體容器來移轉多個資料庫,請將各個資料庫的所有備份檔案放在容器內的個別資料夾中。 每個資料庫資料夾均使用平面檔案結構。 不支援資料庫資料夾中的巢狀資料夾。
在 SQL Server 執行個體上建立備份
將您要遷移的資料庫設定為完整復原模式,以允許記錄備份。
-- To permit log backups, before the full database backup, modify the database to use the full recovery
USE master;
ALTER DATABASE SampleDB
SET RECOVERY FULL;
GO
如果你還沒有現有備份,那麼要手動將資料庫完整、差分並日誌備份到本地儲存,請使用以下範例 T-SQL 腳本。
CHECKSUM 並非必要專案,但建議避免移轉損毀的資料庫,以及加快還原時間。
下列範例會在本機磁碟建立完整資料庫備份:
-- Take full database backup to local disk
BACKUP DATABASE [SampleDB]
TO DISK = 'C:\BACKUP\SampleDB_full.bak'
WITH INIT, COMPRESSION, CHECKSUM;
GO
下列範例會在本機磁碟建立差異備份:
-- Take differential database backup to local disk
BACKUP DATABASE [SampleDB]
TO DISK = 'C:\BACKUP\SampleDB_diff.bak'
WITH DIFFERENTIAL, COMPRESSION, CHECKSUM;
GO
下列範例會在本機磁碟建立交易記錄備份:
-- Take transactional log backup to local disk
BACKUP LOG [SampleDB]
TO DISK = 'C:\BACKUP\SampleDB_log.trn'
WITH COMPRESSION, CHECKSUM;
GO
將備份複製到 Blob 儲存體帳戶
備份準備好後,並想開始使用 LRS 將資料庫遷移到 SQL 管理的實例,請使用以下方法將現有備份複製到 Blob Storage 帳號:
- 下載並安裝 AzCopy。
- 下載並安裝 Azure 記憶體總管。
- 在Azure 入口網站中使用 Storage Explorer。
備註
若要使用相同的 Azure Blob 儲存體容器來移轉多個資料庫,請將各個資料庫的所有備份檔案放在容器內的個別資料夾中。 每個資料庫資料夾均使用平面檔案結構。 不支援資料庫資料夾中的巢狀資料夾。
局限性
LRS 的限制適用於透過 Azure 入口網站進行的遷移。
移轉至業務關鍵服務層級時的限制
在 業務關鍵 服務層級移轉至 SQL 受控實例時,請考慮下列限制:
- 在遷移大型資料庫時,可能會遇到相當長的停機時間,因為資料庫在切換後無法使用,且會被植入 商業關鍵 服務層級的次要副本。 因應措施會列在 較長的切換 區段中。
- 若非計畫故障轉移、系統更新或安全修補程式中斷遷移,遷移會自動從頭重新啟動。 這種限制使得規劃可預測的遷移變得困難,避免最後一刻的突發狀況。
這很重要
這些限制僅適用於遷移至 Azure SQL 管理實例時,屬於 業務關鍵 服務層級,而不適用於 通用 服務層級。
業務關鍵服務層級中的切換時間較長
如果您要移轉至 業務關鍵 服務層級中的 SQL 受控實例,在將資料庫植入次要副本的過程中,請考慮將資料庫上線至主要副本可能產生的延遲。 這種延遲在大型資料庫中尤其明顯。
移轉至 業務關鍵 服務層級中的 SQL 受控實例需要比一般用途服務層級更長的時間才能完成。 切換到 Azure 完成後,資料庫會暫時無法使用,直到從主要副本複製並初始化到三個次要副本為止。 資料填充過程可能會因資料庫大小而耗時較長。 資料庫越大,次要複本的植入時間越長,可能最多需要數小時的時間。
如果資料庫必須在切換完成後立即開放,請考慮以下的變通方法:
- 先遷移到通用服務層級,再升級到 商業關鍵 服務層級。 升級您的服務層級是一項線上操作,讓您的資料庫保持在線狀態,直到升級作業的最後一步:進行一個短暫的故障排除。
- 使用 Managed Instance 連結,進行在線遷移至 Business Critical 實例,而無需等待資料庫在切換後可用。
透過 Azure 入口網站監視移轉僅適用於符合監視 授權需求的 SQL Server 執行個體。
常見問題疑難排解
要排解遷移到 Azure SQL 受管實例時常見的問題,請參見 「疑慮遷移問題」。