场景二:全量+增量备份迁移
全量+增量备份迁移为数据持续性迁移,需要在完成全量备份恢复的基础上,通过多次增量备份文件恢复,实现迁移过程中业务中断的最小化。一次典型的增量恢复过程,会涉及多次恢复增量备份。每个增量备份恢复均会使目标数据库保持还原中状态,此时数据库不可读写,直至最后一个增量备份恢复完成后,数据库才能变成可用状态。
本小节将以一次完整的全量+增量迁移为示例,详细介绍如何实现最小化业务中断的数据库迁移。
迁移示意图
迁移流程图
首次进行全量迁移
- 导出全量备份文件,具体操作请参见导出数据库备份文件。
- 将导出的全量备份文件上传至OBS桶内,请参见上传备份文件。
- 登录数据复制服务控制台。
- 单击管理控制台左上角的,选择区域和项目。
- 在“所有服务”或“服务列表”中,选择“数据库>数据复制服务 DRS”,进入数据复制服务信息页面。
- 在页面左侧导航栏,选择“备份迁移管理”,单击“创建迁移任务”,进入“选定备份”页面。
- 填写迁移任务信息和备份文件信息,单击“下一步”。
图3 迁移任务信息
表1 迁移任务信息 参数
描述
任务名称
任务名称在4-64位之间,必须以字母开头,不区分大小写,可以包含字母、数字、中划线或下划线,不能包含其他特殊字符。
描述
描述不能超过256位,且不能包含!=<>&'"特殊字符。
数据库类型
选择Microsoft SQL Server数据库引擎。
备份文件来源
选择自建OBS桶。
桶名
选择备份文件所在的桶名,以及该桶目录下上传好的全量备份文件。
说明:- Microsoft SQL Server的备份文件需要选择OBS桶目录下“.bak”格式的文件名,且可以同时选择多个备份文件。
- 不支持将一个库分割成不同文件上传。
- 该桶的桶名、备份文件名或者路径中不能包含中文。
- 当桶内数据超过500条,可能会造成数据溢出现象,导致部分数据无法展示,建议使用独立的标准桶,桶的权限为公共读。
- 在“选定目标”页面,填选数据库信息后,单击“下一步”。
图4 全量迁移数据库信息
表2 Microsoft SQL Server数据库信息 参数
描述
目标RDS实例名称
选择合适的目标RDS数据库实例。
待恢复备份类型
选择全量备份。
全量备份指备份文件是完整备份类型的备份。
最后一个备份
一次典型的增量恢复过程,会涉及多次恢复增量备份。每个增量备份恢复均会使目标数据库保持还原中状态,此时数据库不可读写,直至最后一个增量备份恢复完成后,数据库才能变成可用状态。此后数据库将无法继续进行增量恢复,所以确定为最后一个备份的场景有:
- 一次性全量迁移,后续将不再进行增量恢复,选择“是”。
- 增量恢复流程中,最后割接阶段的最后一个增量备份选择“是”。
当前进行的是全量+增量备份迁移,全量备份恢复后,需要继续进行增量备份恢复,该参数选择“否”。此时目标数据库将会处于恢复中的状态,不可读写。
覆盖还原
覆盖还原是指目标端数据库实例已经存在同名的数据库,备份还原中是否要覆盖已存在的数据库。您可以根据业务需求,选择是否进行覆盖还原。
说明:若选择此项,目标数据库实例中与待还原数据库同名的数据库将会被覆盖,请谨慎操作。
执行预校验
备份迁移任务是否执行预校验,默认为是。
- 是:为保证迁移成功,提前识别潜在问题,在恢复前对备份文件的合法性、完整性、连续性、版本兼容性等进行校验。
- 否:不执行预校验,迁移速度更快,但需要用户判断备份文件的合法性、完整性、连续性、版本兼容性等问题。
指定需要恢复的数据库
您可以选择将全部数据库或部分数据库进行恢复。
重置数据库名
当选择的指定恢复数据库类型为“全部数据库”时,您可以选择重置数据库名。该功能将忽略备份文件中原有的数据库名,通过DRS将其恢复为指定的新数据库名。
使用条件:
- 备份文件中只有一个数据库。
- 备份文件是全量备份类型(待恢复备份类型选择:全量备份),且是一次性恢复(最后一个备份选择:是)。
说明:仅支持“待恢复备份类型”为“全量备份”,且“指定需要恢复的数据库类型”为“全部数据库”时重置数据库名。
待还原数据库名称
当选择的指定恢复数据库类型为“部分数据库”时,需要输入待还原数据库名称。
待还原数据库名称必须与备份文件中的数据库名称一致,区分大小写,待还原库名最大支持256字节,新库名最大支持128字节,可以包含字母、数字、中划线和下划线(待还原库名还支持中文),不能包含其他特殊字符。
此处,数据复制服务还提供待还原数据库别名设置的功能。
- 在“确认信息”页面核对配置详情后,勾选协议,单击“下一步”。
- 在“备份迁移管理”页面任务列表中,观察对应的恢复任务的状态为“恢复中”,恢复成功后,任务状态显示“成功”。
进行第一次增量迁移
- 导出第一次增量备份文件,具体操作请参见导出数据库备份文件。
- 将导出的备份文件上传至OBS桶内,请参见上传备份文件。
- 返回数据复制服务控制台。
- 在页面左侧导航栏,选择“备份迁移管理”,单击“创建迁移任务”,进入“选定备份”页面,继续创建增量备份迁移任务。
- 填写迁移任务信息和备份文件信息,单击“下一步”。
图5 增量备份
表3 迁移任务信息 参数
描述
任务名称
任务名称在4-64位之间,必须以字母开头,不区分大小写,可以包含字母、数字、中划线或下划线,不能包含其他特殊字符。
描述
描述不能超过256位,且不能包含!=<>&'"特殊字符。
数据库类型
选择Microsoft SQL Server数据库引擎。
备份文件来源
选择自建OBS桶。
桶名
选择备份文件所在的桶名,以及该桶目录下上传好的第一次增量备份文件。
说明:- Microsoft SQL Server的备份文件需要选择OBS桶目录下“.bak”格式的文件名,且可以同时选择多个备份文件。
- 不支持将一个库分割成不同文件上传。
- 该桶的桶名、备份文件名或者路径中不能包含中文。
- 在“选定目标”页面,填选数据库信息后,单击“下一步”。
图6 增量迁移数据库信息
表4 Microsoft SQL Server数据库信息 参数
描述
目标RDS实例名称
选择目标RDS实例。
该目标RDS实例应该与进行全量备份恢复时选择的目标实例一致。
待恢复备份类型
选择增量备份。
增量备份指备份文件是日志类型的备份。
最后一个备份
一次典型的增量恢复过程,会涉及多次恢复增量备份。每个增量备份恢复均会使目标数据库保持还原中状态,此时数据库不可读写,直至最后一个增量备份恢复完成后,数据库才能变成可用状态。此后数据库将无法继续进行增量恢复,所以确定为最后一个备份的场景有:
- 一次性全量迁移,后续将不再进行增量恢复,选择“是”。
- 增量恢复流程中,最后割接阶段的最后一个增量备份选择“是”。
当前进行的是第一次增量备份迁移,该参数选择“否”。此时目标数据库将会处于恢复中的状态,不可读写。
执行预校验
备份迁移任务是否执行预校验,默认为是。
- 是:为保证迁移成功,提前识别潜在问题,在恢复前对备份文件的合法性、完整性、连续性、版本兼容性等进行校验。
- 否:不执行预校验,迁移速度更快,但需要用户判断备份文件的合法性、完整性、连续性、版本兼容性等问题。
指定需要恢复的数据库
您可以选择将全部数据库或部分数据库进行恢复。
- 全部数据库:恢复备份文件中所有的数据库,不需要输入待还原数据库名称,默认还原备份文件里的所有数据库。
- 部分数据库:恢复备份文件中的部分数据库,需要输入待还原数据库名称。
- 在“确认信息”页面核对配置详情后,勾选协议,单击“下一步”。
- 在“备份迁移管理”页面任务列表中,观察对应的恢复任务的状态为“恢复中”,恢复成功后,任务状态显示“成功”。
进行第二次增量迁移
为了实现迁移导致的业务中断时间最小化,需要在业务割接前,进行一次事务日志备份上传与恢复,该操作会将割接前所有的历史数据恢复至目标数据库,很大程度上减少了割接时最后一个事务日志备份的上传与恢复的时间。
- 在业务割接前,导出新的增量备份文件,请参见导出数据库备份文件。
- 继续执行2到4。
- 填写迁移任务信息和备份文件信息,单击“下一步”。
图7 增量备份
表5 迁移任务信息 参数
描述
任务名称
任务名称在4-64位之间,必须以字母开头,不区分大小写,可以包含字母、数字、中划线或下划线,不能包含其他特殊字符。
描述
描述不能超过256位,且不能包含!<>&'\"特殊字符。
数据库类型
选择Microsoft SQL Server数据库引擎。
备份文件来源
选择自建OBS桶。
桶名
选择备份文件所在的桶名,以及该桶目录下上传好的新的增量备份文件。
说明:- Microsoft SQL Server的备份文件需要选择OBS桶目录下“.bak”格式的文件名,且可以同时选择多个备份文件。
- 不支持将一个库分割成不同文件上传。
- 该桶的桶名、备份文件名或者路径中不能包含中文。
- 在选定目标页面,填选数据库信息后,单击“下一步”。
图8 增量迁移数据库信息
表6 Microsoft SQL Server数据库信息 参数
描述
目标RDS实例名称
选择目标RDS实例。该目标RDS实例应该与进行全量备份恢复时选择的目标实例一致。
待恢复备份类型
选择增量备份。
增量备份指备份文件是日志类型的备份。
最后一个备份
一次典型的增量恢复过程,会涉及多次恢复增量备份。每个增量备份恢复均会使目标数据库保持还原中状态,此时数据库不可读写,直至最后一个增量备份恢复完成后,数据库才能变成可用状态。此后数据库将无法继续进行增量恢复,所以确定为最后一个备份的场景有:
- 一次性全量迁移,后续将不再进行增量恢复,选择“是”。
- 增量恢复流程中,最后割接阶段的最后一个增量备份选择“是”。
当前进行的是割接业务前的增量备份迁移,该参数选择“否”。此时目标数据库将会处于恢复中的状态,不可读写。
执行预校验
备份迁移任务是否执行预校验,默认为是。
- 是:为保证迁移成功,提前识别潜在问题,在恢复前对备份文件的合法性、完整性、连续性、版本兼容性等进行校验。
- 否:不执行预校验,迁移速度更快,但需要用户判断备份文件的合法性、完整性、连续性、版本兼容性等问题。
指定需要恢复的数据库
您可以选择将全部数据库或部分数据库进行恢复。
- 全部数据库:恢复备份文件中所有的数据库,不需要输入待还原数据库名称,默认还原备份文件里的所有数据库。
- 部分数据库:恢复备份文件中的部分数据库,需要输入待还原数据库名称。
- 在“确认信息”页面核对配置详情后,勾选协议,单击“下一步”。
- 在“备份迁移管理”页面任务列表中,观察对应的恢复任务的状态为“恢复中”,恢复成功后,任务状态显示“成功”。
检查数据库事务
在进行业务割接之前,需要停止业务,然后确认数据库内无未完成的事务,避免因数据库中存在未完成的事务导致数据丢失问题。
- 执行如下语句,判断业务系统IP是否已经断开连接。
select * from sys.dm_exec_connections;
- 是,表示所有业务系统ip都已经断开连接,可以进行最后一个增量备份迁移。
- 否,执行2。
- 如果查询到存在未断开的业务系统ip,继续通过如下语句查询未关闭的会话 。
select * from sys.dm_exec_sessions;
同时,根据如下语句查看正在执行的事务。
select * from sys.dm_tran_session_transactions;
若上述查询结果中存在未关闭的会话和正在执行的事务,请继续执行3。
- 需要等到事务执行完成,关闭会话,断开业务系统连接后,才可以进行最后一个增量备份迁移。
进行最后一次增量迁移
经过上面多次增量备份的迁移与恢复,数据库数据已经接近一致了,同时在上一阶段检查数据库事务的过程中已经将源业务停止,不会再产生新数据,此时为了确保迁移与恢复数据的完整性和一致性,需要进行最后一次增量备份的迁移与恢复。
- 导出新的增量备份文件,具体操作请参见导出数据库备份文件。
- 继续执行2到4。
- 填写迁移任务信息和备份文件信息,单击“下一步”。
图9 增量备份
表7 迁移任务信息 参数
描述
任务名称
任务名称在4-64位之间,必须以字母开头,不区分大小写,可以包含字母、数字、中划线或下划线,不能包含其他特殊字符。
描述
描述不能超过256位,且不能包含!=<>&'"特殊字符。
数据库类型
选择Microsoft SQL Server数据库引擎。
备份文件来源
选择自建OBS桶。
桶名
选择备份文件所在的桶名,以及该桶目录下上传好的新的增量备份文件。
说明:- Microsoft SQL Server的备份文件需要选择OBS桶目录下“.bak”格式的文件名,且可以同时选择多个备份文件。
- 不支持将一个库分割成不同文件上传。
- 该桶的桶名、备份文件名或者路径中不能包含中文。
- 在选定目标页面,填选数据库信息后,单击“下一步”。
图10 增量迁移数据库信息
表8 Microsoft SQL Server数据库信息 参数
描述
目标RDS实例名称
选择目标RDS实例。该目标RDS实例应该与进行全量备份恢复时选择的目标实例一致。
待恢复备份类型
选择增量备份。
增量备份指备份文件是日志类型的备份。
最后一个备份
该阶段为停止业务后进行的最后一次增量迁移,该参数选择“是”。
执行预校验
备份迁移任务是否执行预校验,默认为是。
- 是:为保证迁移成功,提前识别潜在问题,在恢复前对备份文件的合法性、完整性、连续性、版本兼容性等进行校验。
- 否:不执行预校验,迁移速度更快,但需要用户判断备份文件的合法性、完整性、连续性、版本兼容性等问题。
指定需要恢复的数据库
您可以选择将全部数据库或部分数据库进行恢复。
- 全部数据库:恢复备份文件中所有的数据库,不需要输入待还原数据库名称,默认还原备份文件里的所有数据库。
- 部分数据库:恢复备份文件中的部分数据库,需要输入待还原数据库名称。
- 在“确认信息”页面核对配置详情后,勾选协议,单击“下一步”。
- 在“备份迁移管理”页面任务列表中,观察对应的恢复任务的状态为“恢复中”,恢复成功后,任务状态显示“成功”。