oms预检查很慢,超时,同步数据也很慢

【 使用环境 】生产环境 or 测试环境
【 使用版本 】ob版本4.3.5.2
【问题描述】
1、使用oms将mysql数据同步(表结构已提前创建)到ob



2、大概20w个分区表,每张表4个hash分区
3、使用oms在界面只配置了一个库(大概64个表),做同步测试
4、预检查的时候很慢,目的端-数据库表结构检查一直是等待中,直到超时,通过ob中show processlist查看,卡在了如下sql上:
select /+query_timeout(1800000000)/ TABLE_SCHEMA,TABLE_NAME,COLUMN_NAME,upper(COLUMN_TYPE) ,CHARACTER_MAXIMUM_LENGTH ,NUMERIC_PRECISION,NUMERIC_SCALE,NULL,CASE WHEN GENERATION_EXPRESSION=’’ or GENERATION_EXPRESSION is null THEN ‘NO’ ELSE ‘YES’ END GENERATION,IS_NULLABLE,CHARACTER_SET_NAME from information_schema.columns where (TABLE_SCHEMA,TABLE_NAME) in (…,…,…,…) order by TABLE_SCHEMA,TABLE_NAME,ORDINAL_POSITION asc
5、2-2-2架构,其中ob unit的配置为:80G、20 CPU、ob_sql_work_area_percentage = 40、_storage_meta_memory_limit_percentage=20
请问大概什么原因导致的,该怎么优化 一下呢?

2 个赞

可能是表太多了查询慢,这个表结构预检查可以关闭,系统参数struct.transfer.config,修改checkenable为false 关闭这个预检查

3 个赞

有关键保存日志吗

1 个赞

oms用的哪个版本 oms424以后的 是不支持ob到mysql迁移的

1 个赞

插眼蹲答案

1 个赞

但是在全量迁移开始的时候,还是会执行
select /+query_timeout(1800000000) / TABLE_SCHEMA ,TABLE_NAME ,COLUMN_NAME ,upper(COLUMN_TYPE ) ,CHARACTER_MAXIMUM_LENGTH ,NUMERIC_PRECISION ,NUMERIC_SCALE ,NULL,CASE WHEN GENERATION_EXPRESSION=’’ or GENERATION_EXPRESSION is null THEN ‘NO’ ELSE ‘YES’ END GENERATION,IS_NULLABLE ,CHARACTER_SET_NAME from information_schema.columns where (TABLE_SCHEMA,TABLE_NAME) in (…,…,…,…) order by TABLE_SCHEMA ,TABLE_NAME ,ORDINAL_POSITION asc
这个sql,全量数据一条也过不来,卡在这个sql这里

1 个赞

是mysql到ob的,4.2.9社区版oms

1 个赞

select /+query_timeout(1800000000)/ TABLE_SCHEMA,TABLE_NAME,INDEX_NAME,NON_UNIQUE,SEQ_IN_INDEX,COLUMN_NAME,SUB_PART from information_schema.STATISTICS where (TABLE_SCHEMA,TABLE_NAME) in (…,…) order by TABLE_SCHEMA,TABLE_NAME,INDEX_NAME, SEQ_IN_INDEX asc
还有这个sql也很慢。全量同步一条数据都没进来呢

1 个赞

收集一下统计信息

1 个赞

这个表的数据 是不是挺大的 你查询一下看看

1 个赞

是的,特别是columns这个表,count(*)好久出不来,估计是表太多的原因,那有什么办法优化一下吗?在表数量不可变的情况下

1 个赞

这个应该都是mysql统计信息的数据 其实对于ob来说 没有什么用 你迁移过来以后 需要在ob做一次统计信息收集的 统计信息的数据是保存在oceanbase这个库中

1 个赞

有没有相关做统计信息收集的文档呀

1 个赞

https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000002017252
你可以看看

2 个赞

是需要将迁移过来的所有表做一次统计信息收集吗

1 个赞

mysql information_schema这个库不用迁移 对于ob来说没有什么用 等迁移完以后 可以做一次统计信息收集就可以了

1 个赞

这个库没有迁移,ob也自带这个 库吧,只是使用oms的时候会自动查这个库中的系统表

1 个赞

是的 也会查询 我理解错了 想着你是迁移过来的呢

1 个赞

那就得每个表都要做一次统计信息吧

1 个赞

不用呀 可以整个库收集呀

2 个赞