本文介绍批量助手功能的使用流程,帮助您快速掌握如何使用割接计划功能进行迁移后的割接验证。
支持产品以及验证方法
支持的产品 | Count | TopN | SumX | CheckSum |
MySQL | 获取Table的row数量 | 获取Table的前n个row并比较 | 获取Table的指定字段的和 | 获取Table的校验和 |
Redis | 给定key, 对value利用其size做校验。 | 给定key, 对value中的N个属性做比较 | 抽样/选定一定数量(100)个key,比较源端和目标端的value | 暂不支持 |
MongoDB | 获取Collection的document数量 | 获取Collection的前n个document并比较 | 获取Collection的指定字段的和 | 暂不支持 |
ElasticSearch | 获取Index中的document数量 | 获取Index的前n个document并比较 | 暂不支持 | 暂不支持 |
Redis有序结构利用topN做抽样校验,无序结构用Size做比较。
1. 启动Agent
在云迁移中心页面,依次点击割接->割接验证进入产品界面,首次进入会看到Agent在线状态是离线的,因此需要先将Agent在服务器上启动。
1.1 申请License
首次使用或License过期时需要申请License,点击申请License按钮即可。
之后,可以在弹窗中对License进行复制。
完成后可以看到License的有效时间,若过期再次点击即可。
1.2 下载工具包
点击下载Agent工具包,解压后得到三个文件
其中agent.jar是运行的jar包,datasource.config是数据源相关配置,start.sh是启动脚本。
1.3 修改数据源配置参数
首先需要打开datasource.config,修改数据源配置:
第一行为源端的相关信息。第二行为目标端的相关信息。每一行共有6个配置项,以英文逗号(,)分隔,其中:
name:数据源的名字,可以自定义去配置,需要保证名字唯一,会在控制台进行展示和选择。
type:数据源的类型,当前仅支持MySQL、Redis、MongoDB、ES(区分大小写)。填写内容参考下面的数据源枚举值。
host:连接的IP地址,用户根据不同的数据源去做不同的配置。
port:端口号。
username:用户名。Redis若没有用户名则可以不填写,需要置为空,不可省略该项。
password:密码。
数据源type枚举值:
支持的数据源类型 | MySQL | Redis | MongoDB | ElasticSearch |
配置文件中对应的type | MySQL | Redis | MongoDB | ES |
1.4 修改脚本
配置好数据源相关的信息之后,需要修改启动脚本start.sh:
java -jar agent.jar
--agent.config_file=datasource.config
--agent.hostPublicAddress=hostPublicAddress
--agent.hostPrivateAddress=hostPrivateAddress
--agent.license=yourLicense
--access_key=your_access_key
--secret_key=your_secret_key
--endpoint=apds.cn-hangzhou.aliyuncs.com
--server_port=your_port
--region=cn-hangzhou
其中:
agent.config_file:配置的是1.2中的数据源配置文件。
agent.hostPublicAddress:公网模式配置的是能够直接进行访问的地址,当前仅支持HTTP请求,且包含端口号(格式为:http://111.111.XXX.XXX:8086,这里的端口号要与server_port配置的端口号保持一致)。私网连接模式下,该地址可以为空,但是不能删除该配置项(即保留"--agent.hostPublicAddress= "即可)。
Agent所在的ECS安全组打开端口入方向,来源限制出口IP见产品界面管控操作提示。
通过SLB或WAF转发方式暴露到公网。
agent.hostPrivateAddress:私网模式地址。在私网连接模式下,agent部署的私网地址,当前仅支持HTTP请求,且包含端口号(格式为:http://192.0.168.XXX:8086,这里的端口号要与server_port配置的端口号保持一致)。在公网连接模式下可以为空,但是不能删除该配置项(即保留"--agent.hostPrivateAddress= "即可)。
agent.license:用户在CMH控制台看到的与CMH交互的license凭证。注意,这里的配置必须与在CMH控制台查看的保持一致,否则校验不通过,会导致功能无法正常使用。
access_key:用户阿里云账号的AK,需要授权CMH的fullaccess权限策略(AliyunAPDSFullAccess)。
secret_key:用户阿里云账号的SK,需要授权CMH的fullaccess权限策略(AliyunAPDSFullAccess)。
endpoint: 配置endpoint。默认为中国的apds.cn-hangzhou.aliyuncs.com。如果用户要访问国际站,请将endpoint修改为apds.ap-southeast-1.aliyuncs.com。
server_port: 用户自行配置的端口号。默认为8086。这里的端口号与host里面的端口号要保持一致。
region:agent部署的地域(如cn-hangzhou,不能为空)。
若使用公网模式连接,则需要配置agent.hostPublicAddress,agent.hostPrivateAddress置为空即可。私网链接反之。
若使用私网连接模式,agent部署机器必须保证能访问到CMH的服务。无论使用私网连接模式还是公网连接模式,agent.hostPublicAddress和agent.hostPrivateAddress配置项都不能同时为空。
1.5 启动服务
注意:agent部署的机器必须保证能够访问到配置的数据源(例如数据库需要给服务器加白等)。
修改完之后执行下列命令,启动服务即可:
sh start.sh
启动之后可以看到服务已经顺利启动,之后在控制台上进行操作即可。
1.6 注意事项
当agent关闭之后,会产生.db的数据库文件,用户需要在下一次启动agent之前删除该文件,否则会出现数据源混淆的问题,从而导致agent不能正常启动,如下图:
需要删除数据库文件删除之后,agent便可以正常启动。
2.连接网络
完成Agent启动之后,返回CMH控制台,可以看到Agent状态变成了已启动(网络未连接)状态,单击去连接。
2.1公网连接
在弹出的弹窗中选择公网连接,根据提示在ECS安全组打开端口入方向的IP限制,单击确认按钮即可。
连接完成后可以看到agent状态为在线状态。
2.2私网连接
当前仅杭州region支持私网连接模式,如您在其他region下有私网连接校验的需求,请您和我们联系。
在弹出的弹窗中,选择私网连接后,单击下一步。
在第二步,您可以看到CMH提供给您的终端节点服务信息。之后需要您前往VPC控制台(单击前往VPC控制台,)创建反向终端节点(请确保选择的是我们向您提供的终端节点服务)。
在跳转的专有网络控制台中,选择反向终端节点,单击创建终端节点。
完成表单填写,创建终端节点,注意这里选择终端节点服务需要核对是否与CMH控制台中提示的CMH终端节点服务信息一致。
a. 当前仅支持杭州region的私网连接模式,如您在其他region有私网连接进行数据校验的需要,请与我们联系。
b. 在杭州region下,创建反向终端节点时,选择的vswitch一定保证是可用区I。(如您没有满足条件的vswitch,请创建之后重新配置)。
创建终端节点之后,请您耐心等待,确保终端节点的状态为可用时再进行下一步。
完成终端节点创建之后,返回CMH控制台,单击下一步按钮,
选择刚才创建的终端节点,单击确认按钮,首次配置连接时间可能较长,请稍作等待。
连接完成后可以看到agent状态为在线状态。
3. 创建割接计划
3.1 新建割接计划
完成agent启动和连接网络之后,可以看到agent已经变成在线状态。点击新建割接计划按钮,填写基本信息完成割接计划的创建。
填写完成后,点击确认按钮即可完成创建。
3.2 创建校验任务
点击计划名称进入目标计划的详情页,然后点击新建任务按钮,进行校验任务的创建。
或者在创建割接计划时,可以直接点击确认并创建校验任务按钮进行校验任务的创建。
进行表单填写后点击下一步按钮,目前共支持4种验证方式:Count,CheckSum,SumX,TopN(需要额外填写排序数量N)。
系统会将选择的源端库中的表解析并展示,选择需要进行数据校验的表后点击下一步。
CMH提供了正向选择(校验选中的表),反向选择(校验选中的表以外的所有表),全部(校验全部表)三种选择方式。
最后,确认选择的校验表是否符合预期,完成后点击保存按钮,即可完成校验任务的创建。
注意:若选择的是SumX的校验方法,需要在校验范围确认阶段选择验证字段。
若选择的是TopN的校验方法,则需要额外在校验范围确认阶段选择验证字段和排序字段。
验证字段:根据所选择的字段进行数据校验。
排序字段:根据验证结果进行排序展示的字段。
3.3 发起校验任务
校验任务创建完成后,可以点击发起验证按钮直接发起所有校验任务。同时也支持勾选后,点击批量发起验证按钮进行部分任务的发起。
点击发起任务后,任务的状态会置为验证中,等待后刷新页面即可观察到任务的执行结果。
若发现执行结果不符合预期,支持数据订正之后,点击重新运行任务按钮,重新发起校验。