SQL Server 2008 R2版本的实例支持便捷的数据上云操作,您只需将自建数据库的备份文件上传至阿里云对象存储服务OSS(Object Storage Service),然后通过RDS控制台将其全量迁移至指定数据库中。该方案采用微软官方的备份恢复方案,可保障兼容性。

前提条件

已在RDS中创建与待迁移的数据库名称相同的数据库,详情请参见创建数据库和账号(SQL Server 2008 R2)

注意事项

本方案迁移的级别为数据库,即每次只能迁移一个数据库上云。如果需要迁移多个或所有数据库,建议采用实例级的迁移上云方案,详情请参见SQL Server实例级别迁移上云

计费说明

本方案中仅会产生OSS的相关费用,详情如下图所示。

计费说明
场景 费用说明
将本地数据备份文件上传至OSS 不产生费用
备份文件存储在OSS 会产生OSS的存储费用,计费详情请参见OSS定价
将备份文件从OSS迁移至RDS
  • 通过内网迁移至RDS,不产生费用。
  • 通过外网迁移至RDS,OSS会产生外网流出流量的费用,计费详情请参见OSS定价

操作步骤

  1. 备份本地数据库。
    1. 打开Microsoft SQL Server Management Studio(SSMS)客户端。
    2. 登录待迁移的数据库。
    3. 执行如下命令,确认源数据库当前的恢复模式。
      use master;
      go
      select name, case recovery_model
      when 1 then 'FULL'
      when 2 then 'BULD_LOGGED'
      when 3 then 'SIMPLE' end model from sys.databases
      where name not in ('master','tempdb','model','msdb');
      go
      • 如果返回结果中的model值不为FULL,请执行步骤iv。
      • 如果返回结果中的model值为FULL,请执行步骤v。
    4. 执行如下命令,将源数据库的恢复模式设置为FULL
      ALTER DATABASE [dbname] SET RECOVERY FULL;
      go
      ALTER DATABASE [dbname] SET AUTO_CLOSE OFF;
      go
      注意 恢复模式设置为FULL后,会使SQL Server的日志信息增多,请确保具备足够的硬盘空间。
    5. 执行如下命令,备份源数据库。本案例中,将dbtest数据库备份至backup.bak文件中。
      use master;
      go
      BACKUP DATABASE [dbtest] to disk ='d:\backup\backup.bak' WITH COMPRESSION,INIT;
      go
    6. 执行如下命令,校验备份文件的完整性。
      USE master
       GO
       RESTORE FILELISTONLY 
         FROM DISK = N'D:\backup\backup.bak';
      注意
      • 如果有结果集返回,代表备份文件有效。
      • 如果提示错误,请重新执行备份操作。
    7. 可选:执行如下命令,还原数据库的恢复模式。
      注意 如果数据库的恢复模式原本就是FULL,无需执行本步骤。
      ALTER DATABASE [dbname] SET RECOVERY SIMPLE;
      go
  2. 将数据库备份文件上传至OSS。
    • 上传小于5GB的单个文件,请参见上传文件
    • 上传多个文件或大于5GB的单个文件,请参见断点续传。如需使用图形化的操作界面,请参见ossbrowser
    注意 只有当RDS实例和OSS的Bucket在同一地域时,二者才能内网互通,所以在上传备份文件时,请将文件上传至与目标RDS实例在同一地域的Bucket上面。
  3. 设置备份文件的链接有效时间并获取文件的链接地址。
    1. 登录OSS 管理控制台
    2. 在左侧导航栏,单击Bucket列表
    3. 找到数据库备份文件所在的Bucket,单击对应的Bucket名称。
    4. 单击文件管理
    5. 单击目标数据库备份文件的文件名。
    6. 在弹出的对话框中,将链接有效时间修改为28800秒,即8小时。
      注意 将备份文件从OSS迁移至RDS时,需要使用备份文件的链接地址,如果超过了链接有效时间,将导致数据迁移失败。
    7. 单击复制文件URL
      复制文件URL
    8. 修改获取到的数据备份文件链接地址。

      默认获取的是文件的外网连接地址,如需通过内网迁移数据,您需要将文件链接地址中的Endpoint改成内网Endpoint。例如,备份文件的链接地址为http://rdstest.oss-cn-shanghai.aliyuncs.com/testmigraterds_20170906143807_FULL.bak?Expires=15141****&OSSAccessKeyId=TMP****,您需要将链接地址中的oss-cn-shanghai.aliyuncs.com修改为oss-cn-shanghai-internal.aliyuncs.com

      注意 不同的网络类型、不同地域所对应的内网Endpoint不同,详情请参见访问域名和数据中心
  4. 将数据库备份文件从OSS迁移至RDS。
    1. 访问RDS实例列表,在上方选择地域,然后单击目标实例ID。
    2. 在左侧导航栏,单击数据库管理
    3. 找到目标数据库,单击操作列的从OSS上的备份文件迁入
    4. 数据导入向导对话框中,阅读提示内容,单击下一步
    5. 阅读OSS上传的相关提示内容,单击下一步
    6. 备份文件OSS URL栏中填写备份文件在OSS的链接地址。
      说明 目前,RDS SQL Server 2008 R2仅支持一种上云方案,即全量备份文件一次性迁入。
    7. 单击确定
      您可以在左侧导航栏,单击数据上云,然后找到目标迁移任务来查看数据迁移的进度。
      注意 如果任务状态显示为失败,请查看任务描述或单击目标迁移任务后面的查看文件详情,确认任务失败的原因并修复,然后重新执行数据迁移。

相关API

API 描述
创建上云任务 创建数据上云任务
创建打开数据库任务 打开数据库
查询上云任务列表 查询数据上云任务列表
查询上云任务文件 查看数据上云任务文件详情