发布时间: 2021-12-30 10:25:08
Oracle云平台OCI推出的MySQL Database Service(简称MDS)已经有一段时间,除支持单机应用外,也支持高可用架构,如下图所示:
本文就使用Oracle GoldenGate(简称OGG)从本地MySQL迁移到OCI MDS做一简单测试,以评估其可用性和效率。考虑到需要模拟一定的业务和相应的数据量,故在此测试中,将使用benchmarksql 5生成10G左右的数据量,并通过GoldenGate初始化加载到MDS。
测试步骤概述
关于GoldenGate的初始化
利用GoldenGate,可以实现几种形式的数据初始化,包括与数据库工具集成、与ETL导数工具集成、或由GoldenGate生成文本后,再由DB加载工具完成初始化。
针对小数据量的系统,也可用GoldenGate单独完成初始化。
准备本地环境
由于benchmarksql主要在Linux环境执行,所以需要在本地Linux环境上部署一个MySQL数据库。Benchmarksql的使用和加载数据到MySQL,可参考网上相关文章,本文不再赘述。
准备OCI环境
云端的OCI MySQL Database Service,可以直接在OCI界面上申请,OGG VM,可直接在OCI Marketplace中申请,该VM负责接收本地上传的数据,并将数据写入到MDS中。在创建OGG VM时,需要确保此VM的VCN和subnet与MDS的相同,否则该VM将无法访问创建的MDS。
网络准备
需要开通本地到云端OGG VM之间7809-7815的端口,确保本地能连接到VM的这些端口。
最后,还需要设置OGG VM可以访问 MDS的3306端口,以确保OGG能远程访问MDS。
创建测试表
参考Benchmarksql目录下的run/sql.common/tableCreates.sql创建测试表。
由于在Benchmarksql 5.0中未包含对MySQL的支持,需要修改相应语法才能执行。
创建完成后的数据表如下:
加载初始化数据
Benchmarksql的属性配置中,执行一个warehouses加载,大约生成100M的数据,所以我们需要设置warehouses=100,从而得到约10G的数据,加载过程:
在Benchmarksql加载数据之前,可提前将GoldenGate的进程配置好,这样可以一边加载一边初始化到云端,类似于GoldenGate的增量抽取。由于我们是模拟生产系统的迁移,所以需要等待数据加载完成之后再启动GoldenGate的迁移。
加载完成之后,MySQL目录所占空间大小如下:
可以看到,数据量约8.5G。
GoldenGate进程配置
在源和目标端数据库上创建OGG用户并赋权(略过)。
配置OGG抽取和交付进程。
本地初始化抽取进程exinit.prm
云端交付进程 rcord.prm
目标端为了提升加载速度,采用coordinated replicate实现多进程同时写入,经测试,在性能上比单进程有60%的提升。
启动GoldenGate进程
先启动两端OGG的MGR进程,再启动初始化抽取,可以看到在云端的目录下会有相应的队列文件生成,此时,启动云端的交付进程即可。
抽取完成之后,目标端的队列文件约占14G空间,比表里的实际数据所占空间要大,主要是因为每条记录都有相应的控制信息,字段数越少,控制信息所在比例越大。
本地抽取进程日志,本地抽取可以实现上万条的速率,如果是物理机,抽取速度应该会更快。
云端交付进程日志
初始化完成
采用上述方法初始化,当初始化进程抽取完成之后,进程会自动停止。
从日志中,我们可以看到抽取进程从抽取到传输完成,大约花了30分钟。
从云端的交付进程日志,我们可以看到,交付进程耗时约1小时30分钟。
小结
以上测试中,本地VM的内存为8G,与云端连接时,使用电信普通宽带;云端OGG VM分别验证了16G和32G内存,迁移时间相差不大。
测试过程中的一些指标如下:
综合本文测试可以看到,针对普通数据库的迁移上云,可直接通过OGG完成数据的抽取、传输和写入,如果同时还需要增量数据实时同步,在现有初始化参数上做些简单修改即可复用;在上述测试中,OGG在传输时进行了数据压缩,即使在Internet网络环境下,OGG的传输效率也可圈可点。
在本地数据量小于100G的情况下,可采用OGG直接迁移上云,如果本地数据量较大,且网络不稳定,建议将抽取和传输拆分为两个进程,以确保网络中断不影响抽取;最后,OGG也支持异构数据库的迁移,比如从SQL Server迁移到Oracle,或从MySQL迁移到PostgreSQL。
在企业上云的过程中,利用好GoldenGate这把瑞士军刀,将会使企业的迁移效率事半功倍。
上一篇: 疫情期间HCIA/HCIP/HCIE 证书续认证及HCIE实验延期政策
下一篇: 逻辑交换机的运作方式