全部產品
Search
文件中心

ApsaraDB RDS:RDS SQL Server遷移至本地SQL Server

更新時間:Jun 24, 2025

本文介紹如何將阿里雲RDS SQL Server的資料移轉到本地自建SQL Server資料庫。您需要先在RDS控制台下載全量和增量的物理備份檔案,再上傳至自建SQL Server資料庫後解壓並恢複即可。

前提條件

RDS SQL Server執行個體中已存在備份完成的物理備份檔案

說明

您也可通過資料轉送工具DTS將雲上物理備份檔案或快照備份檔案遷移至自建SQL Server(源端配置RDS SQL Server、目標端配置自建SQL Server)。

操作步驟

  1. 下載RDS SQL Server的全量和增量物理備份檔案

    如果目標伺服器可以訪問源執行個體,您也可以使用wget "URL"下載備份檔案。其中URL為備份檔案下載地址

  2. 將下載的備份檔案自行上傳至自建SQL Server所在的伺服器,並解壓全量物理備份檔案和增量物理備份檔案。

    說明

    由於解壓後的全量和增量檔案名稱相同,建議按資料庫名+備份方式+日期的規則進行重新命名,方便後續維護,例如:

    • testdb_datafull_201901071320.bakdatafull表示全量備份。

    • testdb_datadiff_201901071330.bakdatadiff表示增量備份。

  3. 擷取解壓後的全量備份檔案和增量備份檔案,本例以如下路徑為例:

    • 全量備份檔案存放路徑:/tmp/testdb_datafull_201901071320.bak

    • 增量備份檔案存放路徑:/tmp/testdb_datadiff_201901071330.bak

  4. 登入本地自建SQL Server資料庫,執行以下命令查詢備份檔案中的邏輯檔案名稱:

    RESTORE FILELISTONLY FROM DISK='/tmp/testdb_datafull_201901071320.bak';
    GO

    系統顯示如下,紅框中為資料檔案邏輯名testdb和記錄檔邏輯名testdb_log。

    image.png

  5. 從全量備份檔案中恢複資料庫,並指定資料檔案和記錄檔的儲存位置。

    重要

    如果只需恢複全量備份資料,執行完本步驟後請直接跳至步驟7。如果還需要恢複增量備份資料,請執行步驟6。

    RESTORE DATABASE testdb FROM DISK = '/tmp/testdb_datafull_201901071320.bak' WITH REPLACE, NORECOVERY, STATS = 10, 
    MOVE 'testdb' TO '/var/opt/mssql/data/testdb.mdf', 
    MOVE 'testdb_log' TO '/var/opt/mssql/data/testdb_log.ldf';
    GO

    執行完成後,資料庫testdb將顯示正在還原狀態。

    說明
    • /var/opt/mssql/data/testdb.mdf為資料檔案地址,testdb.mdf為資料檔案邏輯名。

    • /var/opt/mssql/data/testdb_log.ldf為記錄檔地址,testdb_log.ldf為記錄檔邏輯名。

    您可在目標資料庫的屬性 > 檔案中可以查看到資料檔案和記錄檔的地址。

  6. (可選)從增量備份檔案中恢複資料庫,並指定資料檔案和記錄檔的儲存位置。

    RESTORE DATABASE testdb FROM DISK = '/tmp/testdb_datadiff_201901071330.bak' WITH REPLACE, NORECOVERY, STATS = 10, 
    MOVE 'testdb' TO '/var/opt/mssql/data/testdb.mdf', 
    MOVE 'testdb_log' TO '/var/opt/mssql/data/testdb_log.ldf';
    GO

    執行完成後,資料庫testdb將顯示正在還原狀態。

  7. 執行以下命令,將資料庫恢複為可用狀態。

    RESTORE DATABASE testdb WITH RECOVERY;
    GO