开发者社区 问答 正文

迁移 RDS for SQL Server 数据到本地 SQL Server


阿里云数据库 SQL Server 版支持通过物理备份文件将云上数据迁移到本地数据库。

操作步骤


  1. 下载云数据库全量和增量 [backcolor=transparent]物理备份文件 并上传至目标服务器。
    备份文件获取方法请参见 下载备份数据
    如果目标服务器可以访问源实例,您也可以使用 wegt "url" 下载备份文件。其中 [backcolor=transparent]url 为备份文件下载地址。

  2. 下载完成后,解压全量物理备份文件和增量物理备份文件。
    备份文件的命名为 [backcolor=transparent]数据库名+备份类型+日期时间+任务号.bak,其中 [backcolor=transparent]备份类型 有三种:
    • datafull:代表全量备份,如 [backcolor=transparent]rdsumu2myfzbeai1_datafull_201402250050_2250050.bak
    • datadiff:代表增量备份,如 [backcolor=transparent]rdsumu2myfzbeai1_datadiff_201402260050_2260050.bak
    • log:代表日志备份,如 [backcolor=transparent]rdsumu2myfzbeai1_log_201402260050_2260050.bak

  • 获取解压后的全量备份文件和增量备份文件,本例以存放至如下路径为例。
    • 全量备份文件存放路径:d:\backup\rdsumu2myfzbeai1_datafull_201402250050_2250050.bak
    • 增量备份文件存放路径:d:\backup\rdsumu2myfzbeai1_datadiff_201402260050_2260050.bak

  • 登录本地 SQL Server 控制台,通过备份文件查询云数据库的文件逻辑名。[backcolor=transparent]restore filelistonly [backcolor=transparent]from[backcolor=transparent] disk[backcolor=transparent]=[backcolor=transparent]'d:\backup\rdsumu2myfzbeai1_datafull_201402250050_2250050.bak'[backcolor=transparent]  
  • [backcolor=transparent]go

  • 系统显示如下,红框中为数据文件逻辑名 [backcolor=transparent]data1 和日志文件逻辑名 [backcolor=transparent]log。

    加载全量备份文件。
    1. [backcolor=transparent]restore database rdsumu2myfzbeai1 [backcolor=transparent]from[backcolor=transparent] disk[backcolor=transparent]=[backcolor=transparent]'d:\backup\rdsumu2myfzbeai1_datafull_201402250050_2250050.bak'[backcolor=transparent] [backcolor=transparent]with[backcolor=transparent]   replace[backcolor=transparent],[backcolor=transparent]norecovery[backcolor=transparent],[backcolor=transparent]stats[backcolor=transparent]=[backcolor=transparent]10[backcolor=transparent],[backcolor=transparent]  
    2. [backcolor=transparent]move [backcolor=transparent]'data1'[backcolor=transparent] to [backcolor=transparent]'d:\database\rdsumu2myfzbeai1\data\data1.mdf'[backcolor=transparent],[backcolor=transparent]  
    3. [backcolor=transparent]move [backcolor=transparent]'log'[backcolor=transparent] to [backcolor=transparent]'d:\database\rdsumu2myfzbeai1\log\log.ldf'[backcolor=transparent]  
    4. [backcolor=transparent]go

    其中:
    • d:\database\rdsumu2myfzbeai1\data 为数据地址,data1.mdf 为数据文件逻辑名
    • d:\database\rdsumu2myfzbeai1\log 为日志地址,log.ldf 为日志文件逻辑名

    执行完成后,数据库 rdsumu2myfzbeai1 将显示 [backcolor=transparent]正在还原 状态。
    [backcolor=transparent]说明: 如果只需恢复全量备份数据,无需执行步骤 6,请直接跳至步骤 7。如果还需要恢复增量备份数据,请执行步骤 6。
    加载增量备份文件。
    1. [backcolor=transparent]restore database rdsumu2myfzbeai1 [backcolor=transparent]from[backcolor=transparent] disk[backcolor=transparent]=[backcolor=transparent]'D:\backup\rdsumu2myfzbeai1_datadiff_201402260050_2260050.bak'[backcolor=transparent] [backcolor=transparent]with[backcolor=transparent]   replace[backcolor=transparent],[backcolor=transparent]norecovery[backcolor=transparent],[backcolor=transparent]stats[backcolor=transparent]=[backcolor=transparent]10[backcolor=transparent],[backcolor=transparent]  
    2. [backcolor=transparent]move [backcolor=transparent]'data1'[backcolor=transparent] to [backcolor=transparent]'d:\database\rdsumu2myfzbeai1\data\data1.mdf'[backcolor=transparent],[backcolor=transparent]  
    3. [backcolor=transparent]move [backcolor=transparent]'log'[backcolor=transparent] to [backcolor=transparent]'d:\database\rdsumu2myfzbeai1\log\log.ldf'[backcolor=transparent]  
    4. [backcolor=transparent]go

    执行完成后,数据库 [backcolor=transparent]rdsumu2myfzbeai1 将显示 [backcolor=transparent]正在还原 状态。
    恢复数据库。
    1. [backcolor=transparent]restore database rdsumu2myfzbeai1 [backcolor=transparent]with[backcolor=transparent] recovery  
    2. [backcolor=transparent]go

    执行完成后,数据库 [backcolor=transparent]rdsumu2myfzbeai1 将显示可用状态。

    展开
    收起
    云栖大讲堂 2017-10-18 14:00:08 1767 分享 版权
    0 条回答
    写回答
    取消 提交回答