环境版本:社区版 oms-4.2.10,
ob 生产版本:企业版4.3.5.1
ob 测试版本:社区版4.3.5.4
用社区版的oms 同步 企业版的数据到社区版 4.3.5.1 → 4.3.5.4 同步表结构报错:
oms 同步页面报“获取ddl失败”
dbca日志:
SELECT
TABLE_NAME AS TABLE_NAME,
ENGINE AS ENGINE,
ROW_FORMAT AS ROW_FORMAT,
AUTO_INCREMENT AS AUTO_INCREMENT,
TABLE_COLLATION AS TABLE_COLLATION,
CREATE_OPTIONS AS CREATE_OPTIONS,
REPLACE(TABLE_COMMENT,’’’’,’’’’’’) AS TABLE_COMMENT,
TABLE_COLLATION AS CHARACTER_SET_NAME,
ORGANIZATION AS ORGANIZATION
FROM information_schema.TABLES T
WHERE TABLE_SCHEMA=? AND TABLE_TYPE=? AND TABLE_NAME IN (?,?,?,?,?,?,?,?,?), Args: [fcs, BASE TABLE, unit_price_role_update_log_backup_20240531, unit_price_role_update_task_backup_20240531, income_order_backup_20240531, order_income_detail_2020, sku_info, income_error_record, order_income_detail_2021, order_income_detail_2022, order_income_report_20240710]
java.sql.SQLSyntaxErrorException: (conn=1068914) Unknown column ‘ORGANIZATION’ in ‘field list’
If column exists but type cannot be identified (example ‘select ? field1 from dual’). Use CAST function to solve this problem (example ‘select CAST(? as integer) field1 from dual’)
at com.oceanbase.jdbc.internal.util.exceptions.ExceptionFactory.createException(ExceptionFactory.java:108)
at com.oceanbase.jdbc.internal.util.exceptions.ExceptionFactory.create(ExceptionFactory.java:200)
at com.oceanbase.jdbc.OceanBaseStatement.executeExceptionEpilogue(OceanBaseStatement.java:310)
at com.oceanbase.jdbc.JDBC4PreparedStatement.executeInternal(JDBC4PreparedStatement.java:242)
at com.oceanbase.jdbc.JDBC4PreparedStatement.execute(JDBC4PreparedStatement.java:161)
at com.oceanbase.jdbc.JDBC4PreparedStatement.executeQuery(JDBC4PreparedStatement.java:175)
at com.alibaba.druid.pool.DruidPooledPreparedStatement.executeQuery(DruidPooledPreparedStatement.java:227)
at com.oceanbase.obtools.dbdiff.jdbc.template.JdbcTemplate.queryMap(JdbcTemplate.java:215)
at com.oceanbase.obtools.dbdiff.accessor.obmysql.ObMySqlMetadataAccessor.queryTableMapping(ObMySqlMetadataAccessor.java:670)
at com.oceanbase.obtools.dbdiff.accessor.obmysql.ObMySqlMetadataAccessor.queryMetadata(ObMySqlMetadataAccessor.java:177)
at com.oceanbase.obtools.dbdiff.accessor.obmysql.ObMySqlMetadataAccessor.queryMetadata(ObMySqlMetadataAccessor.java:127)
at com.oceanbase.obtools.dbdiff.builder.DefaultDatabaseBuilderImpl.build(DefaultDatabaseBuilderImpl.java:38)
at com.oceanbase.obtools.dbdiff.DbCat.convert(DbCat.java:80)
at com.alipay.oms.dbcat.DbCatAdaptor.getObjectsWithRunDbcat(DbCatAdaptor.java:228)
at com.alipay.oms.dbcat.DbCatSliceAdaptor.getOneSlice(DbCatSliceAdaptor.java:122)
at com.alipay.oms.dbcat.DbCatSliceAdaptor.doGetAll(DbCatSliceAdaptor.java:88)
at com.alipay.oms.dbcat.DbCatSliceAdaptor.getAll(DbCatSliceAdaptor.java:80)
at com.alipay.oms.service.scheduler.StructHandler.richFieldProcessing(StructHandler.java:1305)
at com.alipay.oms.service.scheduler.StructHandler.ddlRecordBatchGetExecutor(StructHandler.java:2286)
at com.alipay.oms.service.scheduler.StructHandler$$FastClassBySpringCGLIB$$87af26b9.invoke()
at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:750)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
at org.springframework.aop.interceptor.AsyncExecutionInterceptor.lambda$invoke$0(AsyncExecutionInterceptor.java:115)
at com.oceanbase.oms.common.util.trace.TraceUtil.lambda$wrap$1(TraceUtil.java:122)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:853)
Caused by: com.oceanbase.jdbc.internal.util.exceptions.OceanBaseSqlException: Unknown column ‘ORGANIZATION’ in ‘field list’
If column exists but type cannot be identified (example ‘select ? field1 from dual’). Use CAST function to solve this problem (example ‘select CAST(? as integer) field1 from dual’)
at com.oceanbase.jdbc.internal.util.exceptions.OceanBaseSqlException.of(OceanBaseSqlException.java:79)
at com.oceanbase.jdbc.internal.protocol.AbstractQueryProtocol.exceptionWithQuery(AbstractQueryProtocol.java:196)
at com.oceanbase.jdbc.internal.protocol.AbstractQueryProtocol.exceptionWithQuery(AbstractQueryProtocol.java:177)
at com.oceanbase.jdbc.internal.protocol.AbstractQueryProtocol.executeQuery(AbstractQueryProtocol.java:359)
at com.oceanbase.jdbc.JDBC4PreparedStatement.executeInternal(JDBC4PreparedStatement.java:233)
对比了下,企业版的4.3.5.1 information_schema.tables 的确没有“ORGANIZATION” 这个字段
请教下,这个问题该怎么解决