<2025-09-12 14:30:27 [WARN] No VIEW are exist in the schema: “zabbix6”
2025-09-12 14:30:27 [WARN] No SEQUENCE are exist in the schema: “zabbix6”
2025-09-12 14:30:27 [WARN] No TABLEGROUP are exist in the tenant: “zabbix_produce”
2025-09-12 14:30:27 [WARN] No FUNCTION are exist in the schema: “zabbix6”
2025-09-12 14:30:27 [WARN] No PROCEDURE are exist in the schema: “zabbix6”
2025-09-12 14:30:28 [WARN] Failed to run data transfer task.
java.lang.RuntimeException: java.sql.SQLException: maximum open cursors exceeded
at com.oceanbase.tools.loaddump.concurrent.ExecutorTemplate.waitForResult(ExecutorTemplate.java:197) ~[ob-loader-dumper-4.2.8.2-RELEASE.jar!/:?]
at com.oceanbase.tools.loaddump.common.metadata.AbstractMetadataProvider.markEmptyTables(AbstractMetadataProvider.java:679) ~[ob-loader-dumper-4.2.8.2-RELEASE.jar!/:?]
at com.oceanbase.tools.loaddump.common.metadata.AbstractMetadataProvider.buildTableInfoMap(AbstractMetadataProvider.java:1247) ~[ob-loader-dumper-4.2.8.2-RELEASE.jar!/:?]
at com.oceanbase.tools.loaddump.common.metadata.AbstractMetadataProvider.queryTableInfoPhysicalMode(AbstractMetadataProvider.java:656) ~[ob-loader-dumper-4.2.8.2-RELEASE.jar!/:?]
at com.oceanbase.tools.loaddump.common.metadata.AbstractMetadataProvider.queryDatabase(AbstractMetadataProvider.java:428) ~[ob-loader-dumper-4.2.8.2-RELEASE.jar!/:?]
at com.oceanbase.tools.loaddump.client.DumpClient$Builder.build(DumpClient.java:227) ~[ob-loader-dumper-4.2.8.2-RELEASE.jar!/:?]
at com.oceanbase.odc.plugin.task.obmysql.datatransfer.task.OceanBaseExportJob.(OceanBaseExportJob.java:38) ~[?:?]
at com.oceanbase.odc.plugin.task.obmysql.datatransfer.OBMySQLDataTransferExtension.generate(OBMySQLDataTransferExtension.java:65) ~[?:?]
at com.oceanbase.odc.service.datatransfer.task.DataTransferTask.call(DataTransferTask.java:133) ~[odc-service-4.3.1-20240813.jar!/:?]
at com.oceanbase.odc.service.datatransfer.task.DataTransferTask.call(DataTransferTask.java:100) ~[odc-service-4.3.1-20240813.jar!/:?]
at java.util.concurrent.FutureTask.run(FutureTask.java:266) ~[?:1.8.0_412]
at com.oceanbase.odc.common.trace.TraceDecorator.lambda$decorate$0(TraceDecorator.java:40) ~[odc-common-4.3.1-20240813.jar!/:?]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_412]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_412]
at java.lang.Thread.run(Thread.java:750) [?:1.8.0_412]
Caused by: java.sql.SQLException: maximum open cursors exceeded
at com.oceanbase.jdbc.internal.com.send.ComStmtPrepare.buildErrorException(ComStmtPrepare.java:181) ~[oceanbase-client-2.4.7.1.jar!/:?]
at com.oceanbase.jdbc.internal.com.send.ComStmtPrepare.read(ComStmtPrepare.java:99) ~[oceanbase-client-2.4.7.1.jar!/:?]
at com.oceanbase.jdbc.internal.protocol.AbstractQueryProtocol.prepare(AbstractQueryProtocol.java:279) ~[oceanbase-client-2.4.7.1.jar!/:?]
at com.oceanbase.jdbc.JDBC4ServerPreparedStatement.prepare(JDBC4ServerPreparedStatement.java:293) ~[oceanbase-client-2.4.7.1.jar!/:?]
at com.oceanbase.jdbc.JDBC4ServerPreparedStatement.(JDBC4ServerPreparedStatement.java:156) ~[oceanbase-client-2.4.7.1.jar!/:?]
at com.oceanbase.jdbc.ServerSidePreparedStatement.(ServerSidePreparedStatement.java:78) ~[oceanbase-client-2.4.7.1.jar!/:?]
at com.oceanbase.jdbc.OceanBaseConnection.internalPrepareStatement(OceanBaseConnection.java:713) ~[oceanbase-client-2.4.7.1.jar!/:?]
at com.oceanbase.jdbc.OceanBaseConnection.prepareStatement(OceanBaseConnection.java:475) ~[oceanbase-client-2.4.7.1.jar!/:?]
at com.alibaba.druid.pool.DruidPooledConnection.prepareStatement(DruidPooledConnection.java:407) ~[druid-1.2.18.jar!/:?]
at com.oceanbase.tools.loaddump.jdbc.JdbcExecutor.query(JdbcExecutor.java:68) ~[ob-loader-dumper-4.2.8.2-RELEASE.jar!/:?]
at com.oceanbase.tools.loaddump.jdbc.JdbcExecutor.query(JdbcExecutor.java:55) ~[ob-loader-dumper-4.2.8.2-RELEASE.jar!/:?]
at com.oceanbase.tools.loaddump.common.metadata.AbstractMetadataProvider.lambda$markEmptyTables$5(AbstractMetadataProvider.java:674) ~[ob-loader-dumper-4.2.8.2-RELEASE.jar!/:?]
at java.util.concurrent.FutureTask.run(FutureTask.java:266) ~[?:1.8.0_412]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) ~[?:1.8.0_412]
at java.util.concurrent.FutureTask.run(FutureTask.java:266) ~[?:1.8.0_412]
… 3 more
2025-09-12 14:30:28 [WARN] Failed to run data transfer task.
java.lang.RuntimeException: java.sql.SQLException: maximum open cursors exceeded
at com.oceanbase.tools.loaddump.concurrent.ExecutorTemplate.waitForResult(ExecutorTemplate.java:197) ~[ob-loader-dumper-4.2.8.2-RELEASE.jar!/:?]
at com.oceanbase.tools.loaddump.common.metadata.AbstractMetadataProvider.markEmptyTables(AbstractMetadataProvider.java:679) ~[ob-loader-dumper-4.2.8.2-RELEASE.jar!/:?]
at com.oceanbase.tools.loaddump.common.metadata.AbstractMetadataProvider.buildTableInfoMap(AbstractMetadataProvider.java:1247) ~[ob-loader-dumper-4.2.8.2-RELEASE.jar!/:?]
at com.oceanbase.tools.loaddump.common.metadata.AbstractMetadataProvider.queryTableInfoPhysicalMode(AbstractMetadataProvider.java:656) ~[ob-loader-dumper-4.2.8.2-RELEASE.jar!/:?]
at com.oceanbase.tools.loaddump.common.metadata.AbstractMetadataProvider.queryDatabase(AbstractMetadataProvider.java:428) ~[ob-loader-dumper-4.2.8.2-RELEASE.jar!/:?]
at com.oceanbase.tools.loaddump.client.DumpClient$Builder.build(DumpClient.java:227) ~[ob-loader-dumper-4.2.8.2-RELEASE.jar!/:?]
at com.oceanbase.odc.plugin.task.obmysql.datatransfer.task.OceanBaseExportJob.(OceanBaseExportJob.java:38) ~[?:?]
at com.oceanbase.odc.plugin.task.obmysql.datatransfer.OBMySQLDataTransferExtension.generate(OBMySQLDataTransferExtension.java:65) ~[?:?]
at com.oceanbase.odc.service.datatransfer.task.DataTransferTask.call(DataTransferTask.java:133) ~[odc-service-4.3.1-20240813.jar!/:?]
at com.oceanbase.odc.service.datatransfer.task.DataTransferTask.call(DataTransferTask.java:100) ~[odc-service-4.3.1-20240813.jar!/:?]
at java.util.concurrent.FutureTask.run(FutureTask.java:266) ~[?:1.8.0_412]
at com.oceanbase.odc.common.trace.TraceDecorator.lambda$decorate$0(TraceDecorator.java:40) ~[odc-common-4.3.1-20240813.jar!/:?]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_412]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_412]
at java.lang.Thread.run(Thread.java:750) [?:1.8.0_412]
Caused by: java.sql.SQLException: maximum open cursors exceeded
at com.oceanbase.jdbc.internal.com.send.ComStmtPrepare.buildErrorException(ComStmtPrepare.java:181) ~[oceanbase-client-2.4.7.1.jar!/:?]
at com.oceanbase.jdbc.internal.com.send.ComStmtPrepare.read(ComStmtPrepare.java:99) ~[oceanbase-client-2.4.7.1.jar!/:?]
at com.oceanbase.jdbc.internal.protocol.AbstractQueryProtocol.prepare(AbstractQueryProtocol.java:279) ~[oceanbase-client-2.4.7.1.jar!/:?]
at com.oceanbase.jdbc.JDBC4ServerPreparedStatement.prepare(JDBC4ServerPreparedStatement.java:293) ~[oceanbase-client-2.4.7.1.jar!/:?]
at com.oceanbase.jdbc.JDBC4ServerPreparedStatement.(JDBC4ServerPreparedStatement.java:156) ~[oceanbase-client-2.4.7.1.jar!/:?]
at com.oceanbase.jdbc.ServerSidePreparedStatement.(ServerSidePreparedStatement.java:78) ~[oceanbase-client-2.4.7.1.jar!/:?]
at com.oceanbase.jdbc.OceanBaseConnection.internalPrepareStatement(OceanBaseConnection.java:713) ~[oceanbase-client-2.4.7.1.jar!/:?]
at com.oceanbase.jdbc.OceanBaseConnection.prepareStatement(OceanBaseConnection.java:475) ~[oceanbase-client-2.4.7.1.jar!/:?]
at com.alibaba.druid.pool.DruidPooledConnection.prepareStatement(DruidPooledConnection.java:407) ~[druid-1.2.18.jar!/:?]
at com.oceanbase.tools.loaddump.jdbc.JdbcExecutor.query(JdbcExecutor.java:68) ~[ob-loader-dumper-4.2.8.2-RELEASE.jar!/:?]
at com.oceanbase.tools.loaddump.jdbc.JdbcExecutor.query(JdbcExecutor.java:55) ~[ob-loader-dumper-4.2.8.2-RELEASE.jar!/:?]
at com.oceanbase.tools.loaddump.common.metadata.AbstractMetadataProvider.lambda$markEmptyTables$5(AbstractMetadataProvider.java:674) ~[ob-loader-dumper-4.2.8.2-RELEASE.jar!/:?]
at java.util.concurrent.FutureTask.run(FutureTask.java:266) ~[?:1.8.0_412]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) ~[?:1.8.0_412]
at java.util.concurrent.FutureTask.run(FutureTask.java:266) ~[?:1.8.0_412]
… 3 more
手动设置 --thread 为一个较低的值降低工具并法度
或者 执行 alter system set open_cursors=?
大佬,调整了参数可以导出了,现在把导出的表结构导入到新ob库,报错:
acknowledgeid
bigint(20) unsigned NOT NULL,
userid
bigint(20) unsigned NOT NULL,
eventid
bigint(20) unsigned NOT NULL,
clock
int(11) NOT NULL DEFAULT ‘0’,
message
varchar(2048) COLLATE utf8mb4_bin NOT NULL DEFAULT ‘’,
action
int(11) NOT NULL DEFAULT ‘0’,
old_severity
int(11) NOT NULL DEFAULT ‘0’,
new_severity
int(11) NOT NULL DEFAULT ‘0’,
suppress_until
int(11) NOT NULL DEFAULT ‘0’,
taskid
bigint(20) unsigned DEFAULT NULL,
PRIMARY KEY (acknowledgeid
),
CONSTRAINT c_acknowledges_2
FOREIGN KEY (eventid
) REFERENCES zabbix6
.events
(eventid
) ON UPDATE RESTRICT ON DELETE CASCADE ,
CONSTRAINT c_acknowledges_1
FOREIGN KEY (userid
) REFERENCES zabbix6
.users
(userid
) ON UPDATE RESTRICT ON DELETE CASCADE ,
KEY acknowledges_1
(userid
) BLOCK_SIZE 16384 LOCAL,
KEY acknowledges_2
(eventid
) BLOCK_SIZE 16384 LOCAL,
KEY acknowledges_3
(clock
) BLOCK_SIZE 16384 LOCAL
) DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin ROW_FORMAT = DYNAMIC COMPRESSION = ‘zstd_1.3.8’ REPLICA_NUM = 3 BLOCK_SIZE = 16384 USE_BLOOM_FILTER = FALSE TABLET_SIZE = 134217728 PCTFREE = 0
2025-09-12 16:26:51 [WARN] Failed to run data transfer task.
java.lang.IllegalStateException: zabbix6.import_upload_1757665574298_acknowledges-schema.sql: Loading SQL-format file: “/opt/odc/./data/data_transfer/353/import_upload_1757665574298_acknowledges-schema.sql” failure. Reason: Table doesn’t exist. Please see …/logs/ob-loader-dumper.error
at com.oceanbase.odc.plugin.task.obmysql.datatransfer.task.BaseOceanBaseTransferJob.syncWaitFinished(BaseOceanBaseTransferJob.java:241) ~[?:?]
at com.oceanbase.odc.plugin.task.obmysql.datatransfer.task.BaseOceanBaseTransferJob.call(BaseOceanBaseTransferJob.java:170) ~[?:?]
at com.oceanbase.odc.plugin.task.obmysql.datatransfer.task.BaseOceanBaseTransferJob.call(BaseOceanBaseTransferJob.java:56) ~[?:?]
at com.oceanbase.odc.service.datatransfer.task.DataTransferTask.call(DataTransferTask.java:135) ~[odc-service-4.3.1-20240813.jar!/:?]
at com.oceanbase.odc.service.datatransfer.task.DataTransferTask.call(DataTransferTask.java:100) ~[odc-service-4.3.1-20240813.jar!/:?]
at java.util.concurrent.FutureTask.run(FutureTask.java:266) ~[?:1.8.0_412]
at com.oceanbase.odc.common.trace.TraceDecorator.lambda$decorate$0(TraceDecorator.java:40) ~[odc-common-4.3.1-20240813.jar!/:?]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_412]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_412]
at java.lang.Thread.run(Thread.java:750) [?:1.8.0_412]
2025-09-12 16:26:51 [WARN] Failed to run data transfer task.
java.lang.IllegalStateException: zabbix6.import_upload_1757665574298_acknowledges-schema.sql: Loading SQL-format file: “/opt/odc/./data/data_transfer/353/import_upload_1757665574298_acknowledges-schema.sql” failure. Reason: Table doesn’t exist. Please see …/logs/ob-loader-dumper.error
at com.oceanbase.odc.plugin.task.obmysql.datatransfer.task.BaseOceanBaseTransferJob.syncWaitFinished(BaseOceanBaseTransferJob.java:241) ~[?:?]
at com.oceanbase.odc.plugin.task.obmysql.datatransfer.task.BaseOceanBaseTransferJob.call(BaseOceanBaseTransferJob.java:170) ~[?:?]
at com.oceanbase.odc.plugin.task.obmysql.datatransfer.task.BaseOceanBaseTransferJob.call(BaseOceanBaseTransferJob.java:56) ~[?:?]
at com.oceanbase.odc.service.datatransfer.task.DataTransferTask.call(DataTransferTask.java:135) ~[odc-service-4.3.1-20240813.jar!/:?]
at com.oceanbase.odc.service.datatransfer.task.DataTransferTask.call(DataTransferTask.java:100) ~[odc-service-4.3.1-20240813.jar!/:?]
at java.util.concurrent.FutureTask.run(FutureTask.java:266) ~[?:1.8.0_412]
at com.oceanbase.odc.common.trace.TraceDecorator.lambda$decorate$0(TraceDecorator.java:40) ~[odc-common-4.3.1-20240813.jar!/:?]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_412]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_412]
at java.lang.Thread.run(Thread.java:750) [?:1.8.0_412]
是由于外键约束导致的,我查到:
使用 OceanBase 的延迟外键检查
如果 OceanBase 支持,可以设置延迟外键检查:
sql
SET FOREIGN_KEY_CHECKS = 0;
然后在导入完成后重新启用:
sql
SET FOREIGN_KEY_CHECKS = 1;
大佬帮忙分析一下这样是否可行?
看报错有Table doesn’t exist问题。是不是表结构没导全
查看导出结构是否有这张表呢!
看下error日志,另外你这个表结构里有外键,是不是依赖的那张表还没有建出来?
为什报错里面有表不存在啊?
学习学习
MARK一下
外键约束