【 使用环境 】测试环境
【 OB or 其他组件 】
【 使用版本 】
【问题描述】清晰明确描述问题
【复现路径】问题出现前后相关操作
【附件及日志】推荐使用OceanBase敏捷诊断工具obdiag收集诊断信息,详情参见链接(右键跳转查看):
最简单的就是调整OMS的jvm大小和work_num数。。或者源库能拆分成多张表的话其实也能提高效率
有调整过,目前jvm32G worknum128 但感觉效率还是不太满意 rps 10000左右
源库的拆分是指?
OMS的资源看上去是够了,那看一下源库和目标库是否存在瓶颈呢。。检查下源库和目标库是否有慢SQL以及insert语句耗时高不高
把源库大表拆成多张小表
查询和插入都是毫秒级别,batchSize 设置的30000
这样来看单表确实没有好的办法,目前迁移了多少数据量。。计算下还要多久的时间,是否能接受吧
背景是3版本迁移到4版本并且做分区表改造,3版本数据库数据量单副本100G左右,1亿行的那张大表就90多G了,目前优化的方式是临时提升源端和目标端的CPU配置,提高并发能力,目前迁移速度在3-4小时左右
3-4个小时应该也还好,3.x源端那边如果是分区的话其实速度也应该能快很多
是和表无主键有关吗?
第二个问题找到了:对于无主键表,现在 OMS 不支持增量同步以及数据校验,所以如果要同步的表包括主键表+无主键表,那么后续增量同步任务,需要将无主键表剔除掉,或者保证无主键表没有变更。
MySQL 迁移到 OB-数据库技术博客-OceanBase分布式数据库
1、调整ob租户内存大小和调整oms jvm 大小
2、通过分区表 批量迁移,我记得oms或者datax 可以 单独对分区表迁移
3、冷热数据分割,热数据通过oms迁移;冷数据 dump ,datax,flink cdc 都可以 ,方法很多。
你oms什么版本的 ,我记得4.2.2 以后 都支持无主键表迁移了。
增量延迟大概在多久。。我实测的经验在二三十秒都算正常,如果超过这个时间需要确定的源端日志是否有写入,源端写入不频繁的话超过这个时间也算正常
好的,估计可能因为测试环境周六日没啥写入操作。
4.2.1版本
全量迁移的时候可以参考下面参加提高源和目标batch的大小提高性能,生产环境谨慎调节
“limitator.image.insert.batch.max”:
string"100"
“limitator.platform.threads.number”:
string"4"
“limitator.reviewer.period”:
string"3"
“limitator.reviewer.review.batch.max”:
string"100"
“limitator.reviewer.rounds.max”:
string"20"
“limitator.reviewer.time.max”:
string"60"
“limitator.select.batch.max”:
string"200"
“limitator.table.diff.max”:
string"10000"
“mapper.from_master_to_image.list”:
string"silvans;;=datasync;;"
“rectifier.image.enable”:
string"false"
“rectifier.image.operator.delete”:
string"false"
“rectifier.image.operator.insert”:
string"false"
“rectifier.image.operator.update”:
string"false"
“sampler.verify.ratio”:
string"100"
“task.checker_jvm_param”:
string"-server -Xms4g -Xmx4g -Xmn2g -Xss512k"