共用方式為


準備環境以進行 LRS 遷移 - 在 Azure Arc 中執行 SQL Server 遷移

適用於: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 執行個體上,您需要下列權限:

  • 如果你啟用最小權限,資料庫遷移過程中會依需要授予必要的權限,例如系統管理員
  • 如果你不能使用最小權限,你需要對源 SQL Server 實例取得 系統管理員 權限。

若要使用 LRS 移轉,您需要 SQL 受控執行個體目標的下列其中一個許可權:

建立記憶體帳戶

您可以使用 Azure Blob 儲存體帳戶作為 SQL Server 執行個體與 SQL 受控執行個體部署之間備份檔案的中繼儲存體。 儲存帳號必須與你的 SQL 管理實例目標在同一個 Azure 訂閱中。

建立新的儲存體帳戶並在該儲存體帳戶中建立 Blob 容器:

  1. 建立儲存帳號
    1. 在 Azure 入口網站搜尋 儲存帳戶 ,然後選擇 建立
    2. 基礎 標籤中,選擇你的訂閱和資源群組。 區域應該和你的 SQL 受管實例目標相同。
    3. 請將 偏好儲存類型 留空。
    4. 其餘分頁使用預設設定,並選擇 評論+建立
    5. 驗證通過後,選取 [建立]
  2. 在記憶體帳戶內建立 Blob 容器
    1. 前往 Azure 入口中的新的儲存帳戶。
    2. 在 [資料儲存體] 下選取 [容器]。
    3. 使用 新增容器 來開啟 新容器 視窗。
    4. 輸入容器名稱,保留預設選項,然後選擇 建立 容器。
  3. (可選)如果你的 Azure 儲存裝置在防火牆後面,SQL 管理實例配置完成後,Azure Blob 儲存需要 額外設定

授予 Azure Blob 儲存服務的許可權

Azure Arc 與 LRS 的 SQL Server 遷移使用管理身份來認證 Azure Blob Storage。

您需要授予以下權限:

授權使用者存取儲存帳號

為了在遷移過程中存取資料庫備份,請將登入 Azure 入口網站並執行遷移的使用者指派為包含備份的儲存帳戶的Storage Blob Data Reader角色。

要指派角色,請依照以下步驟操作:

  1. 在 Azure 入口網站,前往包含你儲存帳號的資源群組。

  2. 從資源功能表中選取 [訪問控制][IAM ]。

  3. 使用 + 新增 選擇 新增角色指派 ,並開啟 新增角色指派 面板。

  4. 搜尋並選擇 Storage Blob Data Reader 角色。 然後選取下一步

    在 Azure 入口網站的 IAM 頁面找到儲存帳號 Storage Blob Data Reader 角色的截圖。

  5. 使用 + Select 成員 開啟「 Select 成員 」面板,並搜尋執行遷移者的使用者帳號。 如果有多個人在遷移資料,請授權所有這些使用者取得此權限。 選擇使用者帳號,然後用 Select 儲存你的選擇。 請檢查將存取權分配給 使用者、群組或服務主體的選項。

  6. 選擇 Review + 指派 ,進入 Review + 指派 標籤,然後再選擇 Review + 指派 完成角色分配。

授權使用者存取資源群組

在遷移過程中存取資料庫備份,登入 Azure 入口網站並執行遷移的使用者,必須被指派為包含儲存帳號的資源群組中的 讀取 器角色。

要指派角色,請依照以下步驟操作:

  1. 在 Azure 入口網站,前往包含你儲存帳號的資源群組。

  2. 從資源功能表中選取 [訪問控制][IAM ]。

  3. 使用 + 新增 選擇 新增角色指派 ,並開啟 新增角色指派 面板。

  4. 搜尋並選擇 「讀者 」角色。 然後選取下一步

    Azure 入口網站資源群組的 IAM 頁面上找到讀者角色的截圖。

  5. 使用 + Select 成員 開啟「 Select 成員 」面板,並搜尋執行遷移者的使用者帳號。 如果有多個人在遷移資料,請授權所有這些使用者取得此權限。 選擇使用者帳號,然後用 Select 儲存你的選擇。 請選擇將存取權分配給 使用者、群組或服務主體 ,然後使用 「下一 頁」繼續。

  6. 分配類型 標籤中,將 分配類型 設為 「活躍 」,「 分配期限 」為 永久

    在 Azure 入口網站的分配類型標籤中,將分配類型設為「活躍」,並將「分配期限」設為永久的截圖。

  7. 選擇 Review + 指派 ,進入 Review + 指派 標籤,然後再選擇 Review + 指派 完成角色分配。

授予受管理的身分對儲存帳戶的存取權限

當您的 SQL 管理實例配置完成後,您需要將 SQL 管理實例的管理身份分配為 Storage Blob Data Reader 角色,以便在遷移過程中存取您的 Azure Blob 儲存帳號。

首先,你必須確定你的 SQL 管理實例使用哪種類型的管理身份。 若要這樣做,請遵循下列步驟:

  1. 在 Azure 入口網站中移至您的 [SQL 受控執行個體]
  2. 在 [安全性] 下,選取 [身分識別]
    1. 如果在 使用者指派的管理身份下,你看到 「找不到任何使用者指派的受管理身份」,你的 SQL 管理實例會使用預設 的系統指派管理身份
    2. 如果你在 主身份 欄位看到一個項目,表示你的 SQL 管理實例使用自訂 的使用者指派管理身份。 在授權 Storage Blob Data Reader 存取儲存帳號時,請在選擇這個管理身份的步驟中記錄這個身份。

要授權存取儲存帳戶,請依照以下步驟操作:

  1. 請前往你打算用於遷移的 Azure 入口網站中的 Azure Blob Storage 帳號。
  2. 從資源功能表中選取 [訪問控制][IAM ]。
  3. 使用 + 新增 選擇 新增角色指派 ,並開啟 新增角色指派 面板。
  4. 搜尋並選擇 Storage Blob Data Reader 角色。 然後選取下一步
  5. 「指派存取權 」下勾選 「管理身份」 選項。
  6. 使用 選擇成員 來開啟 「選擇成員 」面板。
  7. 如果你的 SQL 管理實例使用預設 的系統指派管理身份
    1. 「受管理身份」中,選擇 SQL 管理實例
    2. 搜尋並選擇你 SQL 管理實例的名稱。
    3. 使用 Select 來儲存你的選擇。
  8. 如果你的 SQL 管理實例使用 使用者指派的管理身份
    1. 「管理身份」中,選擇 「使用者指派」的管理身份
    2. 從你 SQL 管理實例身份頁面搜尋你之前提到的主要身份名稱並選擇它。
    3. 使用 Select 來儲存你的選擇。
  9. 選擇 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:

考量下列最佳做法:

  • 使用 COMPRESSIONCHECKSUM 選項進行備份,以減少備份檔案的大小,防止遷移損壞的資料庫。
  • 請分批進行備份。
  • 使用平行上傳線程。
  • 將最後一個備份檔案縮小到最小。
  • 若要使用相同的 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 帳號:

備註

若要使用相同的 Azure Blob 儲存體容器來移轉多個資料庫,請將各個資料庫的所有備份檔案放在容器內的個別資料夾中。 每個資料庫資料夾均使用平面檔案結構。 不支援資料庫資料夾中的巢狀資料夾。

局限性

LRS 的限制適用於透過 Azure 入口網站進行的遷移。

移轉至業務關鍵服務層級時的限制

業務關鍵 服務層級移轉至 SQL 受控實例時,請考慮下列限制:

  • 在遷移大型資料庫時,可能會遇到相當長的停機時間,因為資料庫在切換後無法使用,且會被植入 商業關鍵 服務層級的次要副本。 因應措施會列在 較長的切換 區段中。
  • 若非計畫故障轉移、系統更新或安全修補程式中斷遷移,遷移會自動從頭重新啟動。 這種限制使得規劃可預測的遷移變得困難,避免最後一刻的突發狀況。

這很重要

這些限制僅適用於遷移至 Azure SQL 管理實例時,屬於 業務關鍵 服務層級,而不適用於 通用 服務層級。

業務關鍵服務層級中的切換時間較長

如果您要移轉至 業務關鍵 服務層級中的 SQL 受控實例,在將資料庫植入次要副本的過程中,請考慮將資料庫上線至主要副本可能產生的延遲。 這種延遲在大型資料庫中尤其明顯。

移轉至 業務關鍵 服務層級中的 SQL 受控實例需要比一般用途服務層級更長的時間才能完成。 切換到 Azure 完成後,資料庫會暫時無法使用,直到從主要副本複製並初始化到三個次要副本為止。 資料填充過程可能會因資料庫大小而耗時較長。 資料庫越大,次要複本的植入時間越長,可能最多需要數小時的時間。

如果資料庫必須在切換完成後立即開放,請考慮以下的變通方法:

  • 先遷移到通用服務層級,再升級到 商業關鍵 服務層級。 升級您的服務層級是一項線上操作,讓您的資料庫保持在線狀態,直到升級作業的最後一步:進行一個短暫的故障排除。
  • 使用 Managed Instance 連結,進行在線遷移至 Business Critical 實例,而無需等待資料庫在切換後可用。

透過 Azure 入口網站監視移轉僅適用於符合監視 授權需求的 SQL Server 執行個體。

常見問題疑難排解

要排解遷移到 Azure SQL 受管實例時常見的問題,請參見 「疑慮遷移問題」。