RDS SQL Server提供了将本地SQL Server数据库迁移到阿里云RDS SQL Server的数据库上云方案。您只需将本地SQL Server数据库的全量备份数据上传至阿里云的对象存储服务(OSS),然后通过RDS控制台将全量备份数据迁移至指定RDS SQL Server数据库中。该方案采用微软官方的备份恢复方案,可保障兼容性。适用于数据备份、迁移和灾备恢复等场景。
本方案仅适用于将数据上云至RDS SQL Server 2008 R2高性能本地盘实例中。
如需将数据上云至RDS SQL Server 2008 R2云盘、2012及以上版本的实例中,请参见全量备份数据上云(SQL Server 2008 R2云盘、2012及以上版本)。
前提条件
RDS SQL Server实例版本为2008 R2高性能本地盘。
RDS SQL Server 2008 R2云盘实例已停止新售。
在RDS SQL Server实例中创建与待迁移的数据库名称相同的数据库。具体操作,请参见创建数据库和账号。
如果通过RAM用户登录,则必须满足以下条件:
RAM账号具备AliyunOSSFullAccess权限和AliyunRDSFullAccess权限。如何为RAM用户授权,请参见通过RAM对OSS进行权限管理和通过RAM对RDS进行权限管理。
阿里云账号(主账号)已授权RDS官方服务账号可以访问您OSS的权限。
所在阿里云账号(主账号)需手动创建权限策略,然后将权限添加到RAM账号中。
注意事项
本方案迁移的级别为数据库,即每次只能迁移一个数据库上云。如果需要迁移多个或所有数据库,建议采用实例级的迁移上云方案。具体详情,请参见SQL Server实例级别迁移上云。
费用说明
本方案中仅会产生OSS的相关费用,详情如下图所示。
1. 备份本地数据库
打开Microsoft SQL Server Management Studio(SSMS)客户端。
登录待迁移的数据库。
执行如下命令,确认源数据库当前的恢复模式。
USE master; GO SELECT name, CASE recovery_model WHEN 1 THEN 'FULL' WHEN 2 THEN 'BULK_LOGGED' WHEN 3 THEN 'SIMPLE' END model FROM sys.databases WHERE name NOT IN ('master','tempdb','model','msdb'); GO
如果返回结果中的
model
值不为FULL
,请执行步骤4。如果返回结果中的
model
值为FULL
,请执行步骤5。
执行如下命令,将源数据库的恢复模式设置为
FULL
。ALTER DATABASE [dbname] SET RECOVERY FULL; go ALTER DATABASE [dbname] SET AUTO_CLOSE OFF; go
恢复模式设置为
FULL
后,会使SQL Server的日志信息增多,请确保具备足够的硬盘空间。执行如下命令,备份源数据库。本案例中,将dbtest数据库备份至backup.bak文件中。
USE master; GO BACKUP DATABASE [dbtest] to disk ='d:\backup\backup.bak' WITH COMPRESSION,INIT; GO
执行如下命令,校验备份文件的完整性。
USE master GO RESTORE FILELISTONLY FROM DISK = N'D:\backup\backup.bak';
如果有结果集返回,代表备份文件有效。
如果提示错误,请重新执行备份操作。
可选:执行如下命令,还原数据库的恢复模式。
如果数据库的恢复模式原本就是
FULL
,无需执行本步骤。ALTER DATABASE [dbname] SET RECOVERY SIMPLE; GO
2. 上传备份文件到OSS
如果没有Bucket,需要先创建存储空间Bucket。
登录OSS管理控制台,单击Bucket列表,然后单击创建Bucket。
配置如下关键参数,其他参数可以保持默认。
创建的存储空间主要用于本次数据上云,只需配置关键参数即可,上云完成后可以及时删除以避免数据泄露及产生相关费用。
创建Bucket时请勿开启数据加密。
参数
说明
取值示例
参数
说明
取值示例
Bucket 名称
存储空间名称,全局唯一,设置后无法修改。
命名规则:
只能包括小写字母、数字和短划线(-)。
必须以小写字母或者数字开头和结尾。
长度必须在3~63字符之间。
migratetest
地域
Bucket所属的地域,如果您通过ECS内网上传数据至Bucket中,且通过内网将数据恢复至RDS中,则需要三者地域保持一致。
华东1(杭州)
存储类型
选择标准存储。本文上云操作不支持其他存储类型的Bucket。
标准存储
上传备份文件到OSS。
本地数据库备份完成后,请将备份文件上传到与您的RDS实例同地域的OSS Bucket中,两者处于同一地域时可通过内网互通(不会产生外网流量费用),且数据上传速度更快。您可以采用如下方法之一:
设置备份文件的链接有效时间,并获取文件的链接地址。
登录OSS 管理控制台。
单击Bucket 列表,然后单击目标Bucket名称。
在左侧导航栏,选择文件管理 > 文件列表。
单击目标数据库备份文件的文件名。
在弹出的详情面板中,将过期时间 (秒)修改为28800秒,即8小时。
将备份文件从OSS迁移至RDS时,需要使用备份文件的链接地址,如果超过了链接有效时间,将导致数据迁移失败。
单击复制文件URL,获取文件的链接地址。
修改获取到的数据备份文件链接地址。
默认获取的是文件的外网连接地址,如需通过内网迁移数据,您需要将文件链接地址中的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不同。具体详情,请参见访问域名和数据中心。
3. 将备份文件从OSS迁移至RDS
访问RDS实例列表,在上方选择地域,然后单击目标实例ID。
在左侧导航栏,单击数据库管理。
找到目标数据库,单击操作列的从OSS上的备份文件迁入。
在数据导入向导对话框中,阅读提示内容,单击下一步。
阅读OSS上传的相关提示内容,单击下一步。
在备份文件OSS URL栏中填写备份文件在OSS的链接地址,单击确定。
RDS SQL Server 2008 R2高性能本地盘实例当前仅支持将全量备份文件一次性迁入云上的方案。
4. 查看数据上云进度
您可以在左侧导航栏,单击数据上云,然后找到目标迁移任务来查看数据迁移的进度。
如果任务状态显示为失败,请查看任务描述或单击目标迁移任务后面的查看文件详情,确认任务失败的原因并修复,然后重新执行数据迁移。
相关API
API | 描述 |
API | 描述 |
将OSS上的备份文件还原到RDS SQL Server实例,创建数据上云任务。 | |
打开RDS SQL Server备份数据上云任务的数据库。 | |
查询RDS SQL Server实例备份数据上云任务列表。 | |
查询RDS SQL Server备份数据上云任务的文件详情。 |
- 本页导读 (1)
- 前提条件
- 注意事项
- 费用说明
- 1. 备份本地数据库
- 2. 上传备份文件到OSS
- 3. 将备份文件从OSS迁移至RDS
- 4. 查看数据上云进度
- 相关API