全部产品
Search
文档中心

云数据库 RDS:RDS SQL Server迁移至本地SQL Server

更新时间:Jun 23, 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