HCCDP-第四章
MySQL本地数据库迁移
本实验以某数据中心MySQL数据库迁移为例,指导用户掌握DRS迁移流程。
实验流程
1. 环境预置,登录ECS测试源数据库
2. 操作云数据库RDS,作为目标数据库
3. 操作DRS在线迁移任务,完成数据迁移
1.2.登录华为云
进入【实验操作桌面】,打开Chrome浏览器,进入华为云控制台页面,首次可自动登录。
注意:如后续关闭浏览器重新登录或自动登录失败,可按如此步骤登录:选择【IAM用户登录】模式,于登录对话框中输入系统为您分配的华为云实验账号和密码登录华为云,如下图所示:
注意:账号信息详见实验手册上方,切勿使用您自己的华为云账号登录。
2.1.创建云数据库RDS实例
鼠标移动到云桌面浏览器页面中左侧菜单栏,点击服务列表->”数据库”->“云数据库RDS”进入进入实例管理界面,点击“购买数据库实例”进入参数填写界面,进行如下配置相关参数,完成云上目标数据库的创建:
1、计费方式(按需计费)
2、区域(华北-北京四)
3、实例名称(data-transfer-rds)
4、选择MySQL数据库5.7版本
5、实例类型为“单机”
6、储存类型:SSD云盘
7、可用区:选资源的可用区。示例为“可用区二”
8、时区:UTC+08:00
9、性能规格:通用型 ,配置为2核4G
注意:请确认所选类型为“通用型”。
10、存储空间(GB):默认(40GB)
11、磁盘加密:不加密
12、虚拟私有云:请选择预置环境时系统生成的命名为“Sandbox-Voyagerxxx”的VPC
13、安全组:请选择预置环境时系统生成的命名为“Sandbox-Voyagerxxx”的安全组
14、数据库端口:默认(3306)
15、密码请按照页面要求设置
16、其他参数默认即可
点击“立即购买”【约等待5分钟】,待运行状态从“创建中”变为“正常”则为购买完成。
2.2.数据库测试程序
在预置好的ECS中执行测试程序,查看当前需要迁移的数据库资源消耗,模拟真实业务场景。
2.2.1.执行数据库压测脚本
依次点击“控制台”->“服务列表”->“计算”->“弹性云服务器ECS”进入服务器列表,如下图,查看预置好的ECS,找到ECS的公网IP等信息:
① 双击桌面的“Xfce终端”打开Terminal,输入以下命令登录云服务器ECS;
注意:请使用以华为云账户名命名的弹性云服务器ECS的公网IP替换命令中的【EIP】。
ssh root@EIP
②接受秘钥输入“yes”,回车;
③输入密码:点击左侧icon眼睛图标查看预置环境信息中云服务器的用户密码(输入密码时,命令行窗口不会显示密码,输完之后直接键入回车)。成功登录云服务器之后如下图所示:
使用MySQL命令登录数据库,并创建测试库“loadtest”,用弹性云服务器ECS的私网IP替换命令中的【mysql-ip】命令如下:
mysql -u root -h 【mysql-ip】 -p -e "create database loadtest"
说明:提示输入密码,密码为:Cloud12#$(本实验示例密码,其他场景请设置自定义密码)
使用sysbench命令导入测试数据到“loadtest”数据库;用弹性云服务器ECS的私网IP替换命令中的【host】,命令如下:
sysbench /root/sysbench/tests/include/oltp_legacy/oltp.lua --db-driver=mysql --mysql-db=loadtest --mysql-user=root --mysql-password='Cloud12#$' --mysql-port=3306 --mysql-host='【host】' --oltp-tables-count=10 --oltp-table-size=10000 --threads=20 prepare
执行测试【保持命令行开启】,用弹性云服务器ECS的私网IP替换命令中的【host】,命令如下:
sysbench /root/sysbench/tests/include/oltp_legacy/insert.lua --db-driver=mysql --mysql-db=loadtest --mysql-user=root --mysql-password='Cloud12#$' --mysql-port=3306 --mysql-host='【host】' --oltp-tables-count=10 --oltp-table-size=1000 --max-time=3600 --max-requests=0 --threads=10 --report-interval=3 --rate=20 --forced-shutdown=1 run
运行成功会发现程序不断读写数据库,压测脚本用于模拟数据库业务持续进行数据的读写操作,如下图所示:
2.2.2.查看CPU、IO情况
执行完成数据库测试脚本后(脚本程序不断运行),新打开一个命令行窗口,观察此时CPU、IO性能指标的使用情况,方便后面在执行数据在线迁移任务时,观察DRS接入后对源数据库的性能影响(2.8.4步骤)。输入以下命令登录云服务器:
注意:请使用以华为云账户名命名的弹性云服务器ECS的公网IP替换命令中的【EIP】。
ssh root@EIP
执行以下命令查看CPU使用情况:
top
可以看到数据库CPU占比,如下图:
查看IO情况(CTRL+C退出top命令),执行命令如下:
iostat -d vda vdb -m 1 10
观察vda的IO变化情况(单位为:m/s),如下图所示(观察完成之后可以CTRL+C退出):
2.3.创建迁移任务
鼠标移动到云桌面浏览器页面中左侧菜单栏,点击服务列表->”数据库”->“数据复制服务DRS”:
进入“实时迁移管理”页面,单击右上角“创建迁移任务”,进入迁移任务信息页面。
若出现弹窗点击(多次)关闭即可。
在“迁移实例”下,根据如下迁移实例信息参数,完成第一步任务配置,创建DRS实例:
1、区域:华北-北京四
2、任务名称: data-transfer-task
3、任务异常通知设置:关闭
4、任务异常自动结束时间(天):14
5、数据流动方向:入云
6、源数据库引擎:MySQL
7、目标数据库引擎:MySQL
8、网络类型: 公网网络
9、目标数据库实例:选择我们创建的RDS
10、迁移模式:"全量+增量"
11、目标库读写设置:读写
12、指定公网IP:选择“创建弹性公网IP”,并注意选择规格为按带宽计费5Mbit/s,否则将被删除
点击“开始创建”完成操作。
2.4.源库及目标库信息
迁移实例创建成功后,在“源库及目标库”下,填写源库信息和目标库信息。
源库信息:
① IP地址或域名:预置的以用户名命名ECS的公网地址;
② 端口:3306;
③ 数据库用户名:root;
④ 数据库密码:Cloud12#$(本实验示例密码,其他场景请输入自定义密码)
⑤ SSL安全连接:关闭,
点击“测试连接”,连接成功如下图:
注意:迁移实例创建成功大约需要花费3-5分钟,且必须创建成功才能点击“测试连接”。
目标库信息:
① RDS云数据库实例名称:默认
② 数据库用户名:root
③ 数据库密码:输入自定义设置的密码
④ 所有Definer迁移到该用下:是
同上点击“测试连接”,连接成功如图所示:
并确定与源库和目标库连通后,勾选同意协议,单击“下一步”。
2.5.设定迁移
迁移设置可根据界面默认选择设置,包括流速模式、迁移用户、迁移对象等。
其中,迁移用户选择“是”时,对于目标数据库(RDS)中已存在的用户将不再迁移,不存在的用户(即新增用户)则自动迁移。
对于不支持迁移的用户,可以点击“查看”了解用户不能迁移的原因;对于支持迁移的用户,可以修改HOST地址(即该用户连接数据库的IP地址),可以单独设置密码,也可以为所有可迁移用户设置统一的密码。
说明:密码需包含大小写字母加数字和特殊字符。
点击“确认所有备注”,确认已了解用户迁移的所有备注;
迁移对象选择“全部迁移”,点击“下一步”,弹出提示选择 “忽略”,继续”下一步”,如图所示:
2.6.预检查
在“预检查”页面可以进行迁移任务预校验,校验是否可以进行任务迁移。
如图所示,查看检查结果,如有失败的检查项,需要修复后,单击“重新校验”按钮重新进行迁移任务的预校验。
预检查不通过项处理建议请参见《数据复制服务用户指南》中的故障排除 –> “预检查不通过项修复方法”,访问地址:https://support.huaweicloud.com/trouble-drs/drs_11_0001.html ,待所有检查项均通过后,单击“下一步”。
说明:所有检查项结果均成功时,若存在告警,需要阅读并确认告警详情后才可以继续执行下一步操作。
2.6.1.参数对比
常规参数和性能参数一般情况下会有几项不一致,属于正常现象,可以自行选择是否与源数据库参数保持一致,提供线下自定义配置数据库参数的修改入口,避免影响业务,您也可跳过此步骤。
①业务相关参数包括字符集设置,连接等待时间,最大连接数,锁等待时间,连接等待时间,事务隔离级别,调度相关等。
②性能相关参数包括*_buffer_size,*_cache_size等。
大部分参数可以选择不迁移,但参数往往直接影响到业务的运行和性能的表现。常规参数和性能参数一般情况下会有几项不一致,属于正常现象。
确认无误后请点击“下一步”,如下图所示:
2.7.任务确认
在“任务确认”页面,选择迁移任务的启动时间(本次实验选择“立即启动”),勾选协议,单击“启动任务”,弹出页面勾选协议,点击“启动任务”提交迁移任务,如下图所示:
迁移任务提交后,您可以返回“实时迁移管理”页面,查看迁移任务状态。
2.8.任务管理
迁移任务启动后,会经历全量迁移和增量迁移两个阶段,对于不同阶段的迁移任务,您可以进行任务管理。
2.8.1.全量迁移
全量迁移中的任务,您可单击任务名称,在 “迁移进度”页签下,了解全量迁移的进度。当全量迁移各项指标完成进度显示为100%,表示全量迁移已经完成。如下图所示:
2.8.2.增量迁移
全量迁移完成后,开始进行增量迁移。对于增量迁移中的任务,您可单击任务名称,在“迁移进度”页签下,查看增量迁移同步时延,当时延接近0s时(由于后台一直持续对数据库进行读写操作测试,所以增量迁移有一定延迟),说明源数据库和目标数据库的数据是实时同步的。
2.8.3.迁移对比
在增量迁移阶段,可以体验迁移对比模块,迁移对比分为:对象级对比(无需对比)、数据级对比和用户对比。
首先进行数据库对象完整性检查。单击“对象检查”,进入“对象级对比”页签,单击“开始对比”后稍等一段时间再单击,查看各个对比项的对比结果。如下图:
数据库对象检查完成后,进行迁移数据行数及内容的对比: ① 点击选择上图的 “数据级对比”; ② 点击“创建对比任务”(若按钮是灰色的,可点击右侧刷新); ③ 进入创建对比任务页面,如下图所示。对比类型选择“行数对比”,对比时间选择“立即启动”,勾选如图所示的loadtest下某个数据,点击蓝色的“>>”选入右侧,再点击页面中的“是”创建对比任务。
说明:该对比针对所选表的内容是否一致(RDS与云上ECS库;由于云上ECS库测试业务不断读写数据库,对比详情有可能出现不一致情况,这属于正常现象)。考虑到全选数据量太大,所需时间太长,建议实验随机选择一张表对比内容。
创建完成后如图所示:
等待对比完成,点击“查看对比报表”,可以了解对比详情,详情页面如图所示:
2.8.4.增量迁移CPU、IO资源使用情况
在增量迁移阶段,云上ECS自建数据库与RDS处于一个近实时同步的状态,此时可以查看近实时同步操作是否影响源数据库的性能,参照2.2.2步骤查看CPU使用率,如图所示:
参照2.2.2步骤观察vda的IO变化情况(单位为:m/s),如下图所示:
与2.2.2步骤查看的CPU、IO情况对比可知,增量迁移对云上自建数据库的ECS服务器影响很小。
3.1.中断业务
点击当前系统底部,切换至执行(2.2.1步骤)压测命令行界面,键入Ctrl + C结束压测脚本,即中断云上服务器数据库业务。
返回浏览器,通过DRS迁移任务监控页面进行观察同步时延,当数据同步时延为0并稳定保持一段时间(即数据库读写业务中断,并确保源数据库与目标数据库数据确保保持一致,迁移完成),如下图所示:
可以通过迁移对比功能(2.8.3步骤),观察源数据库和目标数据库对比情况。最后一次确认数据完全一致,即全部数据迁移至RDS。
3.2.割接业务
打开(参考2.1步骤,鼠标移动到云桌面浏览器页面中左侧菜单栏,点击服务列表->”数据库”->“云数据库RDS”)RDS列表,找到名称为data-transfer-rds的RDS,查看其IP地址如下图:
打开命令行窗口。用RDS的用户密码替换下面命令中的【password】,用RDS的私网IP地址替换下面命令中的【host】,并执行命令:
sysbench /root/sysbench/tests/include/oltp_legacy/insert.lua --db-driver=mysql --mysql-db=loadtest --mysql-user=root --mysql-password='【password】' --mysql-port=3306 --mysql-host='【host】' --oltp-tables-count=10 --oltp-table-size=1000 --max-time=3600 --max-requests=0 --threads=20 --report-interval=4 --rate=20 --forced-shutdown=1 run
运行成功之后,如下图所示:
程序将会不断读写RDS数据库,业务系统指向华为云的RDS数据库,此时意味着业务对外恢复正常(业务在华为云RDS上也可用,说明迁移成功),迁移迁移完成且业务割接成功。
说明:执行命令时若提示输入密码,请输入预置环境信息中云服务器的用户密码。
3.3.结束实验
退出当前命令行运行程序(快捷键:Ctrl + C),切换至浏览器DRS服务列表页,点击“结束”,选择强制结束DRS迁移任务(约等待2分钟)完成实验。
- 点赞
- 收藏
- 关注作者
评论(0)