全部產品
Search
文件中心

ApsaraDB RDS:SQL Server資料移轉/上雲方案簡介

更新時間:Aug 20, 2025

本文介紹SQL Server常見的幾種遷移上雲的方案,您可以根據資料來源的位置、各方案使用的工具、各方案的優勢與限制等,選擇最適合您的上雲方案。

準備工作

  • 已建立規格和儲存空間大於等於源庫的目標RDS SQL Server執行個體

  • 在源和目標庫中分別執行SELECT name, compatibility_level FROM sys.databases; 命令,確認目標庫是否相容源庫

  • 請確保源庫和目標庫的安全設定(包括防火牆、白名單、安全性群組等)未限制遷移工具的訪問。

  • 若您需要使用到DTS遷移上雲,請確保:

上雲方案簡介

物理備份上雲

上雲方案

實現流程

操作教程

使用OSS(手動上雲)

  1. 將資料庫日誌復原模式(backup_type)修改為FULL。

  2. 將全量資料進行備份,並上傳到OSS Bucket(儲存空間)。

  3. 定時備份和上傳增量日誌。

  4. 停止源庫的資料寫入,最後一個增量日誌回放成功後,將業務切換到新資料庫。

使用資料災備和DTS(一鍵上雲)

  1. 部署物理協議網關。

  2. 使用DTS遷移上雲(內部會調用OSS Bucket)。

  3. 停止源庫的資料寫入,最後一個增量日誌回放成功後,將業務切換到新資料庫。

自建SQL Server通過物理網關遷移上雲

邏輯資料移轉

上雲同步模式

實現流程

操作教程

使用DTS(日誌解析模式)

  1. 使用DTS遷移上雲。

    說明

    SQLServer增量同步處理模式選擇為解析源庫日誌做增量同步處理(不支援堆表)

  2. 停止源庫的資料寫入,最後一個增量日誌回放成功後,將業務切換到新資料庫。

使用DTS(混合日誌解析模式)

  1. 使用DTS遷移上雲。

    說明

    SQLServer增量同步處理模式選擇為非堆表用日誌解析增量同步處理,堆表用CDC增量同步處理(混合式日誌解析)

  2. 停止源庫的資料寫入,最後一個增量日誌回放成功後,將業務切換到新資料庫。

使用DTS(輪詢查詢CDC執行個體模式)

  1. 使用DTS遷移上雲。

    說明

    SQLServer增量同步處理模式選擇為輪詢查詢CDC執行個體做增量同步處理

  2. 停止源庫的資料寫入,最後一個增量日誌回放成功後,將業務切換到新資料庫。

其他方案上雲

上雲方案

實現流程

操作教程

使用SSMS工具

  1. 停止源庫的資料寫入。

  2. 使用SSMS工具匯出源庫資料。

  3. 使用SSMS工具將匯出的資料匯入到目標庫。

  4. 校正資料一致性後,將業務切換到新資料庫。

使用SSMS遷移資料至RDS SQL Server

上雲方案對比

物理備份上雲

上雲方案

方案優勢

主要限制

使用OSS(手動上雲)

  • 使用SQL Server內建的備份和恢複功能,因此支援的情境較多。

  • 遷移速度較快。

  • 可以根據源庫日誌格式,手動修改備份檔案的名稱。

  • 需要手動備份和上傳日誌,操作較為繁瑣。

  • 每次只能完成一個資料庫的遷移上雲。

  • 存在分鐘層級的停服:需要停止源庫的資料寫入,且最後一個增量日誌回放成功後才能切換業務。

  • 不支援由高版本遷移到低版本。

  • 不支援庫表列的映射功能。

使用資料災備和DTS(一鍵上雲)

  • 遷移操作在DTS控制台,配置操作簡單方便。

  • 單次遷移支援多個資料庫。

  • 使用SQL Server內建的備份和恢複功能,因此支援的情境較多。

  • 遷移速度較快。

  • 要求備份日誌格式必須以bak結尾。

  • 存在分鐘層級的停服:需要停止源庫的資料寫入,且最後一個增量日誌回放成功後才能切換業務。

  • 需要在源庫物理機上安裝AliyunDBSAgent。

  • 不支援由高版本遷移到低版本。

  • 不支援庫表列的映射功能。

邏輯遷移上雲

上雲同步模式

方案優勢

主要限制

使用DTS(日誌解析模式)

  • 遷移操作在DTS控制台,配置操作簡單方便。

  • 支援不同版本資料庫間的遷移。

  • 支援庫表列映射功能。

  • DTS執行個體含增量任務時,源庫無需停止寫入,支援平滑遷移。

  • 支援第三方雲資料庫遷移到阿里雲。

    例如源庫為Amazon RDS for SQL Server時支援全量遷移,源庫為Azure SQL(非SQL Database模式)時支援全量和增量遷移。

  • 僅支援部分DDL,且頻繁的DDL操作(大於100條/h)會影響遷移速率。

  • 源庫日誌量超過10 MB/s、30 GB/h、500 GB/d時,可能會導致任務出現延遲,甚至失敗。

  • 源庫記錄備份頻率超過1次/h時,DTS可能擷取不到本地備份日誌(建議本地磁碟保留備份日誌3天)。

  • DTS會在源庫建立Trigger、DDL儲存表等,用於捕獲DDL變更。

  • 增量遷移過程中需關閉外鍵約束,否則可能會導致任務失敗。

  • 不支援堆表、無主鍵表、壓縮表、含計算資料行表等情境

  • 無主鍵和無唯一約束的表可能出現重複資料,若需要保留無主鍵或無唯一約束的表,則不建議使用此方案。

  • DTS使用fn_log函數拉取和解析日誌,該函數穩定性不高,若出現預期外的行為,可能會導致任務失敗。

  • 單個DTS任務遷移的資料庫不能超過10個,否則可能會有穩定性和效能問題的風險。

使用DTS(混合日誌解析模式)

  • 遷移操作在DTS控制台,配置操作簡單方便。

  • 支援不同版本資料庫間的遷移。

  • 支援庫表列映射功能。

  • 支援堆表、無主鍵表、壓縮表等屬性工作表。

  • 支援第三方雲資料庫遷移到阿里雲。

    例如源庫為Amazon RDS for SQL Server時支援全量遷移,源庫為Azure SQL(非SQL Database模式)時支援全量和增量遷移。

  • 對源庫版本有要求:企業版需要為2008及以上版本,標準版需要為2016SP1及以上版本(不包含2017版本)。

  • 僅支援部分DDL,且頻繁的DDL操作(大於100條/h)會影響遷移速率。

  • 源庫日誌量超過10 MB/s、30 GB/h、500 GB/d時,可能會導致任務出現延遲,甚至失敗。

  • 源庫記錄備份頻率超過1次/h時,DTS可能擷取不到本地備份日誌(建議本地磁碟保留備份日誌3天)。

  • DTS會開啟庫層級CDC和部分表CDC,且會在源庫建立Trigger、DDL儲存表等,用於捕獲DDL變更。

  • 增量遷移過程中需關閉外鍵約束,否則可能會導致任務失敗。

  • 不支援含計算資料行表的情境

  • 無主鍵和無唯一約束的表可能出現重複資料,若需要保留無主鍵或無唯一約束的表,則不建議使用此方案。

  • DTS使用fn_log函數拉取和解析日誌,該函數穩定性不高,若出現預期外的行為,可能會導致任務失敗。

  • 單個DTS任務遷移的資料庫不能超過10個,否則可能會有穩定性和效能問題的風險。

使用DTS(輪詢查詢CDC執行個體模式)

  • 遷移操作在DTS控制台,配置操作簡單方便。

  • 支援不同版本資料庫間的遷移。

  • 支援庫表列映射功能。

  • 支援第三方雲資料庫遷移到阿里雲。

    例如源庫為Amazon RDS for SQL Server、Azure SQL Database、Google Cloud SQL for SQL Server時支援全量和增量遷移。

  • 增量遷移更加穩定,佔用的網路頻寬更低。

    使用SQL Server原生CDC組件擷取增量資料,無需捕獲源庫的交易記錄。當源庫觸發日誌截斷時,不會影響DTS執行個體的運行。

  • SQL Server on Azure Virtual Machines企業版需要2008或以上版本,標準版需要2016SP1或以上版本(不包含2017版本)。

  • DTS執行個體使用的源庫帳號需具備開啟庫層級和表層級CDC的許可權。開啟庫層級CDC需要使用sysadmin角色許可權的帳號,開啟表層級CDC需要高許可權帳號。

    說明
    • Azure SQL Database控制台提供的最高許可權帳號(伺服器管理員)滿足要求。其中基於vCore購買模型的資料庫,所有規格均支援開啟CDC;基於DTU購買模型的資料庫,規格需要為S3及以上才支援開啟CDC。

    • Amazon RDS for SQL Server的高許可權帳號滿足要求,支援為預存程序開啟庫層級的CDC。

    • 聚集資料行存放區索引表不支援開啟CDC。

    • DTS增量遷移任務的前置模組將會開啟源庫的CDC。在此過程中,由於SQL Server資料庫核心自身的限制,源庫將會出現短暫的鎖表現象。

  • 源庫待遷移表的數量不能超過1000張,否則可能會導致任務延遲或不穩定。

  • 單個DTS任務遷移的資料庫不能超過10個,否則可能會有穩定性和效能問題的風險。

  • 無主鍵和無唯一約束的表可能出現重複資料,若需要保留無主鍵或無唯一約束的表,則不建議使用此方案。

  • 增量資料移轉約有10秒的延遲。

  • 不支援連續執行加減列操作(一分鐘內執行超過兩次加列或減列的DDL),否則可能會導致任務失敗。

  • 不支援對源庫CDC執行個體(CDC Instance)做變更操作,否則可能會導致任務失敗或資料丟失。

  • 在遷移多庫多表的情境,可能會有穩定性和效能問題的風險。

其他方案上雲

上雲方案

方案優勢

主要限制

使用SSMS工具

操作過程簡單穩定,資料一致性風險小。

  • 需要停止源庫的資料寫入,否則可能會導致資料不一致。

  • 需要自行使用SSMS工具操作。

上雲方案選擇

重要

若資料來源不支援增量遷移,則需要在進行上雲操作之前停止源庫的資料寫入。

資料來源

是否支援增量遷移

可選上雲方案

推薦方案

自建SQL Server

  • 使用OSS物理備份手動上雲

  • 使用資料災備和DTS物理備份一鍵上雲

  • 使用DTS邏輯遷移上雲

使用資料災備和DTS物理備份一鍵上雲

Azure SQL Database

  • 使用DTS邏輯遷移上雲

    說明

    增量資料需使用輪詢查詢CDC執行個體做增量同步處理模式進行遷移。

  • 使用RDS一站式上雲

  • 使用SSMS工具上雲

使用RDS一站式上雲或DTS邏輯遷移上雲

Azure SQL Managed Instance

SQL Server on Azure Virtual Machines

  • 使用DTS邏輯遷移上雲

    說明

    增量資料需使用輪詢查詢CDC執行個體做增量同步處理模式進行遷移。

  • 使用RDS一站式上雲

  • 使用SSMS工具上雲

  • 使用OSS物理備份手動上雲

Amazon RDS for SQL Server

  • 使用DTS邏輯遷移上雲

    說明

    增量資料需使用輪詢查詢CDC執行個體做增量同步處理模式進行遷移。

  • 使用RDS一站式上雲

  • 使用SSMS工具上雲

  • 使用OSS物理備份手動上雲

使用RDS一站式上雲或DTS邏輯遷移上雲

華為雲RDS SQL Server

  • 使用SSMS工具上雲

  • 使用DTS邏輯遷移上雲(全量)

  • 使用OSS物理備份手動上雲(全量)

使用OSS物理備份手動全量上雲

說明
  • 若源庫為2008 R2版本,建議升級後再進行操作。

  • 訪問華為雲官網教程,查看手動建立備份和下載備份檔案的方法。

騰訊ApsaraDB for SQL Server

  • 使用DTS邏輯遷移上雲

  • 使用OSS物理備份手動上雲

  • 使用SSMS工具上雲

使用DTS邏輯遷移上雲

Google Cloud SQL for SQL Server

  • 使用SSMS工具上雲

  • 使用DTS邏輯遷移上雲

    說明

    增量資料需使用輪詢查詢CDC執行個體做增量同步處理模式進行遷移。

使用DTS邏輯遷移上雲使用DTS邏輯遷移上雲

後續操作

資料校正

SQL Server遷移上雲後,通常需要校正資料是否已經全量遷移到RDS SQL Server執行個體,您可以根據實際情況進行校正。如下為兩種常見校正方式:

根據核心資料校正

您可以按照日期或自增ID進行排序,以驗證最新業務資料是否已經正確遷移。例如,核心業務表Orders中包含OrderID(自增ID)和OrderDate(日期)等欄位,可以使用如下語句進行查詢:

-- 來源資料庫執行個體中的SQL查詢
SELECT TOP 10 OrderID, OrderDate, CustomerID, TotalAmount
FROM Orders
ORDER BY OrderDate DESC;

-- 目標資料庫執行個體中的SQL查詢
SELECT TOP 10 OrderID, OrderDate, CustomerID, TotalAmount
FROM Orders
ORDER BY OrderDate DESC;

使用DTS全量校正

DTS支援在不停服的情況下對源庫和目標庫進行校正。您可以使用DTS建立一個全量校正任務,以校正資料是否已經全量遷移。

更新資料庫統計資訊

若SQL Server遷移上雲後,目標RDS SQL Server執行個體的效能明顯下降,可能是因為RDS SQL Server執行個體中的資料分布發生變化。您可以對指定資料庫的統計資訊進行全量更新,以恢複或提升執行個體效能。