本文档介绍如何把用户OSS上的全量备份文件迁移到阿里云RDS for SQL Server。
本文档适用于如下以下版本的实例:
- RDS for SQL Server 2012/2016 Web版、企业版的基础系列(即单机版)
- RDS for SQL Server 2012/2016标准版、企业版的高可用系列(即双机版)
关于RDS for SQL Server 2008 R2企业版的高可用系列的数据上云方法,请参考
全量备份数据上云SQL Server 2008 R2版。
限制条件
备份文件版本
不支持由高版本的备份文件往低版本做迁移,比如:从SQL Server 2016迁移到SQL Server 2012等。
备份文件类型限制
不支持差异备份文件或日志备份文件。
备份文件后缀名限制
备份文件名仅支持bak、diff、trn或者log为后缀名。如果没有使用本文中的脚本生成备份文件,请使用如下后缀名:
- bak:表示全量备份文件
- diff:表示差异备份文件
- trn或者log:表示事务日志备份
备份文件命名限制
全量备份文件名不能包含@或者|等特殊字符,否则会导致数据库上云失败。
注意事项
AliyunRDSImportRole的角色
授予RDS服务账号访问OSS的权限以后,系统会在访问控制RAM的角色管理中创建名为AliyunRDSImportRole的角色,请勿修改或删除这个角色,否则会导致上云任务无法下载备份文件而失败。如果修改或删除了这个角色,您需要通过数据上云向导重新授权。
备份文件命名
全量备份文件名,不能包含中划线(|)、@等特殊字符。
删除OSS上备份文件
在OSS备份数据恢复上云任务没有完成之前,请不要删除OSS上的备份文件,否则会导致上云任务失败。
前提条件
实例空间要求
请确保阿里云RDS for SQL Server实例拥有足够的存储空间,如果空间不足,请提前升级实例空间,以免因为空间不足而导致迁入失败。
目标实例中不能存在同名的目标数据库
您无需先创建目标数据库。这一点和
全量备份数据上云SQL Server 2008 R2版的要求相反。
如果同名的数据库已经存在,请先备份该数据库,删除该数据库,再创建迁移任务。
在目标实例上创建初始账号
建议先通过 RDS 控制台创建目标实例的初始账号,如果已经存在初始账号,请跳过本步骤。如果目标实例中不存在初始账号,OSS备份数据上云任务也会成功,但是您无法访问该数据库,需要参照本文最后章节“常见的错误信息”才能解决。
初始账号的创建方法,请参考
创建数据库和账号SQL Server 2012及以上版本 中的第1步至第7步。
准备OSS Bucket
您需要创建与目标实例同地域的OSS Bucket。如果Bucket已经存在,请跳过本步骤。创建方法如下:
- 登录阿里云OSS控制台。
- 单击存储空间后面的加号+。
- 设置Bucket名称、地域、存储类型和读写权限,单击确定。(请确保与RDS for SQL Server实例位于相同地域,否则会导致后面的步骤中无法选中备份文件。)如下图所示。
[/url][/td][td]说明[/td][/tr][tr=transparent][td]修改为公共读的数据库备份文件,是永久可以下载的,所以存在安全风险,请用户在完成备份文件上云后,将该文件还原为私有属性。[/td][/tr][/table]
空间不足1
错误信息:Not Enough Disk Space for restoring, space left (xxx MB) < needed (xxx MB)
错误原因:用户实例剩余空间不满足备份文件上云所需要的最小空间要求。
解决方法:用户升级实例空间。
空间不足2
错误信息:Not Enough Disk Space, space left xxx MB < bak file xxx MB
错误原因:用户实例剩余空间比备份文件本身还要小,不满足最小空间要求。
解决方法:用户升级实例空间。
没有初始账号
错误信息:Your RDS doesn’t have any init account yet, please create one and grant permissions on RDS console to this migrated database (XXX).
错误原因:RDS目标实例中,不存在初始账号,OSS备份数据上云任务不知道需要为哪个用户授权。但是,备份文件已经成功还原到目标实力上,所以任务状态是成功的。
解决方法:
-
创建初始账号,具体操作请参考[url=https://help.aliyun.com/document_detail/43164.html#concept_is4_wb1_wdb]创建数据库和账号SQL Server 2012及以上版本中的第1步至第7步。
- 重置初始账号密码,具体操作请参考重置密码。
- 使用初始账号访问上云的数据库,也可以执行为其他用户授权等操作。
一张图读懂常见错误信息