合 本地Microsoft SQL Server备份迁移至华为云RDS for SQL Server实例
Tags: SQL Server数据库迁移
场景介绍
由于安全原因,数据库的IP地址有时不能暴露在公网上,但是选择专线网络进行数据库迁移,成本又高。这种情况下,您可以选用数据复制服务提供的备份迁移,通过将本地Microsoft SQL Server数据库的备份文件上传至对象存储服务,然后恢复到目标数据库。备份迁移可以帮助您在云服务不触碰源数据库的情况下,实现数据迁移。
数据复制服务的备份迁移功能支持全量和全量+增量场景的数据库迁移。
场景一:全量备份迁移
该场景为一次性数据库迁移,需要停止业务,将导出的Microsoft SQL Server全量备份文件上传至对象存储服务,然后恢复到目标数据库。
场景二:全量+增量备份迁移
该场景为数据持续性迁移,需要在完成全量备份恢复的基础上,通过多次增量备份文件恢复,实现迁移过程中业务中断的最小化。一次典型的增量恢复过程,会涉及多次恢复增量备份。每个增量备份恢复均会使目标数据库保持还原中状态,此时数据库不可读写,直至最后一个增量备份恢复完成后,数据库才能变成可用状态。
迁移准备
本小节介绍通过数据复制服务进行备份迁移前的准备工作。在正式使用数据复制服务之前,请先阅读以确保您已完成创建备份迁移任务所需的各项准备工作。
备份文件准备
请参见《数据复制服务备份迁移》中各方案下的“使用须知”章节。
数据库恢复模式设置
仅进行全量备份迁移时,对数据库的恢复模式没有要求。
进行全量+增量备份迁移时,数据库备份文件的恢复模式需要设置为
“完整”
。具体操作方法如下:
方法一:通过Microsoft SQL Server Management Studio 数据库管理软件登录到本地数据库中心,选择需要迁移的数据库,单击鼠标右键,选择“属性”,选择“选项 > 恢复模式”,将恢复模式设置为“完整”即可。
方法二:使用如下SQL命令的方式进行设置。
12USE master;ALTER DATABASE database_name SET RECOVERY FULL;
目标数据库磁盘要求
目标数据库的可用磁盘空间至少为待还原数据库总数据量大小的1.5倍。
迁移时间的评估参考
一次完整的备份迁移主要经历以下4个阶段。
阶段 | 名称 | 描述 |
---|---|---|
① | 导出数据库备份文件 | 该阶段主要耗时为生成数据库备份文件所需的时间,通常取决于源数据库的配置,需要您根据源数据库的配置进行预估。 |
② | 上传备份文件至OBS桶 | OBS对象存储不限速,如果您是通过公网访问OBS对象存储时,上传下载速度受公网带宽限制。例如:公网带宽为10MB/s时,在没有其他因素影响网络的情况下,则上传的速度为10MB/s。 |
③ | 通过DRS下载备份文件至目标端RDS for SQL Server | 一般情况下,下载速度约为:100MB/s或者300GB/h。 |
④ | 将源数据库的备份文件恢复至目标数据库 | 从经验值来讲,一般的恢复速度约为5GB/min或者300GB/h。 |
合计总耗时 | 总耗时=阶段①耗时+阶段②耗时+阶段③耗时+阶段④耗时业务中断时长= 业务停机->进行最后一次增量备份->上传OBS->创建DRS任务恢复 |
下面将以一个示例说明备份迁移的完整过程的耗时,可以帮助您提前预估迁移时间,实际的耗时与用户端的网络,数据库配置等情况有关,需以实际情况为准,表格数据仅供参考。
示例:
阶段 | 名称 | 备份文件大小**(G)** | 耗时**(h)** |
---|---|---|---|
① | 导出数据库备份文件 | 283 | 5.5 |
② | 上传备份文件至OBS桶 | 283 | 8.95 |
③ | 通过DRS下载备份文件 | 283 | 0.61 |
④ | 备份文件恢复到目标库 | 283 | 2.24 |
合计总耗时 | 17.3 |
导出数据库备份文件
本小节介绍了数据库全量备份文件和事务日志(增量)备份文件的导出方法。
检查本地数据库参数配置。
说明:
该操作为全量+增量迁移的必操作项,仅进行全量迁移时,可以跳过该步骤。
由于数据库存在日志截断和收缩配置,在导出全量备份文件前,需要将数据库恢复模式配置成“完整”模式,且一直保持到整个数据库完全迁移到本云数据库实例和业务切割后,才能修改。
配置备份文件压缩参数,该操作为可选操作。
如果客户本地数据中心带宽不高,OBS Browser上传时间比较久,建议配置备份文件压缩参数。
导出全量备份文件。
通过Microsoft SQL Server Management Studio 数据库管理软件登录到本地数据库中心。
选择需要迁移的数据库,单击鼠标右键,选择“任务>备份”。
备份类型选择“完整”,单击“添加”,填写备份文件输出路径,注意后缀名为
.bak。
说明:
- 建议备份文件名称和数据库名称保持一致(\区分大小写**),同时加上“.bak”后缀**。
- 建议将所有的数据库备份在一个bak文件里或者少量的bak文件里,这样可以减少频繁的上传与恢复,实现打包上传和打包恢复的效果**。**
导出增量备份文件。
通过Microsoft SQL Server Management Studio 数据库管理软件登录到本地数据库中心。
选择需要迁移的数据库,单击鼠标右键,选择“任务>备份”。
备份类型选择“事务日志”,单击“添加”,填写备份文件输出路径,注意后缀名为
.bak
。
说明:
- 建议备份文件名称和数据库名称保持一致(\区分大小写**),同时加上时间戳和“.bak”后缀,例如:[数据库名]Incr[时间戳].bak**。
- 建议将所有的数据库备份在一个bak文件里或者少量的bak文件里,这样可以减少频繁的上传与恢复,实现打包上传和打包恢复的效果**。**例如:可以将A、B、C三个数据库备份到一个bak文件中,整体进行打包上传和恢复,这样有助于提高数据恢复的成功率。
上传备份文件
本小节介绍了上传备份文件的方法。
创建OBS桶,并将备份文件上传OBS桶。
说明:
如果单次上传文件不大于5GB时,可以登录OBS控制台创建OBS自建桶,存储类别选择“标准存储”,桶策略选择“公共读”。
如果批量上传多个文件(单次最多支持100个文件同时上传,总大小不超过5GB),或单次上传文件大于5GB时,需要下载并安装
OBS Browser+
客户端,支持大文件断点续传功能。相关操作请参见《
对象存储服务客户端指南
》。
此时建议备份文件放置于同区域且独立的公共桶,混用其他公共桶可能会因为其他文件过多,而无法展示迁移备份文件。
上传备份文件之前,创建用户的Access Key ID和Secret Access Key,参考创建访问密钥(AK 和SK)。
上传备份文件时,OBS文档模式需要选择“标准存储”。
目前Microsoft SQL Server只支持后缀为.bak的文件,且不支持高版本恢复到低版本。
建议备份文件放置于同区域且独立的公共桶,混用其他公共桶可能会因为其他文件过多,而无法展示迁移备份文件。
- 登录OBS管理控制台,相关操作请参见登录OBS管理控制台。
- 创建OBS自建桶,相关操作请参见添加桶。
- 将导出的数据库备份文件上传至OBS桶内,相关操作请参见上传文件。
场景一:全量备份迁移
全量备份迁移场景为一次性数据库迁移,需要停止业务,将导出的Microsoft SQL Server全量备份文件上传至对象存储服务,然后恢复到目标数据库。
本小节将详细介绍通全量备份迁移的步骤。