创建录制回放任务
录制回放是指将源数据库发生的真实业务流量,在目标数据库模拟执行,从而观察和检验目标数据库的功能和性能表现。常用于以下两个场景:
- 功能验证回放:数据库搬迁前,通过录制回放可以提前得知源业务在目标数据库的运行效果。
- 业务加压回放:通过控制回放的线程及回放速度,来模拟源业务流量放大的效果,从而分析目标数据库对于未来业务激增时的稳定性表现。
本文以跨区域的两个RDS for MySQL为例,帮助您使用DRS录制回放功能,通过公网网络完成SQL流量文件的回放。
操作流程
操作步骤 |
说明 |
---|---|
注册华为账号并开通华为云,实名认证,准备流量文件和目标数据库、数据库连接账号、网络等。 |
|
根据需要,选择源和目标数据库,创建回放任务。 |
|
回放过程中,可以通过查看进度了解回放的完成情况。 |
|
回放完成后,通过查看回放报告,了解各SQL执行情况。 |
|
确定回放任务不再使用后,结束DRS任务。 |
准备华为账号,创建用户并赋权使用DRS。
- 打开华为云网站。
- 单击“注册”,根据提示信息完成注册。
- 勾选服务条款, 单击“开通”。
系统提示开通成功。
- 实名认证,请参考:
- 注册华为云账号后,如果需要对华为云上的资源进行精细管理,请使用统一身份认证服务(Identity and Access Management,简称IAM)创建IAM用户及用户组,并授权,以使得IAM用户获得具体的操作权限,更多操作,请参见创建用户组、用户并授予DRS权限。
在进行录制回放前,用户需要提前准备好源和目标数据库。
- 源数据库实例:为中国-香港的RDS for MySQL数据库,用户可参考RDS for MySQL快速入门内容准备,本文示例信息如下:
类别
示例
备注
区域
中国-香港
选择和自己业务区最近的Region,减少网络时延。
RDS实例名称
rds-Replaysrc
自定义,易理解可识别。
数据库版本
MySQL 5.7
-
实例类型
单机
本示例中为单机。
实际使用时,为提升业务可靠性,推荐选择主备RDS实例。
存储类型
SSD云盘
-
可用区
可用区一
本示例中为可用区一。
实际业务场景推荐选择主备RDS实例,此时建议将两个实例创建在不同的可用区,提升业务可靠性。
性能规格
通用型 2 vCPUs | 8GB
-
弹性公网IP
10.154.217.42
仅作为示例。
- 目标数据库实例:为亚太-新加坡的RDS for MySQL数据库,用户可参考RDS for MySQL快速入门内容准备,本文示例信息如下:
类别
示例
备注
区域
亚太-新加坡
选择和自己业务区最近的Region,减少网络时延。
RDS实例名称
rds-Replaytar
自定义,易理解可识别。
数据库版本
MySQL 5.7
-
实例类型
单机
本示例中为单机。
实际使用时,为提升业务可靠性,推荐选择主备RDS实例。
存储类型
SSD云盘
-
可用区
可用区一
本示例中为可用区一。
实际业务场景推荐选择主备RDS实例,此时建议将两个实例创建在不同的可用区,提升业务可靠性。
性能规格
通用型 2 vCPUs | 8GB
-
为了保证录制回放任务顺利进行,在使用DRS进行录制回放前,需要单独创建用于DRS任务连接的数据库账号,建议连接目标数据库账号的权限和源保持一致,再启动任务。
目标数据库连接账号:
- 通过DAS连接RDS for MySQL实例。
- 参考通过DAS创建账号章节,执行以下语句,创建用于连接的数据库用户usertar:
CREATE USER 'usertar'@'%' IDENTIFIED BY 'password';
- 执行以下语句,授予数据库用户usertar权限:
GRANT SELECT,CREATE,ALTER,DROP,DELETE,INSERT,UPDATE,TRIGGER,REFERENCES,SHOW VIEW,EVENT,INDEX,LOCK TABLES,CREATE VIEW,CREATE ROUTINE,ALTER ROUTINE,CREATE USER,RELOAD,REPLICATION SLAVE,REPLICATION CLIENT ON *.* TO 'usertar'@'%' WITH GRANT OPTION;
在创建公网网络录制回放任务前,用户需要先申请弹性公网IP,并在设置源数据库安全组规则,使得该弹性公网IP可以访问源数据库。
- 参考申请弹性公网IP内容,为DRS回放任务创建弹性公网IP。
- 设置源数据库安全组的规则。
将1中DRS实例弹性公网IP加入源数据库RDS for MySQL实例所属安全组的入方向规则,选择TCP协议,端口为源数据库RDS for MySQL实例的端口号。
步骤一:创建录制回放任务
本步骤是针对准备工作中所举示例进行参数设置及介绍,如果需要了解更多录制回放的使用指导,请参考回放方案概览。
- 进入创建DRS录制回放任务页面。
- 填写基本信息。
图2 基本信息
参数
示例
参数说明
区域
亚太-新加坡
当前任务所在的区域。
项目
亚太-新加坡
当前区域下可以选择的项目。
任务名称
DRS-Replay
录制回放任务的名称。
描述
暂不填写
任务描述。
- 填写录制回放实例信息。
图3 回放录制实例信息
参数
示例
参数说明
数据流动方向
本云
创建任务的数据流动方向,以华为云数据库为中心进行选择,分为本云和入云。
- 本云:指源和目标数据库均为华为云数据库实例的场景。
- 入云:指目标数据库为华为云数据库实例且需将数据传入的场景。
源数据库引擎
MySQL
源数据库的引擎类型。
流量文件来源
华为云API下载
源数据库流量文件的来源。
目标数据库引擎
MySQL
目标数据库的引擎类型。
网络类型
公网网络
DRS任务进行录制回放的网络类型。
目标数据库实例
rds-Replaytar
选择目标数据库实例。
目标数据库实例名称为数据库准备中的rds-Replaytar。
录制实例所在子网
默认的子网
录制回放任务所在的子网。
指定公网IP
-
选择DRS实例的公网IP,网络准备中创建的公网IP。
- 选择可用区和企业项目。
图4 选择可用区和企业项目
参数
示例
参数说明
可用区
可用区1
选择DRS任务创建的可用区。
企业项目
default
对于已成功关联企业项目的用户,仅需在“企业项目”下拉框中选择目标项目。
更多关于企业项目的信息,请参见《企业管理用户指南》。
标签
暂不添加
对DRS任务的标识。使用标签可方便管理您的任务。
- 单击“开始创建”。
等待5~10分钟后,页面显示“回放实例创建成功”表示DRS任务已创建成功。
- 在“源库及目标库”页面,填选源库信息、目标库信息。
- 填写任务配置。
图5 任务配置
参数
示例
参数说明
SQL类型配置
SELECT
选择回放到目标数据库SQL类型,默认选择SELECT,可选SELECT、INSERT、UPDATE、DELETE、DDL。
回放模式
性能模式
回放任务的模式,可以选择“性能模式”或“事务模式”。
- 性能模式:可以设置并发连接数,回放过程中将按照设置的连接数在目标库回放。不保证源库的SQL在目标库回放时是同一个线程连接回放,回放性能较好。
- 事务模式:不可以设置并发连接数,将按照源库日志中连接信息动态调整连接数,可以保证源库同一个连接中的事务SQL顺序执行。
回放SQL过滤
-
支持SQL内容模糊匹配过滤,将按照输入的条件信息模糊匹配回放SQL。
非条件过滤
-
该选项用于过滤SELECT,UPDATE,DELETE等类型的SQL中不包含条件的语句
并发连接数
8
设置DRS录制回放任务的回放线程数。
加速配置
100%
设置录制回放任务在相同时间内回放SQL的总量与源库执行SQL总量的比值。
- 单击“目标库信息”处的“测试连接”,测试并确定与目标库连通后,单击“下一步”。
- 在“预检查”页面,进行回放任务预校验,校验是否可进行。
- 查看检查结果,如有不通过的检查项,需要修复不通过项后,单击“重新校验”按钮重新进行任务预校验。
- 预检查完成后,且所有检查项结果均通过时,单击“下一步”。
- 在“任务确认”页面,设置回放任务的启动时间。
图6 任务启动设置
参数
示例
参数说明
启动时间
立即启动
录制回放任务的启动时间可以根据业务需求,设置为“立即启动”或“稍后启动”,优选“稍后启动”。
任务异常通知设置
关闭
该项为可选参数,开启之后,选择对应的SMN主题。当任务状态、时延指标、数据等异常时,系统将发送通知。
任务异常自动结束时间
14
设置任务异常自动结束天数。设置任务异常自动结束天数后,异常且超时的任务将会自动结束。
- 确认任务信息无误后,单击“启动任务”,提交回放任务。
- 回放任务提交后,您可在“录制回放管理”页面,查看任务状态或者查询回放进度。
- 在任务列表的右上角,单击刷新列表,可查看到最新的任务状态。
- 对于未启动、状态为配置中的任务,DRS默认保留3天,超过3天DRS会自动删除后台资源,当前任务状态不变。当用户再次配置时,DRS会重新申请资源。
步骤二:查询回放进度
回放进度展示了回放过程中SQL执行情况,可以帮助您了解任务完成的情况。
- 在“录制回放管理”界面,选中指定回放任务,单击任务名称,进入“基本信息”页面。
- 单击“回放进度”页签,查看任务进度。
- 回放进度模块中,您可以查看任务状态、启动时间、SQL总量以及已回放SQL数量等信息。
- 录制回放统计图支持选择查看某一时间段内的SQL总量、执行量、异常量以及慢SQL数量情况。
- 录制回放异常SQL模块中,展示回放异常的SQL对象分类及数量。
- 慢SQL模块支持查看SQL原始和回放耗时。
- 执行SQL模块展示回放过程中正在目标库运行的SQL情况。
- 回放完成后,可通过查看回放报告,了解各SQL执行情况。