全部產品
Search
文件中心

ApsaraDB RDS:遷移RDS SQL Server資料到本地SQL Server

更新時間:Jun 19, 2024

RDS SQL Server支援通過物理備份檔案將雲上的資料移轉到本機資料庫。

說明

除了本文介紹的遷移方法外,您還可以使用Data Transmission Service(Data Transmission Service),將RDS SQL Server資料移轉至自建SQL Server。

操作步驟

  1. 下載RDS SQL Server的全量和增量物理備份檔案,並上傳至自建SQL Server所在的伺服器。備份檔案擷取方法,請參見下載備份

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

  2. 下載完成後,解壓全量物理備份檔案和增量物理備份檔案。

    說明

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

    • testdb_datafull_201901071320.bak,datafull表示全量備份。

    • testdb_datadiff_201901071330.bak,datadiff表示增量備份。

  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. 將資料庫從全量備份檔案中恢複,並指定資料檔案和記錄檔的儲存位置。

    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
    說明
    • /var/opt/mssql/data/testdb.mdf為資料檔案地址,testdb.mdf為資料檔案邏輯名。

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

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

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

    說明

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

  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