版本:reg.docker.alibaba-inc.com/oceanbase/oms:feature_4.2.2_ce
迁移数据:结构迁移和数据库迁移 ,mysql → Oceanbase
问题描述:出现待 已完成(有转换) 的状态都在目标Oceanbase库找不到对应表,需要手动执行
原始表结构麻烦发一下,源库版本和目标库版本
/home/admin/logs/ghana/Ghana/dbcat.log和common-default.log 上传一下
没有主键或唯一键的表会自动过滤掉。可以看看是不是这个情况。
已完成(有转换)的表名发一下,数据库看一下是不是有问题了
2024-04-24 16:07:42.170 [Thread-194] ERROR c.a.o.v.s.s.ProjectV3Handler 71 - [777a2c49-9f68-4862-97c0-0a3d4450027f] Exception Stack:
java.sql.SQLTransientConnectionException: Could not connect to address=(host=192.168.4.32)(port=2881)(type=master) : No memory or reach tenant memory limit
at com.oceanbase.jdbc.internal.util.exceptions.ExceptionFactory.createException(ExceptionFactory.java:126)
at com.oceanbase.jdbc.internal.util.exceptions.ExceptionFactory.create(ExceptionFactory.java:233)
at com.oceanbase.jdbc.internal.protocol.AbstractConnectProtocol.connectWithoutProxy(AbstractConnectProtocol.java:1555)
at com.oceanbase.jdbc.internal.util.Utils.retrieveProxy(Utils.java:1218)
at com.oceanbase.jdbc.OceanBaseConnection.newConnection(OceanBaseConnection.java:305)
at com.oceanbase.jdbc.Driver.connect(Driver.java:87)
at java.sql.DriverManager.getConnection(DriverManager.java:674)
at java.sql.DriverManager.getConnection(DriverManager.java:256)
at com.alipay.oms.util.OmsDbUtil.getConnection(OmsDbUtil.java:429)
at com.alipay.oms.service.scheduler.StructExecuteActionHandler.executeMigrationRecordSqlScript(StructExecuteActionHandler.java:95)
at com.alipay.oms.service.scheduler.StructExecuteActionHandler.ddlRecordBatchExecutor(StructExecuteActionHandler.java:76)
at com.alipay.oms.service.scheduler.StructExecuteActionHandler$$FastClassBySpringCGLIB$$c0e5e3b0.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: java.sql.SQLException: No memory or reach tenant memory limit
at com.oceanbase.jdbc.internal.protocol.AbstractQueryProtocol.readErrorPacket(AbstractQueryProtocol.java:2141)
at com.oceanbase.jdbc.internal.protocol.AbstractQueryProtocol.readPacket(AbstractQueryProtocol.java:2006)
at com.oceanbase.jdbc.internal.protocol.AbstractQueryProtocol.getResult(AbstractQueryProtocol.java:1899)
at com.oceanbase.jdbc.internal.protocol.AbstractConnectProtocol.additionalData(AbstractConnectProtocol.java:1188)
at com.oceanbase.jdbc.internal.protocol.AbstractConnectProtocol.postConnectionQueries(AbstractConnectProtocol.java:899)
at com.oceanbase.jdbc.internal.protocol.AbstractConnectProtocol.createConnection(AbstractConnectProtocol.java:623)
at com.oceanbase.jdbc.internal.protocol.AbstractConnectProtocol.connectWithoutProxy(AbstractConnectProtocol.java:1550)
… 18 common frames omitted
确实有这个报错
CREATE TABLE active_sla
(
exec_id
int(11) NOT NULL,
job_name
varchar(128) NOT NULL,
check_time
bigint(20) NOT NULL,
rule
tinyint(4) NOT NULL,
enc_type
tinyint(4) DEFAULT NULL,
options
longblob NOT NULL,
PRIMARY KEY (exec_id
, job_name
)
) 有主键的,就是很奇怪,之前的几个数据库迁移问题不大,现在这个缺了很多表
但这个缺表应该不是这个引起的,这个表结构,应该是问题什么让他直接跳过了
这表本身没有什么异常
新建一条链路,只选结构迁移,选择已完成(有转换)表,试一下是否正常
查看一下 “已完成(有转换)表” 看一下具体的转换情况
感谢,目前没折腾了,直接用工具转sql脚本直接就迁移了。