这样来看单表确实没有好的办法,目前迁移了多少数据量。。计算下还要多久的时间,是否能接受吧
3 个赞
背景是3版本迁移到4版本并且做分区表改造,3版本数据库数据量单副本100G左右,1亿行的那张大表就90多G了,目前优化的方式是临时提升源端和目标端的CPU配置,提高并发能力,目前迁移速度在3-4小时左右
3 个赞
3-4个小时应该也还好,3.x源端那边如果是分区的话其实速度也应该能快很多
2 个赞
是和表无主键有关吗?
第二个问题找到了:对于无主键表,现在 OMS 不支持增量同步以及数据校验,所以如果要同步的表包括主键表+无主键表,那么后续增量同步任务,需要将无主键表剔除掉,或者保证无主键表没有变更。
MySQL 迁移到 OB-数据库技术博客-OceanBase分布式数据库
1 个赞
1、调整ob租户内存大小和调整oms jvm 大小
2、通过分区表 批量迁移,我记得oms或者datax 可以 单独对分区表迁移
3、冷热数据分割,热数据通过oms迁移;冷数据 dump ,datax,flink cdc 都可以 ,方法很多。
2 个赞
你oms什么版本的 ,我记得4.2.2 以后 都支持无主键表迁移了。
1 个赞
增量延迟大概在多久。。我实测的经验在二三十秒都算正常,如果超过这个时间需要确定的源端日志是否有写入,源端写入不频繁的话超过这个时间也算正常
1 个赞
好的,估计可能因为测试环境周六日没啥写入操作。
1 个赞
4.2.1版本
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"
可以参考看下ob博客,有些优化的方法
如何加快OMS大表迁移-数据库技术博客-OceanBase分布式数据库
Oracle 到OceanBase 数据迁移OMS最佳实践-数据库技术博客-OceanBase分布式数据库
这一部分是检验相关的参数吧
就是全量迁移的时候,可以点击那个任务先暂停,然后点击更新,里面有参数 你可以看看
调节batch肯定可以提高性能,但是源端要慢慢调,别影响生产环境哈
需要源端和目标端pk或者not null uk有一个匹配上才能校验
升级oms 版本吧,4.2.2 支持无主健同步了